From 0eeb429d3531a3c11cc9ea3c3aef258b7c671edb Mon Sep 17 00:00:00 2001 From: marty hiatt Date: Wed, 28 Dec 2022 15:19:13 +1100 Subject: adapt messaging for following of locked accounts --- lisp/mastodon-tl.el | 40 ++++++++++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/lisp/mastodon-tl.el b/lisp/mastodon-tl.el index 41368e8..570baf8 100644 --- a/lisp/mastodon-tl.el +++ b/lisp/mastodon-tl.el @@ -2280,6 +2280,15 @@ LANGS is an array parameters alist of languages to filer user's posts by." (mastodon-tl--do-user-action-and-response user-handle "follow" nil notify langs))) +(defun mastodon-tl--account-locked-p (response) + "Return non-nil if RESPONSE states that the account acted upon is locked." + (let* ((json (with-current-buffer response (mastodon-http--process-json))) + (locked-p (alist-get 'requested json))) + ;; handle :json-false in response: + (if (eq 't locked-p) + t + nil))) + (defun mastodon-tl--enable-notify-user-posts (user-handle) "Query for USER-HANDLE and enable notifications when they post." (interactive @@ -2467,20 +2476,23 @@ ARGS is an alist of any parameters to send with the request." (mastodon-http--triage response (lambda () - (cond ((string-equal notify "true") - (message "Receiving notifications for user %s (@%s)!" - name user-handle)) - ((string-equal notify "false") - (message "Not receiving notifications for user %s (@%s)!" - name user-handle)) - ((or (string-equal action "mute") - (string-equal action "unmute")) - (message "User %s (@%s) %sd!" name user-handle action)) - ((assoc "languages[]" args #'equal) - (message "User %s filtered by language(s): %s" name - (mapconcat #'cdr args " "))) - ((eq notify nil) - (message "User %s (@%s) %sed!" name user-handle action))))))) + (let ((locked-p (mastodon-tl--account-locked-p response))) + (cond ((string-equal notify "true") + (message "Receiving notifications for user %s (@%s)!" + name user-handle)) + ((string-equal notify "false") + (message "Not receiving notifications for user %s (@%s)!" + name user-handle)) + ((or (string-equal action "mute") + (string-equal action "unmute")) + (message "User %s (@%s) %sd!" name user-handle action)) + ((assoc "languages[]" args #'equal) + (message "User %s filtered by language(s): %s" name + (mapconcat #'cdr args " "))) + (locked-p + (message "Requested to follow user %s (@%s)" name user-handle)) + ((eq notify nil) + (message "User %s (@%s) %sed!" name user-handle action)))))))) ;; FOLLOW TAGS -- cgit v1.2.3