emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/gnus/gnus-group.el,v


From: Miles Bader
Subject: [Emacs-diffs] Changes to emacs/lisp/gnus/gnus-group.el,v
Date: Tue, 08 Jan 2008 14:16:14 +0000

CVSROOT:        /cvsroot/emacs
Module name:    emacs
Changes by:     Miles Bader <miles>     08/01/08 14:16:13

Index: lisp/gnus/gnus-group.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/gnus/gnus-group.el,v
retrieving revision 1.66
retrieving revision 1.67
diff -u -b -r1.66 -r1.67
--- lisp/gnus/gnus-group.el     11 Dec 2007 05:45:43 -0000      1.66
+++ lisp/gnus/gnus-group.el     8 Jan 2008 14:16:13 -0000       1.67
@@ -1,7 +1,7 @@
 ;;; gnus-group.el --- group mode commands for Gnus
 
 ;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-;;   2005, 2006, 2007 Free Software Foundation, Inc.
+;;   2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: news
@@ -2320,6 +2320,44 @@
         (message "Quit reading the ephemeral group")
         nil)))))
 
+(defvar gnus-group-gmane-group-download-format
+  "http://download.gmane.org/%s/%s/%s";)
+(autoload 'url-insert-file-contents "url-handlers")
+
+;; FIXME: Make gnus-group-gmane-group-download-format customizable.  Add
+;; documentation, menu, key bindings...
+
+(defun gnus-group-read-ephemeral-gmane-group (group start end)
+  "Read articles from Gmane group GROUP as an ephemeral group.
+START and END specify the articles range.  The articles are
+downloaded via HTTP using the URL specified by
+`gnus-group-gmane-group-download-format'."
+  ;; See <http://gmane.org/export.php> for more information.
+  (interactive
+   (list
+    (gnus-group-completing-read "Gmane group: ")
+    (read-number "Start article number: ")
+    (read-number "End article number: ")))
+  (when (< (- end start) 0)
+    (error "Invalid range."))
+  (when (> (- end start)
+          (min (or gnus-large-ephemeral-newsgroup 100) 100))
+    (unless (y-or-n-p
+            (format "Large range (%s to %s), continue anyway? "
+                    start end))
+      (error "Range too large.  Aborted.")))
+  (let ((tmpfile (make-temp-file "gmane.gnus-temp-group-")))
+    (with-temp-file tmpfile
+      (url-insert-file-contents
+       (format gnus-group-gmane-group-download-format
+              group start end))
+      (write-region (point-min) (point-max) tmpfile)
+      (gnus-group-read-ephemeral-group
+       "rs-gnus-read-gmane"
+       `(nndoc ,tmpfile
+              (nndoc-article-type guess))))
+    (delete-file tmpfile)))
+
 (defun gnus-group-jump-to-group (group &optional prompt)
   "Jump to newsgroup GROUP.
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]