[Mew-dist 807] Re: Auto refile
Shunichi GOTO
gotoh at example.com
1997年 4月 3日 (木) 17:59:59 JST
>>>>> From: 尾澤 稔 <ozawa at example.com>
ozawa> 皆さんはじめまして。
ozawa> 本題ですが、Mewには、リファイルの機能がついていますが、手作業でリファイルを
ozawa> するのが少々面倒です。
ozawa> mew-folder-alist にしたがってMew終了時等に自動で、リファイルしてくれる機能が
ozawa> あったら便利だと思い自分で作ってみましたが、少々遅いので、どなたかこんな機能
ozawa> を実現している方いませんか?
尾澤さんと、ほぼ同様の発想で作ったものがあります。
わたしはLisperではないので、かなりテキトーな実装ですが。(..)
まぁ、アイディアの足しになるかも知れないので、添付してみます。
内容は、単純に手で操作するのを代行する程度のものです。
既に'o'や'd'でマークしてあるものは無視(skip)するようにしてます。
推論は(どこにいくかわからないこともあるので)使わないで、
mew-guess-by-alist だけを使います。
したがって振り分けるものは先にalistに登録しておく必要があります。
で、1つずつ単純に進んで(next-line)いって同じことを繰り返します。
#やりようによっては、'*'にマークしてあるファイルのみを対象とする
#とかも可能だと思いますが。。。
実行はかなり遅いです。(^^;
1日分を整理するならば気合いを入れてから実行すべきかも。
キーは m y にあてて使ってます。
my-autorefile1 は、mew-refile.elの mew-summary-refileから
mew-guess-by-alistだけを使いたかったがために、抜きだして
使わせていただいてます。
もっともっともっとスマートにできることと思いますが、
必要に迫られて間に合わせに作り、まぁまぁうまく運用できているので、
「ま、いっか」でいまも使ってるというところでしょうか。(^^;
--- Regards,
Shun-ichi Goto <gotoh at example.com>
R&D Group, TAIYO Corp., Tokyo, JAPAN
[Biz] Phone: +81-3-3771-8171 FAX: +81-3-3773-1284
[Home] Phone: 045-401-2120 DoCoMo: 080-68-05846
-------------- next part --------------
(defun my-auto-refile ()
(interactive)
(while (not (eobp))
(let ((msg (mew-summary-message-number)))
(save-excursion
(if (my-auto-refile1)
(message (format "refiling msg %s " msg))
(message (format "skiping msg %s" msg)))))
(next-line 1)))
(defun my-auto-refile1 ()
(interactive)
(if (eobp)
(message "No message")
(let (msg-buffer
mark
(fld nil))
(cond
((mew-summary-part-number)
(re-search-backward mew-summary-message-regex nil t nil)
(mew-summary-display))
)
(setq mark (mew-summary-get-mark))
(if (or (null msg)
(equal mark mew-mark-refile)
(equal mark mew-mark-rmm))
() ;; nothing do
(setq msg-buffer (or (mew-summary-display t)
(mew-buffer-message)))
(save-excursion
(set-buffer msg-buffer)
(setq learn-info (mew-guess-by-alist)))
(setq fld (car learn-info))
(if (or (null (car learn-info))
(not (eq (car (cdr learn-info)) 'mew-guess-by-alist)))
nil
(mew-summary-refile (list (car learn-info)))
(list (car learn-info)))
))))
Mew-dist メーリングリストの案内