* nnheader.el (nnheader-replace-chars-in-string): Use `static-if'.
[elisp/gnus.git-] / lisp / nnslashdot.el
index 6de3f50..1a9ac54 100644 (file)
@@ -91,7 +91,7 @@
             (nnslashdot-threaded-retrieve-headers articles group)
           (nnslashdot-sane-retrieve-headers articles group)))
     (search-failed (nnslashdot-lose why))))
-  
+
 (deffoo nnslashdot-threaded-retrieve-headers (articles group)
   (let ((last (car (last articles)))
        (did nil)
          (search-forward " on ")
          (setq date (nnslashdot-date-to-date
                      (buffer-substring (point) (1- (search-forward "<")))))
-         (forward-line 2)
-         (setq lines (count-lines
-                      (point)
-                      (re-search-forward
-                       "A href=\"\\(http://slashdot.org\\)?/article" nil t)))
+         (setq lines (/ (- (point)
+                           (progn (forward-line 1) (point)))
+                        60))
          (push
           (cons
            1
            (forward-line 1)
            (if (looking-at
                 "by <a[^>]+>\\([^<]+\\)</a>[ \t\n]*.*(\\([^)]+\\))")
-               (setq from (concat (nnweb-decode-entities-string (match-string 1))
-                                  " <" (match-string 2) ">"))
-             (looking-at "by \\(.+\\) on ")
-             (setq from (nnweb-decode-entities-string (match-string 1))))
-           (goto-char (- (match-end 0) 5))
+               (progn
+                 (goto-char (- (match-end 0) 5))
+                 (setq from (concat 
+                             (nnweb-decode-entities-string (match-string 1))
+                             " <" (match-string 2) ">")))
+             (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
          (forward-line 1)
          (if (looking-at
               "by <a[^>]+>\\([^<]+\\)</a>[ \t\n]*.*(\\([^)]+\\))")
-             (setq from (concat (nnweb-decode-entities-string (match-string 1))
-                                 " <" (match-string 2) ">"))
-           (looking-at "by \\(.+\\) on ")
-           (setq from (nnweb-decode-entities-string (match-string 1))))
-         (goto-char (- (match-end 0) 5))
+             (progn
+               (goto-char (- (match-end 0) 5))
+               (setq from (concat 
+                           (nnweb-decode-entities-string (match-string 1))
+                           " <" (match-string 2) ">")))
+           (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
                                nnslashdot-groups))
   (nnslashdot-write-groups))
 
+(deffoo nnslashdot-request-close ()
+  (setq nnslashdot-headers nil
+       nnslashdot-groups nil))
+
 (nnoo-define-skeleton nnslashdot)
 
 ;;; Internal functions