[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/gnus/nnslashdot.el [emacs-unicode-2]
From: |
Miles Bader |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/gnus/nnslashdot.el [emacs-unicode-2] |
Date: |
Thu, 09 Sep 2004 17:31:40 -0400 |
Index: emacs/lisp/gnus/nnslashdot.el
diff -c emacs/lisp/gnus/nnslashdot.el:1.4.6.1
emacs/lisp/gnus/nnslashdot.el:1.4.6.2
*** emacs/lisp/gnus/nnslashdot.el:1.4.6.1 Fri Mar 12 00:03:11 2004
--- emacs/lisp/gnus/nnslashdot.el Thu Sep 9 09:36:26 2004
***************
*** 1,5 ****
;;; nnslashdot.el --- interfacing with Slashdot
! ;; Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <address@hidden>
;; Keywords: news
--- 1,5 ----
;;; nnslashdot.el --- interfacing with Slashdot
! ;; Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <address@hidden>
;; Keywords: news
***************
*** 23,31 ****
;;; Commentary:
- ;; Note: You need to have `url' and `w3' installed for this
- ;; backend to work.
-
;;; Code:
(eval-when-compile (require 'cl))
--- 23,28 ----
***************
*** 36,46 ****
(require 'gnus)
(require 'nnmail)
(require 'mm-util)
! (eval-when-compile
! (ignore-errors
! (require 'nnweb)))
! ;; Report failure to find w3 at load time if appropriate.
! (eval '(require 'nnweb))
(nnoo-declare nnslashdot)
--- 33,39 ----
(require 'gnus)
(require 'nnmail)
(require 'mm-util)
! (require 'mm-url)
(nnoo-declare nnslashdot)
***************
*** 60,65 ****
--- 53,61 ----
(defvoo nnslashdot-backslash-url "http://slashdot.org/slashdot.xml"
"Where nnslashdot will fetch the stories from.")
+ (defvoo nnslashdot-use-front-page nil
+ "Use the front page in addition to the backslash page.")
+
(defvoo nnslashdot-threshold -1
"The article threshold.")
***************
*** 105,116 ****
(let ((case-fold-search t))
(erase-buffer)
(when (= start 1)
! (nnweb-insert (format nnslashdot-article-url
! (nnslashdot-sid-strip sid)) t)
(goto-char (point-min))
(re-search-forward "Posted by[ \t\r\n]+")
(when (looking-at "\\(<a[^>]+>\\)?[ \t\r\n]*\\([^<\r\n]+\\)")
! (setq from (nnweb-decode-entities-string (match-string 2))))
(search-forward "on ")
(setq date (nnslashdot-date-to-date
(buffer-substring (point) (1- (search-forward "<")))))
--- 101,113 ----
(let ((case-fold-search t))
(erase-buffer)
(when (= start 1)
! (mm-url-insert (format nnslashdot-article-url sid) t)
(goto-char (point-min))
+ (if (eobp)
+ (error "Couldn't open connection to slashdot"))
(re-search-forward "Posted by[ \t\r\n]+")
(when (looking-at "\\(<a[^>]+>\\)?[ \t\r\n]*\\([^<\r\n]+\\)")
! (setq from (mm-url-decode-entities-string (match-string 2))))
(search-forward "on ")
(setq date (nnslashdot-date-to-date
(buffer-substring (point) (1- (search-forward "<")))))
***************
*** 122,136 ****
1
(make-full-mail-header
1 group from date
! (concat "<" (nnslashdot-sid-strip sid) "address@hidden>")
"" 0 lines nil nil))
headers)
(setq start (if nnslashdot-threaded 2 (pop articles))))
(while (and start (<= start last))
(setq point (goto-char (point-max)))
! (nnweb-insert
! (format nnslashdot-comments-url
! (nnslashdot-sid-strip sid)
nnslashdot-threshold 0 (- start 2))
t)
(when (and nnslashdot-threaded first-comments)
--- 119,132 ----
1
(make-full-mail-header
1 group from date
! (concat "<" sid "address@hidden>")
"" 0 lines nil nil))
headers)
(setq start (if nnslashdot-threaded 2 (pop articles))))
(while (and start (<= start last))
(setq point (goto-char (point-max)))
! (mm-url-insert
! (format nnslashdot-comments-url sid
nnslashdot-threshold 0 (- start 2))
t)
(when (and nnslashdot-threaded first-comments)
***************
*** 154,173 ****
(setq changed t))
(when (string-match "^Re: *" subject)
(setq subject (concat "Re: " (substring subject (match-end 0)))))
! (setq subject (nnweb-decode-entities-string subject))
(search-forward "<BR>")
! (if (looking-at
! "by[ \t\n]+<a[^>]+>\\([^<]+\\)</a>[
\t\n]*(\\(<[^>]+>\\)*\\([^<>)]+\\))")
! (progn
! (goto-char (- (match-end 0) 5))
! (setq from (concat
! (nnweb-decode-entities-string (match-string 1))
! " <" (match-string 3) ">")))
! (setq from "")
! (when (looking-at "by \\([^<>]*\\) on ")
! (goto-char (- (match-end 0) 5))
! (setq from (nnweb-decode-entities-string (match-string 1)))))
! (search-forward " on ")
(setq date
(nnslashdot-date-to-date
(buffer-substring (point) (progn (skip-chars-forward
"^()<>\n\r") (point)))))
--- 150,175 ----
(setq changed t))
(when (string-match "^Re: *" subject)
(setq subject (concat "Re: " (substring subject (match-end 0)))))
! (setq subject (mm-url-decode-entities-string subject))
(search-forward "<BR>")
! (cond
! ((looking-at
! "by[ \t\n]+<a[^>]+>\\([^<]+\\)</a>[
\t\n]*(\\(<[^>]+>\\)*\\([^<>)]+\\))")
! (goto-char (- (match-end 0) 5))
! (setq from (concat
! (mm-url-decode-entities-string (match-string 1))
! " <" (match-string 3) ">")))
! ((looking-at "by[ \t\n]+<a[^>]+>\\([^<(]+\\) (\\([0-9]+\\))</a>")
! (goto-char (- (match-end 0) 5))
! (setq from (concat
! (mm-url-decode-entities-string (match-string 1))
! " <" (match-string 2) ">")))
! ((looking-at "by \\([^<>]*\\)[\t\n\r ]+on ")
! (goto-char (- (match-end 0) 5))
! (setq from (mm-url-decode-entities-string (match-string 1))))
! (t
! (setq from "")))
! (search-forward "on ")
(setq date
(nnslashdot-date-to-date
(buffer-substring (point) (progn (skip-chars-forward
"^()<>\n\r") (point)))))
***************
*** 187,196 ****
article
(concat subject " (" score ")")
from date
! (concat "<" (nnslashdot-sid-strip sid) "%" cid "@slashdot>")
(if parent
! (concat "<" (nnslashdot-sid-strip sid) "%"
! parent "@slashdot>")
"")
0 lines nil nil))
headers)
--- 189,197 ----
article
(concat subject " (" score ")")
from date
! (concat "<" sid "%" cid "@slashdot>")
(if parent
! (concat "<" sid "%" parent "@slashdot>")
"")
0 lines nil nil))
headers)
***************
*** 260,266 ****
(point)
(progn
(re-search-forward
! "< [ \t\r\n]*<A
HREF=\"\\(\\(http:\\)?//slashdot\\.org\\)?/article")
(match-beginning 0)))))
(setq cid (cdr (assq article
(nth 4 (assoc group nnslashdot-groups)))))
--- 261,267 ----
(point)
(progn
(re-search-forward
! "<IFRAME\\|<SCRIPT
LANGUAGE=\"JAVASCRIPT\">\\|<!-- no ad 6 -->\\|< [ \t\r\n]*<A
HREF=\"\\(\\(http:\\)?//slashdot\\.org\\)?/article")
(match-beginning 0)))))
(setq cid (cdr (assq article
(nth 4 (assoc group nnslashdot-groups)))))
***************
*** 300,318 ****
(deffoo nnslashdot-request-list (&optional server)
(nnslashdot-possibly-change-server nil server)
(let ((number 0)
sid elem description articles gname)
(condition-case why
;; First we do the Ultramode to get info on all the latest groups.
(progn
(mm-with-unibyte-buffer
! (nnweb-insert nnslashdot-backslash-url t)
(goto-char (point-min))
(while (search-forward "<story>" nil t)
(narrow-to-region (point) (search-forward "</story>"))
(goto-char (point-min))
(re-search-forward "<title>\\([^<]+\\)</title>")
(setq description
! (nnweb-decode-entities-string (match-string 1)))
(re-search-forward "<url>\\([^<]+\\)</url>")
(setq sid (match-string 1))
(string-match "sid=\\([0-9/]+\\)\\(.shtml\\|$\\)" sid)
--- 301,322 ----
(deffoo nnslashdot-request-list (&optional server)
(nnslashdot-possibly-change-server nil server)
(let ((number 0)
+ (first nnslashdot-use-front-page)
sid elem description articles gname)
(condition-case why
;; First we do the Ultramode to get info on all the latest groups.
(progn
(mm-with-unibyte-buffer
! (mm-url-insert nnslashdot-backslash-url t)
(goto-char (point-min))
+ (if (eobp)
+ (error "Couldn't open connection to slashdot"))
(while (search-forward "<story>" nil t)
(narrow-to-region (point) (search-forward "</story>"))
(goto-char (point-min))
(re-search-forward "<title>\\([^<]+\\)</title>")
(setq description
! (mm-url-decode-entities-string (match-string 1)))
(re-search-forward "<url>\\([^<]+\\)</url>")
(setq sid (match-string 1))
(string-match "sid=\\([0-9/]+\\)\\(.shtml\\|$\\)" sid)
***************
*** 327,346 ****
(goto-char (point-max))
(widen)))
;; Then do the older groups.
! (while (> (- nnslashdot-group-number number) 0)
(mm-with-unibyte-buffer
(let ((case-fold-search t))
! (nnweb-insert (format nnslashdot-active-url number) t)
(goto-char (point-min))
(while (re-search-forward
! "article.pl\\?sid=\\([^&]+\\).*<b>\\([^<]+\\)</b>"
nil t)
(setq sid (match-string 1)
description
! (nnweb-decode-entities-string (match-string 2)))
(forward-line 1)
! (when (re-search-forward "<b>\\([0-9]+\\)</b>" nil t)
! (setq articles (string-to-number (match-string 1))))
(setq gname (concat description " (" sid ")"))
(if (setq elem (assoc gname nnslashdot-groups))
(setcar (cdr elem) articles)
--- 331,352 ----
(goto-char (point-max))
(widen)))
;; Then do the older groups.
! (while (or first
! (> (- nnslashdot-group-number number) 0))
! (setq first nil)
(mm-with-unibyte-buffer
(let ((case-fold-search t))
! (mm-url-insert (format nnslashdot-active-url number) t)
(goto-char (point-min))
(while (re-search-forward
! "article.pl\\?sid=\\([^&]+\\).*>\\([^<]+\\)</a>"
nil t)
(setq sid (match-string 1)
description
! (mm-url-decode-entities-string (match-string 2)))
(forward-line 1)
! (when (re-search-forward "with \\([0-9]+\\) comment" nil t)
! (setq articles (1+ (string-to-number (match-string 1)))))
(setq gname (concat description " (" sid ")"))
(if (setq elem (assoc gname nnslashdot-groups))
(setcar (cdr elem) articles)
***************
*** 359,365 ****
(deffoo nnslashdot-request-post (&optional server)
(nnslashdot-possibly-change-server nil server)
! (let ((sid (nnslashdot-sid-strip (message-fetch-field "newsgroups")))
(subject (message-fetch-field "subject"))
(references (car (last (split-string
(message-fetch-field "references")))))
--- 365,371 ----
(deffoo nnslashdot-request-post (&optional server)
(nnslashdot-possibly-change-server nil server)
! (let ((sid (message-fetch-field "newsgroups"))
(subject (message-fetch-field "subject"))
(references (car (last (split-string
(message-fetch-field "references")))))
***************
*** 394,400 ****
(message-goto-body)
(setq body (buffer-substring (point) (point-max)))
(erase-buffer)
! (nnweb-fetch-form
"http://slashdot.org/comments.pl"
`(("sid" . ,sid)
("pid" . ,pid)
--- 400,406 ----
(message-goto-body)
(setq body (buffer-substring (point) (point-max)))
(erase-buffer)
! (mm-url-fetch-form
"http://slashdot.org/comments.pl"
`(("sid" . ,sid)
("pid" . ,pid)
***************
*** 499,512 ****
(set-buffer nntp-server-buffer)
(erase-buffer)
(dolist (elem nnslashdot-groups)
! (insert (prin1-to-string (car elem))
! " " (number-to-string (cadr elem)) " 1 y\n"))))
(defun nnslashdot-lose (why)
(error "Slashdot HTML has changed; please get a new version of nnslashdot"))
- (defalias 'nnslashdot-sid-strip 'identity)
-
(provide 'nnslashdot)
;;; arch-tag: aa73df7a-f7e6-4eef-bdea-5ce2f8c691b3
--- 505,517 ----
(set-buffer nntp-server-buffer)
(erase-buffer)
(dolist (elem nnslashdot-groups)
! (when (numberp (cadr elem))
! (insert (prin1-to-string (car elem))
! " " (number-to-string (cadr elem)) " 1 y\n")))))
(defun nnslashdot-lose (why)
(error "Slashdot HTML has changed; please get a new version of nnslashdot"))
(provide 'nnslashdot)
;;; arch-tag: aa73df7a-f7e6-4eef-bdea-5ce2f8c691b3
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] Changes to emacs/lisp/gnus/nnslashdot.el [emacs-unicode-2],
Miles Bader <=