Function: majutsu-gerrit--account-start-avatar-fetch

majutsu-gerrit--account-start-avatar-fetch is a natively compiled function defined in majutsu-gerrit.el.

Signature

(majutsu-gerrit--account-start-avatar-fetch URL)

Documentation

Start asynchronous fetch of avatar URL.

Fetched bytes are turned into an image and cached; failures are cached as :missing so we do not retry indefinitely.

Source Code

;; Defined in /nix/store/jagqw3nms546pad0gxi5f3wsckk6pji7-emacs-packages-deps/share/emacs/site-lisp/majutsu-gerrit.el
(defun majutsu-gerrit--account-start-avatar-fetch (url)
  "Start asynchronous fetch of avatar URL.
Fetched bytes are turned into an image and cached; failures are cached
as `:missing' so we do not retry indefinitely."
  (when (and (fboundp 'plz)
             (not (gethash url majutsu-gerrit--account-avatar-fetching))
             (not (gethash url majutsu-gerrit--account-avatar-image-cache)))
    (puthash url t majutsu-gerrit--account-avatar-fetching)
    (plz 'get url
      :as 'binary
      :then (lambda (bytes)
              (let ((image (ignore-errors
                             (create-image bytes nil t
                                           :width majutsu-gerrit-account-avatar-size
                                           :height majutsu-gerrit-account-avatar-size
                                           :ascent 'center))))
                (puthash url
                         (if (majutsu-gerrit--account-avatar-image-valid-p image)
                             image
                           :missing)
                         majutsu-gerrit--account-avatar-image-cache)
                (remhash url majutsu-gerrit--account-avatar-fetching)
                (majutsu-gerrit--account-avatar-redisplay)))
      :else (lambda (_err)
              (puthash url :missing majutsu-gerrit--account-avatar-image-cache)
              (remhash url majutsu-gerrit--account-avatar-fetching)))))