Apache-NNTPGateway
view release on metacpan or search on metacpan
NNTPGateway.pm view on Meta::CPAN
# Print html header
&print_html_head( $r, 1 );
# Print menu
&print_html_menu( $r );
$r->print( "\n<hr noshade>\n" );
# Just Inform user
$r->print
(
"<h2 align=\"center\">${NewsUrl}<br>\n<font color=\"red\">",
&message( 'catchup_at', scalar( localtime( $catchupdate ))),
"</font></h2>\n",
"<div align=\"center\">[<a href=\"${Base}/list?force=1\">",
&message( 'list_all' ),
"</a>]</div>\n"
);
# Print menu
$r->print( "\n<hr noshade>\n" );
&print_html_menu( $r );
# Print html footer
&print_html_foot( $r );
NNTPGateway.pm view on Meta::CPAN
my $id = $A->{Id};
$r->print( "\n<!-- article $id -->\n" );
if ( $header_only && $fullheaders ) {
# Print one line only article but with some more headers
$r->print
(
"<table width=\"100%\">\n",
"\t<tr>\n",
"\t<td bgcolor=\"$HEADER_BGCOLOR2\" width=\"15%\">\n",
"\t\t<font size=\"-1\"><a name=\"__${id}__\">${id}</a>: ",
"[<a href=\"${Base}/read/${id}\">", &message('read'), "</a>]",
"[<a href=\"${Base}/followup/${id}\">", &message('followup'), "</a>]",
"</font></td>\n",
"\t<td bgcolor=\"$HEADER_BGCOLOR1\" align=\"center\" width=\"30%\">\n",
"\t\t",
"<span class=\"$article_date_class\"><font size=\"-1\"><em>", $A->{Header}{date}, "</em></font></span>",
"</td>\n",
"\t<td bgcolor=\"$HEADER_BGCOLOR1\" align=\"center\">\n",
"\t\t<font size=\"-1\"><em><a href=\"mailto:", $A->{Header}{_from_email}, "\">",
"<span class=\"$article_from_class\"><strong>", $A->{Header}{_from_name}, "</strong></span>",
"</a></em></font></td>\n",
"\t</tr>\n",
"\t<tr>\n",
"\t<td align=\"right\" width=\"15%\"><font size=\"-1\"><em>",
$A->{Header}{lines}, " lines</em></font> </td>\n",
"\t<td colspan=\"2\" bgcolor=\"$BODY_BGCOLOR\"> "<a href=\"${Base}/read/${id}\">",
"<span class=\"$article_subject_class\">", $A->{Header}{_subject_html}, "</span>",
"</a>"</td>\n",
"\t</tr></table>\n",
);
} elsif ( $header_only ) {
# Print one line only article
$r->print
(
"<div class=\"$article_class\">",
"<span class=\"$article_id_class\"><strong><a name=\"__${id}__\">$id</a></strong></span>",
": "<a href=\"${Base}/read/${id}\">",
"<span class=\"$article_subject_class\"><em>", $A->{Header}{_subject_html}, "</em></span>",
"</a>" ", lc(&message('from')), " ",
"<<a href=\"mailto:", $A->{Header}{_from_email}, "\">",
"<span class=\"$article_from_class\"><font size=\"-1\">", $A->{Header}{_from_name}, "</font></span>",
"</a>><br>",
"</div>\n",
);
} else {
# Print the full article
$r->print( "<table width=\"100%\"><a name=\"__${id}__\"> </a>\n", );
&print_html_article_menu( $r, $A, 1 );
$r->print
NNTPGateway.pm view on Meta::CPAN
(
"\t<tr>\n",
"\t<td><em><u>$_</u>:</em></td>\n",
"\t<td bgcolor=\"$HEADER_BGCOLOR2\">", $A->{Header}{$_}, "</td>\n",
"\t</tr>\n",
);
}
$r->print
(
"\t<tr>\n",
"\t<td colspan=\"2\"><font size=\"-1\">",
"[<a href=\"${Base}/read/${id}?headers=min\">", &message('nofullheaders'), "</a>]",
"</font></td>\n",
"\t</tr>\n",
);
} else {
$r->print
(
"\t<tr>\n",
"\t<td colspan=\"2\"><font size=\"-1\">",
"[<a href=\"${Base}/read/${id}?headers=max\">", &message('fullheaders'), "</a>]",
"</font></td>\n",
"\t</tr>\n",
);
}
# The body here ...
$r->print
(
"\t<tr>\n",
"\t<td colspan=\"2\"><hr><pre><font size=\"+1\">", $A->{Body}, "</font></pre>\n",
);
# The .sig ...
if ( $A->{Signature} ) {
if ( $showsig ) {
$r->print( "<a href=\"${Base}/read/${id}?showsig=0\">--</a>\n" );
$r->print( "<pre><font size=\"-1\" color=\"white\"><i>", $A->{Signature}, "</i></font></pre>\n" );
} else {
$r->print( "<a href=\"${Base}/read/${id}?showsig=1\"><b>--</b></a>\n" );
}
}
$r->print( "<hr></td>\n\t</tr>\n" );
&print_html_article_menu( $r, $A, 1 );
$r->print( "</table>\n" );
}
NNTPGateway.pm view on Meta::CPAN
###
sub print_html_article_menu ( $$\$ ) {
my ($r, $A, $table) = @_;
my $id = $A->{Id};
$r->print
(
"\t<tr>\n",
"\t<td><u>Article Id</u>: <strong>$id</strong>:</td>\n",
"\t<td bgcolor=\"$MENU_BGCOLOR\">\n",
) if $table;
$r->print( "\t\t<font color=\"blue\" size=\"-1\">\n" );
unless ( $Disabled_Actions{'read'} ) {
if ( $A->{Header}{_prev} ) {
$r->print( "\t\t<<a href=\"${Base}/read/", $A->{Header}{_prev}, "\">",
&message('prev'), "</a><\n" );
} else {
$r->print( "\t\t<<em>", &message('prev'), "</em><\n" );
}
}
$r->print(
"\t\t[<a href=\"${Base}/followup/${id}\">",
NNTPGateway.pm view on Meta::CPAN
&message('list'), "</a>]\n",
) unless $Disabled_Actions{'list'};
unless ( $Disabled_Actions{'read'} ) {
if ( $A->{Header}{_next} ) {
$r->print( "\t\t><a href=\"${Base}/read/", $A->{Header}{_next}, "\">",
&message('next'), "</a>>\n" );
} else {
$r->print( "\t\t><em>", &message('next'), "</em>>\n" );
}
}
$r->print( "\t</font>\n" );
$r->print
(
"\t</td>\n",
"\t</tr>\n",
) if $table;
return;
} # end print_html_article_menu();
NNTPGateway.pm view on Meta::CPAN
my $force = &is_true( $Args->{force} );
my $long_arg = $long?"long=1":"long=0";
my $force_arg = $force?"force=1":"force=0";
$r->print( "\n<table width=\"100%\" align=\"center\"><tr><td width=\"20%\">" );
if ( $force && $n_arts > 0 ) {
$r->print( "<strong>$n_arts articles<strong>" );
} elsif ( $n_arts > 0 ) {
$r->print( "<strong>", &message( 'n_unread', $n_arts ), "</strong>" );
} else {
$r->print( "<font color=\"red\">", &message( 'no_unread' ), "</font>" );
}
$r->print( "</td><td align=\"center\" bgcolor=\"$MENU_BGCOLOR\"> " );
if ( $n_arts > 0 ) {
if ( $long ) {
$r->print( "[<a href=\"${Base}/list?long=0&${force_arg}\">", &message( 'short_format' ), "</a>] \n" );
} else {
$r->print( "[<a href=\"${Base}/list?long=1&${force_arg}\">", &message( 'long_format' ), "</a>] \n" );
}
}
if ( $force & $n_arts <= 0 ) {
$r->print( "<font color=\"red\">", &message( 'no_arts' ), "<font>" );
} elsif ( $force ) {
$r->print( "[<a href=\"${Base}/list?force=0&${long_arg}\">", &message( 'list_new' ), "</a>] \n" );
} else {
$r->print( "[<a href=\"${Base}/list?force=1&${long_arg}\">", &message( 'list_all' ), "</a>] \n" );
}
if ( $n_arts > 0 ) {
$r->print( "[<a href=\"${Base}/catchup\">Catchup</a>] \n" ) unless $Disabled_Actions{catchup};
}
$r->print( "</td>\n</tr></table>\n" );
NNTPGateway.pm view on Meta::CPAN
# - Arguments :
# - Return :
###
sub print_html_post_form ( $\$$$ ) {
my ($r, $subject, $body, $refs) = @_;
$r->print(
"<table width=\"100%\">\n",
"\t<form method=\"POST\" action=\"${Base}/post\">\n",
"\t<tr>\n",
"\t<td> </td>\n",
"\t<td><font size=\"-1\" color=\"red\"><strong>", &message('all_fields'), "</strong></font></td>\n",
"\t</tr>\n",
);
$r->print( "<input type=\"hidden\" name=\"refs\" value=\"$refs\">" ) if $refs;
# Build a choice of From
$r->print(
"\t<tr>\n",
"\t<td width=\"5%\"><strong><u>", &message('from'), "</u>:</strong></td>\n",
"\t<td bgcolor=\"$HEADER_BGCOLOR2\"><select name=\"from\">",
);
foreach (keys %From_Posters) {
NNTPGateway.pm view on Meta::CPAN
$r->print(
"\n\n${HTML_DTD}\n",
"<html>\n",
"<head>\n",
"<title>${title}</title>\n",
$StyleSheet?"<LINK REL=StyleSheet HREF=\"$StyleSheet\" TYPE=\"text/css\">":"<!-- no StyleSheet -->",
"</head>\n",
"<body bgcolor=\"$BODY_BGCOLOR\">\n",
"<a name=\"TOP\"> </a>\n",
"<hr noshade>\n",
"<div align=\"right\" class=\"head\"><font size=\"-1\">\n",
"\t<a href=\"$Base\">$PKG_NAME</a> \@ <a href=\"$NewsUrl\">$NewsUrl</a>\n",
"</font></div>\n",
"<h1 align=\"right\" class=\"title\"><a href=\"$Base\">${title}</a></h1>\n",
);
$r->print( "<h3 align=\"right\">($The_GroupDescription)</h3>\n" ) if $The_GroupDescription;
return;
} # end print_html_head();
NNTPGateway.pm view on Meta::CPAN
sub print_html_menu ( $\$ ) {
my ($r, $action) = @_;
$action ||= $The_Action;
$r->print( "\n<table width=\"100%\" align=\"center\"><tr><td bgcolor=\"$MENU_BGCOLOR\" align=\"center\">" );
foreach ( keys %Actions_Map ) {
next unless $Menu_Entries_Map{$_};
next if $Disabled_Actions{$_};
my $Aname = &message($_);
$Aname = $_ =~ s/^([a-z]{1,1})/uc( $1 )/e unless $Aname;
if ( $_ eq $action ) {
$r->print( "<font color=\"red\">[ ${Aname} ]</font>" );
} else {
$r->print( "<font color=\"blue\">[ <a href=\"${Base}/$_\">${Aname}</a> ]</font>" );
}
}
$r->print( "</td></tr></table>\n" );
return;
} # end print_html_menu();
### Sub print_html_error() ###
# $ret = &print_html_error( args ):
# - Description:
# - Arguments :
# - Return :
###
sub print_html_error ( $\$$$ ) {
my ($r, $h1, $err, $msg) = @_;
$h1 ||= &message('error');
$r->print(
"<h1 align=\"center\">$h1</h1>\n<p>",
$err?"<div align=\"center\" class=\"error\"><font color=\"red\"><strong>$err</strong></font></div><p>\n":"",
);
return;
} # end print_html_error();
### Sub to_html() ###
# $ret = &to_html( args ):
# - Description:
# - Arguments :
NNTPGateway.pm view on Meta::CPAN
# - Arguments :
# - Return :
###
sub print_nntp_error ( $$ ) {
my ($r, $err) = @_;
$r->log->warn( "${Base} NNTP Error: $err" );
&print_html_head( $r );
&print_html_error( $r, "NNTP Error \@ $NewsUrl", $err );
$r->print
(
"<div align=\"center\"><font color=\"red\">",
"[<a href=\"", $r->subprocess_env('SCRIPT_URL'), "\">", &message('try_again'), "</a>]",
"</font></div>\n",
);
&print_html_foot( $r );
return;
} # end print_nntp_error();
# Utilities ---------------------------------------------------------
( run in 1.320 second using v1.01-cache-2.11-cpan-5735350b133 )