From 0129bcf466a4913bdda095b977cd06560c406a30 Mon Sep 17 00:00:00 2001 From: mousebot Date: Sat, 9 Oct 2021 13:22:04 +0200 Subject: handle cached images when we fetch images, check if they are cached, and if so use the cached version. for now, images aren't cached explicitly, but this should work if the user has `url-automatic-caching' enabled. --- lisp/mastodon-media.el | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'lisp') 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. -- cgit v1.2.3