diff options
author | mousebot <mousebot@riseup.net> | 2021-06-19 15:52:43 +0200 |
---|---|---|
committer | mousebot <mousebot@riseup.net> | 2021-06-19 15:52:43 +0200 |
commit | 5e022b655b654fe1967c848b45b1400fff502d37 (patch) | |
tree | 38af62cf1b71f92c435401f7c8905faf570dd836 | |
parent | a7148e8c79c7451c035a75217a9349b531752caa (diff) |
feed notfication ID to mastodon-notifications--insert-status
which is a copy of mastodon-tl--insert-status. this makes the 'toot-id of notifications
that of the favoriting/boosting item, rather than the item boosted/favorited.
this ID is needed in order to make loading more older notifications work correctly.
beforehand, the call would be incorrect and the same latest 20 notifications would load.
-rw-r--r-- | lisp/mastodon-notifications.el | 47 | ||||
-rw-r--r-- | lisp/mastodon-tl.el | 4 |
2 files changed, 40 insertions, 11 deletions
diff --git a/lisp/mastodon-notifications.el b/lisp/mastodon-notifications.el index 51806a3..a731ddf 100644 --- a/lisp/mastodon-notifications.el +++ b/lisp/mastodon-notifications.el @@ -65,8 +65,9 @@ (defun mastodon-notifications--mention (note) "Format for a `mention' NOTE." - (let ((status (mastodon-tl--field 'status note))) - (mastodon-tl--insert-status + (let ((id (cdr (assoc 'id note))) + (status (mastodon-tl--field 'status note))) + (mastodon-notifications--insert-status status (mastodon-tl--clean-tabs-and-nl (if (mastodon-tl--has-spoiler status) @@ -75,7 +76,8 @@ 'mastodon-tl--byline-author (lambda (_status) (mastodon-notifications--byline-concat - "Mentioned"))))) + "Mentioned")) + id))) (defun mastodon-notifications--follow (note) "Format for a `follow' NOTE." @@ -92,8 +94,9 @@ (defun mastodon-notifications--favourite (note) "Format for a `favourite' NOTE." - (let ((status (mastodon-tl--field 'status note))) - (mastodon-tl--insert-status + (let ((id (cdr (assoc 'id note))) + (status (mastodon-tl--field 'status note))) + (mastodon-notifications--insert-status status (mastodon-tl--clean-tabs-and-nl (if (mastodon-tl--has-spoiler status) @@ -104,12 +107,14 @@ note)) (lambda (_status) (mastodon-notifications--byline-concat - "Favourited"))))) + "Favourited")) + id))) (defun mastodon-notifications--reblog (note) "Format for a `boost' NOTE." - (let ((status (mastodon-tl--field 'status note))) - (mastodon-tl--insert-status + (let ((id (cdr (assoc 'id note))) + (status (mastodon-tl--field 'status note))) + (mastodon-notifications--insert-status status (mastodon-tl--clean-tabs-and-nl (if (mastodon-tl--has-spoiler status) @@ -120,7 +125,31 @@ note)) (lambda (_status) (mastodon-notifications--byline-concat - "Boosted"))))) + "Boosted")) + id))) + +(defun mastodon-notifications--insert-status (toot body author-byline action-byline &optional id) + "Display the content and byline of timeline element TOOT. + +BODY will form the section of the toot above the byline. +AUTHOR-BYLINE is an optional function for adding the author portion of +the byline that takes one variable. By default it is `mastodon-tl--byline-author' +ACTION-BYLINE is also an optional function for adding an action, such as boosting +favouriting and following to the byline. It also takes a single function. By default +it is `mastodon-tl--byline-boosted'" + (let ((start-pos (point))) + (insert + (propertize + (concat "\n" + body + " \n" + (mastodon-tl--byline toot author-byline action-byline)) + 'toot-id id + 'base-toot-id (mastodon-tl--toot-id toot) + 'toot-json toot) + "\n") + (when mastodon-tl--display-media-p + (mastodon-media--inline-images start-pos (point))))) (defun mastodon-notifications--by-type (note) "Filters NOTE for those listed in `mastodon-notifications--types-alist'." diff --git a/lisp/mastodon-tl.el b/lisp/mastodon-tl.el index 10b867c..77caf13 100644 --- a/lisp/mastodon-tl.el +++ b/lisp/mastodon-tl.el @@ -1171,8 +1171,8 @@ UPDATE-FUNCTION is used to recieve more toots." (with-current-buffer buffer (setq mastodon-tl--buffer-spec `(buffer-name ,buffer - endpoint ,endpoint update-function - ,update-function) + endpoint ,endpoint + update-function ,update-function) mastodon-tl--timestamp-update-timer (when mastodon-tl--enable-relative-timestamps (run-at-time mastodon-tl--timestamp-next-update |