summaryrefslogtreecommitdiff
path: root/fml/lib/Mail/ThreadTrack/Print
diff options
context:
space:
mode:
authorfukachan <fukachan>2001-11-10 09:04:27 +0000
committerfukachan <fukachan>2001-11-10 09:04:27 +0000
commit59b3fd872ca15e60fc55c7214ef7655e555132bf (patch)
tree6587fe83f2f7d194e0416f65c63c099d221a094d /fml/lib/Mail/ThreadTrack/Print
parent4d9b6032da532bce9f0f27ee504fa2ff05eceb39 (diff)
downloadfml8-59b3fd872ca15e60fc55c7214ef7655e555132bf.tar.gz
fml8-59b3fd872ca15e60fc55c7214ef7655e555132bf.tar.bz2
fml8-59b3fd872ca15e60fc55c7214ef7655e555132bf.zip
clean up summary() mode for both text and html modes.
print() method knows what should it do for text/html mode.
Diffstat (limited to 'fml/lib/Mail/ThreadTrack/Print')
-rw-r--r--fml/lib/Mail/ThreadTrack/Print/HTML.pm129
-rw-r--r--fml/lib/Mail/ThreadTrack/Print/Message.pm47
2 files changed, 54 insertions, 122 deletions
diff --git a/fml/lib/Mail/ThreadTrack/Print/HTML.pm b/fml/lib/Mail/ThreadTrack/Print/HTML.pm
index 41476bc9..2112abcf 100644
--- a/fml/lib/Mail/ThreadTrack/Print/HTML.pm
+++ b/fml/lib/Mail/ThreadTrack/Print/HTML.pm
@@ -6,16 +6,6 @@ use Carp;
use Mail::ThreadTrack::Print::Utils qw(decode_mime_string STR2EUC);
-sub STR2EUC
-{
- my ($str) = @_;
-
- use Jcode;
- &Jcode::convert(\$str, 'euc');
- return $str;
-}
-
-
sub show_articles_for_thread
{
my ($self, $thread_id) = @_;
@@ -23,8 +13,6 @@ sub show_articles_for_thread
my $config = $self->{ _config };
my $spool_dir = $config->{ spool_dir };
- $self->db_open();
-
my $articles = $self->{ _hash_table }->{ _articles }->{ $thread_id };
print "<B>";
@@ -55,46 +43,9 @@ sub show_articles_for_thread
}
print "</PRE>";
-
- $self->db_close();
-}
-
-
-sub cgi_top_menu
-{
- my ($self) = @_;
- my $config = $self->{ _config };
- my $action = 'fmlthread.cgi';
- my $target = $config->{ thread_cgi_target_window } || 'ThreadCGIWindow';
-
- use DirHandle;
- my $dh = new DirHandle $config->{ ml_home_prefix };
- my @dirlist;
- my $prefix = $config->{ ml_home_prefix };
- while ($_ = $dh->read()) {
- next if /^\./;
- next if /^\@/;
- push(@dirlist, $_) if -f "$prefix/$_/config.cf";
- }
- $dh->close;
-
- if ($self->get_mode eq 'html') {
- require 'ctime.pl';
- my $time = ctime(time);
- my $ml_name = $config->{ ml_name };
- print "[$time] the brief summary for \"$ml_name\" ML<BR>";
- }
-
- use CGI qw/:standard/;
- print start_form(-action=>$action, -target=>$target);
- print "mailing list: ",
- popup_menu(-name => 'ml_name', -values => \@dirlist),
- submit(-name => 'go'),
- end_form;
}
-
# This shows summary on C<$thread_id> in HTML language.
# It is used in C<FML::CGI::ThreadSystem>.
sub _show_thread_by_html_table
@@ -108,7 +59,6 @@ sub _show_thread_by_html_table
# printf($fd $format,
# $date, $age, $status, $tid, $rh->{ _articles }->{ $tid });
- my $format = $optargs->{ format };
my $date = $optargs->{ date };
my $age = $optargs->{ age };
my $status = $optargs->{ status };
@@ -125,77 +75,30 @@ sub _show_thread_by_html_table
$action .= "&thread_id=$xtid&article_id=$aid";
print "<TR>\n";
+ print "<TD>$tid\n";
+ print "<TD>";
+
+ # summary
+ if (defined $articles) {
+ $aid = (split(/\s+/, $articles))[0];
+ my $f = File::Spec->catfile($spool_dir, $aid);
+ if (-f $f) {
+ my $buf = $self->message_summary($f);
+ $self->print( STR2EUC($buf) );
+ }
+ }
+
+ print "<TD>$age\n";
+ print "<TD>$status\n";
print "<TD>";
print "<A HREF=\"$action&action=close\" TARGET=\"$target.close\">";
print "[close]</A>\n";
print "<BR>\n";
print "<A HREF=\"$action&action=show\" TARGET=\"$target.show\">";
print "[see articles]</A>\n";
- print "<TD>$date\n";
- print "<TD>$age\n";
- print "<TD>$status\n";
- print "<TD>$tid\n";
- print "<TD>";
-
- $aid = (split(/\s+/, $articles))[0];
- my $buf = $self->_article_summary(File::Spec->catfile($spool_dir, $aid));
- print STR2EUC($buf);
-}
-
-
-=head2 C<run_cgi()>
-
-execute CGI.
-
-=cut
-
-sub run_cgi
-{
- my ($self) = @_;
- my $config = $self->{ _config };
- my $title = $config->{ thread_cgi_title } || 'thread system interface';
- my $color = $config->{ thread_cgi_bgcolor } || '#E6E6FA';
- # XXX $ml_name may change by HTTP request
- $config->{ ml_name } = param('ml_name') if param('ml_name');
-
- # ensure the current mode
- $self->mode('html');
-
- # load standard CGI routines
- use CGI qw/:standard/;
-
- # get action parameter via HTTP
- my $action = param('action') || 'list';
- my $thread_id = param('thread_id');
-
- # o.k start html
- print start_html(-title=>$title,-BGCOLOR=>$color), "\n";
-
- if ($action eq 'close') {
- $self->set_status({
- thread_id => $thread_id,
- status => 'close',
- });
- }
-
- if ($action eq 'show') {
- Log("run.cgi.show_articles for $thread_id");
- $self->show_articles_for_thread($thread_id);
- }
- else {
- # menu at the top of scrren
- $self->cgi_top_menu();
-
- # show summary
- $self->show_summary();
- }
-
- # o.k. end of html
- print end_html;
- print "\n";
+ print "\n\n";
}
1;
-1;
diff --git a/fml/lib/Mail/ThreadTrack/Print/Message.pm b/fml/lib/Mail/ThreadTrack/Print/Message.pm
index af338db1..9b6c448a 100644
--- a/fml/lib/Mail/ThreadTrack/Print/Message.pm
+++ b/fml/lib/Mail/ThreadTrack/Print/Message.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: Message.pm,v 1.1 2001/11/09 11:30:31 fukachan Exp $
+# $FML: Message.pm,v 1.2 2001/11/09 13:30:38 fukachan Exp $
#
package Mail::ThreadTrack::Print::Message;
@@ -110,6 +110,7 @@ sub _delete_subject_tag_like_string
sub header_summary
{
my ($self, $args) = @_;
+ my $date = $args->{ header }->get('date');
my $from = $args->{ header }->get('from');
my $subject = $args->{ header }->get('subject');
my $padding = $args->{ padding };
@@ -117,18 +118,46 @@ sub header_summary
$subject = decode_mime_string($subject, { charset => 'euc-japan' });
$subject =~ s/\n/ /g;
$subject = _delete_subject_tag_like_string($subject);
-
- $from = decode_mime_string($from, { charset => 'euc-japan' });
+ $subject =~ s/[\s\n]*$//g;
+ $from = $self->_who_of_address( $from );
$from =~ s/\n/ /g;
-
- my $br = $self->get_mode eq 'html' ? '<BR>' : '';
+ $from =~ s/[\s\n]*$//g;
# return buffer
- my $r = '';
- $r .= STR2EUC( $padding. " From: ". $from ."$br\n" );
- $r .= STR2EUC( $padding. "Subject: ". $subject ."$br\n" );
+ my $r = $padding. $date;
+ $r .= $padding. "$subject, $from\n";
+ return STR2EUC( $r );
+}
+
- return $r;
+sub _who_of_address
+{
+ my ($self, $address) = @_;
+ my ($user);
+
+ use Mail::Address;
+ my (@addrs) = Mail::Address->parse($address);
+
+ for my $addr (@addrs) {
+ if (defined( $addr->phrase() )) {
+ my $phrase = decode_mime_string( $addr->phrase(), {
+ charset => 'euc-japan',
+ });
+
+ if ($phrase) {
+ return($phrase);
+ }
+ }
+
+ $user = $addr->user();
+ }
+
+ if ($self->get_mode() eq 'html') {
+ return( $user ? "$user\@xxx.xxx.xxx.xxx" : $address );
+ }
+ else {
+ return $address;
+ }
}