;ELC   
;;; Compiled
;;; in Emacs version 29.4
;;; with all optimizations.



(byte-code "\302\303!\210\302\304!\210\302\305!\210\302\306!\210\302\307!\210\302\310!\210\302\311!\210\302\312!\210\313\236\2033 \313\236A\314\315\316\"\240\210\202> \313\314\315\316\"\316\211FB\313	\236\204J \313\317D	B\316\207" [nnoo-definition-alist nnoo-state-alist require nnoo message gnus-util gnus nnmail mm-util mm-url url nnweb mapcar list nil "*internal-non-initialized-backend*"] 4)#@106 Where nnweb will save its files.

This is a Gnus server variable.  See Info node `(gnus)Select Methods'.
(defvar nnweb-directory (nnheader-concat gnus-directory "nnweb/") (#$ . 485))
(nnoo-define 'nnweb-directory nil)#@167 What search engine type is being used.
Valid types include `google', `dejanews', and `gmane'.

This is a Gnus server variable.  See Info node `(gnus)Select Methods'.
(defvar nnweb-type 'google (#$ . 709))
(nnoo-define 'nnweb-type nil)#@24 Type-definition alist.
(defvar nnweb-type-definition '((google (id . "http://www.google.com/groups?as_umsgid=%s&hl=en&dmode=source") (result . "http://groups.google.com/group/%s/msg/%s?dmode=source") (article . nnweb-google-wash-article) (reference . identity) (map . nnweb-google-create-mapping) (search . nnweb-google-search) (address . "http://groups.google.com/groups") (base . "http://groups.google.com") (identifier . nnweb-google-identity)) (dejanews (id . "http://www.google.com/groups?as_umsgid=%s&hl=en&dmode=source") (result . "http://groups.google.com/group/%s/msg/%s?dmode=source") (article . nnweb-google-wash-article) (reference . identity) (map . nnweb-google-create-mapping) (search . nnweb-google-search) (address . "http://groups.google.com/groups") (base . "http://groups.google.com") (identifier . nnweb-google-identity)) (gmane (article . nnweb-gmane-wash-article) (id . "http://gmane.org/view.php?group=%s") (reference . identity) (map . nnweb-gmane-create-mapping) (search . nnweb-gmane-search) (address . "http://search.gmane.org/nov.php") (identifier . nnweb-gmane-identity))) (#$ . 949))#@106 Search string to feed to Google.

This is a Gnus server variable.  See Info node `(gnus)Select Methods'.
(defvar nnweb-search nil (#$ . 2070))
(nnoo-define 'nnweb-search nil)#@108 Maximum number of hits to display.

This is a Gnus server variable.  See Info node `(gnus)Select Methods'.
(defvar nnweb-max-hits 999 (#$ . 2251))
(nnoo-define 'nnweb-max-hits nil)#@113 Whether this nnweb server is ephemeral.

This is a Gnus server variable.  See Info node `(gnus)Select Methods'.
(defvar nnweb-ephemeral-p nil (#$ . 2438))
(nnoo-define 'nnweb-ephemeral-p nil)
(defvar nnweb-articles nil)
(nnoo-define 'nnweb-articles nil)
(defvar nnweb-buffer nil)
(nnoo-define 'nnweb-buffer nil)
(defvar nnweb-group-alist nil)
(nnoo-define 'nnweb-group-alist nil)
(defvar nnweb-group nil)
(nnoo-define 'nnweb-group nil)
(defvar nnweb-hashtb nil)
(byte-code "\300\301\302\"\210\303\304\305\"\210\306\304!\210\303\307\310\"\210\306\307!\210\303\311\312\"\210\306\311!\210\303\313\314\"\210\306\313!\207" [nnoo-define nnweb-hashtb nil defalias nnweb-server-opened #[256 "\300\301\"\207" [nnoo-server-opened nnweb] 4 "\n\n(fn &optional SERVER)"] nnoo-register-function nnweb-status-message #[256 "\300\301\"\207" [nnoo-status-message nnweb] 4 "\n\n(fn &optional SERVER)"] nnweb-close-server #[512 "\300\301\"\207" [nnoo-close-server nnweb] 5 "\n\n(fn &optional SERVER DEFS)"] nnweb-open-server #[513 "\300\301#\207" [nnoo-change-server nnweb] 6 "\n\n(fn SERVER &optional DEFS)"]] 3)#@50 

(fn ARTICLES &optional GROUP SERVER FETCH-OLD)
(defalias 'nnweb-retrieve-headers #[1025 "\302\"\210rq\210\303 \210\304\211\211A\262\242\211\262\203, 	\236A@\211\262\203 \305!\210\202 \266)\306\207" [nntp-server-buffer nnweb-articles nnweb-possibly-change-server erase-buffer nil nnheader-insert-nov nov] 8 (#$ . 3543)])
(nnoo-register-function 'nnweb-retrieve-headers)#@31 

(fn &optional GROUP SERVER)
(defalias 'nnweb-request-scan #[512 "\303\"\210\203 \304\305\306\206 \307\310\311$\262\202\" \n\204\" \312!\210\313\314! \210?\2052 \315 \210\316!\207" [nnweb-ephemeral-p nnweb-hashtb nnweb-articles nnweb-possibly-change-server 4000 make-hash-table :size 300 :test equal nnweb-read-overview nnweb-definition map nnweb-write-active nnweb-write-overview] 8 (#$ . 3931)])
(nnoo-register-function 'nnweb-request-scan)#@47 

(fn GROUP &optional SERVER DONT-CHECK INFO)
(defalias 'nnweb-request-group #[1025 "\303\"\210\204 \204 	\204 \304!\210	\204 \305\306\307\"\207\203. 	@@\310	!@@B\2024 \311\n\"A@\305\306\312#\210\313\314	G@A	%\207" [nnweb-ephemeral-p nnweb-articles nnweb-group-alist nnweb-possibly-change-server nnweb-read-overview nnheader-report nnweb "No matching articles" last assoc "Opened group %s" nnheader-insert "211 %d %d %d %s\n"] 11 (#$ . 4391)])
(nnoo-register-function 'nnweb-request-group)#@31 

(fn GROUP &optional SERVER)
(defalias 'nnweb-close-group #[513 "\301\"\210\211\205 \302\303!\211\262!\205 \211\262\203( rq\210\304\305!\210\306!)\210\307\207" [nnweb-buffer nnweb-possibly-change-server buffer-live-p get-buffer set-buffer-modified-p nil kill-buffer t] 6 (#$ . 4902)])
(nnoo-register-function 'nnweb-close-group)#@46 

(fn ARTICLE &optional GROUP SERVER BUFFER)
(defalias 'nnweb-request-article #[1025 "\303\"\210r\211\206 q\210	\236A@\211\205 \211\304H\211\203# \305!\204h ;\205\202 \306\307\310\"\205\202 \306\307!\311\312\"\205? \313\314\"\205c \211\205c \315\316!\"\262\305!\210\306\317\310\"\205c \306\317!!\211\262	\266\202\205\202 \n\204q \306\320! \210\321\322\323#\210\247\205\201 B\266\202)\207" [nntp-server-buffer nnweb-articles nnheader-callback-function nnweb-possibly-change-server 8 mm-url-insert nnweb-definition id t string-match "^<\\(.*\\)>$" match-string 1 format mm-url-form-encode-xwfu reference article nnheader-report nnweb "Fetched article %s"] 12 (#$ . 5247)])
(nnoo-register-function 'nnweb-request-article)#@30 

(fn &optional SERVER DEFS)
(defalias 'nnweb-close-server #[512 "\301!\203) \211\205 \302\303!\211\262!\205 \211\262\203) rq\210\304\305!\210\306!)\210\307\310\"\207" [nnweb-buffer nnweb-server-opened buffer-live-p get-buffer set-buffer-modified-p nil kill-buffer nnoo-close-server nnweb] 6 (#$ . 5997)])
(nnoo-register-function 'nnweb-close-server)#@25 

(fn &optional SERVER)
(defalias 'nnweb-request-list #[256 "\302\303\"\210rq\210\304\305	\"C!)\210\306\207" [nntp-server-buffer nnweb-group-alist nnweb-possibly-change-server nil nnmail-generate-active assoc t] 5 (#$ . 6363)])
(nnoo-register-function 'nnweb-request-list)#@36 

(fn GROUP INFO &optional SERVER)
(defalias 'nnweb-request-update-info #[770 "\300\207" [nil] 4 (#$ . 6644)])
(nnoo-register-function 'nnweb-request-update-info)
(defalias 'nnweb-asynchronous-p #[0 "\300\207" [nil] 1])
(nnoo-register-function 'nnweb-asynchronous-p)#@36 

(fn GROUP &optional SERVER ARGS)
(defalias 'nnweb-request-create-group #[769 "\301\302\"\210\303!\210\304\305BDB\306 \210\307\207" [nnweb-group-alist nnweb-possibly-change-server nil nnweb-request-delete-group 1 0 nnweb-write-active t] 6 (#$ . 6916)])
(nnoo-register-function 'nnweb-request-create-group)#@37 

(fn GROUP &optional FORCE SERVER)
(defalias 'nnweb-request-delete-group #[769 "\301\"\210\302\303\"\"\304 \210\305\306!!\210\307\207" [nnweb-group-alist nnweb-possibly-change-server delq assoc nnweb-write-active gnus-delete-file nnweb-overview-file t] 7 (#$ . 7233)])
(byte-code "\300\301!\210\302\303!\207" [nnoo-register-function nnweb-request-delete-group nnoo-define-skeleton-1 nnweb] 2)#@59 Read the overview of GROUP and build the map.

(fn GROUP)
(defalias 'nnweb-read-overview #[257 "\301\302!!\2054 \303\302!!\210eb\210\304m?\2052 \305 \262\306y\210\211\307H\211\310HEB\311@\"\210\202 \262\207" [nnweb-articles file-exists-p nnweb-overview-file nnheader-insert-file-contents nil nnheader-parse-nov 1 0 8 nnweb-set-hashtb] 6 (#$ . 7639)])#@48 Write the overview file for GROUP.

(fn GROUP)
(defalias 'nnweb-write-overview #[257 "\301!\302\303\304\"\305\306\"\216r\211q\210\211\205# \307\211A\262\242A@!\210\202 )\262rq\210\310\311\211\311\312%*\210\207" [nnweb-articles nnweb-overview-file generate-new-buffer " *temp file*" t make-closure #[0 "\301\300!\205	 \302\300!\207" [V0 buffer-name kill-buffer] 2] nnheader-insert-nov write-region nil 0] 10 (#$ . 8005)])#@20 

(fn HEADER DATA)
(defalias 'nnweb-set-hashtb #[514 "\301\302\303H!#\207" [nnweb-hashtb puthash nnweb-identifier 8] 6 (#$ . 8440)])#@12 

(fn URL)
(defalias 'nnweb-get-hashtb #[257 "\301\302!\"\207" [nnweb-hashtb gethash nnweb-identifier] 4 (#$ . 8581)])#@14 

(fn IDENT)
(defalias 'nnweb-identifier #[257 "\300\301!!\207" [nnweb-definition identifier] 3 (#$ . 8707)])#@60 Return the name of the overview file of GROUP.

(fn GROUP)
(defalias 'nnweb-overview-file #[257 "\301\302#\207" [nnweb-directory nnheader-concat ".overview"] 5 (#$ . 8823)])#@23 Save the active file.
(defalias 'nnweb-write-active #[0 "\302!\210\303\304\"\305\306\307\"\310\311\"\216r\211q\210\312\313\301\314	DEp\")rq\210\315\316\211\316\317%*\210\207" [nnweb-directory nnweb-group-alist gnus-make-directory nnheader-concat "active" generate-new-buffer " *temp file*" t make-closure #[0 "\301\300!\205	 \302\300!\207" [V0 buffer-name kill-buffer] 2] prin1 setq quote write-region nil 0] 9 (#$ . 9004)])#@23 Read the active file.
(defalias 'nnweb-read-active #[0 "\301\302\303\"\304\211\211$\207" [nnweb-directory load nnheader-concat "active" t] 5 (#$ . 9439)])#@61 Return the definition of TYPE.

(fn TYPE &optional NOERROR)
(defalias 'nnweb-definition #[513 "	\236\236A\211\204 \204 \302\303\"\210\207" [nnweb-type nnweb-type-definition error "Undefined definition %s"] 6 (#$ . 9600)])#@31 

(fn &optional GROUP SERVER)
(defalias 'nnweb-possibly-change-server #[512 "\211\203 \303!\204 \304!\210\305!\210\204 \306 \210	\204$ \307\310\311\312\313$\205+ \211\207" [nnweb-group-alist nnweb-hashtb nnweb-group nnweb-server-opened nnweb-open-server nnweb-init nnweb-read-active make-hash-table :size 4000 :test equal] 7 (#$ . 9833)])#@43 Initialize buffers and such.

(fn SERVER)
(defalias 'nnweb-init #[257 "\211\205 \303\304!\211\262!\205 \211\262?\205( r\305\306\307	\n$!\210\310 \210p)\211\207" [nnweb-buffer nnweb-type nnweb-search buffer-live-p get-buffer nnheader-set-temp-buffer format " *nnweb %s %s %s*" mm-disable-multibyte] 7 (#$ . 10188)])
(defalias 'nnweb-google-wash-article #[0 "\301eb\210\212\302\303\304\301#\206 \302\305\304\301#\205 \302\306\304\301#?)\203* \307\310\311\"\210\312 \202> e\302\305!|\210eb\210\302\306!\210\313\224d|\210\314 )\207" [case-fold-search t re-search-forward "The requested message.*could not be found." nil "<pre>[\n ]*" "[\n ]*</pre>" gnus-message 3 "Requested article not found" erase-buffer 0 mm-url-decode-entities] 4])#@67 Parse search result in current buffer.

(fn &optional MESSAGE-ID)
(defalias 'nnweb-google-parse-1 #[256 "\303\304\305	\"A@\306\211\211\211\211\211\211\204\" \307\303B\211\262\nD	Beb\210\310\311\306\304#\203\345 \312\307!\262\312\313!\262\314\315\316!#\262\317\320\306\304#\317\321\306\304#}\210\322 \210\323 \210\324 \262db\210~\210`\317\325\306\304#}\210\322 \210\323 \210db\210\326\327\306\304#\203\231 \330\307!\203\220 \314\331\330\307!\330\313!\330\332!\206\214 \333\334!$\202\222 \335 \262\330\336!\262~\210	T\262\n\337!\204% \211AT\241\340	A\203\277 \341\342\fR\202\301 	\n\206\314 \306\303\211\306&\nDB\262\343@A@@\"\210\202% )\207" [nnweb-group nnweb-group-alist case-fold-search 0 t assoc nil 1 re-search-forward "a +href=\"/group/\\([^>\"]+\\)/browse_thread/[^>]+#\\([0-9a-f]+\\)" match-string-no-properties 2 format nnweb-definition result search-forward ">" "</a>" mm-url-remove-markup mm-url-decode-entities buffer-string "</table" re-search-backward "^\\(?:\\(\\w+\\) \\([0-9]+\\)\\|\\S-+\\)\\(?: \\([0-9]\\{4\\}\\)\\)? by ?\\(.*\\)" match-string "%s %s 00:00:00 %s" 3 format-time-string "%Y" current-time-string 4 nnweb-get-hashtb vector "(" ") " nnweb-set-hashtb] 23 (#$ . 10939)])#@11 

(fn ID)
(defalias 'nnweb-google-reference #[257 "\301!\302\244@A@\211\262\205 \303\304H!\210@@\207" [nnweb-articles nnweb-google-parse-1 nil mm-url-insert 8] 6 (#$ . 12185)])#@54 Perform the search and create a number-to-url alist.
(defalias 'nnweb-google-create-mapping #[0 "rq\210\304 \210\305\306\307\"\210\310\311!	!\205e \312\313\203X \n\314 \244eb\210\211\315\\\262\316\317\320\312#\2035 \211Y\203; \320\262\202 \310\321!\322\323!P\262\203 \304 \210\305\306\324#\210\325!\210\202 \305\306\326\"\210\327\n\330\"\211\266\202)\207" [nnweb-buffer nnweb-search nnweb-articles nnweb-max-hits erase-buffer nnheader-message 7 "Searching google..." nnweb-definition search t 0 nnweb-google-parse-1 100 re-search-forward "<a [^>]+href=\"\n?\\([^>\" \n	]+\\)[^<]*<img[^>]+src=[^>]+next" nil base match-string 1 "Searching google...(%d)" mm-url-insert "Searching google...done" sort car-less-than-car] 6 (#$ . 12376)])#@15 

(fn SEARCH)
(defalias 'nnweb-google-search #[257 "\301\302\303!\304\305\306B\307\310\311^!B\312BB!Q!\210\313\207" [nnweb-max-hits mm-url-insert nnweb-definition address "?" mm-url-encode-www-form-urlencoded "q" "num" number-to-string 100 (("hq" . #1="") ("hl" . "en") ("lr" . #1#) ("safe" . "off") ("sites" . "groups") ("filter" . "0")) t] 10 (#$ . 13129)])#@52 Return a unique identifier based on URL.

(fn URL)
(defalias 'nnweb-google-identity #[257 "\300\301\"\203\f \302\303\"\207\207" [string-match "selm=\\([^ &>]+\\)" match-string 1] 4 (#$ . 13496)])#@54 Perform the search and create a number-to-url alist.
(defalias 'nnweb-gmane-create-mapping #[0 "rq\210\306\307	\n\"A@\206 \310\311B\312\313 \210\314\315\316\"\210\317\320!\f!\203\240 eb\210\310y\210m\204\240 l\204\232 \321\322!\204\232 \323 \211\324H\325H\310H\326\327\330\"\203] \324\331\332\333\310\"\333\325	\"#I\210\327\334\"\203k \325\335PI\210\310\336!I\210\337\324H!\204\227 \311\211AT\241I\210\311HDB\262\340@A@@\"\210)\266\310y\210\202* \314\315\341\"\210\342$\244\343\"\211$)\266\203)\207" [nnweb-buffer nnweb-group nnweb-group-alist case-fold-search nnweb-search rfc2047-encoding-type t assoc 1 0 nil erase-buffer nnheader-message 7 "Searching Gmane..." nnweb-definition search looking-at "" nnheader-parse-nov 8 2 mime string-match " \\([^:]+\\)[:/]\\([0-9]+\\)" format "http://article.gmane.org/%s/%s/raw" match-string "@$" "public.gmane.org" rfc2047-encode-string nnweb-get-hashtb nnweb-set-hashtb "Searching Gmane...done" sort car-less-than-car nnweb-articles] 15 (#$ . 13699)])
(defalias 'nnweb-gmane-wash-article #[0 "\301eb\210\302\303\304\301#\205' e`|\210eb\210\305\306!\203% \307\310\301\"\210\311y\210\202 \312 )\207" [case-fold-search t search-forward "<!--X-Head-of-Message-->" nil looking-at "^<li><em>\\([^ ]+\\)</em>.*</li>" replace-match "\\1\\2" 1 mm-url-remove-markup] 4])#@15 

(fn SEARCH)
(defalias 'nnweb-gmane-search #[257 "\302\303\304!\305\306\307B\310\311!BD!Q!\210\312\313\314!\210\315ed\316#\210\314\207" [nnweb-max-hits buffer-file-name mm-url-insert nnweb-definition address "?" mm-url-encode-www-form-urlencoded "query" "HITSPERPAGE" number-to-string nil set-buffer-multibyte t decode-coding-region utf-8] 9 (#$ . 15042)])#@52 Return a unique identifier based on URL.

(fn URL)
(defalias 'nnweb-gmane-identity #[257 "\300\301\"\203\f \302\303\"\207\207" [string-match "group=\\(.+\\)" match-string 1] 4 (#$ . 15408)])#@51 Insert HTML based on a w3 parse tree.

(fn PARSE)
(defalias 'nnweb-insert-html #[257 "\211;\203 \211c\207\300\301@!\302\261\210\303\304A@\302#c\210\305c\210\306\307\3108\"\210\311\301@!\305\261\207" ["<" symbol-name " " mapconcat #[257 "\300@!\301\302A:\203 A@\202 A!Q\207" [symbol-name "=" prin1-to-string] 5 "\n\n(fn PARAM)"] ">\n" mapc nnweb-insert-html 2 "</"] 5 (#$ . 15606)])#@72 Find the element of TYPE in PARSE.

(fn TYPE PARSE &optional MAXDEPTH)
(defalias 'nnweb-parse-find #[770 "\3002\n \301#0\207" [found nnweb-parse-find-1] 7 (#$ . 16006)])#@31 

(fn TYPE CONTENTS MAXDEPTH)
(defalias 'nnweb-parse-find-1 #[771 "\211\203 \211\300U?\205B :\205B @=\203 \301\302\"\210A<\205B \211\205@ \211@\211:\2039 \303\2057 S#\210A\266\202\202# \262\207" [0 throw found nnweb-parse-find-1] 9 (#$ . 16184)])#@54 Find all elements of TYPE in PARSE.

(fn TYPE PARSE)
(defalias 'nnweb-parse-find-all #[514 "\3002	 \301\"0\207" [found nnweb-parse-find-all-1] 5 (#$ . 16450)])#@22 

(fn TYPE CONTENTS)
(defalias 'nnweb-parse-find-all-1 #[514 "\300:\2033 @=\203 C\207A<\2033 \211\2032 \211@\211:\203+ \301\"\244\262A\266\202\202 \210\207" [nil nnweb-parse-find-all-1] 9 (#$ . 16617)])#@54 Return a list of text contents in PARSE.

(fn PARSE)
(defalias 'nnweb-text #[257 "\301\302!\210\237)\207" [nnweb-text nil nnweb-text-1] 3 (#$ . 16839)])#@17 

(fn CONTENTS)
(defalias 'nnweb-text-1 #[257 "\211\211\205) \211@\211;\203 \211B\202\" \211:\203\" \211A<\203\" \301!\210A\266\202\202 \207" [nnweb-text nnweb-text-1] 5 (#$ . 17000)])
(provide 'nnweb)
