;ELC   
;;; Compiled by amu@daemon on Thu Jan 11 15:04:03 2001
;;; from file /afs/sipb.mit.edu/contrib/emacs/packages/gnus-5.8.8/lisp/nnslashdot.el
;;; in Emacs version 20.7.2
;;; with bytecomp version 2.56
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.
(if (and (boundp 'emacs-version)
	 (< (aref emacs-version (1- (length emacs-version))) ?A)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`nnslashdot.el' was compiled for Emacs 19.29 or later"))

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


(byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\210\300\306!\207" [require nnoo message gnus-util gnus nnmail mm-util] 2)
(require 'nnweb)
(byte-code "\302\303\304\305\"\305\211FB\302\306D	B\305\207" [nnoo-definition-alist nnoo-state-alist nnslashdot mapcar #[(p) "C\207" [p] 1] nil "*internal-non-initialized-backend*"] 4)
#@39 Where nnslashdot will save its files.
(defvar nnslashdot-directory (nnheader-concat gnus-directory "slashdot/") (#$ . 984))
(nnoo-define 'nnslashdot-directory nil)
#@51 Where nnslashdot will fetch the active file from.
(defvar nnslashdot-active-url "http://slashdot.org/search.pl?section=&min=%d" (#$ . 1154))
(nnoo-define 'nnslashdot-active-url nil)
#@44 Where nnslashdot will fetch comments from.
(defvar nnslashdot-comments-url "http://slashdot.org/comments.pl?sid=%s&threshold=%d&commentsort=%d&mode=flat&startat=%d" (#$ . 1342))
(nnoo-define 'nnslashdot-comments-url nil)
#@47 Where nnslashdot will fetch the article from.
(defvar nnslashdot-article-url "http://slashdot.org/article.pl?sid=%s&mode=nocomment" (#$ . 1569))
(nnoo-define 'nnslashdot-article-url nil)
#@24 The article threshold.
(defvar nnslashdot-threshold -1 (#$ . 1762))
(nnoo-define 'nnslashdot-threshold nil)
#@58 Whether the nnslashdot groups should be threaded or not.
(defvar nnslashdot-threaded t (#$ . 1876))
(nnoo-define 'nnslashdot-threaded nil)
#@49 The number of non-fresh groups to keep updated.
(defvar nnslashdot-group-number 0 (#$ . 2021))
(nnoo-define 'nnslashdot-group-number nil)
#@37 The login name to use when posting.
(defvar nnslashdot-login-name "" (#$ . 2165))
(nnoo-define 'nnslashdot-login-name nil)
#@35 The password to use when posting.
(defvar nnslashdot-password "" (#$ . 2294))
(byte-code "\304\305\306\"\210\307\300!\204 \306\300	B\307\302!\204 \306\302	B\307\303!\204% \306\303	B\310\311!\207" [nnslashdot-groups current-load-list nnslashdot-buffer nnslashdot-headers nnoo-define nnslashdot-password nil boundp nnoo-define-basics-1 nnslashdot] 3)
(defalias 'nnslashdot-retrieve-headers #[(articles &optional group server fetch-old) "\302	\"\210\303\304\305\217\207" [group server nnslashdot-possibly-change-server why (byte-code "?\205 	\203 \304\n\"\207\305\n\"\207" [gnus-nov-is-evil nnslashdot-threaded articles group nnslashdot-threaded-retrieve-headers nnslashdot-sane-retrieve-headers] 3) ((search-failed (nnslashdot-lose why)))] 3])
(nnoo-register-function 'nnslashdot-retrieve-headers)
(defalias 'nnslashdot-threaded-retrieve-headers #[(articles group) "	A:\203 	\211A\210\202 	)@\306\307\310\n\"AA@\311\312\306\211\211\211\211\211\211\211\211\211@ABCDEFGHIJKLM\212Nq\210\311O\313 \210K\307U\203\327 \314\315P\316J!\"\311\"\210eb\210\317\320!\210\321\322!\203x \323\324\307!!C\317\325!\210\326`\317\327!S{!B`\307y\210`Z\330\245A\307\211\nCB\327\316J!\331Q\332\333A\306\211QRASTUBCEV\334VECBUTSARQ&\n.\nBGBGH\211AH@\211K\2038KMW\2038db\314\315W\316J!X\333K%\311\"\210I\2030\306Idb\210\335\336\306\311#\203)\337\324\307!!\211H>\204\fHBH\202\340H\341\"Hb\210\342\343\306\311#\203\327 \337\324\307!!F\324\344!E\324\345!D\346\347E\"\203^\350E\333\225\306OPE\323E!E\307y\210\321\351!\203\203\333\225\345Zb\210\323\324\307!!\352\324\353!\354RC\202\231\332C\321\355!\203\231\333\225\345Zb\210\323\324\307!!C\317\325!\210\326`\306\210`{!B\356\317\357!\317\360!Z!\361\245A\362y\210\321\363!\205\300\324\307!@\311LFTFTE\364D\365RCB\327\316J!\366\367FT!\370\260@\203\374\327\316J!\366\367\337@!T!\370\260\202\375\332\333A\306\211QRASTUBCEV\334VECBUTSARQ&\n.\nBGBG\2023*\340G\371\"Y\212Zq\210\313 \210\372\373!\204\222\374\375!\203\222=\203\222\376\377!\203\222p[\201` \216\306\\\377\306!\210Y\306]\211^\203\216^@]\201a ]A!\210^A\211^\204x-\202\267\306\\Y\306]\211_\203\266_@]\201a ]A!\210_A\211_\204\240+.\201b \207" [articles x group nnslashdot-groups s point nil 1 assoc t (1) erase-buffer nnweb-insert format nnslashdot-sid-strip search-forward "Posted by " looking-at "<a[^>]+>\\([^<]+\\)" nnweb-decode-entities-string match-string " on " nnslashdot-date-to-date "<" 60 "%1@slashdot>" "" 0 vector re-search-backward "startat=\\([0-9]+\\)" string-to-number sort < re-search-forward "<a name=\"\\([0-9]+\\)\"><\\(b\\|H4\\)>\\([^<]+\\)</\\(b\\|H4\\)>.*score:\\([^)]+\\))" 3 5 string-match "^Re: *" "Re: " "by <a[^>]+>\\([^<]+\\)</a>[ 	\n]*.*(\\([^)]+\\))" " <" 2 ">" "by \\(.+\\) on " abs "<td " "</td>" 70 4 ".*cid=\\([0-9]+\\)" " (" ")" "%" number-to-string "@slashdot>" car-less-than-car featurep xemacs boundp enable-multibyte-characters fboundp set-buffer-multibyte parent lines date from score subject article headers startats first-comments sid start did last nnslashdot-buffer case-fold-search nnslashdot-article-url extra xref chars references id number nnslashdot-comments-url nnslashdot-threshold nnslashdot-headers nntp-server-buffer #1=#:buffer default-enable-multibyte-characters header #2=#:--dolist-temp--88994 #3=#:--dolist-temp--88995 ((byte-code "q\210\301\302!\207" [#1# set-buffer-multibyte t] 2)) nnheader-insert-nov nov] 17])
(nnoo-register-function 'nnslashdot-threaded-retrieve-headers)
(defalias 'nnslashdot-sane-retrieve-headers #[(articles group) "	A:\203 	\211A\210\202 	)@\306@S\307]\310\n\"AA@\306\211\211\211\211\211\211\211\211@ABCDEFGHIJ\212Kq\210\311 \210H\307U\203\320 \312\313L\314G!\"\315\"\210eb\210\316\317!\210\320\321!\203p \322\323\307!!B\316\324!\210\325`\316\326!S{!A\327y\210\330`\331\332!\"@\307\211\nBA\326\314G!\333Q\334\335@\306\211MN@OPQABDR\336RDBAQPO@NM&\n.\nBFBFE\203\342 I\203EJW\203E\203\354 ETHdb\312\313S\314G!T\337H%\315\"\210\fb\210\331\340\306\315#\203\320 \341\323\307!!E\323\342!D\323\343!C\344\345D\"\203.\346D\335\225\306OPD\322D!D\307y\210\320\347!\203S\335\225\343Zb\210\322\323\307!!\350\323\327!\351RB\202i\334B\320\352!\203i\335\225\343Zb\210\322\323\307!!B\316\324!\210\325`\306\210`{!A\353\316\354!\316\355!Z!\356\245@\327y\210\320\357!\205\220\323\307!\315IETETD\360C\361RBA\326\314G!\362\363ET!\364\260\203\311\326\314G!\362\363\341!T!\364\260\202\312\334\335@\306\211MN@OPQABDR\336RDBAQPO@NM&\n.\nBFBF\202)\365F\366\"U\212Vq\210\311 \210\367\370!\204[\371\372!\203[:\203[\373\374!\203[pW\375\216\306X\374\306!\210U\306Y\211Z\203WZ@Y\376YA!\210ZA\211Z\204C-\202~\306XU\306Y\211[\203}[@Y\376YA!\210[A\211[\204i+.\377\207" [articles x group nnslashdot-groups point parent nil 1 assoc erase-buffer nnweb-insert format nnslashdot-sid-strip t search-forward "Posted by " looking-at "<a[^>]+>\\([^<]+\\)" nnweb-decode-entities-string match-string " on " nnslashdot-date-to-date "<" 2 count-lines re-search-forward "A href=\"\\(http://slashdot.org\\)?/article" "%1@slashdot>" "" 0 vector 4 "<a name=\"\\([0-9]+\\)\"><\\(b\\|H4\\)>\\([^<]+\\)</\\(b\\|H4\\)>.*score:\\([^)]+\\))" string-to-number 3 5 string-match "^Re: *" "Re: " "by <a[^>]+>\\([^<]+\\)</a>[ 	\n]*.*(\\([^)]+\\))" " <" ">" "by \\(.+\\) on " abs "<td " "</td>" 70 ".*cid=\\([0-9]+\\)" " (" ")" "%" number-to-string "@slashdot>" sort #[(s1 s2) "@	@W\207" [s1 s2] 2] featurep xemacs boundp enable-multibyte-characters fboundp set-buffer-multibyte ((byte-code "q\210\301\302!\207" [#1=#:buffer set-buffer-multibyte t] 2)) nnheader-insert-nov nov lines date from score subject article headers sid start did last nnslashdot-buffer nnslashdot-article-url extra xref chars references id number nnslashdot-comments-url nnslashdot-threshold nnslashdot-headers nntp-server-buffer #1# default-enable-multibyte-characters header #2=#:--dolist-temp--88996 #3=#:--dolist-temp--88997] 13])
(nnoo-register-function 'nnslashdot-sane-retrieve-headers)
(defalias 'nnslashdot-request-group #[(group &optional server dont-check) "\304\305\"\210\306	\n\"\211\204 \307\310\311\"\202( \307\310\312	#\210\313\314A@\315A@\316	!%)\207" [server group nnslashdot-groups elem nnslashdot-possibly-change-server nil assoc nnheader-report nnslashdot "Group does not exist" "Opened group %s" nnheader-insert "211 %d %d %d %s\n" 1 prin1-to-string] 8])
(nnoo-register-function 'nnslashdot-request-group)
(defalias 'nnslashdot-close-group #[(group &optional server) "\304	\"\210\n\211\205 \305!\205 \306\305!!)\203# \212\nq\210\307\n!\210)\310\207" [group server nnslashdot-buffer buffer nnslashdot-possibly-change-server get-buffer buffer-name kill-buffer t] 4])
(nnoo-register-function 'nnslashdot-close-group)
(defalias 'nnslashdot-request-article #[(article &optional group server buffer) "\306	\"\210\307\310\311\312\217\210\n\205\310 \212\206 \fq\210\313 \210\314\315!\204\200 \316\305!\203\200 \203\200 \317\320!\203\200 p\321\216\307 \320\307!\210\nc\210eb\210\322\323\307\324#\203T \325\326\324\211#\210\202C eb\210\327c\210\330\331!\"AA@\332\261\210\"#\236A$\333$!\210)\334\335\336\"#\210+\202\303 \307 \nc\210eb\210\322\323\307\324#\203\232 \325\326\324\211#\210\202\211 eb\210\327c\210\330\331!\"AA@\332\261\210\"#\236A$\333$!\210)\334\335\336\"#\210)\")B)\207" [group server contents buffer nntp-server-buffer enable-multibyte-characters nnslashdot-possibly-change-server nil why (byte-code "\212q\210\304eb\210\n;\203 \305\306\n\"\203 \307\310\311\n\"!\n\247\203K \n\311U\203; \312\313!\210\314\315!\210`\312\316!\210\317\224{\202K \314\320\321\nS\"!\210\312\322!\314\323!{*\304\207" [nnslashdot-buffer case-fold-search article contents t string-match "%\\([0-9]+\\)@" string-to-number match-string 1 re-search-forward "Posted by *<[^>]+>[^>]*<[^>]+> *on " search-forward "<BR>" "<p>.*A href=\"\\(http://slashdot.org\\)?/article" 0 format "<a name=\"%d\">" "<td[^>]+>" "</td>"] 4) ((search-failed (nnslashdot-lose why))) erase-buffer featurep xemacs boundp fboundp set-buffer-multibyte ((byte-code "q\210\301\302!\207" [#1=#:buffer set-buffer-multibyte t] 2)) re-search-forward "\\(<br>?\\)+" t replace-match "<p>" "Content-Type: text/html\nMIME-Version: 1.0\n" "Newsgroups: " assoc "\n" nnheader-insert-header nnheader-report nnslashdot "Fetched article %s" #1# default-enable-multibyte-characters nnslashdot-groups article nnslashdot-headers header] 4])
(nnoo-register-function 'nnslashdot-request-article)
(defalias 'nnslashdot-close-server #[(&optional server) "\303!\203$ 	\211\205 \304\n!\205 \305\304\n!!)\203$ \212	q\210\306	!\210)\307\310\"\207" [server nnslashdot-buffer buffer nnslashdot-server-opened get-buffer buffer-name kill-buffer nnoo-close-server nnslashdot] 4])
(nnoo-register-function 'nnslashdot-close-server)
(defalias 'nnslashdot-request-list #[(&optional server) "\306\307\"\210\310\307\211\211\211\211\311\312\313\217\210\314 \210\315 \210.\316\207" [server gname articles description elem sid nnslashdot-possibly-change-server nil 0 why (byte-code "\306\307\310\311!!\312\216r	q\210\313\314\315\"\210eb\210\316\317\306\315#\203z `\316\320!}\210eb\210\321\322!\210\323\324\325!!\321\326!\210\324\325!\327\330\"\210\331\324\325\"P\321\332!\210\333\324\325!!\n\334\335R\336&\"\211'\203i 'A\f\240\210\202r \fE&B&db\210~\210\202 ,()Z\337V\203\370 \306\307\310\311!!*\340\216r*q\210\315+\313\341,)\"\315\"\210eb\210\321\342\306\315#\203\356 \324\325!\323\324\343!!\325y\210\321\344\306\315#\203\310 \333\324\325!!\n\334\335R\336&\"\211'\203\342 'A\f\240\210\202\245 \fE&B&\202\245 -)\345\\)\202{ \306\207" [default-enable-multibyte-characters #1=#:temp-buffer description sid articles gname nil get-buffer-create generate-new-buffer-name " *temp*" ((byte-code "\301!\203\n \302!\210\301\207" [#1# buffer-name kill-buffer] 2)) nnweb-insert "http://slashdot.org/slashdot.xml" t search-forward "<story>" "</story>" re-search-forward "<title>\\([^<]+\\)</title>" nnweb-decode-entities-string match-string 1 "<url>\\([^<]+\\)</url>" string-match "/\\([0-9/]+\\)\\(.shtml\\|$\\)" "00/" "<comments>\\([^<]+\\)</comments>" string-to-number " (" ")" assoc 0 ((byte-code "\301!\203\n \302!\210\301\207" [#2=#:temp-buffer buffer-name kill-buffer] 2)) format "article.pl\\?sid=\\([^&]+\\).*<b>\\([^<]+\\)</b>" 2 "<b>\\([0-9]+\\)</b>" 30 nnslashdot-groups elem nnslashdot-group-number number #2# case-fold-search nnslashdot-active-url] 4) ((search-failed (nnslashdot-lose why))) nnslashdot-write-groups nnslashdot-generate-active t number] 6])
(nnoo-register-function 'nnslashdot-request-list)
(defalias 'nnslashdot-request-newgroups #[(date &optional server) "\301\302\"\210\303 \210\304\207" [server nnslashdot-possibly-change-server nil nnslashdot-generate-active t] 3])
(nnoo-register-function 'nnslashdot-request-newgroups)
(defalias 'nnslashdot-request-post #[(&optional server) "\306\307\"\210\310\311\312!!\311\313!\314\311\315!!	A:\203! 	\211A\210\202 	)@\307\211\211,-\316\317\"\210\320\321\"\322 \210`\323 \210`}\210eb\210m\204q \324\325!\203b ``\326\\|\210\204] \327c\210\330\202k \203k \331c\210\307\321y\210\202F eb\210\332\333\307\330#\203\203 \334\335!\210\202t ~\210\323 \203\240 \336y\210\335c\210m\204\240 \307\210\337c\210\321y\210\202\220 \322 \210`d{\340 \210\341\342\343-B\344\nB\345\346.B\347/B\350,B\351\352\fB\353BBBBBBBB\".\207" [server x pid quoted body references nnslashdot-possibly-change-server nil nnslashdot-sid-strip message-fetch-field "newsgroups" "subject" split-string "references" string-match "%\\([0-9]+\\)@slashdot" match-string 1 message-goto-body message-goto-signature looking-at "> " 2 "<blockquote>\n" t "</blockquote>\n" re-search-forward "^ *\n" replace-match "<p>\n" -1 "<br>" erase-buffer nnweb-fetch-form "http://slashdot.org/comments.pl" "sid" "pid" ("rlogin" . "userlogin") "unickname" "upasswd" "postersubj" ("op" . "Submit") "postercomment" (("posttype" . "html")) subject sid nnslashdot-login-name nnslashdot-password] 11])
(nnoo-register-function 'nnslashdot-request-post)
(defalias 'nnslashdot-request-delete-group #[(group &optional force server) "\303	\"\210\304\305\n\"\n\"\306 \207" [group server nnslashdot-groups nnslashdot-possibly-change-server delq assoc nnslashdot-write-groups] 4])
(nnoo-register-function 'nnslashdot-request-delete-group)
(defalias 'nnslashdot-request-close #[nil "\302\302\211\207" [nnslashdot-headers nnslashdot-groups nil] 2])
(byte-code "\300\301!\210\302\303!\207" [nnoo-register-function nnslashdot-request-close nnoo-define-skeleton-1 nnslashdot] 2)
(defalias 'nnslashdot-possibly-change-server #[(&optional group server) "\302!\210\203 \303!\204 \304!\210	?\205 \305 \207" [server nnslashdot-groups nnslashdot-init nnslashdot-server-opened nnslashdot-open-server nnslashdot-read-groups] 2])
(defalias 'nnslashdot-read-groups #[nil "\305\306\"\307	!\205& \310\311\312\313!!\314\216rq\210\315	!\210eb\210\316p!\211,)\207" [nnslashdot-directory file default-enable-multibyte-characters #1=#:temp-buffer nnslashdot-groups expand-file-name "groups" file-exists-p nil get-buffer-create generate-new-buffer-name " *temp*" ((byte-code "\301!\203\n \302!\210\301\207" [#1# buffer-name kill-buffer] 2)) insert-file-contents read] 3])
(defalias 'nnslashdot-write-groups #[nil "\304\305\"\306\307\310!!\311\216r	q\210\312p\")r	q\210~\210\313ed\n\314\315%\210,\207" [nnslashdot-directory #1=#:temp-buffer #2=#:temp-file nnslashdot-groups expand-file-name "groups" 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 write-region nil 0] 7])
#@30 Initialize buffers and such.
(defalias 'nnslashdot-init #[(server) "\304!\204\n \305!\210	\211\205 \306\n!\205 \307\306\n!!)?\205* \212\310\311\312\"!)\211\207" [nnslashdot-directory nnslashdot-buffer buffer server file-exists-p gnus-make-directory get-buffer buffer-name nnheader-set-temp-buffer format " *nnslashdot %s*"] 5 (#$ . 16243)])
(defalias 'nnslashdot-date-to-date #[(sdate) "\300\301\302\217\207" [err (byte-code "\302\303\304!\"\211@\305\306O\307	A@\305\306O\307\310	8\305\310O\307\306	8\311\312O\307\313\314!\307\315	8\260)\207" [sdate elem delete "" split-string 0 3 " " 2 1 6 format-time-string "%Y" 4] 13) ((error ""))] 3])
(defalias 'nnslashdot-generate-active #[nil "\212q\210\304 \210	\305\211\203' @\306\n@!\307\310\nA@!\311\261\210A\211\204 +\305\207" [nntp-server-buffer nnslashdot-groups elem #1=#:--dolist-temp--88998 erase-buffer nil prin1-to-string " " number-to-string " 1 y\n"] 5])
(defalias 'nnslashdot-lose #[(why) "\300\301!\207" [error "Slashdot HTML has changed; please get a new version of nnslashdot"] 2])
(byte-code "\300\301\302\"\210\303\304!\207" [defalias nnslashdot-sid-strip identity provide nnslashdot] 3)
