aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/mastodon-media.el14
1 files changed, 10 insertions, 4 deletions
diff --git a/lisp/mastodon-media.el b/lisp/mastodon-media.el
index b58eab6..8ef9c44 100644
--- a/lisp/mastodon-media.el
+++ b/lisp/mastodon-media.el
@@ -189,9 +189,15 @@ REGION-LENGTH is the range from start to propertize."
(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))
+ (if (url-is-cached url)
+ (with-current-buffer (url-fetch-from-cache url)
+ (set-buffer-multibyte nil)
+ (goto-char (point-min))
+ (zlib-decompress-region (goto-char (search-forward "\n\n")) (point-max))
+ (mastodon-media--process-image-response nil marker image-options region-length))
+ (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
@@ -199,7 +205,7 @@ REGION-LENGTH is the range from start to propertize."
'media-state
'loading-failed)
:loading-failed))))))
-
+H
(defun mastodon-media--select-next-media-line (end-pos)
"Find coordinates of the next media to load before END-POS.