[#7288] plain2 + popmail — tateishi@...
立石です。
わたなべです.
[#7292] Exception in ruby — TAKAHASHI Masayoshi <maki@...>
高橋です。
[#7315] recovery of exception — tateishi@...
立石です。
[#7330] sub, gsub bug? — 金子尚史 <wbs01621@...>
はじめまして、金子と申します。
[#7334] — Kazutomi Ueda <ueda@...>
上田と申します。
[#7342] '$' in regexp — TAKAHASHI Masayoshi <maki@...>
高橋です。こんばんは。
[#7354] def foo=(a,b) — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
[#7356] Q: jcode.rb tr(String + nil) — WATANABE Tetsuya <tetsu@...>
ruby-1.1b9_08 (07 からみたいですが)での話です。
まつもと ゆきひろです
さっそく対応していただきてありがとうございます。
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
[#7376] [Q] Thread — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
前田です。
まつもと ゆきひろです
[#7386] Dir.foreach — "Hiroshi Ishikawa(NIMS)" <h-isikaw@...16.nims.nec.co.jp>
いしかわ@NIMS です。
[#7388] inf-ruby.el — senda@...
[#7410] irb — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
[#7442] telnet.rb — Wakou Aoyama <wakou@...>
青山です。
[#7464] subscribe for ruby-list — Kazuhiro HIWADA <hiwada@...>
ひわだといいます。はじめまして。
[#7471] scope — Wakou Aoyama <wakou@...>
青山です。
わたなべです.
青山です。
[#7492] Tcl/Tk fileevent — NAGAI Hidetoshi <nagai@...>
永井@知能.九工大です.
きくたに@ぷ〜たろ〜です。
永井@知能.九工大です.
[#7500] List on List — WATANABE Hirofumi <watanabe@...>
わたなべです.
まつもと ゆきひろです
永井@知能.九工大です.
まつもと ゆきひろです
「Perlのmapをrubyでどう書くか」というネタはMLに入る前から暖めていたの
けいじゅ@日本ラショナルソフトウェアです.
わたなべです.
まつもと ゆきひろです
[#7509] クラスの変更 — Mitsuru Ogino <ogino@...>
荻野といいます。すみませんが、ご指導ください。プログラミング初心者です。
[#7582] Re: List on List — Makoto Nukui <gnue@...>
こんにちは、GNUE(鵺)です。
[#7591] How to write Perl's `@a[@b] = @c' in ruby — Inaba Hiroto <inaba@...>
えーと、既に「Perlのmapをrubyでどう書くか」という話題がで出てしまった
わたなべです.
原です。
From: Shin-ichiro HARA <sinara@blade.nagaokaut.ac.jp>
原です。
前田です。
From: shugo@po.aianet.ne.jp (Shugo Maeda)
ふなばです。
まつもと ゆきひろです
原です。
[#7622] dir search — Kikutani Makoto <kikutani@...>
きくたにです。
[#7648] new irb release — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
[#7671] How to install beta versions — Shin-ichiro HARA <sinara@...>
原です。
まつもと ゆきひろです
わたなべです.
>>>>> "W" == WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp> writes:
原です。
わたなべです.
From: WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>
まつもと ゆきひろです
From: matz@netlab.co.jp (Yukihiro Matsumoto)
まつもと ゆきひろです
まつもと ゆきひろです
永井@知能.九工大です.
まつもと ゆきひろです
[#7713] Re: private and protected — Makoto Nukui <gnue@...>
Yukihiro Matsumoto:
[#7723] shared library of ruby — ttate@...
立石です。
[#7727] Re: [ruby-dev:2503] library for Tcl/Tk ext-package — NAGAI Hidetoshi <nagai@...>
永井@知能.九工大です.
永井@知能.九工大です.
永井@知能.九工大です.
[#7729] mail index sort by From: — Kikutani Makoto <kikutani@...>
きくたにです。
ごとけんです
きくたにです。
はじめまして、道村といいます。
ごとけんです
ごとけんです
わたなべです.
原です。
ごとけんです
原です。
[#7764] reference manual for ruby 1.1b9_16 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
黒田です。
まつもと ゆきひろです
わたなべです.
まつもと ゆきひろです
わたなべです.
[ruby-list:7792] こんなスクリプト作ってみました
佐藤@東邦大です。
溜ったメールを処理するちょっとしたものを作ってみました。
が、brush upをしたいと思い、こちらに投げさせていただきます。
このスクリプトを起動すると、指定したメールフォルダで指定した日数以上を経過
したメールをアーカイブし、削除します。
(ここでのメールは、mh形式を意識しています)
アーカイブファイルは
「Folder名-処理を開始した時間(秒まで).tar.gz」
となります。
また、各アーカイブには、00indexというファイルが含まれ、その中には、アーカ
イブに含まれた各メールの番号、From、Subjectが入ります。
# 以前はindex作成の部分をimlsにやらせたもんで倍近く時間がかかりました
# 今回、スクリプト自身にやらせたのでほぼ一瞬でできるようになりました
アーカイブ用ディレクトリは*先に作成しておいて*ください。
作業そのものがけっこうクリティカルなため、けっこう例外処理を含めていますが、
不完全なこと甚しいです。
実際に使うという方は、これでいいと思えるまでは変数nodelを1にして、削除しな
いようにしておきましょう。
* スピードアップのため、冗長になっている部分の削除や変更
* 安全性向上のため、例外で処理すべき部分の追加、正当性の確認
が目下の目標となっております。
ぶしつけですが、よろしくお願いいたします。
===
やさいはけんこうにいちばーん!たくさんたべんとおおきくなれんよー!
(シルバー王女@クレヨン王国)
ばーい 佐藤 大輔/densuke@ga2.so-net.ne.jp
(CQD00116@niftyserve.or.jp)
I don't read those mail(s):
- with the header "Application/MS-*"
- which cannot read due to "Moji bake"
PS. indexはEUCのまんまのほうがやっぱりいいかもしんない、どーでもいーけど
(ホーレソレ@野菜の精風に)
#!/usr/bin/ruby
# === カスタマイズされうる変数
mailDir = "~/Mail" # メールディレクトリ(後で展開されます)
archDir = "~/mail-archive" # アーカイブディレクトリ(同)
tar = "/bin/tar"
nodel = 0 # 1にすると削除しません
folders = [ # ["フォルダ名", (日数)] のペア 以下はサンプル
["ruby", 7],
["Linux-users", 7],
["Pilot-ML", 7],
["enkai-ML", 7],
["mew", 7],
["ppxp", 7],
["tlug-server", 7],
["xemacs", 2]
]
# === ここまで
require "mailread" # メールの処理をしてくれます
require "parsedate" # 日付を処理してくれます
require "kconv"
include ParseDate
numRe = /^[0-9]+$/
retRe = /\n/
mailDir = File.expand_path(mailDir)
archDir = File.expand_path(archDir)
now = Time.now
i = 0
folders.each{ |folder|
n = 0
i += 1
print "--- #{folder[0]} (#{i}/#{folders.size}) #{folder[1]}日以前---\n"
begin
dir = Dir.open(mailDir + "/" + folder[0])
rescue
$stderr.print "ディレクトリ #{folder[0]}のオープンに失敗しました\n(#{$!})\n"
next
end
files = dir.collect { |f|
if f =~ numRe then f else nil end
}.sort { |a, b|
a.to_i <=> b.to_i
}.compact
dir.close
diff = folder[1] * 24 * 60 * 60
list = []
index = []
files.each{ |file|
mail = Mail.new(mailDir + "/" + folder[0] + "/" + file)
y, m, d = parsedate(mail.header["Date"])
fdate = Time.mktime(y, m, d)
if (now - fdate) > diff then
n += 1
list << file
begin
from = Kconv.tojis(Kconv.toeuc(mail.header['From'].gsub(retRe, " "))[0..20])
rescue
from = " " * 20
end
begin
subject = Kconv.tojis(Kconv.toeuc(mail.header['Subject'].gsub(retRe, " "))[0..40])
rescue
subject = " " * 40
end
index << sprintf("%5d %-20s | %-40s", file, from, subject)
end
}
if n > 0 then
print "#{n} ファイルありました。\n"
arch = "#{archDir}/#{folder[0]}-#{now.strftime('%Y%m%d%H%M%S')}.tar.gz"
begin
Dir.chdir("#{mailDir}/#{folder[0]}")
rescue
$stderr.print "chdirに失敗しました(#{$!})\n"
exit 1
end
print "インデックス生成中..."
$stdout.flush
ifile = open("00index", "w")
index.each { |s|
ifile.print "#{s}\n"
}
ifile.close
print "アーカイブ中..."
$stdout.flush
begin
fork {
exec "#{tar} czf #{arch} 00index #{list.join(' ')}"
}
rescue
$stderr.print "子プロセス実行時にエラーが発生しました\n(#{$!})\n"
end
Process.wait
if $? > 0 then
$stderr.print "失敗しました\n"
exit 1
end
if nodel == 0 then
print "削除中..."
$stdout.flush
list.push("00index")
begin
File.unlink(*list)
rescue
$stderr.print "ファイル #{file} の削除に失敗しました\n(#{$!})\n"
exit 1
end
print "完了\n"
end
else
print "削除すべきファイルはありません\n"
end
}