--- nnweb.el 2012-01-07 19:25:08.000000000 +0100 +++ nnweb.el 2010-01-16 13:31:22.000000000 +0100 @@ -70,6 +71,11 @@ (address . "http://groups.google.com/groups") (base . "http://groups.google.com") (identifier . nnweb-google-identity)) + (howardk + (id . "http://howardk.freenix.org/msgid.cgi?STYPE=msgid&MSGI=<%s>&GOOGLE=on") + (article . nnweb-howardk-wash-article) + (reference . identity) + (identifier . nnweb-howardk-identity)) (gmane (article . nnweb-gmane-wash-article) (id . "http://gmane.org/view.php?group=%s") @@ -296,7 +308,27 @@ ;;; groups.google.com ;;; +;; Updated for Google's changed interface 2008-11 (defun nnweb-google-wash-article () + (let ((case-fold-search t) url) + (goto-char (point-min)) + (if (or (re-search-forward "The requested message.*could not be found." + nil t) + (re-search-forward + (concat "href=\"\\(/group/[^/]+/msg/[[:alnum:]]+" + "\\?dmode=source\\)\">Show original") nil t)) + (setq url (format "%s%s&output=gplain" + (nnweb-definition 'base) (match-string 1))) + (gnus-message 3 "Requested article not found")) + (gnus-message 9 "URL: %s" url) + (erase-buffer) + (mm-with-unibyte-current-buffer + (mm-url-insert-file-contents url)) + (unless (re-search-forward "^Message-ID:") + (gnus-message 3 "Requested article not found") + (erase-buffer)))) + +(defun nnweb-howardk-wash-article () ;; We have Google's masked e-mail addresses here. :-/ (let ((case-fold-search t) (start-re "
[\r\n ]*")
@@ -305,6 +337,7 @@
     (if (save-excursion
 	  (or (re-search-forward "The requested message.*could not be found."
 				 nil t)
+	      (re-search-forward "Couldn't find article" nil t)
 	      (not (and (re-search-forward start-re nil t)
 			(re-search-forward end-re nil t)))))
 	;; FIXME: Don't know how to indicate "not found".