diff options
| author | fukachan <fukachan> | 2001-11-10 09:04:27 +0000 |
|---|---|---|
| committer | fukachan <fukachan> | 2001-11-10 09:04:27 +0000 |
| commit | 59b3fd872ca15e60fc55c7214ef7655e555132bf (patch) | |
| tree | 6587fe83f2f7d194e0416f65c63c099d221a094d /fml/lib/Mail/ThreadTrack/Print | |
| parent | 4d9b6032da532bce9f0f27ee504fa2ff05eceb39 (diff) | |
| download | fml8-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.pm | 129 | ||||
| -rw-r--r-- | fml/lib/Mail/ThreadTrack/Print/Message.pm | 47 |
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; + } } |
