aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormousebot <mousebot@riseup.net>2022-03-19 16:07:44 +0100
committermousebot <mousebot@riseup.net>2022-03-19 16:07:44 +0100
commitc7b475160d2e7712e339e15adf168529f71b52c6 (patch)
tree5416e8ce0855694a139e5f33170f9ae8c0ea1d83
parentdb2d0aed887c072e1a100ee54205091e1f2d981c (diff)
attach parent JSON to fave/boost notifs to fix replies
because we switched to using boost/fave JSON rather than parent, as 'toot-json, replies to these toots were broken (mentions, etc.) so now we attach both bits of data and selectively pull from each.
-rw-r--r--lisp/mastodon-notifications.el9
-rw-r--r--lisp/mastodon-tl.el5
-rw-r--r--lisp/mastodon-toot.el7
3 files changed, 13 insertions, 8 deletions
diff --git a/lisp/mastodon-notifications.el b/lisp/mastodon-notifications.el
index 041918d..6b253ec 100644
--- a/lisp/mastodon-notifications.el
+++ b/lisp/mastodon-notifications.el
@@ -214,9 +214,12 @@ Status notifications are given when
"Posted")
((equal type 'poll)
"Posted a poll"))))
- id)))
+ id
+ (when (or (equal type 'favourite)
+ (equal type 'boost))
+ status))))
-(defun mastodon-notifications--insert-status (toot body author-byline action-byline id)
+(defun mastodon-notifications--insert-status (toot body author-byline action-byline id &optional parent-toot)
"Display the content and byline of timeline element TOOT.
BODY will form the section of the toot above the byline.
@@ -232,7 +235,7 @@ takes a single function. By default it is
ID is the notification's own id, which is attached as a property."
(when toot ; handle rare blank notif server bug
- (mastodon-tl--insert-status toot body author-byline action-byline id)))
+ (mastodon-tl--insert-status toot body author-byline action-byline id parent-toot)))
(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 4833a3f..40cbcae 100644
--- a/lisp/mastodon-tl.el
+++ b/lisp/mastodon-tl.el
@@ -852,7 +852,7 @@ Runs `mastodon-tl--render-text' and fetches poll or media."
(mastodon-tl--get-poll toot))
(mastodon-tl--media toot))))
-(defun mastodon-tl--insert-status (toot body author-byline action-byline &optional id)
+(defun mastodon-tl--insert-status (toot body author-byline action-byline &optional id parent-toot)
"Display the content and byline of timeline element TOOT.
BODY will form the section of the toot above the byline.
@@ -876,7 +876,8 @@ a notification."
'toot-id (or id ; for notifications
(alist-get 'id toot))
'base-toot-id (mastodon-tl--toot-id toot)
- 'toot-json toot)
+ 'toot-json toot
+ 'parent-toot parent-toot)
"\n")
(when mastodon-tl--display-media-p
(mastodon-media--inline-images start-pos (point)))))
diff --git a/lisp/mastodon-toot.el b/lisp/mastodon-toot.el
index 780e726..07ab400 100644
--- a/lisp/mastodon-toot.el
+++ b/lisp/mastodon-toot.el
@@ -617,11 +617,12 @@ candidate ARG. IGNORED remains a mystery."
"Reply to toot at `point'."
(interactive)
(let* ((toot (mastodon-tl--property 'toot-json))
+ (parent (mastodon-tl--property 'parent-toot)) ; for new notifs handling
(id (mastodon-tl--as-string (mastodon-tl--field 'id toot)))
(account (mastodon-tl--field 'account toot))
(user (alist-get 'acct account))
- (mentions (mastodon-toot--mentions toot))
- (boosted (mastodon-tl--field 'reblog toot))
+ (mentions (mastodon-toot--mentions (or parent toot)))
+ (boosted (mastodon-tl--field 'reblog (or parent toot)))
(booster (when boosted
(alist-get 'acct
(alist-get 'account toot)))))
@@ -637,7 +638,7 @@ candidate ARG. IGNORED remains a mystery."
mentions))
(concat (mastodon-toot--process-local user)
mentions)))
- id toot)))
+ id (or parent toot))))
(defun mastodon-toot--toggle-warning ()
"Toggle `mastodon-toot--content-warning'."