diff options
| author | fukachan <fukachan> | 2004-07-18 16:13:57 +0000 |
|---|---|---|
| committer | fukachan <fukachan> | 2004-07-18 16:13:57 +0000 |
| commit | c03a940b0860d900ec7d87aabeaf8c6a0d6bb49b (patch) | |
| tree | cb051ad2715be81fa4971afdc2ea4ed12c3e49a9 | |
| parent | 1bd4f7fa2f25e940412d4063c24ee17414a7148f (diff) | |
| download | fml8-c03a940b0860d900ec7d87aabeaf8c6a0d6bb49b.tar.gz fml8-c03a940b0860d900ec7d87aabeaf8c6a0d6bb49b.tar.bz2 fml8-c03a940b0860d900ec7d87aabeaf8c6a0d6bb49b.zip | |
Initial revision
| -rw-r--r-- | img/dist/IM/dot.im/get.sbr.refile | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/img/dist/IM/dot.im/get.sbr.refile b/img/dist/IM/dot.im/get.sbr.refile new file mode 100644 index 00000000..b814889c --- /dev/null +++ b/img/dist/IM/dot.im/get.sbr.refile @@ -0,0 +1,73 @@ +# Auto refiling for imget -*-Perl-*- + +use IM::File qw(im_rename); + +sub get_sub ($$$) { + my($folder, $first, $last) = @_; + my($header, $flie, $new_folder, $new_file, $tmp_str, $dir, $msg); + my($touch_file, $touch_file_m, $touch_file_n); + + return if ($folder ne &inbox_folder()); + + $dir = &expand_path($folder); + $touch_file = "$dir/.im_getsbr_touch"; + + if (-e $touch_file) { + $touch_file_m = -M $touch_file; + $touch_file_n = 0; + if (open(FH, $touch_file)) { + while (<FH>) { + chomp; + $touch_file_n = $_; + } + close(FH); + } + for ($msg = $last; $msg >= $first; $msg--) { + $file = &message_name($folder, $msg); + if (! -e $file) { + last; + } + if (-M $file > $touch_file_m) { + last; + } + if (-M $file == $touch_file_m && $msg <= $touch_file_n) { + last; + } + } + $first = $msg + 1; + } + + for ($msg = $first; $msg <= $last; $msg++) { + $file = &message_name($folder, $msg); + if (open(MSG, "$file")) { + $tmp_str = $/; + $/ = "\n\n"; + $header = <MSG>; + $/ = $tmp_str; + + $new_folder = $folder; + if ($header =~ /(^|\n)X-Bogosity: Yes/) { + $new_folder = '+spam'; + } elsif ($header =~ /(^|\n)X-Spam-Flag: Yes/) { + $new_folder = '+spam'; + } elsif ($header =~ /(^|\n)X-Spam: yes/) { + $new_folder = '+spam'; +# } elsif ($header =~ /(^|\n)X-ML-Name: mew-dist/) { +# $new_folder = '+mew-dist'; + } + if ($new_folder ne $folder) { + $new_file = &message_name($new_folder, 'new') || die $!; + &im_notice("refiling $folder/$msg to $new_folder.\n"); + &im_rename($file, $new_file) || die $!; + } + close(MSG); + } + } + + if (open(FH, ">$touch_file")) { + print FH "$last\n"; + close(FH); + } +} + +1; |
