aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormarty hiatt <martianhiatus@disroot.org>2024-10-31 09:43:12 +0100
committermarty hiatt <martianhiatus@disroot.org>2024-10-31 09:43:12 +0100
commit380c6be86f570854cc9b2a714f36301339e57c8b (patch)
tree5b8cfa77a48e0b19b29df8fd769fd92a2b8277e2
parent8a8b13dc0a232f8018628953ce0f748bd303aaf1 (diff)
keep cleaning up notifs insert note
-rw-r--r--lisp/mastodon-notifications.el99
1 files changed, 49 insertions, 50 deletions
diff --git a/lisp/mastodon-notifications.el b/lisp/mastodon-notifications.el
index e5ad1ea..99d9d89 100644
--- a/lisp/mastodon-notifications.el
+++ b/lisp/mastodon-notifications.el
@@ -348,7 +348,7 @@ FILTERS STATUS PROFILE-NOTE FOLLOWER-NAME GROUP."
(defun mastodon-notifications--insert-note
(toot body action-byline
&optional base-toot unfolded group accounts type)
-"Display the content and byline of timeline element TOOT.
+ "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
@@ -368,55 +368,54 @@ foldable.
GROUP is the notification group data.
ACCOUNTS is the notification accounts data.
TYPE is notification type, used for non-group notifs."
-(let* ((type (if type
- (symbol-name type) ;; non-group
- (alist-get 'type group)))
- (toot-foldable
- (and mastodon-tl--fold-toots-at-length
- (length> body mastodon-tl--fold-toots-at-length)))
- (follower (alist-get 'account toot))
- (follower-name (or (alist-get 'display_name follower)
- (alist-get 'username follower))))
- (insert
- (propertize ;; top byline, body + byline:
- (concat
- (if (equal type "mention") ;; top (action) byline
- ""
- action-byline)
- ;; (mastodon-notifications--action-byline
- ;; (intern type) accounts group toot follower-name))
- (propertize body ;; body only
- 'toot-body t) ;; includes newlines etc. for folding
- "\n"
- ;; actual byline:
- (mastodon-tl--byline
- toot nil nil base-toot group
- ;; types listed here use base item timestamp, else we use group's
- ;; latest timestamp:
- (when (not (member type '("favourite" "reblog" "edit" "poll")))
- (mastodon-tl--field 'latest_page_notification_at group))))
- 'item-type 'toot ;; for nav, actions, etc.
- 'item-id (or (alist-get 'page_max_id group) ;; newest notif
- (alist-get 'id toot)) ; toot id
- 'base-item-id (mastodon-tl--item-id
- ;; if status is a notif, get id from base-toot
- ;; (-tl--item-id toot) will not work here:
- (or base-toot
- toot)) ; else normal toot with reblog check
- 'item-json toot
- 'base-toot base-toot
- 'cursor-face 'mastodon-cursor-highlight-face
- 'toot-foldable toot-foldable
- 'toot-folded (and toot-foldable (not unfolded))
- ;; grouped notifs data:
- 'notification-type type
- 'notification-id (alist-get 'group_key group)
- 'notification-group group
- 'notification-accounts accounts
- ;; for pagination:
- 'notifications-min-id (alist-get 'page_min_id group)
- 'notifications-max-id (alist-get 'page_max_id group))
- "\n")))
+ (let* ((type (if type
+ (symbol-name type) ;; non-group
+ (alist-get 'type group)))
+ (toot-foldable
+ (and mastodon-tl--fold-toots-at-length
+ (length> body mastodon-tl--fold-toots-at-length)))
+ (follower (alist-get 'account toot))
+ (follower-name (or (alist-get 'display_name follower)
+ (alist-get 'username follower)))
+ (ts ;; types listed here use base item timestamp, else we use
+ ;; group's latest timestamp:
+ (when (and group
+ (not
+ (member type '("favourite" "reblog" "edit" "poll"))))
+ (mastodon-tl--field 'latest_page_notification_at group))))
+ (insert
+ (propertize ;; top byline, body + byline:
+ (concat
+ (if (equal type "mention") ;; top (action) byline
+ ""
+ action-byline)
+ (propertize body ;; body only
+ 'toot-body t) ;; includes newlines etc. for folding
+ "\n"
+ ;; actual byline:
+ (mastodon-tl--byline toot nil nil base-toot group ts))
+ 'item-type 'toot ;; for nav, actions, etc.
+ 'item-id (or (alist-get 'page_max_id group) ;; newest notif
+ (alist-get 'id toot)) ; toot id
+ 'base-item-id (mastodon-tl--item-id
+ ;; if status is a notif, get id from base-toot
+ ;; (-tl--item-id toot) will not work here:
+ (or base-toot
+ toot)) ; else normal toot with reblog check
+ 'item-json toot
+ 'base-toot base-toot
+ 'cursor-face 'mastodon-cursor-highlight-face
+ 'toot-foldable toot-foldable
+ 'toot-folded (and toot-foldable (not unfolded))
+ ;; grouped notifs data:
+ 'notification-type type
+ 'notification-id (alist-get 'group_key group)
+ 'notification-group group
+ 'notification-accounts accounts
+ ;; for pagination:
+ 'notifications-min-id (alist-get 'page_min_id group)
+ 'notifications-max-id (alist-get 'page_max_id group))
+ "\n")))
(defun mastodon-notifications--byline-accounts
(accounts group &optional avatar)