aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.org5
-rw-r--r--lisp/mastodon-discover.el2
-rw-r--r--lisp/mastodon-notifications.el32
-rw-r--r--lisp/mastodon-tl.el4
-rw-r--r--lisp/mastodon.el26
-rw-r--r--test/mastodon-notifications-tests.el2
6 files changed, 39 insertions, 32 deletions
diff --git a/README.org b/README.org
index 97e2f4f..8eb9242 100644
--- a/README.org
+++ b/README.org
@@ -222,7 +222,10 @@ You can download and use your instance's custom emoji
*** Other commands and account settings:
-- =mastodon-url-lookup=: Attempt to load URL in =mastodon.el=. URL may be the one at point or provided in the minibuffer. Should also work if =mastodon.el= is not yet loaded.
+In addition to =mastodon=, the following functions are autoloaded and should work without first loading =mastodon.el=:
+- =mastodon-toot=: Compose new toot
+- =mastodon-notifications-get=: View all notifications
+- =mastodon-url-lookup=: Attempt to load a URL in =mastodon.el=. URL may be at point or provided in the minibuffer.
- =mastodon-tl--view-instance-description=: View information about the instance that the author of the toot at point is on.
diff --git a/lisp/mastodon-discover.el b/lisp/mastodon-discover.el
index 5d1a86e..dc8a924 100644
--- a/lisp/mastodon-discover.el
+++ b/lisp/mastodon-discover.el
@@ -76,7 +76,7 @@
("F" "Federated" mastodon-tl--get-federated-timeline)
("H" "Home" mastodon-tl--get-home-timeline)
("L" "Local" mastodon-tl--get-local-timeline)
- ("N" "Notifications" mastodon-notifications--get)
+ ("N" "Notifications" mastodon-notifications-get)
("u" "Update timeline" mastodon-tl--update)
("S" "Search" mastodon-search--search-query)
("O" "Jump to your profile" mastodon-profile--my-profile)
diff --git a/lisp/mastodon-notifications.el b/lisp/mastodon-notifications.el
index f9e2fe5..f5ddea3 100644
--- a/lisp/mastodon-notifications.el
+++ b/lisp/mastodon-notifications.el
@@ -51,6 +51,7 @@
(autoload 'mastodon-profile--view-follow-requests "mastodon-profile.el")
(autoload 'mastodon-tl--reload-timeline-or-profile "mastodon-tl")
(autoload 'mastodon-tl--update "mastodon-tl")
+(autoload 'mastodon-notifications-get "mastodon")
(defvar mastodon-tl--buffer-spec)
(defvar mastodon-tl--display-media-p)
(defvar mastodon-mode-map)
@@ -124,7 +125,7 @@ follow-requests view."
(lambda ()
(if f-reqs-view-p
(mastodon-profile--view-follow-requests)
- (mastodon-notifications--get))
+ (mastodon-notifications-get))
(message "Follow request of %s (@%s) %s!"
name handle (if reject
"rejected"
@@ -276,51 +277,32 @@ of the toot responded to."
(mapc #'mastodon-notifications--by-type json)
(goto-char (point-min))))
-;;;###autoload
-(defun mastodon-notifications--get (&optional type buffer-name)
- "Display NOTIFICATIONS in buffer.
-Optionally only print notifications of type TYPE, a string.
-BUFFER-NAME is added to \"*mastodon-\" to create the buffer name."
- (interactive)
- (let ((buffer (or (concat "*mastodon-" buffer-name "*")
- "*mastodon-notifications*")))
- (if (get-buffer buffer)
- (progn (switch-to-buffer buffer)
- (mastodon-tl--update))
- (message "Loading your notifications...")
- (mastodon-tl--init-sync
- (or buffer-name "notifications")
- "notifications"
- 'mastodon-notifications--timeline
- type)
- (use-local-map mastodon-notifications--map))))
-
(defun mastodon-notifications--get-mentions ()
"Display mention notifications in buffer."
(interactive)
- (mastodon-notifications--get "mention" "mentions"))
+ (mastodon-notifications-get "mention" "mentions"))
(defun mastodon-notifications--get-favourites ()
"Display favourite notifications in buffer."
(interactive)
- (mastodon-notifications--get "favourite" "favourites"))
+ (mastodon-notifications-get "favourite" "favourites"))
(defun mastodon-notifications--get-boosts ()
"Display boost notifications in buffer."
(interactive)
- (mastodon-notifications--get "reblog" "boosts"))
+ (mastodon-notifications-get "reblog" "boosts"))
(defun mastodon-notifications--get-polls ()
"Display poll notifications in buffer."
(interactive)
- (mastodon-notifications--get "poll" "polls"))
+ (mastodon-notifications-get "poll" "polls"))
(defun mastodon-notifications--get-statuses ()
"Display status notifications in buffer.
Status notifications are created when you call
`mastodon-tl--enable-notify-user-posts'."
(interactive)
- (mastodon-notifications--get "status" "statuses"))
+ (mastodon-notifications-get "status" "statuses"))
(defun mastodon-notifications--filter-types-list (type)
"Return a list of notification types with TYPE removed."
diff --git a/lisp/mastodon-tl.el b/lisp/mastodon-tl.el
index 027b7e8..d8a5417 100644
--- a/lisp/mastodon-tl.el
+++ b/lisp/mastodon-tl.el
@@ -61,7 +61,7 @@
(autoload 'mastodon-profile--lookup-account-in-status "mastodon-profile")
(autoload 'mastodon-profile-mode "mastodon-profile")
;; make notifications--get available via M-x and outside our keymap:
-(autoload 'mastodon-notifications--get "mastodon-notifications"
+(autoload 'mastodon-notifications-get "mastodon-notifications"
"Display NOTIFICATIONS in buffer." t) ; interactive
(autoload 'mastodon-search--propertize-user "mastodon-search")
(autoload 'mastodon-search--insert-users-propertized "mastodon-search")
@@ -2250,7 +2250,7 @@ For use after e.g. deleting a toot."
((equal (mastodon-tl--get-endpoint) "timelines/public?local=true")
(mastodon-tl--get-local-timeline))
((equal (mastodon-tl--get-endpoint) "notifications")
- (mastodon-notifications--get))
+ (mastodon-notifications-get))
((equal (mastodon-tl--buffer-name)
(concat "*mastodon-" (mastodon-auth--get-account-name) "-statuses*"))
(mastodon-profile--my-profile))
diff --git a/lisp/mastodon.el b/lisp/mastodon.el
index d8591e1..04330f6 100644
--- a/lisp/mastodon.el
+++ b/lisp/mastodon.el
@@ -57,7 +57,6 @@
(autoload 'mastodon-tl--thread "mastodon-tl")
(autoload 'mastodon-tl--toggle-spoiler-text-in-toot "mastodon-tl")
(autoload 'mastodon-tl--update "mastodon-tl")
-(autoload 'mastodon-notifications--get "mastodon-notifications")
(autoload 'mastodon-profile--get-toot-author "mastodon-profile")
(autoload 'mastodon-profile--make-author-buffer "mastodon-profile")
(autoload 'mastodon-profile--show-user "mastodon-profile")
@@ -96,6 +95,10 @@
(autoload 'mastodon-tl--view-lists "mastodon-tl")
(autoload 'mastodon-toot--edit-toot-at-point "mastodon-toot")
(autoload 'mastodon-toot--view-toot-history "mastodon-tl")
+(autoload 'mastodon-tl--init-sync "mastodon-tl")
+(autoload 'mastodon-notifications--timeline "mastodon-notifications")
+
+(defvar mastodon-notifications--map)
(defgroup mastodon nil
"Interface with Mastodon."
@@ -160,7 +163,7 @@ Use. e.g. \"%c\" for your locale's date and time format."
(define-key map (kbd "F") #'mastodon-tl--get-federated-timeline)
(define-key map (kbd "H") #'mastodon-tl--get-home-timeline)
(define-key map (kbd "L") #'mastodon-tl--get-local-timeline)
- (define-key map (kbd "N") #'mastodon-notifications--get)
+ (define-key map (kbd "N") #'mastodon-notifications-get)
(define-key map (kbd "P") #'mastodon-profile--show-user)
(define-key map (kbd "T") #'mastodon-tl--thread)
;; navigation out of mastodon
@@ -268,6 +271,25 @@ If REPLY-JSON is the json of the toot being replied to."
(interactive)
(mastodon-toot--compose-buffer user reply-to-id reply-json))
+;;;###autoload
+(defun mastodon-notifications-get (&optional type buffer-name)
+ "Display NOTIFICATIONS in buffer.
+Optionally only print notifications of type TYPE, a string.
+BUFFER-NAME is added to \"*mastodon-\" to create the buffer name."
+ (interactive)
+ (let ((buffer (or (concat "*mastodon-" buffer-name "*")
+ "*mastodon-notifications*")))
+ (if (get-buffer buffer)
+ (progn (switch-to-buffer buffer)
+ (mastodon-tl--update))
+ (message "Loading your notifications...")
+ (mastodon-tl--init-sync
+ (or buffer-name "notifications")
+ "notifications"
+ 'mastodon-notifications--timeline
+ type)
+ (use-local-map mastodon-notifications--map))))
+
;; URL lookup: should be available even if `mastodon.el' not loaded:
;;;###autoload
diff --git a/test/mastodon-notifications-tests.el b/test/mastodon-notifications-tests.el
index bc70e49..1275c72 100644
--- a/test/mastodon-notifications-tests.el
+++ b/test/mastodon-notifications-tests.el
@@ -191,7 +191,7 @@
(mock (mastodon-profile--fetch-server-account-settings)
=> '(max_toot_chars 1312 privacy "public" display_name "Eugen" discoverable t locked :json-false bot :json-false sensitive :json-false language ""))
- (mastodon-notifications--get))))
+ (mastodon-notifications-get))))
(defun mastodon-notifications--test-type (fun sample)
"Test notification draw functions.