aboutsummaryrefslogtreecommitdiff
path: root/lisp/mastodon.el
diff options
context:
space:
mode:
authormarty hiatt <martianhiatus [a t] riseup [d o t] net>2023-03-23 11:32:48 +0100
committermarty hiatt <martianhiatus [a t] riseup [d o t] net>2023-03-23 11:32:48 +0100
commit756b879634ae6994b52bd4c011bc4b46a0995037 (patch)
tree05c63b4cb37a4b5b0a28f37251e1b3d3226f3122 /lisp/mastodon.el
parent08ed1ae30888086256f343be978cf7eb65cec9eb (diff)
parent19f18b4076efefa212a0e56757ac844eafda9481 (diff)
Merge branch 'develop'
Diffstat (limited to 'lisp/mastodon.el')
-rw-r--r--lisp/mastodon.el156
1 files changed, 75 insertions, 81 deletions
diff --git a/lisp/mastodon.el b/lisp/mastodon.el
index 0c32818..0ac24f7 100644
--- a/lisp/mastodon.el
+++ b/lisp/mastodon.el
@@ -45,61 +45,57 @@
(declare-function discover-add-context-menu "discover")
(declare-function emojify-mode "emojify")
(declare-function request "request")
-(autoload 'special-mode "simple")
+
+(autoload 'mastodon-auth--get-account-name "mastodon-auth")
+(autoload 'mastodon-auth--user-acct "mastodon-auth")
+(autoload 'mastodon-discover "mastodon-discover")
+(autoload 'mastodon-notifications--follow-request-accept "mastodon-notifications")
+(autoload 'mastodon-notifications--follow-request-reject "mastodon-notifications")
+(autoload 'mastodon-notifications--get-mentions "mastodon-notifications")
+(autoload 'mastodon-notifications--timeline "mastodon-notifications")
+(autoload 'mastodon-profile--fetch-server-account-settings "mastodon-profile")
+(autoload 'mastodon-profile--get-toot-author "mastodon-profile")
+(autoload 'mastodon-profile--make-author-buffer "mastodon-profile")
+(autoload 'mastodon-profile--my-profile "mastodon-profile")
+(autoload 'mastodon-profile--show-user "mastodon-profile")
+(autoload 'mastodon-profile--update-user-profile-note "mastodon-profile")
+(autoload 'mastodon-profile--view-bookmarks "mastodon-profile")
+(autoload 'mastodon-profile--view-favourites "mastodon-profile")
+(autoload 'mastodon-search--search-query "mastodon-search")
+(autoload 'mastodon-search--trending-tags "mastodon-search")
+(autoload 'mastodon-search--trending-tags "mastodon-search")
+(autoload 'mastodon-tl--block-user "mastodon-tl")
+(autoload 'mastodon-tl--follow-user "mastodon-tl")
+(autoload 'mastodon-tl--get-buffer-type "mastodon-tl")
(autoload 'mastodon-tl--get-federated-timeline "mastodon-tl")
(autoload 'mastodon-tl--get-home-timeline "mastodon-tl")
(autoload 'mastodon-tl--get-local-timeline "mastodon-tl")
(autoload 'mastodon-tl--get-tag-timeline "mastodon-tl")
(autoload 'mastodon-tl--goto-next-toot "mastodon-tl")
(autoload 'mastodon-tl--goto-prev-toot "mastodon-tl")
+(autoload 'mastodon-tl--init-sync "mastodon-tl")
+(autoload 'mastodon-tl--list-followed-tags "mastodon-tl")
+(autoload 'mastodon-tl--mute-user "mastodon-tl")
(autoload 'mastodon-tl--next-tab-item "mastodon-tl")
+(autoload 'mastodon-tl--poll-vote "mastodon-http")
(autoload 'mastodon-tl--previous-tab-item "mastodon-tl")
(autoload 'mastodon-tl--thread "mastodon-tl")
(autoload 'mastodon-tl--toggle-spoiler-text-in-toot "mastodon-tl")
-(autoload 'mastodon-tl--update "mastodon-tl")
-(autoload 'mastodon-profile--get-toot-author "mastodon-profile")
-(autoload 'mastodon-profile--make-author-buffer "mastodon-profile")
-(autoload 'mastodon-profile--show-user "mastodon-profile")
-(autoload 'mastodon-discover "mastodon-discover")
-(autoload 'mastodon-tl--block-user "mastodon-tl")
(autoload 'mastodon-tl--unblock-user "mastodon-tl")
-(autoload 'mastodon-tl--mute-user "mastodon-tl")
-(autoload 'mastodon-tl--unmute-user "mastodon-tl")
-(autoload 'mastodon-tl--follow-user "mastodon-tl")
(autoload 'mastodon-tl--unfollow-user "mastodon-tl")
-(autoload 'mastodon-profile--my-profile "mastodon-profile")
-(autoload 'mastodon-profile--view-favourites "mastodon-profile")
-(autoload 'mastodon-profile--view-follow-requests "mastodon-profile")
-(autoload 'mastodon-notifications--follow-request-accept "mastodon-notifications")
-(autoload 'mastodon-notifications--follow-request-reject "mastodon-notifications")
-(autoload 'mastodon-search--search-query "mastodon-search")
-(autoload 'mastodon-auth--get-account-name "mastodon-auth")
-;; (autoload 'mastodon-async--stream-federated "mastodon-async")
-;; (autoload 'mastodon-async--stream-local "mastodon-async")
-;; (autoload 'mastodon-async--stream-home "mastodon-async")
-;; (autoload 'mastodon-async--stream-notifications "mastodon-async")
-;; (autoload 'mastodon-async-mode "mastodon-async")
-(autoload 'mastodon-profile--update-user-profile-note "mastodon-profile")
-(autoload 'mastodon-auth--user-acct "mastodon-auth")
-(autoload 'mastodon-tl--poll-vote "mastodon-http")
-(autoload 'mastodon-profile--view-bookmarks "mastodon-profile")
-(autoload 'mastoton-tl--view-filters "mastodon-tl")
-(autoload 'mastodon-tl--view-filters "mastodon-tl")
-(autoload 'mastodon-tl--get-follow-suggestions "mastodon-tl")
+(autoload 'mastodon-tl--unmute-user "mastodon-tl")
+(autoload 'mastodon-tl--update "mastodon-tl")
+(autoload 'mastodon-toot--edit-toot-at-point "mastodon-toot")
(when (require 'lingva nil :no-error)
(autoload 'mastodon-toot--translate-toot-text "mastodon-toot"))
-(autoload 'mastodon-search--trending-tags "mastodon-search")
-(autoload 'mastodon-profile-account-settings "mastodon-profile")
-(autoload 'mastodon-profile--fetch-server-account-settings "mastodon-profile")
-(autoload 'mastodon-notifications--get-mentions "mastodon-notifications")
-(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")
-(autoload 'mastodon-search--trending-tags "mastodon-search")
-(autoload 'mastodon-tl--view-instance-description "mastodon-tl")
-(autoload 'mastodon-tl--get-buffer-type "mastodon-tl")
+(autoload 'mastodon-views--view-follow-suggestions "mastodon-views")
+(autoload 'mastodon-views--view-filters "mastodon-views")
+(autoload 'mastodon-views--view-follow-requests "mastodon-views")
+(autoload 'mastodon-views--view-instance-description "mastodon-views")
+(autoload 'mastodon-views--view-lists "mastodon-views")
+(autoload 'mastodon-views--view-scheduled-toots "mastodon-views")
+(autoload 'special-mode "simple")
(defvar mastodon-notifications--map)
@@ -120,7 +116,6 @@ be \"example_user\".
After setting these variables you should restart Emacs for these
changes to take effect."
- :group 'mastodon
:type 'string)
(defcustom mastodon-active-user nil
@@ -135,7 +130,6 @@ should be \"https://social.instance.org\".
After setting these variables you should restart Emacs for these
changes to take effect."
- :group 'mastodon
:type 'string)
(defcustom mastodon-toot-timestamp-format "%F %T"
@@ -143,7 +137,6 @@ changes to take effect."
For valid formatting options see `format-time-string`.
The default value \"%F %T\" prints ISO8601-style YYYY-mm-dd HH:MM:SS.
Use. e.g. \"%c\" for your locale's date and time format."
- :group 'mastodon
:type 'string)
(defvar mastodon-mode-map
@@ -157,64 +150,67 @@ Use. e.g. \"%c\" for your locale's date and time format."
(define-key map [backtab] #'mastodon-tl--previous-tab-item)
(define-key map [?\S-\t] #'mastodon-tl--previous-tab-item)
(define-key map [?\M-\t] #'mastodon-tl--previous-tab-item)
+ (define-key map (kbd "l") #'recenter-top-bottom)
;; navigation between timelines
(define-key map (kbd "#") #'mastodon-tl--get-tag-timeline)
+ (define-key map (kbd ":") #'mastodon-tl--list-followed-tags)
(define-key map (kbd "A") #'mastodon-profile--get-toot-author)
(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 "@") #'mastodon-notifications--get-mentions)
(define-key map (kbd "P") #'mastodon-profile--show-user)
- (define-key map (kbd "T") #'mastodon-tl--thread)
- ;; navigation out of mastodon
+ (define-key map (kbd "s") #'mastodon-search--search-query)
+ (define-key map (kbd "/") #'mastodon-switch-to-buffer)
+ ;; quitting mastodon
(define-key map (kbd "q") #'kill-current-buffer)
(define-key map (kbd "Q") #'kill-buffer-and-window)
- ;; timeline actions
- (define-key map (kbd "b") #'mastodon-toot--toggle-boost)
+ (define-key map (kbd "M-C-q") #'mastodon-kill-all-buffers)
+ ;; toot actions
(define-key map (kbd "c") #'mastodon-tl--toggle-spoiler-text-in-toot)
+ (define-key map (kbd "b") #'mastodon-toot--toggle-boost)
(define-key map (kbd "f") #'mastodon-toot--toggle-favourite)
+ (define-key map (kbd "k") #'mastodon-toot--toggle-bookmark)
(define-key map (kbd "r") #'mastodon-toot--reply)
- ;; this is now duplicated by 'g', cd remove/use for else:
- (define-key map (kbd "u") #'mastodon-tl--update)
- ;; new toot
- (define-key map (kbd "t") #'mastodon-toot)
+ (define-key map (kbd "C") #'mastodon-toot--copy-toot-url)
+ (define-key map (kbd "v") #'mastodon-tl--poll-vote)
+ (define-key map (kbd "E") #'mastodon-toot--view-toot-edits)
+ (define-key map (kbd "T") #'mastodon-tl--thread)
+ (when (require 'lingva nil :no-error)
+ (define-key map (kbd "a") #'mastodon-toot--translate-toot-text))
+ (define-key map (kbd ",") #'mastodon-toot--list-toot-favouriters)
+ (define-key map (kbd ".") #'mastodon-toot--list-toot-boosters)
+ (define-key map (kbd ";") #'mastodon-views--view-instance-description)
;; override special mode binding
(define-key map (kbd "g") #'undefined)
(define-key map (kbd "g") #'mastodon-tl--update)
- ;; mousebot additions
+ ;; this is now duplicated by 'g', cd remove/use for else:
+ (define-key map (kbd "u") #'mastodon-tl--update)
+ ;; own toot actions:
+ (define-key map (kbd "t") #'mastodon-toot)
+ (define-key map (kbd "d") #'mastodon-toot--delete-toot)
+ (define-key map (kbd "D") #'mastodon-toot--delete-and-redraft-toot)
+ (define-key map (kbd "i") #'mastodon-toot--pin-toot-toggle)
+ (define-key map (kbd "e") #'mastodon-toot--edit-toot-at-point)
+ ;; user actions
(define-key map (kbd "W") #'mastodon-tl--follow-user)
(define-key map (kbd "C-S-W") #'mastodon-tl--unfollow-user)
(define-key map (kbd "B") #'mastodon-tl--block-user)
(define-key map (kbd "C-S-B") #'mastodon-tl--unblock-user)
(define-key map (kbd "M") #'mastodon-tl--mute-user)
(define-key map (kbd "C-S-M") #'mastodon-tl--unmute-user)
+ ;; own profile
(define-key map (kbd "O") #'mastodon-profile--my-profile)
- (define-key map (kbd "S") #'mastodon-search--search-query)
- (define-key map (kbd "d") #'mastodon-toot--delete-toot)
- (define-key map (kbd "D") #'mastodon-toot--delete-and-redraft-toot)
- (define-key map (kbd "C") #'mastodon-toot--copy-toot-url)
- (define-key map (kbd "i") #'mastodon-toot--pin-toot-toggle)
- (define-key map (kbd "V") #'mastodon-profile--view-favourites)
- (define-key map (kbd "R") #'mastodon-profile--view-follow-requests)
(define-key map (kbd "U") #'mastodon-profile--update-user-profile-note)
- (define-key map (kbd "v") #'mastodon-tl--poll-vote)
- (define-key map (kbd "k") #'mastodon-toot--bookmark-toot-toggle)
+ (define-key map (kbd "V") #'mastodon-profile--view-favourites)
(define-key map (kbd "K") #'mastodon-profile--view-bookmarks)
- (define-key map (kbd "I") #'mastodon-tl--view-filters)
- (define-key map (kbd "G") #'mastodon-tl--get-follow-suggestions)
- (define-key map (kbd "X") #'mastodon-tl--view-lists)
- (define-key map (kbd "@") #'mastodon-notifications--get-mentions)
- (define-key map (kbd "e") #'mastodon-toot--edit-toot-at-point)
- (define-key map (kbd "E") #'mastodon-toot--view-toot-edits)
- (define-key map (kbd "l") #'recenter-top-bottom)
- (when (require 'lingva nil :no-error)
- (define-key map (kbd "a") #'mastodon-toot--translate-toot-text))
- (define-key map (kbd "s") #'mastodon-tl--view-scheduled-toots)
- (define-key map (kbd "M-C-q") #'mastodon-kill-all-buffers)
- (define-key map (kbd ";") #'mastodon-tl--view-instance-description)
- (define-key map (kbd ":") #'mastodon-tl--list-followed-tags)
- (define-key map (kbd ",") #'mastodon-toot--list-toot-favouriters)
- (define-key map (kbd ".") #'mastodon-toot--list-toot-boosters)
+ ;; minor views
+ (define-key map (kbd "R") #'mastodon-views--view-follow-requests)
+ (define-key map (kbd "S") #'mastodon-views--view-scheduled-toots)
+ (define-key map (kbd "I") #'mastodon-views--view-filters)
+ (define-key map (kbd "G") #'mastodon-views--view-follow-suggestions)
+ (define-key map (kbd "X") #'mastodon-views--view-lists)
map)
"Keymap for `mastodon-mode'.")
@@ -311,7 +307,7 @@ not, just browse the URL in the normal fashion."
(interactive)
(let* ((query (or query-url
(thing-at-point-url-at-point)
- (get-text-property (point) 'shr-url)
+ (mastodon-tl--property 'shr-url :no-move)
(read-string "Lookup URL: "))))
(if (not (mastodon--masto-url-p query))
;; this doesn't work as shr-browse-url doesn't take a url arg
@@ -348,7 +344,7 @@ not, just browse the URL in the normal fashion."
(save-match-data
(or (string-match "^/@[^/]+$" query)
(string-match "^/@[^/]+/[[:digit:]]+$" query)
- (string-match "^/users/[[:alnum:]]+$" query)
+ (string-match "^/user[s]?/[[:alnum:]]+$" query)
(string-match "^/notice/[[:alnum:]]+$" query)
(string-match "^/objects/[-a-f0-9]+$" query)
(string-match "^/notes/[a-z0-9]+$" query)
@@ -376,9 +372,7 @@ Calls `mastodon-tl--get-buffer-type', which see."
"Switch to a live mastodon buffer."
(interactive)
(let* ((bufs (mastodon-live-buffers))
- (buf-names (mapcar (lambda (buf)
- (buffer-name buf))
- bufs))
+ (buf-names (mapcar #'buffer-name bufs))
(choice (completing-read "Switch to mastodon buffer: "
buf-names)))
(switch-to-buffer choice)))