[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: savannah
分かりづらくてすみません。
At Mon, 02 Jun 2003 17:34:25 +0900 (JST),
Masatake YAMATO wrote:
>
> > えーと、通常 MUA 側でグループのリストはキャッシュされ、かつ、
> > キャッシュをアップデートする機能もあるので、
> > shimbun 側ではグループのリストのキャッシュはしなくても
> > 大丈夫ってことはないでしょうか。
>
> ???
> そうすると、僕が改変するまえからsb-savannah.elに存在した
> shimbun-savannah-group-path-alist
> という変数は何のためにあるのでしょうか?
> MUA側でグループのリストをアップデートできれば、
> shimbun-savannah-group-path-alistで静的にgroupのlistを
> 定義する必要がないのではないかと思います.
>
> sb-savannah.elがキャッシュをアップデートする機能をMUAに
> 提供できるという意味かな。
sb-savanna.el の shimbun-groups では、単純にグループリストを
サーバから取ってきて返してやる機能だけ提供して、
各 MUA で、その値をキャッシュするなりアップデートするなりの機能を持つ
のがいいのではないか、という意味のつもりでした。
例えば添付のようにすると、
Wanderlust であれば、@savannah/ というグループにて Enter をおすと、
1回目のみグループリストがサーバから取り寄せられ、
2回目以降はキャッシュされたグループリストが表示されます。
(最新のグループリストに更新するには C-u Enter です。)
Index: sb-savannah.el
===================================================================
RCS file: /storage/cvsroot/emacs-w3m/shimbun/sb-savannah.el,v
retrieving revision 1.8
diff -u -r1.8 sb-savannah.el
--- sb-savannah.el 13 Mar 2003 22:58:42 -0000 1.8
+++ sb-savannah.el 2 Jun 2003 16:35:40 -0000
@@ -38,22 +38,42 @@
(defvar shimbun-savannah-url "http://mail.gnu.org/archive/html/")
-(defvar shimbun-savannah-group-path-alist
- '(("bug-gnu-emacs" . "bug-gnu-emacs")
- ("emacs-bidi" . "emacs-bidi")
- ("emacs-commit" . "emacs-commit")
- ("emacs-devel" . "emacs-devel")
- ("emacs-diffs" . "emacs-diffs")
- ("emacs-pretest-bug" . "emacs-pretest-bug")
- ("gnu-emacs-sources" . "gnu-emacs-sources")
- ("help-emacs-windows" . "help-emacs-windows")
- ("help-gnu-emacs" . "help-gnu-emacs")
- ("info-gnu-emacs" . "info-gnu-emacs")
- ("tramp-devel" . "tramp-devel")
- ("vms-gnu-emacs" . "vms-gnu-emacs")))
+(defgroup shimbun-savannah nil
+ "shimbun-savannah.el --- shimbun backend for gnu list archives on savannah."
+ :group 'shimbun)
-(defvar shimbun-savannah-groups
- (mapcar 'car shimbun-savannah-group-path-alist))
+(defcustom shimbun-savannah-static-group-list
+ '("bug-gnu-emacs"
+ "emacs-bidi"
+ "emacs-commit"
+ "emacs-devel"
+ "emacs-diffs"
+ "emacs-pretest-bug"
+ "gnu-emacs-sources"
+ "help-emacs-windows"
+ "help-gnu-emacs"
+ "info-gnu-emacs"
+ "tramp-devel"
+ "vms-gnu-emacs")
+ "Table of mailing lists which is archived by savannah.
+If the on-line retrieval of the lists information failed, this value is used."
+ :group 'sb-savannah
+ :type '(repeat (string :tag "Group")))
+
+(defconst shimbun-savannah-group-regexp
+ "<span class=\"listName\"><a href=\"/archive/html/\\(.*\\)/\">\\(.*\\)</a></span>")
+
+(luna-define-method shimbun-groups ((shimbun shimbun-savannah))
+ (with-temp-buffer
+ (if (shimbun-retrieve-url shimbun-savannah-url 'no-cache 'no-decode)
+ (progn
+ (goto-char (point-min))
+ (let (groups)
+ (while (re-search-forward shimbun-savannah-group-regexp nil t)
+ (setq groups
+ (cons (match-string 1) groups)))
+ groups))
+ shimbun-savannah-static-group-list)))
(defvar shimbun-savannah-reverse-flag t)
@@ -69,8 +89,7 @@
(defun shimbun-savannah-index-url (entity)
(concat (shimbun-url-internal entity)
- (cdr (assoc (shimbun-current-group-internal entity)
- shimbun-savannah-group-path-alist))
+ (shimbun-current-group-internal entity)
"/"))
(luna-define-method shimbun-index-url ((shimbun shimbun-savannah))
--
Yuuichi Teranishi (寺西裕一) <teranisi@gohome.org>
GPG Public Key: http://www.gohome.org/gpg/teranisi.asc
"Living is easy with eyes closed, misunderstanding all you see..."