[w3m-dev 03635] 2ch.cgi

* Bonus/2ch.cgi: added
* Bonus/README: update
From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
This commit is contained in:
Fumitoshi UKAI
2003-01-11 16:12:44 +00:00
parent 43a13e6fa5
commit bc0a1c7136
3 changed files with 152 additions and 1 deletions

134
Bonus/2ch.cgi Executable file
View File

@@ -0,0 +1,134 @@
#!/usr/bin/perl
$WGET = "wget";
$SCRIPT_NAME = $ENV{'SCRIPT_NAME'} || $0;
$CGI = "file://$SCRIPT_NAME";
$_ = $QUERY_STRING = $ENV{"QUERY_STRING"};
if (/subback.html$/) {
&subback();
exit;
}
s@(/\d+)(/([^/]*))?$@$1@ || exit;
$label = $3;
$cgi = "$CGI?$_";
s@^http://([^/]+)/test/read.cgi/([^/]+)/@$1/$2/dat/@ || exit;
$subback = "$CGI?http://$1/$2/subback.html";
$_ .= ".dat";
$dat = "http://$_";
$tmp = $ENV{"HOME"} . "/.w3m2ch/$_";
$dat =~ s/([^\w\/.\:\-])/\\$1/g;
$tmp =~ s/([^\w\/.\:\-])/\\$1/g;
($dir = $tmp) =~ s@/[^/]+$@@;
$cmd = "mkdir -p $dir; $WGET -c -O $tmp $dat >/dev/null 2>&1";
system $cmd;
$lines = (split(" ", `wc $tmp`))[0];
$lines || exit;
@ARGV = ($tmp);
if ($label =~ /^l(\d+)/) {
$start = $lines - $1 + 1;
if ($start < 1) {
$start = 1;
}
$end = $lines;
} elsif ($label =~ /^(\d+)-(\d+)/) {
$start = $1;
$end = $2;
} elsif ($label =~ /^(\d+)-/) {
$start = $1;
$end = $start + 100 - 1;
} elsif ($label =~ /^(\d+)/) {
$start = $1;
$end = $1;
} else {
$start = 1;
$end = $lines;
}
$head = "<a href=\"$subback\"><3E><><EFBFBD>f<EFBFBD><66><EFBFBD>‚ɖ߂遡</a>\n";
$head .= "<a href=\"$cgi/\"><3E>S<EFBFBD><53></a>\n";
for (0 .. ($lines - 1) / 100) {
$n = $_ * 100 + 1;
$head .= "<a href=\"$cgi/$n-\">$n-</a>\n";
}
$head .= "<a href=\"$cgi/l50\"><3E>ŐV50</a>\n";
print <<EOF;
Content-Type: text/html
EOF
$i = 1;
while (<>) {
s/\r?\n$//;
($name, $mail, $date, $_, $title) = split(/\<\>/);
if ($i == 1) {
if (!$title) {
print <<EOF;
<EFBFBD><EFBFBD><EFBFBD>̃X<EFBFBD><EFBFBD><EFBFBD>b<EFBFBD>h<EFBFBD>͉ߋ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>O<EFBFBD>q<EFBFBD>ɂɊi<EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482>܂<EFBFBD><DC82>B
<p>
<a href="$QUERY_STRING">$QUERY_STRING</a>
EOF
unlink($tmp);
exit
}
print <<EOF;
<title>$title</title>
$head
<p>$title</p>
<dl>
EOF
}
if ($mail) {
$name = "<a href=\"mailto:$mail\">$name</a>";
}
s@http://ime.nu/@http://@g;
s@(h?ttp:)([#-~]+)@"<a href=\"" . &link("http:$2") . "\">$1$2</a>"@ge;
s@(ftp:[#-~]+)@<a href="$1">$1</a>@g;
s@<a href="../test/read.cgi/\w+/\d+/@<a href="$cgi/@g;
if ($i == 1 || ($i >= $start && $i <= $end)) {
print <<EOF;
<dt><a name="$i">$i</a> <20>F$name<6D>F$date
<dd>
$_
<p>
EOF
}
$i++;
}
print <<EOF;
</dl>
<hr>
EOF
sub link {
local($_) = @_;
if (m@/test/read.cgi/@) {
return "$CGI?$_";
}
return $_;
}
sub subback {
$dat = $_;
s@http://@@ || exit;
$tmp = $ENV{"HOME"} . "/.w3m2ch/$_";
$dat =~ s/([^\w\/.\:\-])/\\$1/g;
$tmp =~ s/([^\w\/.\:\-])/\\$1/g;
($dir = $tmp) =~ s@/[^/]+$@@;
$cmd = "mkdir -p $dir; $WGET -O $tmp $dat >/dev/null 2>&1";
system $cmd;
print <<EOF;
Content-Type: text/html
EOF
@ARGV = ($tmp);
while (<>) {
if (/<base href="([^"]+)"/) {
$base = $1;
} elsif ($base) {
s@^<a href="@<a href="$CGI?$base@;
}
print;
}
unlink($tmp);
}

View File

@@ -1,3 +1,14 @@
2ch.cgi
[w3m-dev 03635] 2ch.cgi
2ch <20><> dat <20><>ľ<EFBFBD>ɤߤ<C9A4><DFA4><EFBFBD> local CGI <20>Ǥ<EFBFBD><C7A4><EFBFBD>
w3m file:/cgi-bin/2ch.cgi?http://pc.2ch.net/test/read.cgi/unix/1035755937/
wget <20>κ<EFBFBD>ʬž<CAAC><C5BE>(-c)<29><><EFBFBD>Ȥ<EFBFBD><C8A4>ޤ<EFBFBD><DEA4><EFBFBD>
<20>ɤ<EFBFBD><C9A4><EFBFBD> dat <20><> ~/.w3m2ch/ <20>ʲ<EFBFBD><CAB2><EFBFBD><EFBFBD><EFBFBD>¸<EFBFBD><C2B8><EFBFBD>ޤ<EFBFBD><DEA4><EFBFBD>
<20>񤭹<EFBFBD><F1A4ADB9>ߤϤǤ<CFA4><C7A4>ޤ<EFBFBD><DEA4><EFBFBD><EFBFBD><EFBFBD>
smb.cgi
[w3m-dev 03634] smb.cgi

View File

@@ -1,3 +1,9 @@
2003-01-12 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 03635] 2ch.cgi
* Bonus/2ch.cgi: added
* Bonus/README: update
2003-01-12 Fumitoshi UKAI <ukai@debian.or.jp>
* Bonus/README.eng: sync with Bonus/README
@@ -6388,4 +6394,4 @@ a * [w3m-dev 03276] compile error on EWS4800
* release-0-2-1
* import w3m-0.2.1
$Id: ChangeLog,v 1.676 2003/01/11 16:10:11 ukai Exp $
$Id: ChangeLog,v 1.677 2003/01/11 16:12:44 ukai Exp $