aboutsummaryrefslogtreecommitdiff
path: root/lisp/mastodon-search.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/mastodon-search.el')
-rw-r--r--lisp/mastodon-search.el62
1 files changed, 37 insertions, 25 deletions
diff --git a/lisp/mastodon-search.el b/lisp/mastodon-search.el
index d17b054..cbb1fba 100644
--- a/lisp/mastodon-search.el
+++ b/lisp/mastodon-search.el
@@ -77,8 +77,9 @@ Returns a nested list containing user handle, display name, and URL."
(accts (alist-get 'accounts response))
(tags (alist-get 'hashtags response))
(statuses (alist-get 'statuses response))
- (user-ids (mapcar #'mastodon-search--get-user-info
- accts)) ; returns a list of three-item lists
+ ;; this is now done in search--insert-users-propertized
+ ;; (user-ids (mapcar #'mastodon-search--get-user-info
+ ;; accts)) ; returns a list of three-item lists
(tags-list (mapcar #'mastodon-search--get-hashtag-info
tags))
;; (status-list (mapcar #'mastodon-search--get-status-info
@@ -89,16 +90,16 @@ Returns a nested list containing user handle, display name, and URL."
status-ids-list)))
(with-current-buffer (get-buffer-create buffer)
(switch-to-buffer buffer)
- (erase-buffer)
(mastodon-mode)
(let ((inhibit-read-only t))
+ (erase-buffer)
;; user results:
(insert (mastodon-tl--set-face
(concat "\n ------------\n"
" USERS\n"
" ------------\n\n")
'success))
- (mastodon-search--insert-users-propertized user-ids :note)
+ (mastodon-search--insert-users-propertized accts :note)
;; hashtag results:
(insert (mastodon-tl--set-face
(concat "\n ------------\n"
@@ -124,30 +125,41 @@ Returns a nested list containing user handle, display name, and URL."
(mapc 'mastodon-tl--toot toots-list-json)
(goto-char (point-min))))))
-(defun mastodon-search--insert-users-propertized (users &optional note)
- "Insert USERS list into the buffer.
-If NOTE is non-nil, include user's profile note.
-This is also called by `mastodon-tl--get-follow-suggestions'."
- (mapc (lambda (el)
- (insert (propertize (car el) 'face 'mastodon-display-name-face)
- " : \n : "
- (propertize (concat "@" (car (cdr el)))
- 'face 'mastodon-handle-face
- 'mouse-face 'highlight
- 'mastodon-tab-stop 'user-handle
- 'keymap mastodon-tl--link-keymap
- 'mastodon-handle (concat "@" (car (cdr el)))
- 'help-echo (concat "Browse user profile of @" (car (cdr el))))
- " : \n"
- (if note
- (mastodon-tl--render-text (cadddr el) nil)
- "")
- "\n"))
- users))
+(defun mastodon-search--insert-users-propertized (json &optional note)
+ "Insert users list into the buffer.
+JSON is the data from the server.. If NOTE is non-nil, include
+user's profile note. This is also called by
+`mastodon-tl--get-follow-suggestions' and
+`mastodon-profile--insert-follow-requests'."
+ (mapc (lambda (acct)
+ (let ((user (mastodon-search--get-user-info acct)))
+ (insert
+ (propertize
+ (concat (propertize (car user)
+ 'face 'mastodon-display-name-face
+ 'byline t
+ 'toot-id "0")
+ " : \n : "
+ (propertize (concat "@" (cadr user))
+ 'face 'mastodon-handle-face
+ 'mouse-face 'highlight
+ 'mastodon-tab-stop 'user-handle
+ 'keymap mastodon-tl--link-keymap
+ 'mastodon-handle (concat "@" (cadr user))
+ 'help-echo (concat "Browse user profile of @" (cadr user)))
+ " : \n"
+ (if note
+ (mastodon-tl--render-text (cadddr user) nil)
+ "")
+ "\n")
+ 'toot-json acct)))) ; so named for compat w other processing functions
+ json))
(defun mastodon-search--get-user-info (account)
"Get user handle, display name, account URL and profile note from ACCOUNT."
- (list (alist-get 'display_name account)
+ (list (if (not (equal "" (alist-get 'display_name account)))
+ (alist-get 'display_name account)
+ (alist-get 'username account))
(alist-get 'acct account)
(alist-get 'url account)
(alist-get 'note account)))