]>
Commit | Line | Data |
---|---|---|
1 | ;ELC\1c\0\0\0 | |
2 | ;;; Compiled | |
3 | ;;; in Emacs version 28.2 | |
4 | ;;; with all optimizations. | |
5 | ||
6 | ||
7 | ||
8 | (byte-code "\300\301!\210\302\303\304\305\306DD\307\310\301\311\312&\a\210\302\313\304\305\314DD\315\310\301\311\312&\a\207" [require jabber-avatar custom-declare-variable jabber-vcard-avatars-retrieve funcall function #[0 "\300\301!\205\b\0\301 \207" [fboundp display-images-p] 2 #1=""] "Automatically download vCard avatars?" :group :type boolean jabber-vcard-avatars-publish #[0 "\300\207" [t] 1 #1#] "Publish your vCard photo as avatar?"] 8) | |
9 | #@71 For each connection, SHA1 hash of current avatar. | |
10 | Keys are full JIDs.\1f | |
11 | (defvar jabber-vcard-avatars-current-hash (make-hash-table :test 'equal) (#$ . 526)) | |
12 | (add-to-list 'jabber-presence-chain 'jabber-vcard-avatars-presence) | |
13 | #@192 Look for vCard avatar mark in <presence/> stanza. | |
14 | ||
15 | JC is the Jabber connection. | |
16 | XML-DATA is the parsed tree data from the stream (stanzas) | |
17 | obtained from `xml-parse-region'. | |
18 | ||
19 | (fn JC XML-DATA)\1f | |
20 | (defalias 'jabber-vcard-avatars-presence #[514 "\b\205\\\0\211\301\ 1:\205\ f\0\302\ 2\ 2\"\266\202?\205\\\0\303\ 1\304\ 1:\205!\0\302\ 2\ 2\"\266\202!\305\ 2\306\"\211\211AA\211\307\232?\2054\0\211\266\202@\211\204@\0\310\ 3\311\"\207\211\312\ 4!\313N\230\206Z\0\314\ 1!\203U\0\310\ 3\ 2\"\207\315\ 5\ 4\ 3#\266\203\207" [jabber-vcard-avatars-retrieve type xml-get-attribute-or-nil jabber-jid-user from jabber-xml-path (("vcard-temp:x:update" . "x") photo) (("")) jabber-avatar-set nil jabber-jid-symbol avatar-hash jabber-avatar-find-cached jabber-vcard-avatars-fetch] 9 (#$ . 756)]) | |
21 | #@98 Fetch vCard for JID and extract the avatar. | |
22 | ||
23 | JC is the Jabber connection. | |
24 | ||
25 | (fn JC JID SHA1-HASH)\1f | |
26 | (defalias 'jabber-vcard-avatars-fetch #[771 "\300\ 3\ 3\301\302\303\ 6\a\ 6\aB\304\305&\b\207" [jabber-send-iq "get" (vCard ((xmlns . "vcard-temp"))) jabber-vcard-avatars-vcard ignore nil] 12 (#$ . 1496) (byte-code "\300 \301\302!\303E\207" [jabber-read-account jabber-read-jid-completing "Fetch whose vCard avatar: " nil] 3)]) | |
27 | #@71 Get the photo from the vCard, and set the avatar. | |
28 | ||
29 | (fn JC IQ CLOSURE)\1f | |
30 | (defalias 'jabber-vcard-avatars-vcard #[771 "\211@\ 1A\302\303\304\ 6\ 6!!\236\211\203\\\0\305\306\ 28\ 2A@\"\ 2\203S\0\ 2\307\ 2!\b>\204,\0\310\311\312\ 4D\"\210\ 1\313H\230\204S\0 \203S\0\314\315\316\ 6\ 6!\ 5\307\ 5!\b>\204N\0\310\311\312\ 6\aD\"\210\ 4\313H$\210\317\ 1!\210\320\ 4\ 2\"\207\320\ 3\321\"\207" [cl-struct-avatar-tags jabber-avatar-verbose PHOTO jabber-vcard-parse jabber-iq-query jabber-avatar-from-base64-string 2 type-of signal wrong-type-argument avatar 1 message "%s's avatar should have SHA1 sum %s, but has %s" jabber-jid-displayname jabber-avatar-cache jabber-avatar-set nil] 15 (#$ . 1916)]) | |
31 | #@87 Request our own vCard, to find hash of avatar. | |
32 | ||
33 | JC is the Jabber connection. | |
34 | ||
35 | (fn JC)\1f | |
36 | (defalias 'jabber-vcard-avatars-find-current #[257 "\b\205\ f\0\301\ 1\302\303\304\305\306\305\302&\b\207" [jabber-vcard-avatars-publish jabber-send-iq nil "get" (vCard ((xmlns . "vcard-temp"))) jabber-vcard-avatars-find-current-1 t] 10 (#$ . 2562)]) | |
37 | #@28 | |
38 | ||
39 | (fn JC XML-DATA SUCCESS)\1f | |
40 | (defalias 'jabber-vcard-avatars-find-current-1 #[771 "\301\ 3\ 2\2050\0\302\303\304\ 6\ 6!!\236\211\205.\0\305\306\ 28\ 2A@\"\307\ 1!\b>\204)\0\310\311\312\ 3D\"\210\211\313H\262\ 1\262\ 1\"\207" [cl-struct-avatar-tags jabber-vcard-avatars-update-current PHOTO jabber-vcard-parse jabber-iq-query jabber-avatar-from-base64-string 2 type-of signal wrong-type-argument avatar 1] 11 (#$ . 2898)]) | |
41 | #@20 | |
42 | ||
43 | (fn JC NEW-HASH)\1f | |
44 | (defalias 'jabber-vcard-avatars-update-current #[514 "\301\302\ 3!\b\"\211\ 2\230?\205\18\0\303\302\ 4!\ 3\b#\210\304\ 3!\207" [jabber-vcard-avatars-current-hash gethash jabber-connection-bare-jid puthash jabber-send-current-presence] 7 (#$ . 3300)]) | |
45 | (add-to-list 'jabber-presence-element-functions 'jabber-vcard-avatars-presence-element) | |
46 | #@11 | |
47 | ||
48 | (fn JC)\1f | |
49 | (defalias 'jabber-vcard-avatars-presence-element #[257 "\b\205\18\0\302\303\ 2! \"\304\305\ 2\205\14\0\306\307\ 4EEC\262\ 1\207" [jabber-vcard-avatars-publish jabber-vcard-avatars-current-hash gethash jabber-connection-bare-jid x ((xmlns . "vcard-temp:x:update")) photo nil] 7 (#$ . 3649)]) | |
50 | (provide 'jabber-vcard-avatars) |