aboutsummaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/mastodon-profile.el13
-rw-r--r--lisp/mastodon-tl.el23
2 files changed, 15 insertions, 21 deletions
diff --git a/lisp/mastodon-profile.el b/lisp/mastodon-profile.el
index 183efbb..e00a028 100644
--- a/lisp/mastodon-profile.el
+++ b/lisp/mastodon-profile.el
@@ -133,11 +133,6 @@ contains")
(defun mastodon-profile--toot-json ()
"Get the next toot-json."
(interactive)
- ;; NB: we cannot add
- ;; (or (mastodon-tl--property 'profile-json)
- ;; here because it searches forward endlessly
- ;; TODO: it would be nice to be able to do so tho
- ;; or handle --property failing
(mastodon-tl--property 'toot-json))
(defun mastodon-profile--make-author-buffer (account &optional no-reblogs)
@@ -922,19 +917,19 @@ NOTE-OLD is the text of any existing note."
(let ((inhibit-read-only t))
(princ note))))
-(defun mastodon-profile--grab-profile-json ()
+(defun mastodon-profile--profile-json ()
"Return the profile-json property if we are in a profile buffer."
(when (mastodon-tl--profile-buffer-p)
(save-excursion
(goto-char (point-min))
- (or (mastodon-tl--property 'profile-json)
+ (or (mastodon-tl--property 'profile-json :no-move)
(error "No profile data found")))))
(defun mastodon-profile--add-or-view-private-note (action-fun &optional message view)
"Add or view a private note for an account.
ACTION-FUN does the adding or viewing, MESSAGE is a prompt for
`mastodon-tl--interactive-user-handles-get', VIEW is a flag."
- (let* ((profile-json (mastodon-profile--grab-profile-json))
+ (let* ((profile-json (mastodon-profile--profile-json))
(handle (if (mastodon-tl--profile-buffer-p)
(alist-get 'acct profile-json)
(mastodon-tl--interactive-user-handles-get message)))
@@ -955,7 +950,7 @@ ACTION-FUN does the adding or viewing, MESSAGE is a prompt for
Familiar followers are accounts that you follow, and that follow
the given account."
(interactive)
- (let* ((profile-json (mastodon-profile--grab-profile-json))
+ (let* ((profile-json (mastodon-profile--profile-json))
(handle
(if (mastodon-tl--profile-buffer-p)
(alist-get 'acct profile-json)
diff --git a/lisp/mastodon-tl.el b/lisp/mastodon-tl.el
index d05556d..d62b798 100644
--- a/lisp/mastodon-tl.el
+++ b/lisp/mastodon-tl.el
@@ -1539,15 +1539,17 @@ Return value from boosted content if available."
(t2 (replace-regexp-in-string "<\/?span>" "" t1)))
(replace-regexp-in-string "<span class=\"h-card\">" "" t2)))
-(defun mastodon-tl--property (prop &optional backward)
+(defun mastodon-tl--property (prop &optional no-move backward)
"Get property PROP for toot at point.
Move forward (down) the timeline unless BACKWARD is non-nil."
- (or (get-text-property (point) prop)
- (save-excursion
- (if backward
- (mastodon-tl--goto-prev-toot)
- (mastodon-tl--goto-next-toot))
- (get-text-property (point) prop))))
+ (if no-move
+ (get-text-property (point) prop)
+ (or (get-text-property (point) prop)
+ (save-excursion
+ (if backward
+ (mastodon-tl--goto-prev-toot)
+ (mastodon-tl--goto-next-toot))
+ (get-text-property (point) prop)))))
(defun mastodon-tl--newest-id ()
"Return toot-id from the top of the buffer."
@@ -1617,12 +1619,9 @@ view all branches of a thread."
(defun mastodon-tl--thread (&optional id)
"Open thread buffer for toot at point or with ID."
- ;; NB: this is called by `mastodon-url-lookup', which means it must work
- ;; without `mastodon-tl--buffer-spec' being set!
- ;; so avoid calls to `mastodon-tl--property' and friends
(interactive)
- (let* ((id (or id (get-text-property (point) 'base-toot-id)))
- (type (mastodon-tl--field 'type (get-text-property (point) 'toot-json))))
+ (let* ((id (or id (mastodon-tl--property 'base-toot-id :no-move)))
+ (type (mastodon-tl--field 'type (mastodon-tl--property 'toot-json :no-move))))
(if (or (string= type "follow_request")
(string= type "follow")) ; no can thread these
(error "No thread")