diff options
| author | marty hiatt <martianhiatus [a t] riseup [d o t] net> | 2022-09-03 12:42:31 +0200 | 
|---|---|---|
| committer | marty hiatt <martianhiatus [a t] riseup [d o t] net> | 2022-09-03 12:42:31 +0200 | 
| commit | f43dd731e9d6b882cf687c44ef1b5631309bd3b9 (patch) | |
| tree | b1c10b953000a55d6463edd9a884a822cee63c08 /lisp | |
| parent | 6d20d245a2791fbaf4cc673c091ed6315f673579 (diff) | |
move url-lookup to mastodon.el
Diffstat (limited to 'lisp')
| -rw-r--r-- | lisp/mastodon-tl.el | 31 | ||||
| -rw-r--r-- | lisp/mastodon.el | 28 | 
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)  | 
