summaryrefslogtreecommitdiff
path: root/fml/lib/FML
diff options
context:
space:
mode:
authorfukachan <fukachan>2004-02-04 15:19:13 +0000
committerfukachan <fukachan>2004-02-04 15:19:13 +0000
commita3c3165ca9c406afca9dc23dd61be6ef98ad50d5 (patch)
treee763b397255735ff8f498ffa11c2611d38dea019 /fml/lib/FML
parent170ed1de67f1afc6e52951953d6d45f4ac8bcba1 (diff)
downloadfml8-a3c3165ca9c406afca9dc23dd61be6ef98ad50d5.tar.gz
fml8-a3c3165ca9c406afca9dc23dd61be6ef98ad50d5.tar.bz2
fml8-a3c3165ca9c406afca9dc23dd61be6ef98ad50d5.zip
modified to use new Mail::Message::* framekwork.
Diffstat (limited to 'fml/lib/FML')
-rw-r--r--fml/lib/FML/Article/Summary.pm29
-rw-r--r--fml/lib/FML/Header.pm38
2 files changed, 48 insertions, 19 deletions
diff --git a/fml/lib/FML/Article/Summary.pm b/fml/lib/FML/Article/Summary.pm
index 911622b1..52920ccb 100644
--- a/fml/lib/FML/Article/Summary.pm
+++ b/fml/lib/FML/Article/Summary.pm
@@ -4,7 +4,7 @@
# 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.15 2003/10/18 05:07:41 fukachan Exp $
+# $FML: Summary.pm,v 1.16 2003/12/30 08:22:36 fukachan Exp $
#
package FML::Article::Summary;
@@ -87,36 +87,29 @@ sub _prepare_info
$article = $self->{ _article };
}
else {
- # XXX-TODO: why we run "new FML::Article" here?
- # XXX-TODO: how do we know if this $article is proper (e.g. latest)?
- # XXX-TODO: we should use e.g. $curproc->last_article() ?
+ # XXX we need article object to use $article->filepath() mthod.
use FML::Article;
$article = new FML::Article $curproc;
}
my $file = $article->filepath($id);
if (-f $file) {
- use Mail::Message;
my $msg = new Mail::Message->parse( { file => $file } );
my $header = $msg->whole_message_header();
my $address = $header->get( 'from' ) || '';
- my $date = $header->get( 'date' ) || '';
+ my $date_str = $header->get( 'date' ) || '';
- # XXX-TODO: not object-flavor,
- # XXX-TODO: $date = new Mail::Message::Date;
- # XXX-TODO: $date->set("Tue Dec 30 17:06:34 JST 2003");
- # XXX-TODO: $date->to_unixtime();
- my $obj = new Mail::Message::Date;
- my $unixtime = $obj->date_to_unixtime( $date );
+ # data -> unix time.
+ use Mail::Message;
+ my $date = new Mail::Message::Date $date_str;
+ my $unixtime = $date->as_unixtime();
# log the first 15 bytes of user@domain in From: header field.
if (defined $address) {
- # XXX-TODO: implement FML::Address class
- # XXX-TODO: $addr = FML::Address $from; $addr->cleanup().
- use FML::Header;
- my $hdr = new FML::Header;
- my $addr = $hdr->address_clean_up($address);
- $address = defined $addr ? substr($addr, 0, $addrlen) : '';
+ 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?)
diff --git a/fml/lib/FML/Header.pm b/fml/lib/FML/Header.pm
index f1071ee8..79592bcb 100644
--- a/fml/lib/FML/Header.pm
+++ b/fml/lib/FML/Header.pm
@@ -4,7 +4,7 @@
# All rights reserved. This program is free software; you can
# redistribute it and/or modify it under the same terms as Perl itself.
#
-# $FML: Header.pm,v 1.68 2004/01/21 03:49:14 fukachan Exp $
+# $FML: Header.pm,v 1.69 2004/01/22 12:34:21 fukachan Exp $
#
package FML::Header;
@@ -415,6 +415,42 @@ replace original C<Received:> to C<X-Received:>.
sub rewrite_article_subject_tag
{
my ($header, $config, $rw_args) = @_;
+ my $tag = $config->{ article_subject_tag };
+
+ # XXX-TODO: need $article_subject_tag expaned already e.g. "\Lmlname\E"
+ # XXX-TODO: we should include this exapansion method within this module?
+ use Mail::Message::Subject;
+ my $str = $header->get('subject');
+ my $sbj = new Mail::Message::Subject $str;
+
+ # mime decode
+ $sbj->mime_decode();
+
+ # de-tag and cut off Re: Re: Re: ... (duplicated reply tag).
+ $sbj->delete_dup_reply_tag() if $sbj->has_reply_tag();
+ $sbj->delete_tag($tag);
+ $sbj->delete_dup_reply_tag() if $sbj->has_reply_tag();
+
+ # add(prepend) the rewrited tag with mime encoding.
+ my $new_tag = sprintf($tag, $rw_args->{ id });
+ my $new_sbj = sprintf("%s %s", $new_tag, $sbj->as_str());
+
+ # update object.
+ $sbj->set($new_sbj);
+
+ # mime encode and replace subject field.
+ $sbj->mime_encode();
+ $header->replace('Subject', $sbj->as_str());
+}
+
+
+# Descriptions: rewrite subject if needed.
+# Arguments: OBJ($header) OBJ($config) HASH_REF($rw_args)
+# Side Effects: update $header
+# Return Value: none
+sub rewrite_article_subject_tag_orig
+{
+ my ($header, $config, $rw_args) = @_;
my $pkg = "FML::Header::Subject";
eval qq{ use $pkg;};