diff options
| author | mousebot <mousebot@riseup.net> | 2021-10-21 15:28:27 +0200 | 
|---|---|---|
| committer | mousebot <mousebot@riseup.net> | 2021-10-21 15:28:27 +0200 | 
| commit | 299356ebee27abb8b97cdd4546164b9918727844 (patch) | |
| tree | 961446e20075b58d5b9f80234986ea8846177d06 | |
| parent | c08bc9dea693388a779d5702fc6cc421353bb889 (diff) | |
replies to toots adopt their visibility status by default.
this makes it so that if you reply to a direct message, your toot will also be
direct by default.
- we feed the reply's full toot JSON through the chain of functions called,
all the way down to "setup-as-reply". that way, if anything else needs to be
extracted when setting up a reply, it's all there.
| -rw-r--r-- | lisp/mastodon-toot.el | 18 | ||||
| -rw-r--r-- | lisp/mastodon.el | 5 | 
2 files changed, 13 insertions, 10 deletions
| diff --git a/lisp/mastodon-toot.el b/lisp/mastodon-toot.el index 51c2431..fa44645 100644 --- a/lisp/mastodon-toot.el +++ b/lisp/mastodon-toot.el @@ -444,7 +444,7 @@ The prefix string is tested against both user handles and display names."                                     mentions))                         (concat (mastodon-toot--process-local user)                                 mentions))) -                   id))) +                   id toot)))  (defun mastodon-toot--toggle-warning ()    "Toggle `mastodon-toot--content-warning'." @@ -620,12 +620,16 @@ on the status of NSFW, content warning flags, media attachments, etc."        'read-only "Edit your message below."        'toot-post-header t)))) -(defun mastodon-toot--setup-as-reply (reply-to-user reply-to-id) +(defun mastodon-toot--setup-as-reply (reply-to-user reply-to-id reply-json)    "If REPLY-TO-USER is provided, inject their handle into the message.  If REPLY-TO-ID is provided, set the MASTODON-TOOT--REPLY-TO-ID var." -  (when reply-to-user -    (insert (format "%s " reply-to-user)) -    (setq mastodon-toot--reply-to-id reply-to-id))) +  (let ((reply-visibility (cdr (assoc 'visibility reply-json)))) +    (when reply-to-user +      (insert (format "%s " reply-to-user)) +      (setq mastodon-toot--reply-to-id reply-to-id) +      (if (not (equal mastodon-toot--visibility +                      reply-visibility)) +          (setq mastodon-toot--visibility reply-visibility)))))  (defun mastodon-toot--update-status-fields (&rest args)    "Update the status fields in the header based on the current state." @@ -663,7 +667,7 @@ If REPLY-TO-ID is provided, set the MASTODON-TOOT--REPLY-TO-ID var."                            (list 'invisible (not mastodon-toot--content-warning)                                  'face 'mastodon-cw-face))))) -(defun mastodon-toot--compose-buffer (reply-to-user reply-to-id) +(defun mastodon-toot--compose-buffer (reply-to-user reply-to-id reply-json)    "Create a new buffer to capture text for a new toot.  If REPLY-TO-USER is provided, inject their handle into the message.  If REPLY-TO-ID is provided, set the MASTODON-TOOT--REPLY-TO-ID var." @@ -674,7 +678,7 @@ If REPLY-TO-ID is provided, set the MASTODON-TOOT--REPLY-TO-ID var."      (mastodon-toot-mode t)      (when (not buffer-exists)        (mastodon-toot--display-docs-and-status-fields) -      (mastodon-toot--setup-as-reply reply-to-user reply-to-id)) +      (mastodon-toot--setup-as-reply reply-to-user reply-to-id reply-json))      (mastodon-toot-mode t)      (when mastodon-toot--enable-completion-for-mentions        (set (make-local-variable 'company-backends) diff --git a/lisp/mastodon.el b/lisp/mastodon.el index a06b18d..e6a01f8 100644 --- a/lisp/mastodon.el +++ b/lisp/mastodon.el @@ -206,13 +206,12 @@ Use. e.g. \"%c\" for your locale's date and time format."        (message "Loading Mastodon account %s on %s..." (mastodon-auth--user-acct) mastodon-instance-url))))  ;;;###autoload -(defun mastodon-toot (&optional user reply-to-id) +(defun mastodon-toot (&optional user reply-to-id reply-json)    "Update instance with new toot. Content is captured in a new buffer. -  If USER is non-nil, insert after @ symbol to begin new toot.  If REPLY-TO-ID is non-nil, attach new toot to a conversation."    (interactive) -  (mastodon-toot--compose-buffer user reply-to-id)) +  (mastodon-toot--compose-buffer user reply-to-id reply-json))  ;;;###autoload  (add-hook 'mastodon-mode-hook (lambda () | 
