X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=lisp%2Fnnweb.el;h=760ef7581ebd71eeb4563abd04b6c2bcfd322bbf;hb=8d5b94488b8fe507a83eb5475ecaa54afb8a98b8;hp=7aaa5f9cb93375438e8306ccef9fec55c264a9c2;hpb=d2032a52ac044ae4abe456a8a0075636a65ab394;p=elisp%2Fgnus.git- diff --git a/lisp/nnweb.el b/lisp/nnweb.el index 7aaa5f9..760ef75 100644 --- a/lisp/nnweb.el +++ b/lisp/nnweb.el @@ -63,9 +63,12 @@ and `altavista'.") (defvar nnweb-type-definition '( (dejanews ;; bought by google.com - (article . nnweb-google-wash-article) - (id . "http://groups.google.com/groups?as_umsgid=%s") - (reference . nnweb-google-reference) + ;;(article . nnweb-google-wash-article) + ;;(id . "http://groups.google.com/groups?as_umsgid=%s") + (article . ignore) + (id . "http://groups.google.com/groups?selm=%s&output=gplain") + ;;(reference . nnweb-google-reference) + (reference . identity) (map . nnweb-google-create-mapping) (search . nnweb-google-search) (address . "http://groups.google.com/groups") @@ -189,16 +192,15 @@ and `altavista'.") (when (string-match "^<\\(.*\\)>$" article) (setq art (match-string 1 article))) (when (and fetch art) - (setq url (format fetch article)) + (setq url (format fetch art)) (mm-with-unibyte-current-buffer (nnweb-fetch-url url)) (if (nnweb-definition 'reference t) (setq article - (funcall (nnweb-definition + (funcall (nnweb-definition 'reference) article))))))) (unless nnheader-callback-function - (funcall (nnweb-definition 'article)) - (nnweb-decode-entities)) + (funcall (nnweb-definition 'article))) (nnheader-report 'nnweb "Fetched article %s" article) (cons group (and (numberp article) article)))))) @@ -574,6 +576,7 @@ and `altavista'.") (while (search-forward "," nil t) (replace-match " " t t))) (widen) + (nnweb-decode-entities) (set-marker body nil)))) (defun nnweb-reference-search (search) @@ -678,7 +681,8 @@ and `altavista'.") (while (re-search-forward "[0-9]+" nil t) (replace-match "<\\1> " t))) (widen) - (nnweb-remove-markup))) + (nnweb-remove-markup) + (nnweb-decode-entities))) (defun nnweb-altavista-search (search &optional part) (url-insert-file-contents @@ -706,9 +710,11 @@ and `altavista'.") (goto-char (point-min)) (re-search-forward "^
" nil t)
     (narrow-to-region (point-min) (point))
-    (search-backward "" nil t 2)
+    (search-backward "" nil t)
@@ -731,18 +737,18 @@ and `altavista'.")
 	(case-fold-search t)
 	(active (cadr (assoc nnweb-group nnweb-group-alist)))
 	Subject Score Date Newsgroups From
-	map url)
+	map url mid)
     (unless active
-      (push (list nnweb-group (setq active (cons 1 0)) 
+      (push (list nnweb-group (setq active (cons 1 0))
 		  nnweb-type nnweb-search)
 	    nnweb-group-alist))
     ;; Go through all the article hits on this page.
     (goto-char (point-min))
     (while (re-search-forward
-	    "a href=/groups\\(\\?[^ \">]*seld=[0-9]+[^ \">]*\\)" nil t)
-      (setq url
-	    (concat (nnweb-definition 'address)
-		    (match-string 1)))
+	    "a href=/groups\\(\\?[^ \">]*selm=\\([^ &\">]+\\)\\)" nil t)
+      (setq mid (match-string 2)
+	    url (format 
+		 "http://groups.google.com/groups?selm=%s&output=gplain" mid))
       (narrow-to-region (search-forward ">" nil t)
 			(search-forward "" nil t))
       (nnweb-remove-markup)
@@ -763,8 +769,8 @@ and `altavista'.")
 	(goto-char (point-max))
 	(widen)
 	(skip-chars-forward "- \t"))
-      (when (looking-at 
-	     "\\([0-9]+/[A-Za-z]+/[0-9]+\\)[ \t]*by[ \t]*\\([^<]*\\) - ]+\\)" url)
       (match-string 1 url)
     url))
 
@@ -875,13 +881,13 @@ and `altavista'.")
   (goto-char (point-min))
   (while (re-search-forward "&\\(#[0-9]+\\|[a-z]+\\);" nil t)
     (let ((elem (if (eq (aref (match-string 1) 0) ?\#)
-			(let ((c
-			       (string-to-number (substring
-						  (match-string 1) 1))))
-			  (if (mm-char-or-char-int-p c) c 32))
-		      (or (cdr (assq (intern (match-string 1))
-				     w3-html-entities))
-			  ?#))))
+		    (let ((c
+			   (string-to-number (substring
+					      (match-string 1) 1))))
+		      (if (mm-char-or-char-int-p c) c 32))
+		  (or (cdr (assq (intern (match-string 1))
+				 w3-html-entities))
+		      ?#))))
       (unless (stringp elem)
 	(setq elem (char-to-string elem)))
       (replace-match elem t t))))