aboutsummaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/mastodon-media.el15
1 files changed, 12 insertions, 3 deletions
diff --git a/lisp/mastodon-media.el b/lisp/mastodon-media.el
index 0a4c3de..50f79dd 100644
--- a/lisp/mastodon-media.el
+++ b/lisp/mastodon-media.el
@@ -170,9 +170,18 @@ MEDIA-TYPE is a symbol and either 'avatar or 'media-link."
`(:height ,mastodon-media--avatar-height))
((eq media-type 'media-link)
`(:max-height ,mastodon-media--preview-max-height))))))
- (url-retrieve url
- #'mastodon-media--process-image-response
- (list (copy-marker start) image-options region-length))))
+ (let ((buffer (current-buffer))
+ (marker (copy-marker start)))
+ (condition-case nil
+ ;; catch any errors in url-retrieve so as to not abort
+ ;; whatever called us
+ (url-retrieve url
+ #'mastodon-media--process-image-response
+ (list marker image-options region-length))
+ (error (with-current-buffer buffer
+ ;; TODO: Consider adding retries
+ (put-text-property marker (+ marker region-length) 'media-state 'loading-failed)
+ :loading-failed))))))
(defun mastodon-media--select-next-media-line ()
"Find coordinates of the next media to load.