;ELC   
;;; Compiled by buildd@akateko.buildd on Fri Oct 25 13:51:18 2013
;;; from file /build/buildd/emacs23-23.4+1/debian/build-x/lisp/gnus/nnweb.el
;;; in Emacs version 23.4.1
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.

;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(byte-code "\302\303!\210\302\304!\210\302\305!\210\302\306!\210\302\307!\210\302\310!\210\302\311!\210\312\313\314\217\210\315\316\317\"\210\320\236\2039 \320\236A\321\322\312\"\240\210\202D \320\321\322\312\"\312\211FB\320	\236\204P \320\323D	B\312\207" [nnoo-definition-alist nnoo-state-alist require nnoo message gnus-util gnus nnmail mm-util mm-url nil (byte-code "\300\301!\207" [require url] 2) ((error)) autoload w3-parse-buffer "w3-parse" nnweb mapcar list "*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/") (#$ . 1053))
(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 (#$ . 1279))
(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))) (#$ . 1521))
#@106 Search string to feed to Google.

This is a Gnus server variable.  See Info node `(gnus)Select Methods'.
(defvar nnweb-search nil (#$ . 2644))
(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 (#$ . 2826))
(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 (#$ . 3014))
(byte-code "\301\302\303\"\210\304B\305\304!\204 \306\304\303\"\210\301\304\303\"\210\307B\305\307!\204( \306\307\303\"\210\301\307\303\"\210\310B\305\310!\204< \306\310\303\"\210\301\310\303\"\210\311B\305\311!\204P \306\311\303\"\210\301\311\303\"\210\312B\305\312!\204d \306\312\303\"\210\301\312\303\"\210\313\314!\207" [current-load-list nnoo-define nnweb-ephemeral-p nil nnweb-articles default-boundp set-default nnweb-buffer nnweb-group-alist nnweb-group nnweb-hashtb nnoo-define-basics-1 nnweb] 3)
(defalias 'nnweb-retrieve-headers #[(articles &optional group server fetch-old) "\306	\"\210\212\nq\210\307 \210\310\211\203S p\311\216\312\313!\314\216\315\313\310\"\210\316\310!\210\211A@\211\203O \f\236\211A@)\211\203- \317!\210\202- -\202\202 \312\313!\320\216\315\313\310\"\210\211A@\211\203\201 \f\236\211A@)\211\203_ \317!\210\202_ *+\321\207" [group server nntp-server-buffer header article mm-emacs-mule nnweb-possibly-change-server erase-buffer nil ((byte-code "q\210\302	!\207" [#1=#:buffer #2=#:multibyte set-buffer-multibyte] 2)) default-value enable-multibyte-characters ((byte-code "\301\302\"\207" [#3=#:--cl-letf-save-- set-default enable-multibyte-characters] 3)) set-default set-buffer-multibyte nnheader-insert-nov ((byte-code "\301\302\"\207" [#4=#:--cl-letf-save-- set-default enable-multibyte-characters] 3)) nov #1# #2# #3# articles nnweb-articles x #4#] 4])
(nnoo-register-function 'nnweb-retrieve-headers)
(defalias 'nnweb-request-scan #[(&optional group server) "\305	\"\210\n\203 \306\307!\202 \f\204 \310!\210\311\312! \210\n?\205( \313 \210\314!\207" [group server nnweb-ephemeral-p nnweb-hashtb nnweb-articles nnweb-possibly-change-server gnus-make-hashtable 4095 nnweb-read-overview nnweb-definition map nnweb-write-active nnweb-write-overview] 3])
(nnoo-register-function 'nnweb-request-scan)
(defalias 'nnweb-request-group #[(group &optional server dont-check) "\306	\"\210\n\204 \204 \f\204 \307!\210\f\204 \310\311\312\"\207\n\2034 \f\211@@)\313\f!\211@@)B\202> \314\"\211A@)\310\311\315#\210\316\317\fG@A%)\207" [group server nnweb-ephemeral-p dont-check nnweb-articles x 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" nnweb-group-alist active] 7])
(nnoo-register-function 'nnweb-request-group)
(defalias 'nnweb-close-group #[(group &optional server) "\303	\"\210\304\n!\203 \212\nq\210\305\306!\210\307\n!\210)\310\207" [group server nnweb-buffer nnweb-possibly-change-server gnus-buffer-live-p set-buffer-modified-p nil kill-buffer t] 3])
(nnoo-register-function 'nnweb-close-group)
(defalias 'nnweb-request-article #[(article &optional group server buffer) "\306	\"\210\212\n\206 q\210\f\236\211!A@)\211\"\205  \"\307H\211#\203` $\203L \np%&\310\216\311\312!'\313\216\314\312\315\"\210\316\315!\210\317#!-\202] \311\312!(\320\216\314\312\315\"\210\317#!*\204\343 \f;\205\373 \321\322\323\"\205\373 \321\322!\315\211)*+\324\325\f\"\203\204 \326\327\f\"*+\205\337 *\205\337 \330+\331*!\"#$\203\277 \np,-\332\216\311\312!.\333\216\314\312\315\"\210\316\315!\210\317#!\210-\202\321 \311\312!/\334\216\314\312\315\"\210\317#!\210*\321\335\323\"\205\337 \321\335!\f!\211+\205\373 0\204\355 \321\304! \210\336\337\340\f#\210\f\247\205\372 \fB+\207" [group server buffer nntp-server-buffer article nnweb-articles nnweb-possibly-change-server 8 ((byte-code "q\210\302	!\207" [#1=#:buffer #2=#:multibyte set-buffer-multibyte] 2)) default-value enable-multibyte-characters ((byte-code "\301\302\"\207" [#3=#:--cl-letf-save-- set-default enable-multibyte-characters] 3)) set-default nil set-buffer-multibyte mm-url-insert ((byte-code "\301\302\"\207" [#4=#:--cl-letf-save-- set-default enable-multibyte-characters] 3)) nnweb-definition id t string-match "^<\\(.*\\)>$" match-string 1 format mm-url-form-encode-xwfu ((byte-code "q\210\302	!\207" [#5=#:buffer #6=#:multibyte set-buffer-multibyte] 2)) ((byte-code "\301\302\"\207" [#7=#:--cl-letf-save-- set-default enable-multibyte-characters] 3)) ((byte-code "\301\302\"\207" [#8=#:--cl-letf-save-- set-default enable-multibyte-characters] 3)) reference nnheader-report nnweb "Fetched article %s" x header url mm-emacs-mule #1# #2# #3# #4# active art fetch #5# #6# #7# #8# nnheader-callback-function] 5])
(nnoo-register-function 'nnweb-request-article)
(defalias 'nnweb-close-server #[(&optional server) "\302!\203 \303	!\203 \212	q\210\304\305!\210\306	!\210)\307\310\"\207" [server nnweb-buffer nnweb-server-opened gnus-buffer-live-p set-buffer-modified-p nil kill-buffer nnoo-close-server nnweb] 3])
(nnoo-register-function 'nnweb-close-server)
(defalias 'nnweb-request-list #[(&optional server) "\303\304\"\210\212	q\210\305\306\n\"C!\210)\307\207" [server nntp-server-buffer nnweb-group-alist nnweb-possibly-change-server nil nnmail-generate-active assoc t] 4])
(nnoo-register-function 'nnweb-request-list)
(defalias 'nnweb-request-update-info #[(group info &optional server) "\302	\"\207" [group server nnweb-possibly-change-server] 3])
(nnoo-register-function 'nnweb-request-update-info)
(defalias 'nnweb-asynchronous-p #[nil "\300\207" [nil] 1])
(nnoo-register-function 'nnweb-asynchronous-p)
(defalias 'nnweb-request-create-group #[(group &optional server args) "\303\304\"\210\305	!\210	\306\307BD\nB\310 \210\311\207" [server group nnweb-group-alist nnweb-possibly-change-server nil nnweb-request-delete-group 1 0 nnweb-write-active t] 3])
(nnoo-register-function 'nnweb-request-create-group)
(defalias 'nnweb-request-delete-group #[(group &optional force server) "\303	\"\210\304\305\n\"\n\"\306 \210\307\310!!\210\311\207" [group server nnweb-group-alist nnweb-possibly-change-server delq assoc nnweb-write-active gnus-delete-file nnweb-overview-file t] 4])
(byte-code "\300\301!\210\302\303!\207" [nnoo-register-function nnweb-request-delete-group nnoo-define-skeleton-1 nnweb] 2)
#@47 Read the overview of GROUP and build the map.
(defalias 'nnweb-read-overview #[(group) "\304\305!!\205@ \306\307!r	q\210\310\216\311 \210\312\305!!\210eb\210\313m?\205? \314 \315y\210\n\316H\n\211\317HEB\320\n@\"\210\202  ,\207" [group #1=#:temp-buffer header nnweb-articles file-exists-p nnweb-overview-file generate-new-buffer " *temp*" ((byte-code "\301!\203\n \302!\210\301\207" [#1# buffer-name kill-buffer] 2)) mm-disable-multibyte nnheader-insert-file-contents nil nnheader-parse-nov 1 0 8 nnweb-set-hashtb] 4 (#$ . 9200)])
#@36 Write the overview file for GROUP.
(defalias 'nnweb-write-overview #[(group) "\306!\307\310\311!!\312\216r	q\210\f\205& \313\f\211A@\211A@)!\210\202 *r	q\210\314\315\211\n\315\316%\210,\207" [group #1=#:temp-buffer #2=#:temp-file nnweb-articles articles x nnweb-overview-file get-buffer-create generate-new-buffer-name " *temp file*" ((byte-code "\301!\203\n \302!\210\301\207" [#1# buffer-name kill-buffer] 2)) nnheader-insert-nov write-region nil 0] 8 (#$ . 9747)])
(defalias 'nnweb-set-hashtb #[(header data) "\303\304\305H!	\"\nL\207" [header nnweb-hashtb data intern nnweb-identifier 8] 4])
(defalias 'nnweb-get-hashtb #[(url) "\302\303!	\"J\207" [url nnweb-hashtb intern-soft nnweb-identifier] 3])
(defalias 'nnweb-identifier #[(ident) "\301\302!!\207" [ident nnweb-definition identifier] 2])
#@48 Return the name of the overview file of GROUP.
(defalias 'nnweb-overview-file #[(group) "\302	\303#\207" [nnweb-directory group nnheader-concat ".overview"] 4 (#$ . 10565)])
#@23 Save the active file.
(defalias 'nnweb-write-active #[nil "\304!\210\305\306\"\307\310\311!!\312\216r	q\210\313\314\303\315DEp\")r	q\210\316\317\211\n\317\320%\210,\207" [nnweb-directory #1=#:temp-buffer #2=#:temp-file nnweb-group-alist gnus-make-directory nnheader-concat "active" get-buffer-create generate-new-buffer-name " *temp file*" ((byte-code "\301!\203\n \302!\210\301\207" [#1# buffer-name kill-buffer] 2)) prin1 setq quote write-region nil 0] 7 (#$ . 10746)])
#@23 Read the active file.
(defalias 'nnweb-read-active #[nil "\301\302\303\"\304\211\211$\207" [nnweb-directory load nnheader-concat "active" t] 5 (#$ . 11231)])
#@32 Return the definition of TYPE.
(defalias 'nnweb-definition #[(type &optional noerror) "	\n\236\236A\211\204 \f\204 \305\306\"\210)\207" [type nnweb-type nnweb-type-definition def noerror error "Undefined definition %s"] 4 (#$ . 11396)])
(defalias 'nnweb-possibly-change-server #[(&optional group server) "\203 \305!\204 \306!\210\307!\210	\204 \310 \210\n\204! \311\312!\205( \211\207" [server nnweb-group-alist nnweb-hashtb group nnweb-group nnweb-server-opened nnweb-open-server nnweb-init nnweb-read-active gnus-make-hashtable 4095] 2])
#@30 Initialize buffers and such.
(defalias 'nnweb-init #[(server) "\304!?\205 r\305\306\307	\n$!\210\310 \210p)\211\207" [nnweb-buffer nnweb-type nnweb-search server gnus-buffer-live-p nnheader-set-temp-buffer format " *nnweb %s %s %s*" mm-disable-multibyte] 6 (#$ . 11959)])
(defalias 'nnweb-google-wash-article #[nil "\303\304\305eb\210\212\306\307\310\303#\206  \306	\310\303#\205 \306\310\303#?)\203. \311\312\313\"\210\314 \202B e\306	!|\210eb\210\306!\210\315\224d|\210\316 +\207" [end-re start-re case-fold-search t "<pre>[\n ]*" "[\n ]*</pre>" re-search-forward "The requested message.*could not be found." nil gnus-message 3 "Requested article not found" erase-buffer 0 mm-url-decode-entities] 4])
#@40 Parse search result in current buffer.
(defalias 'nnweb-google-parse-1 #[(&optional Message-ID) "\306\307\310	\"\211A@)\311\211\211\211\211\211\211\211&'()*+,-+\2046 \312\306B\211+D	Beb\210\313\314\311\307#\203#\315\312!'\315\316!\317\320\321!'#\322\323\311\307#\322\324\311\307#}\210\325 \210\326 \210\327 *db\210~\210`\322\330\311\307#}\210\325 \210\326 \210db\210\331\332\311\307#\203\255 \333\312!\203\244 \317\334\333\312!\333\316!\333\335!\206\240 \336 \337\311O$\202\246 \336 (\333\340!&~\210-T-\341\f!\2049 +\211AT\241+A'\203\322 \342'\343*R\202\324 *&(.\206\336 \311\306\211\f\311/012345678\344876543210/&\n.\nDB\345\211@A)@@\"\210\2029 .\207" [nnweb-group nnweb-group-alist x mid url map 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 current-time-string -4 4 nnweb-get-hashtb "(" ") " vector nnweb-set-hashtb From Newsgroups Date Score Subject active case-fold-search i Message-ID extra xref lines chars references id date from subject number] 13 (#$ . 12680)])
(defalias 'nnweb-google-reference #[(id) "\306!\307\n\244\n\211@A)@\211\205V \203= \np\310\216\311\312!\313\216\314\312\307\"\210\315\307!\210\316	\317H!\210-\202P \311\312!\320\216\314\312\307\"\210\316	\317H!\210*\n\211@@)*\207" [id header map nnweb-articles x mm-emacs-mule nnweb-google-parse-1 nil ((byte-code "q\210\302	!\207" [#1=#:buffer #2=#:multibyte set-buffer-multibyte] 2)) default-value enable-multibyte-characters ((byte-code "\301\302\"\207" [#3=#:--cl-letf-save-- set-default enable-multibyte-characters] 3)) set-default set-buffer-multibyte mm-url-insert 8 ((byte-code "\301\302\"\207" [#4=#:--cl-letf-save-- set-default enable-multibyte-characters] 3)) #1# #2# #3# #4#] 4])
#@54 Perform the search and create a number-to-url alist.
(defalias 'nnweb-google-create-mapping #[nil "\212q\210\306 \210\307\310\311\"\210\312\313!	!\205d \314\315\203X \f\316 \244eb\210\n\317\\\320\321\322\314#\2036 \nY\203< \322\211\202 \312\323!\324\325!P\211\203 \306 \210\307\310\326\n#\210\327!\210\202 \307\310\330\"\210\331\f\332\"\211*)\207" [nnweb-buffer nnweb-search i more 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] 5 (#$ . 14785)])
(defalias 'nnweb-google-search #[(search) "\302\303\304!\305\306\307B\310\311\312	^!B\313BB!Q!\210\314\207" [search 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] 9])
#@43 Return an unique identifier based on URL.
(defalias 'nnweb-google-identity #[(url) "\301\302\"\203\f \303\304\"\207\207" [url string-match "selm=\\([^ &>]+\\)" match-string 1] 3 (#$ . 15884)])
#@54 Perform the search and create a number-to-url alist.
(defalias 'nnweb-gmane-create-mapping #[nil "\212q\210\306\307	\n\"\211A@)\206 \310\311B\312$\313 \210\314\315\316\"\210\317\320!%!\203\272 eb\210\310y\210m\204\272 l\204\264 \321\322!\204\264 \323 \211&\324H&\325H&\310H\326'()*\327\330*\"\203p &\324\331\332\333\310*\"\333\325*\"#I\210\327\334)\"\203\201 &\325)\335PI\210&\310\336(!I\210\337&\324H!\204\263 &\311\211AT\241I\210&\311H&D\fB\340\f\211@A)@\f@\"\210-\310y\210\2020 \314\315\341\"\210\342+\f\244\343\"\211+,\207" [nnweb-buffer nnweb-group nnweb-group-alist x map active 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 case-fold-search nnweb-search header rfc2047-encoding-type subject from xref nnweb-articles] 9 (#$ . 16086)])
(defalias 'nnweb-gmane-wash-article #[nil "\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])
(defalias 'nnweb-gmane-search #[(search) "\303\304\305!\306\307\310B\311\312	!BD!Q!\210\313\314\315!\210\316ed\317#\210\315\207" [search 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 mm-decode-coding-region utf-8] 8])
#@42 Return a unique identifier based on URL.
(defalias 'nnweb-gmane-identity #[(url) "\301\302\"\203\f \303\304\"\207\207" [url string-match "group=\\(.+\\)" match-string 1] 3 (#$ . 17846)])
#@39 Insert HTML based on a w3 parse tree.
(defalias 'nnweb-insert-html #[(parse) ";\203 c\207\301\302@!\303\261\210\304\305A@\303#c\210\306c\210\307\310\3118\"\210\312\302@!\306\261\207" [parse "<" symbol-name " " mapconcat #[(param) "\302@!\303\304A:\203 \211A@)\202 A!Q\207" [param x symbol-name "=" prin1-to-string] 5] ">\n" mapc nnweb-insert-html 2 "</"] 4 (#$ . 18042)])
#@36 Find the element of TYPE in PARSE.
(defalias 'nnweb-parse-find #[(type parse &optional maxdepth) "\300\301\215\207" [found (nnweb-parse-find-1 type parse maxdepth)] 2 (#$ . 18436)])
(defalias 'nnweb-parse-find-1 #[(type contents maxdepth) "\203 \305!?\205F 	:\205F 	@\n=\203 \306\307	\"\210	A<\205F 	\310\211\203D \f@\211:\203= \311\n\205; S#\210\fA\211\204* *\310\207" [maxdepth contents type element #1=#:--cl-dolist-temp-- zerop throw found nil nnweb-parse-find-1] 5])
#@37 Find all elements of TYPE in PARSE.
(defalias 'nnweb-parse-find-all #[(type parse) "\300\301\215\207" [found (nnweb-parse-find-all-1 type parse)] 2 (#$ . 18925)])
(defalias 'nnweb-parse-find-all-1 #[(type contents) "\305	:\203: 	@\n=\203 	B\202: 	A<\203: 	\305\211\2039 \f@\211:\2032 \306\n\"\244\fA\211\204# *)\207" [result contents type element #1=#:--cl-dolist-temp-- nil nnweb-parse-find-all-1] 5])
#@42 Return a list of text contents in PARSE.
(defalias 'nnweb-text #[(parse) "\302\303	!\210\237)\207" [nnweb-text parse nil nnweb-text-1] 2 (#$ . 19346)])
(defalias 'nnweb-text-1 #[(contents) "\304\211\203- \n@\211;\203 	B\202& 	:\203& 	A<\203& \305	!\210\nA\211\204 *\304\207" [contents element #1=#:--cl-dolist-temp-- nnweb-text nil nnweb-text-1] 3])
(provide 'nnweb)
