summaryrefslogtreecommitdiff
path: root/fml/lib/FML
diff options
context:
space:
mode:
authorfukachan <fukachan>2004-02-06 13:21:27 +0000
committerfukachan <fukachan>2004-02-06 13:21:27 +0000
commit0069f7aca7a36b75df43bf7a988527e049f76aa7 (patch)
treeadacecb444c1c6a3bbe6ec0b5b5759a0a646c92d /fml/lib/FML
parentb7ecfa9984a2a2ec94216a6f862f16e45edd48df (diff)
downloadfml8-0069f7aca7a36b75df43bf7a988527e049f76aa7.tar.gz
fml8-0069f7aca7a36b75df43bf7a988527e049f76aa7.tar.bz2
fml8-0069f7aca7a36b75df43bf7a988527e049f76aa7.zip
switch to new Mail::Message::* framework.
Diffstat (limited to 'fml/lib/FML')
-rw-r--r--fml/lib/FML/Article/Summary.pm41
1 files changed, 19 insertions, 22 deletions
diff --git a/fml/lib/FML/Article/Summary.pm b/fml/lib/FML/Article/Summary.pm
index 52920ccb..1eb91b2b 100644
--- a/fml/lib/FML/Article/Summary.pm
+++ b/fml/lib/FML/Article/Summary.pm
@@ -1,10 +1,10 @@
#-*- perl -*-
#
-# Copyright (C) 2002,2003 Ken'ichi Fukamachi
+# Copyright (C) 2002,2003,2004 Ken'ichi Fukamachi
# All rights reserved. This program is free software; you can
# redistribute it and/or modify it under the same terms as Perl itself.
#
-# $FML: Summary.pm,v 1.16 2003/12/30 08:22:36 fukachan Exp $
+# $FML: Summary.pm,v 1.17 2004/02/04 15:19:13 fukachan Exp $
#
package FML::Article::Summary;
@@ -96,8 +96,9 @@ sub _prepare_info
if (-f $file) {
my $msg = new Mail::Message->parse( { file => $file } );
my $header = $msg->whole_message_header();
- my $address = $header->get( 'from' ) || '';
- my $date_str = $header->get( 'date' ) || '';
+ my $address = $header->get('from') || '';
+ my $date_str = $header->get('date') || '';
+ my $subject = $header->get('subject') || '';
# data -> unix time.
use Mail::Message;
@@ -105,29 +106,25 @@ sub _prepare_info
my $unixtime = $date->as_unixtime();
# log the first 15 bytes of user@domain in From: header field.
- if (defined $address) {
+ if ($address) {
use Mail::Message::Address;
my $addr = new Mail::Message::Address $address;
$addr->clean_up();
$address = $addr->substr(0, $addrlen) || '';
}
- # XXX-TODO $subject->clean_up() ? (object flavour?)
- # XXX-TODO $subject = new FML::Header::Subject $subject_string;
- # XXX-TODO $subject->clean_up();
- use FML::Header::Subject;
- my $subjobj = new FML::Header::Subject;
- my $subject = $subjobj->clean_up($header->get('subject'), $tag);
- $subject =~ s/\s*\n/ /g; # fold "\n".
- $subject =~ s/\s+/ /g;
-
- # XXX-TODO "jis-jp" and "euc-jp" is hard-coded.
- # XXX-TODO: $in_code = subject->code(); $out_code = $config->{ ? }
- use Mail::Message::Encode;
- my $enc = new Mail::Message::Encode;
- $subject = $enc->convert($subject, "jis-jp", "euc-jp");
-
- # XXX-TODO: $address->str() ? $subject->str() ?
+ # de-tag, unfold, and charset conversion.
+ if ($subject) {
+ use Mail::Message::Subject;
+ my $sbj = new Mail::Message::Subject $subject;
+ $sbj->mime_decode();
+ $sbj->unfold();
+ $sbj->delete_tag($tag);
+ $sbj->unfold();
+ $sbj->charcode_convert();
+ $subject = $sbj->as_str();
+ }
+
my $info = {
id => $id,
address => $address,
@@ -293,7 +290,7 @@ Ken'ichi Fukamachi
=head1 COPYRIGHT
-Copyright (C) 2002,2003 Ken'ichi Fukamachi
+Copyright (C) 2002,2003,2004 Ken'ichi Fukamachi
All rights reserved. This program is free software; you can
redistribute it and/or modify it under the same terms as Perl itself.