aboutsummaryrefslogtreecommitdiff
path: root/lisp/mastodon-tl.el
diff options
context:
space:
mode:
authorHolger Dürer <me@hdurer.net>2017-05-05 22:19:02 +0100
committerJohnson Denen <johnson.denen@gmail.com>2017-05-15 09:38:29 -0400
commit53a1b5c2488b329a0857c94dad837ac164d2446e (patch)
tree0437f1c198c9216ef3c4a899b68a6d4465753381 /lisp/mastodon-tl.el
parent4d0bd43c0ede0159c0f0130a5565ea5a6511997a (diff)
Show users' avatars plus other image work.
- Shows users' avatars (makes only sense if Emacs is built with imagemagick) - Scales media attachement previews to a max size (if Emacs is built with imagemagick) - Enable cacheing of image fetches Known issues: - We should really cache the avatars to avoid having multiple identical images in memory.
Diffstat (limited to 'lisp/mastodon-tl.el')
-rw-r--r--lisp/mastodon-tl.el30
1 files changed, 21 insertions, 9 deletions
diff --git a/lisp/mastodon-tl.el b/lisp/mastodon-tl.el
index e025a6e..1a5d9ae 100644
--- a/lisp/mastodon-tl.el
+++ b/lisp/mastodon-tl.el
@@ -104,8 +104,18 @@ Optionally start from POS."
"Propertize author of TOOT."
(let* ((account (cdr (assoc 'account toot)))
(handle (cdr (assoc 'acct account)))
- (name (cdr (assoc 'display_name account))))
+ (name (cdr (assoc 'display_name account)))
+ (avatar-url (cdr (assoc 'avatar account))))
(concat
+ (when mastodon-media-show-avatars-p
+ ;; We use just an empty space as the textual representation.
+ ;; This is what a user will see on a non-graphical display
+ ;; where not showing an avatar at all is preferable.
+ (concat (propertize " "
+ 'media-url avatar-url
+ 'media-state 'needs-loading
+ 'media-type 'avatar)
+ " "))
(propertize name 'face 'warning)
" (@"
handle
@@ -177,14 +187,16 @@ also render the html"
(defun mastodon-tl--media (toot)
"Retrieve a media attachment link for TOOT if one exists."
- (let ((media (mastodon-tl--field 'media_attachments toot)))
- (mapconcat
- (lambda (media-preview)
- (concat "Media_Link:: "
- (mastodon-tl--set-face
- (cdr (assoc 'preview_url media-preview))
- 'mouse-face nil)))
- media "\n")))
+ (let ((media-attachements (mastodon-tl--field 'media_attachments toot)))
+ (mapconcat
+ (lambda (media-attachement)
+ (let ((preview-url (cdr (assoc 'preview_url media-attachement))))
+ (concat (propertize "[img]"
+ 'media-url preview-url
+ 'media-state 'needs-loading
+ 'media-type 'media-link)
+ " ")))
+ media-attachements "")))
(defun mastodon-tl--content (toot)
"Retrieve text content from TOOT."