aboutsummaryrefslogtreecommitdiff
path: root/lisp/mastodon-tl.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/mastodon-tl.el')
-rw-r--r--lisp/mastodon-tl.el40
1 files 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