From bc0a1c71364fe141c6190d30fca321fb6ed115f5 Mon Sep 17 00:00:00 2001 From: Fumitoshi UKAI Date: Sat, 11 Jan 2003 16:12:44 +0000 Subject: [w3m-dev 03635] 2ch.cgi * Bonus/2ch.cgi: added * Bonus/README: update From: Hironori SAKAMOTO --- Bonus/2ch.cgi | 134 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Bonus/README | 11 +++++ ChangeLog | 8 +++- 3 files changed, 152 insertions(+), 1 deletion(-) create mode 100755 Bonus/2ch.cgi diff --git a/Bonus/2ch.cgi b/Bonus/2ch.cgi new file mode 100755 index 0000000..392fb22 --- /dev/null +++ b/Bonus/2ch.cgi @@ -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 = "■掲示板に戻る■\n"; +$head .= "全部\n"; +for (0 .. ($lines - 1) / 100) { + $n = $_ * 100 + 1; + $head .= "$n-\n"; +} +$head .= "最新50\n"; +print <) { + s/\r?\n$//; + ($name, $mail, $date, $_, $title) = split(/\<\>/); + if ($i == 1) { + if (!$title) { + print < +$QUERY_STRING +EOF + unlink($tmp); + exit + } + print <$title +$head +

$title

+
+EOF + } + if ($mail) { + $name = "$name"; + } + s@http://ime.nu/@http://@g; + s@(h?ttp:)([#-~]+)@"$1$2"@ge; + s@(ftp:[#-~]+)@$1@g; + s@= $start && $i <= $end)) { + print <$i :$name:$date +
+$_ +

+EOF + } + $i++; +} +print < +


+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 <) { + if (/ + + * [w3m-dev 03635] 2ch.cgi + * Bonus/2ch.cgi: added + * Bonus/README: update + 2003-01-12 Fumitoshi UKAI * 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 $ -- cgit v1.2.3