aboutsummaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/mastodon-tl.el31
-rw-r--r--lisp/mastodon.el28
2 files changed, 29 insertions, 30 deletions
diff --git a/lisp/mastodon-tl.el b/lisp/mastodon-tl.el
index 113bd11..4b0bd9f 100644
--- a/lisp/mastodon-tl.el
+++ b/lisp/mastodon-tl.el
@@ -143,7 +143,7 @@ etc.")
(define-key map [remap shr-previous-link] 'mastodon-tl--previous-tab-item)
;; keep new my-profile binding; shr 'O' doesn't work here anyway
(define-key map (kbd "O") 'mastodon-profile--my-profile)
- (define-key map [remap shr-browse-url] 'mastodon-tl--url-lookup)
+ (define-key map [remap shr-browse-url] 'mastodon-url-lookup)
(keymap-canonicalize map))
"The keymap to be set for shr.el generated links that are not images.
@@ -689,35 +689,6 @@ START and END are the boundaries of the link in the toot."
'help-echo help-echo)
extra-properties))))
-;; URL lookup: should be available even if `mastodon.el' not loaded:
-
-;;;###autoload
-(defun mastodon-tl--url-lookup (&optional query-url)
- "Do a WebFinger lookup for QUERY-URL, or the URL at point.
-If a status or account is found, load it in `mastodon.el', if
-not, just browse the URL in the normal fashion."
- (interactive)
- (message "Performing lookup...")
- (let* ((query (or query-url (url-get-url-at-point)))
- (url (format "%s/api/v2/search" mastodon-instance-url))
- (param (concat "resolve=t")) ; webfinger
- (response (mastodon-http--get-search-json url query param :silent)))
- (if (equal response '((accounts . #1=[]) (statuses . #1#) (hashtags . #1#)))
- (shr-browse-url query-url)
- (cond ((not (equal '[]
- (alist-get 'statuses response)))
- (let* ((statuses (assoc 'statuses response))
- (status (seq-first (cdr statuses)))
- (status-id (alist-get 'id status)))
- (mastodon-tl--thread status-id)))
- ((not (equal '[]
- (alist-get 'accounts response)))
- (let* ((accounts (assoc 'accounts response))
- (account (seq-first (cdr accounts)))
- (account-id (alist-get 'id account)))
- (mastodon-profile--account-from-id account-id)))))))
-
-
(defun mastodon-tl--extract-userid-toot (toot acct)
"Extract a user id for an ACCT from mentions in a TOOT."
(let* ((mentions (append (alist-get 'mentions toot) nil))
diff --git a/lisp/mastodon.el b/lisp/mastodon.el
index 96faf56..5c2bc34 100644
--- a/lisp/mastodon.el
+++ b/lisp/mastodon.el
@@ -264,6 +264,34 @@ If REPLY-JSON is the json of the toot being replied to."
(interactive)
(mastodon-toot--compose-buffer user reply-to-id reply-json))
+;; URL lookup: should be available even if `mastodon.el' not loaded:
+
+;;;###autoload
+(defun mastodon-url-lookup (&optional query-url)
+ "Do a WebFinger lookup for QUERY-URL, or the URL at point.
+If a status or account is found, load it in `mastodon.el', if
+not, just browse the URL in the normal fashion."
+ (interactive)
+ (message "Performing lookup...")
+ (let* ((query (or query-url (url-get-url-at-point)))
+ (url (format "%s/api/v2/search" mastodon-instance-url))
+ (param (concat "resolve=t")) ; webfinger
+ (response (mastodon-http--get-search-json url query param :silent)))
+ (if (equal response '((accounts . #1=[]) (statuses . #1#) (hashtags . #1#)))
+ (shr-browse-url query-url)
+ (cond ((not (seq-empty-p
+ (alist-get 'statuses response)))
+ (let* ((statuses (assoc 'statuses response))
+ (status (seq-first (cdr statuses)))
+ (status-id (alist-get 'id status)))
+ (mastodon-tl--thread status-id)))
+ ((not (seq-empty-p
+ (alist-get 'accounts response)))
+ (let* ((accounts (assoc 'accounts response))
+ (account (seq-first (cdr accounts)))
+ (account-id (alist-get 'id account)))
+ (mastodon-profile--account-from-id account-id)))))))
+
;;;###autoload
(add-hook 'mastodon-mode-hook (lambda ()
(when (require 'emojify nil :noerror)