;ELC
;;; Compiled
;;; in Emacs version 28.0.50
;;; with all optimizations.
(byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\305\306\307\310\311\304\312\313&\210\314\315\316\317\320\321\322\307\323\324& \207" [require cl-lib w3m-util w3m-rss w3m custom-declare-group w3m-antenna nil "w3m-antenna - Utility to detect changes of WEB." :group :prefix "w3m-antenna-" define-widget w3m-antenna-string string "String widget with default value.\nWhen creating a new widget, its value is given by an expression specified\nwith :value-from." :tag "URL" :value-from :create w3m-antenna-string-create] 10)
#@15
(fn WIDGET)
(defalias 'w3m-antenna-string-create #[257 "\300\301\"\302\230\203% \303\301\300\304\"\305!\211\203 \306L\210\202! \302\262\262#\210\307!\207" [widget-get :value "" widget-put :value-from eval nil widget-default-create] 8 (#$ . 623)])
#@330 A list of site information (internal variable). nil means that
antenna database is not initialized. Each site information is a list
that consists of:
0. Format string of URL.
1. Title.
2. Class (Normal, HNS or TIME).
3. Real URL.
4. Last modification time.
5. Size in bytes.
6. Time when size modification is detected.
(defvar w3m-antenna-alist nil (#$ . 888))
#@13
(fn SITE)
(defalias 'w3m-antenna-site-key '(macro . #[257 "\300D\207" [car] 3 (#$ . 1265)]))
#@13
(fn SITE)
(defalias 'w3m-antenna-site-title '(macro . #[257 "\300\301E\207" [nth 1] 4 (#$ . 1367)]))
#@13
(fn SITE)
(defalias 'w3m-antenna-site-class '(macro . #[257 "\300\301E\207" [nth 2] 4 (#$ . 1477)]))
#@13
(fn SITE)
(defalias 'w3m-antenna-site-url '(macro . #[257 "\300\301E\207" [nth 3] 4 (#$ . 1587)]))
#@13
(fn SITE)
(defalias 'w3m-antenna-site-last-modified '(macro . #[257 "\300\301E\207" [nth 4] 4 (#$ . 1695)]))
#@13
(fn SITE)
(defalias 'w3m-antenna-site-size '(macro . #[257 "\300\301E\207" [nth 5] 4 (#$ . 1813)]))
#@13
(fn SITE)
(defalias 'w3m-antenna-site-size-detected '(macro . #[257 "\300\301E\207" [nth 6] 4 (#$ . 1922)]))
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\300\312\302\303\313DD\314\306\307\310\315&\210\300\316\302\303\317DD\320\306\307\310\321&\210\300\322\302\303\323DD\324\306\307\310\325&\210\300\326\302\303\327DD\330\306\307\310\331&\210\300\332\302\303\333DD\334\306\307\310\335&\210\300\336\302\303\337DD\340\306\307\310\341&\207" [custom-declare-variable w3m-antenna-file funcall function #[0 "\301\302\"\207" [w3m-profile-directory expand-file-name ".antenna"] 3] "File which has list of antenna URLs." :group w3m-antenna :type file w3m-antenna-refresh-interval #[0 "\300\207" [nil] 1] "Interval time to update (to refresh) the antenna page automatically.\nThe value should be a positive integer in seconds, or nil which means\nnot to update the page." (choice (const :tag "Not reload" nil) (integer :tag "Interval seconds")) w3m-antenna-sites #[0 "?\205 \302\303\304 !\"\207" [noninteractive w3m-antenna-file mapcar #[257 "\211@A@\3008E\207" [2] 5 "\n\n(fn SITE)"] w3m-load-list] 4] "List of WEB sites, watched by `w3m-antenna'." (repeat (group :indent 2 (w3m-antenna-string :format "URL: %v" :value-from w3m-antenna-tmp-url) (w3m-antenna-string :format "Title: %v" :value-from w3m-antenna-tmp-title) (choice :tag "Procedure" (const :tag "Check either its last modified time or its size" nil) (const :tag "Check its last modified time only" time) (const :tag "Check its current date provided by Hyper Nikki System" hns) (list :tag "Check RSS" :indent 4 (function-item :format #1="" w3m-antenna-check-rss) (string :format "URL: %v" :value #1#)) (list :tag "Check the another changelog page" :indent 4 (function-item :format #1# w3m-antenna-check-another-page) (string :format "URL: %v" :value #1#)) (list :tag "Check the page linked by the anchor that matches" :indent 4 (function-item :format #1# w3m-antenna-check-anchor) (regexp :value #1#) (integer :value 0)) (cons :tag "Check with a user defined function" :indent 4 (function :match (lambda (widget value) (and (functionp value) (not (memq value '(w3m-antenna-check-rss w3m-antenna-check-another-page w3m-antenna-check-anchor)))))) (repeat :tag "Arguments" sexp))))) w3m-antenna-html-skelton #[0 "\300\207" ["\n\n
\nAntenna\n%R\n\nAntenna
\nChecked at %D.
\nUpdated
\n\nVisited
\n\n\n\n"] 1] "HTML skelton of antenna." string w3m-antenna-make-summary-function #[0 "\300\207" [w3m-antenna-make-summary-like-natsumican] 1] "Function to make summary of site information." (choice :format "%{%t%}:\n %[Value Menu%] %v" (function-item :tag "Simple style" :format "%t" w3m-antenna-make-summary) (function-item :tag "Natsumican style" :format "%t" w3m-antenna-make-summary-like-natsumican) (function :format "User function: %v" :size 8)) w3m-antenna-sort-changed-sites-function #[0 "\300\207" [w3m-antenna-sort-sites-by-time] 1] "Function to sort list of changed sites." (choice :format "%{%t%}:\n %[Value Menu%] %v" (function-item :tag "Sort by last modification time" :format "%t" w3m-antenna-sort-sites-by-time) (function-item :tag "Sort by title" :format "%t" w3m-antenna-sort-sites-by-title) (function-item :tag "Do nothing" :format "%t" identity) (function :format "User function: %v" :size 8)) w3m-antenna-sort-unchanged-sites-function #[0 "\300\207" [w3m-antenna-sort-sites-by-time] 1] "Function to sort list of unchanged sites." (choice :format "%{%t%}:\n %[Value Menu%] %v" (function-item :tag "Sort by last modification time" :format "%t" w3m-antenna-sort-sites-by-time) (function-item :tag "Sort by title" :format "%t" w3m-antenna-sort-sites-by-title) (function-item :tag "Do nothing" :format "%t" identity) (function :format "User function: %v" :size 8))] 8)
(defalias 'w3m-antenna-alist #[0 "\302!\303\304\305\" \"\207" [w3m-antenna-file w3m-antenna-sites w3m-load-list mapcar make-closure #[257 "\301@\300\"\211\203 \211AA\211\3028\240\266\207\303\304\211\211\211F\"\207" [V0 assoc 2 append nil] 8 "\n\n(fn SITE)"]] 5])
#@20
(fn URL HANDLER)
(defalias 'w3m-antenna-hns-last-modified #[514 "\301\302!!p\303\304\"\303\305#BBrq\210\306\307\310 \"\311\312\311\211&)\262\313!\2039 \2035 \207\314!\207\313rB!\262)\211\262!\203U \203Q \207\314!\207!\207" [w3m-work-buffer-name w3m-get-buffer-create generate-new-buffer-name make-closure #[257 "\301\300!\203 \300q\210\211\205e \302\211eb\210\303\304\302\305#\205? \306\225\211\262\205? \303\307\302\305#\205? \306\224{\211\262\205? \310\311\"?\205? \312!\266\202\206e eb\210\313\314\302\305#\205e \315\306\211\211\316\317\320!!\316\317\321!!\316\317\322!!\323&\207" [V0 buffer-name nil search-forward "\nLast-Modified: " t 0 "
" string-match " *[0-9][0-9][0-9][0-9], +[0-9][0-9] +[0-9][0-9] +" w3m-time-parse-string re-search-forward "^newest day is \\([0-9][0-9][0-9][0-9]\\)/\\([0-9][0-9]\\)/\\([0-9][0-9]\\)$" encode-time string-to-number match-string 3 2 1 32400] 10 "\n\n(fn TYPE)"] #[257 "\302\300!\210\303\301!\203
\301q\210\207" [V0 V1 w3m-kill-buffer buffer-name] 3 "\n\n(fn TYPE)"] w3m-retrieve w3m-expand-url "di.cgi" nil t w3m-process-p w3m-process-start-process] 14 (#$ . 6133)])
#@86 Check the page served by HNS (Hyper Nikki System) asynchronously.
(fn SITE HANDLER)
(defalias 'w3m-antenna-check-hns #[514 "\300\301#\211B\302@\"\262\303!\203 \203 \207\304!\207\303!\211\262!\2032 \203. \207\304!\207\207" [make-closure #[257 "\211\203\f \302\300\211@\303$\207\304\300\301\"\207" [V0 V1 w3m-antenna-site-update nil w3m-antenna-check-page] 6 "\n\n(fn TIME)"] w3m-antenna-hns-last-modified w3m-process-p w3m-process-start-process] 7 (#$ . 7291)])
#@128 Check RSS to detect change of SITE asynchronously.
In order to use this function, `xml.el' is required.
(fn SITE HANDLER URL)
(defalias 'w3m-antenna-check-rss #[771 "\301\302!!p\303\304%\303\305#BBrq\210\306\307\310\307\211&)\262\311!\203> \203: \207\312!\207\311rB!\262)\211\262!\203[ \203W \207\312!\207!\207" [w3m-work-buffer-name w3m-get-buffer-create generate-new-buffer-name make-closure #[257 "\304\303!\203 \303q\210\305\211\211\203\300 \306\302!\210\3071 \310ed\"0\202\" \210\305\311\312\"\311\313\"\314\315\316P!\"@\314\315\317P!\"\320\314\315\321P!\"@8\262\322\314\315\323P!\"\314\315\323P!\"\314\324\"\314\324\"$\262\203\276 \325 \211A@\326\\\211\327Y\203\210 @T\327Z\3208E\266\202\202\221 @\3208E\266\202\330\262\211\203\274 \211@\331\3208!\262\332\"\203\265 \332\"\203\265 \211\262\nA\266\202\202\226 \266\266\203\317 \203\317 \333\300\305$\207\334\300\301\"\207" [V0 V1 V2 V3 buffer-name nil w3m-decode-buffer (error) xml-parse-region w3m-rss-get-namespace-prefix "http://purl.org/dc/elements/1.1/" "http://purl.org/rss/1.0/" w3m-rss-find-el intern "channel" "item" 2 "link" append "date" pubDate current-time 3600 65536 (0 0) w3m-rss-parse-date-string w3m-time-newer-p w3m-antenna-site-update w3m-antenna-check-page] 16 "\n\n(fn TYPE)"] #[257 "\302\300!\210\303\301!\203
\301q\210\207" [V0 V1 w3m-kill-buffer buffer-name] 3 "\n\n(fn TYPE)"] w3m-retrieve nil t w3m-process-p w3m-process-start-process] 15 (#$ . 7777)])
#@293 Check the another page to detect change of SITE asynchronously.
This function checks the another page specified by the URL before
checking the SITE itself. This function is useful when the SITE's
owner either maintains the page which describes the change of the
SITE.
(fn SITE HANDLER URL)
(defalias 'w3m-antenna-check-another-page #[771 "\301\302!!p\303\304$\303\305#BBrq\210\211\306\211B\307 \310#\262\311!\203> \2038 \211\202X \312!\202X \311!\211\262!\203W \203Q \211\202X \312!\202X \211\262\262\262)\262\311!\203q \203m \207\312!\207\311rB!\262)\211\262!\203\216 \203\212 \207\312!\207!\207" [w3m-work-buffer-name w3m-get-buffer-create generate-new-buffer-name make-closure #[257 "\303\302!\203 \302q\210\211\203 \304\300\211@\305$\207\306\300\301\"\207" [V0 V1 V2 buffer-name w3m-antenna-site-update nil w3m-antenna-check-page] 6 "\n\n(fn TIME)"] #[257 "\302\300!\210\303\301!\203
\301q\210\207" [V0 V1 w3m-kill-buffer buffer-name] 3 "\n\n(fn TIME)"] #[257 "\3008\207" [4] 3 "\n\n(fn ATTRS)"] w3m-attributes t w3m-process-p w3m-process-start-process] 15 (#$ . 9305)])
#@209 Check the page linked from SITE asynchronously.
This function checks the page linked by an anchor that matches REGEXP
from the page that is specified by SITE's key attribute.
(fn SITE HANDLER REGEXP NUMBER)
(defalias 'w3m-antenna-check-anchor #[1028 "\211C\211\242\204 \211\301\240\210\302\303!!p\304\305&\304\306# BBrq\210\307\n@\310\211\211\211&)\262\311!\203M \203I \207\312!\207\311r\nB!\262)\211\262!\203j \203f \207\312!\207!\207" [w3m-work-buffer-name 0 w3m-get-buffer-create generate-new-buffer-name make-closure #[257 "\305\304!\203 \304q\210\306\300\301\205( \307\300@!\210eb\210\310\302\311\312#\205( \313\314\303\242!\300@\"#\207" [V0 V1 V2 V3 V4 buffer-name w3m-antenna-check-page w3m-decode-buffer re-search-forward nil t w3m-expand-url match-string] 8 "\n\n(fn TYPE)"] #[257 "\302\300!\210\303\301!\203
\301q\210\207" [V0 V1 w3m-kill-buffer buffer-name] 3 "\n\n(fn TYPE)"] w3m-retrieve nil w3m-process-p w3m-process-start-process] 17 (#$ . 10439)])
(autoload 'w3m-filter "w3m-filter")
#@275 Check SITE with the generic procedure.
It consists of 3 steps:
(1) Check the time when the SITE was last modified with HEAD request.
(2) Check the size of the SITE with HEAD request.
(3) Get the real content of the SITE, and check its size.
(fn SITE HANDLER &optional URL)
(defalias 'w3m-antenna-check-page #[770 "\211C\211\242\204 \211\3008\206 @\240\210\301\302$\211B\303\242\304#\262\305!\2032 \203. \207\306!\207\305!\211\262!\203F \203B \207\306!\207\207" [3 make-closure #[257 "\211\205\222 \3048\203 \305\300\302\242\3048\3068$\207\306\3008\307=?\205\222 \3068\203/ \305\300\302\242\310\3068$\207\311\312!!p\313\314\300\302$\313\315#\301BBrq\210\316\302\242\310\317\310\211&)\262\320!\203k \301\203e \211\202\216 \321!\202\216 \320r\301B!\262)\211\262!\203\213 \301\203\205 \211\202\216 \321!\202\216 !\262\266\204\207" [V0 V1 V2 w3m-work-buffer-name 4 w3m-antenna-site-update 2 time nil w3m-get-buffer-create generate-new-buffer-name make-closure #[257 "\304\302!\203 \302q\210\211\205( \305\301\242\306#\210\307 \210\203 \310\301\242!\210\311\300\301\242\306\312 $\207" [V0 V1 V2 w3m-use-filter buffer-name w3m-decode-buffer nil w3m-remove-comments w3m-filter w3m-antenna-site-update buffer-size] 6 "\n\n(fn TYPE)"] #[257 "\302\300!\210\303\301!\203
\301q\210\207" [V0 V1 w3m-kill-buffer buffer-name] 3 "\n\n(fn TYPE)"] w3m-retrieve t w3m-process-p w3m-process-start-process] 13 "\n\n(fn ATTR)"] w3m-attributes t w3m-process-p w3m-process-start-process] 10 (#$ . 11489)])
#@89 Update SITE's status information with specified TIME and SIZE.
(fn SITE URL TIME SIZE)
(defalias 'w3m-antenna-site-update #[1028 "\300\233\211\2055 \2033 \3018\2033 \3018\230\2033 \3028\2033 \3028U\2033 \3008\2065 \303 \240\266\301\233\211\240\266\304\233\211\240\266\302\233\211\240\266\207" [6 3 5 current-time 4] 9 (#$ . 13029)])
#@296 Check SITE asynchronously.
If a class attribute of the SITE is a list that consists of a function
to check SITE and its options, call it. When a class attribute of the
SITE is equal to the symbol `hns', call `w3m-antenna-check-hns'.
Otherwise, call `w3m-antenna-check-page'.
(fn SITE HANDLER)
(defalias 'w3m-antenna-check-site #[514 "\3008<\203 \301\3008@!\203 \302\3008@\3008A$\207\3008\303=\203+ \304\"\207\305\306@\307 \"#\207" [2 functionp apply hns w3m-antenna-check-hns w3m-antenna-check-page format-time-string current-time] 8 (#$ . 13396)])
#@124 Apply FUNCTION to each element of SEQUENCE asynchronously, and make
a list of the results.
(fn FUNCTION SEQUENCE HANDLER)
(defalias 'w3m-antenna-mapcar #[771 "\300\301\302!\301\303!\304G\305\"L\210\211pL\210\211\203D \211@JT\211\262 \306\307\310\n\f\311BBB\312EF\nB\"I\210A\266\202\202 \210\312JJ\"\207" [-1 make-symbol "table" "buffer" make-vector nil lambda (x) aset (x) w3m-antenna-mapcar-after] 18 (#$ . 13969)])
#@242 Handler function of `w3m-antenna-mapcar'.
If all asynchronous processes have finished, return a list of the
results for the further handler functions. Otherwise, return an
asynchronous process that has not finished yet.
(fn RESULT BUFFER)
(defalias 'w3m-antenna-mapcar-after #[514 "\3002% \301\211T\211\262GW\205\" \302H!\203 \303\300H\"\210\202 \2620\206/ \211q\210\304\305\"\207" [found-proces -1 w3m-process-p throw append nil] 7 (#$ . 14414)])
#@75 Check all sites specified in `w3m-antenna-sites'.
(fn &optional HANDLER)
(defalias 'w3m-antenna-check-all-sites #[256 "\204 \300 \211\204\213 \305\306\307\310!\211\311M\210\211C\312!\262\262\313!\203\210 \3141H \306\211\315\305\"\210\316A\317H\f\"?\205B \320\304C\"*0\210\202N \320\"\266\321A\317H\322\305#\210\3232\203 A\324H\211\203{ \211@\317H>\203t \325\323\324H\"\210A\266\202\202_ \210\320\326\327B\"0\262\202 )\207\330\211B\331\332#\262\313!\203\245 \203\241 \207\315!\207\313!\211\262!\203\271 \203\265 \207\315!\207\207" [w3m-antenna-alist w3m-process-waited inhibit-quit w3m-process-inhibit-quit w3m-process-timeout t nil make-symbol "wait-function" identity w3m-antenna-check-all-sites w3m-process-p (quit) w3m-process-start-process w3m-process-wait-process 2 w3m-process-error-handler w3m-process-sentinel "finished\n" result 3 throw error "Can't find wait handler" #[257 "\302 \"\210\303\207" [w3m-antenna-alist w3m-antenna-file w3m-save-list nil] 5 "\n\n(fn --TEMPVAR--115)"] w3m-antenna-mapcar w3m-antenna-check-site] 10 (#$ . 14880)])
#@13
(fn SITE)
(defalias 'w3m-antenna-make-summary #[257 "\300\301\3028\206\n @A@\3038\203 \304\3038!\202' \3058\203&