aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormousebot <mousebot@riseup.net>2021-11-09 10:12:56 +0100
committermousebot <mousebot@riseup.net>2021-11-09 11:26:13 +0100
commit6485f236ce9bab609a606d6f5896b1d39b3c114d (patch)
tree885940998dec672558c41d5f3085a78be558315f
parent8d543a03694e575cd0352275b60b2d232bfeaeb5 (diff)
fetch media_attachments' "type" from server and store as property
- if the type is not "image", it is displayed in`'help-echo' property. - the idea is to use this to handle gifs/videos differently to images. but for now i'm not sure how to actually render such media. but this way, at least the item could be viewed externally if the user wants to see it, or at least they know they're missing out on something. - NB: EWW can't handle content type "video/mp4".
-rw-r--r--lisp/mastodon-media.el34
-rw-r--r--lisp/mastodon-tl.el5
2 files changed, 23 insertions, 16 deletions
diff --git a/lisp/mastodon-media.el b/lisp/mastodon-media.el
index f7386c6..457628f 100644
--- a/lisp/mastodon-media.el
+++ b/lisp/mastodon-media.el
@@ -292,21 +292,27 @@ Replace them with the referenced image."
t image-options))
" ")))
-(defun mastodon-media--get-media-link-rendering (media-url &optional full-remote-url)
+(defun mastodon-media--get-media-link-rendering (media-url &optional full-remote-url type)
"Return the string to be written that renders the image at MEDIA-URL.
-FULL-REMOTE-URL is used for `shr-browse-image'."
- (concat
- (propertize "[img]"
- 'media-url media-url
- 'media-state 'needs-loading
- 'media-type 'media-link
- 'display (create-image mastodon-media--generic-broken-image-data nil t)
- 'mouse-face 'highlight
- 'mastodon-tab-stop 'image ; for do-link-action-at-point
- 'image-url full-remote-url ; for shr-browse-image
- 'keymap mastodon-tl--shr-image-map-replacement
- 'help-echo (concat "RET/i: load full image (prefix: copy URL), +/-: zoom, r: rotate, o: save preview"))
- " "))
+FULL-REMOTE-URL is used for `shr-browse-image'.
+TYPE is the attachment's type field on the server."
+ (let ((help-echo
+ "RET/i: load full image (prefix: copy URL), +/-: zoom, r: rotate, o: save preview"))
+ (concat
+ (propertize "[img]"
+ 'media-url media-url
+ 'media-state 'needs-loading
+ 'media-type 'media-link
+ 'mastodon-media-type type
+ 'display (create-image mastodon-media--generic-broken-image-data nil t)
+ 'mouse-face 'highlight
+ 'mastodon-tab-stop 'image ; for do-link-action-at-point
+ 'image-url full-remote-url ; for shr-browse-image
+ 'keymap mastodon-tl--shr-image-map-replacement
+ 'help-echo (if (string= type "image")
+ help-echo
+ (concat help-echo "\ntype: " type)))
+ " ")))
(provide 'mastodon-media)
;;; mastodon-media.el ends here
diff --git a/lisp/mastodon-tl.el b/lisp/mastodon-tl.el
index 5418374..9bc7cf2 100644
--- a/lisp/mastodon-tl.el
+++ b/lisp/mastodon-tl.el
@@ -676,10 +676,11 @@ message is a link which unhides/hides the main body."
(if (alist-get 'remote_url media-attachement)
(alist-get 'remote_url media-attachement)
;; fallback b/c notifications don't have remote_url
- (alist-get 'url media-attachement))))
+ (alist-get 'url media-attachement)))
+ (type (alist-get 'type media-attachement)))
(if mastodon-tl--display-media-p
(mastodon-media--get-media-link-rendering
- preview-url remote-url) ; 2nd arg for shr-browse-url
+ preview-url remote-url type) ; 2nd arg for shr-browse-url
(concat "Media::" preview-url "\n"))))
media-attachements "")))
(if (not (and mastodon-tl--display-media-p