strangeworld-mirror/[1999-06-20 - 1999-07-12] REQUIEM (aka RECYCLE)/getlog.txt
mitsudori dce359389d new file: @hi-ho/bbs.cgi
new file:   @hi-ho/getlog.cgi
	new file:   [1999-01-24 - 1999-04-09] REBIRTH (aka Haruna)/bbscgi.txt
	new file:   [1999-01-24 - 1999-04-09] REBIRTH (aka Haruna)/getlogcgi.txt
	new file:   [1999-01-24 - 1999-04-09] REBIRTH (aka Haruna)/locationcgi.txt
	new file:   [1999-05-04 - present] REMIX/bbs.txt
	new file:   [1999-05-04 - present] REMIX/getlog_m.txt
	new file:   [1999-05-04 - present] REMIX/jcode.txt
	new file:   [1999-05-04 - present] REMIX/location.txt
	new file:   [1999-05-04 - present] REMIX/loveyou.dat
	new file:   [1999-06-20 - 1999-07-12] REQUIEM (aka RECYCLE)/bbs.txt
	new file:   [1999-06-20 - 1999-07-12] REQUIEM (aka RECYCLE)/count0.txt
	new file:   [1999-06-20 - 1999-07-12] REQUIEM (aka RECYCLE)/delete.txt
	new file:   [1999-06-20 - 1999-07-12] REQUIEM (aka RECYCLE)/getlog.txt
	new file:   [1999-06-20 - 1999-07-12] REQUIEM (aka RECYCLE)/jcode.txt
	new file:   [1999-06-20 - 1999-07-12] REQUIEM (aka RECYCLE)/location.txt
	new file:   [1999-06-20 - 1999-07-12] REQUIEM (aka RECYCLE)/loveyou.dat
	new file:   [1999-06-20 - 1999-07-12] REQUIEM (aka RECYCLE)/readme.html
	new file:   [1999-06-20 - 1999-07-12] REQUIEM (aka RECYCLE)/update.html
	new file:   [1999-11-03 - 2000-05-02] REFLEX (aka AGStar no Yabou)/bbs.cgi
	new file:   [1999-11-03 - 2000-05-02] REFLEX (aka AGStar no Yabou)/getlog_m.cgi
	new file:   [1999-11-03 - 2000-05-02] REFLEX (aka AGStar no Yabou)/jcode.pl
	new file:   [1999-11-03 - 2000-05-02] REFLEX (aka AGStar no Yabou)/list.cgi
	new file:   [1999-11-03 - 2000-05-02] REFLEX (aka AGStar no Yabou)/loveyou.dat
	new file:   [1999-11-03 - 2000-05-02] REFLEX (aka AGStar no Yabou)/readme.txt
	new file:   source.txt
2024-12-02 16:52:30 -03:00

304 lines
8.4 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#! /usr/local/bin/perl
#はじあや@ふぁみーるのパソヲタさん、本当にありがとう
#--------------------
$body = '<body bgcolor="#004040" text="#ffffff" link="#eeffee" vlink="#dddddd" alink="#ff0000">';
$bbstitle ="あやしいわーるどREQUIEM";
$logdir = './log/';
$cgiurl = 'getlog.cgi';
$action ='getlog';
$bbsurl = './bbs.cgi';
# 日本語コード変換ライブラリjocde.plのパス
require './jcode.pl';
# キーワードの最大文字数(半角)
$keylength = 64;
# 時差 サーバの時計がずれてる時や日本時間以外にしたい時に使う
$tim = 0;
$\ = "\n";
#--------------------
#if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); }
#else { $buffer = $ENV{'QUERY_STRING'}; }
$buffer = $ENV{'QUERY_STRING'};
@argv = split(/&/,$buffer);
foreach (@argv) {
($name, $value) = split(/=/);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
&jcode'convert(*value,'sjis');
$COMMAND{$name} = $value;
}
&error(2) if (length($COMMAND{'keyword'}) > $keylength);
&viewlog if ($COMMAND{'action'} eq "$action");
&list;
sub list {
&error(0) if(!opendir(DIR, $logdir));
@files=readdir(DIR);
closedir(DIR);
@files = sort by_number @files;
$end = @files;
$end--;
print "Content-type: text/html\n\n";
print "<html><head><title>$bbstitle 過去ログ</title></head>\n";
print "<form method=get action=\"$cgiurl\">";
print "$body\n";
#&location;
print "<center><font size=+1><b>$bbstitle 過去ログ一覧</b></font><br>\n";
print "<input type=hidden name=\"action\" value=\"$action\">";
print "<table>";
print "<tr><td></td><td>ファイル名</td><td align=right>サイズ</td><td align=center>日付</td></tr>";
foreach (0 .. $end) {
if (!($files[$_] eq "." or $files[$_] eq "..")) {
($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks) = stat "$logdir$files[$_]";
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = gmtime($mtime + 32400 + $tim);
$mon++;
$mon = "0$mon" if ($mon < 10);
if ($mday < 10) { $mday = "0$mday"; }
if ($min < 10) { $min = "0$min"; }
if ($hour < 10) { $hour = "0$hour"; }
$checked = ' checked' if ($_ == $end);
print "<tr><td><input type=\"radio\" name=\"logfile\" value=\"$files[$_]\"$checked></td>";
print "<td><a href=\"$logdir$files[$_]\">$files[$_]</a></td>";
print "<td align=right>$size</td><td align=center>$mon/$mday $hour:$min</td></tr>";
}
}
print "<tr><td></td></tr><tr><td colspan=4>※ラジオボタンでファイル名を指定してください。</td></tr><tr><td></td></tr>\n";
print "<tr><td colspan=4><select name=\"hour1\">";
print "<option value=\"00\">0";
print "<option value=\"01\">1";
print "<option value=\"02\">2";
print "<option value=\"03\">3";
print "<option value=\"04\">4";
print "<option value=\"05\">5";
print "<option value=\"06\">6";
print "<option value=\"07\">7";
print "<option value=\"08\">8";
print "<option value=\"09\">9";
print "<option value=\"10\">10";
print "<option value=\"11\">11";
print "<option value=\"12\">12";
print "<option value=\"13\">13";
print "<option value=\"14\">14";
print "<option value=\"15\">15";
print "<option value=\"16\">16";
print "<option value=\"17\">17";
print "<option value=\"18\">18";
print "<option value=\"19\">19";
print "<option value=\"20\">20";
print "<option value=\"21\">21";
print "<option value=\"22\">22";
print "<option value=\"23\">23";
print "</select>時";
print"<select name=\"min1\">";
print "<option value=\"00\">00";
print "<option value=\"05\">05";
print "<option value=\"10\">10";
print "<option value=\"15\">15";
print "<option value=\"20\">20";
print "<option value=\"25\">25";
print "<option value=\"30\">30";
print "<option value=\"35\">35";
print "<option value=\"40\">40";
print "<option value=\"45\">45";
print "<option value=\"50\">50";
print "<option value=\"55\">55";
print "</select>分から";
print "<select name=\"hour2\">";
print "<option value=\"24\">24";
print "<option value=\"00\">0";
print "<option value=\"01\">1";
print "<option value=\"02\">2";
print "<option value=\"03\">3";
print "<option value=\"04\">4";
print "<option value=\"05\">5";
print "<option value=\"06\">6";
print "<option value=\"07\">7";
print "<option value=\"08\">8";
print "<option value=\"09\">9";
print "<option value=\"10\">10";
print "<option value=\"11\">11";
print "<option value=\"12\">12";
print "<option value=\"13\">13";
print "<option value=\"14\">14";
print "<option value=\"15\">15";
print "<option value=\"16\">16";
print "<option value=\"17\">17";
print "<option value=\"18\">18";
print "<option value=\"19\">19";
print "<option value=\"20\">20";
print "<option value=\"21\">21";
print "<option value=\"22\">22";
print "<option value=\"23\">23";
print "</select>時";
print"<select name=\"min2\">";
print "<option value=\"00\">00";
print "<option value=\"05\">05";
print "<option value=\"10\">10";
print "<option value=\"15\">15";
print "<option value=\"20\">20";
print "<option value=\"25\">25";
print "<option value=\"30\">30";
print "<option value=\"35\">35";
print "<option value=\"40\">40";
print "<option value=\"45\">45";
print "<option value=\"50\">50";
print "<option value=\"55\">55";
print "</select>分まで";
print "</td></tr><br>";
print " <tr><td colspan=4>検索:";
print "<select name=\"searchmode\">";
print "<option value=\"keyword\">全文";
print "<option value=\"name\">投稿者名";
print "<option value=\"subject\">題名\n</select>";
print "<input type=text name=\"keyword\" size=\"24\" maxlength=$keylength></td></tr><tr><td colspan=4 align=center>";
print "<input type=submit value=\"Get / Search\"></form></td></tr>";
print "</table>";
print "<hr>";
#print "現在ベータテスト中です。バグを見つけたら掲示板に書いてね";
print "<p align=center><a href=\"$bbsurl\">掲示板へ</a></p>";
print "<h4 align=right><a href=\"http://logshonin.virtualave.net/\">Getlog Ver0.3b4</a></h4>";
print "</body></html>";
}
sub viewlog {
if (!open(DB,"$logdir$COMMAND{'logfile'}")) { &error(1); }
@lines = <DB>;
close(DB);
$COMMAND{'last'} = $COMMAND{'first'} + 1 if ($COMMAND{'first'} >= $COMMAND{'last'});
$first = "$COMMAND{'hour1'}時$COMMAND{'min1'}分";
$last = "$COMMAND{'hour2'}時$COMMAND{'min2'}分";
if ($COMMAND{'searchmode'} eq 'name') { $keyword = "投稿者:.*>${COMMAND{'keyword'}}<"; }
elsif ($COMMAND{'searchmode'} eq 'subject') { $keyword = "color=\"#ffffee\"><b>${COMMAND{'keyword'}}</b></font>"; }
else { $keyword = $COMMAND{'keyword'}; }
if ($keyword ne '') {
$keyword =~ s/\\/\\\\/;
$keyword =~ s/\[/\\[/;
}
print "Content-type: text/html\n";
print "<html><head><title>$bbstitle 過去ログ $COMMAND{'logfile'}</title></head>";
print "$body";
print "<h1>$COMMAND{'logfile'} $first$last</h1>";
$end = @lines;
$end--;
foreach (0 .. $end) {
# MiniBBS7.5あやしいわーるど仕様
if ($lines[$_] =~ /<font size=-1> 投稿日:/) {
$hour = substr( $lines[$_], 36, 8 );
# あやしいわーるど@ふぁみーる オリジナル掲示板スクリプト
# if ($lines[$_] =~ /<font size="-1"> 投稿日:/) {
# $hour = substr( $lines[$_], 40, 8 );
last if ($hour ge "$first");
}
$skip++;
}
$skip--;
#print"<hr>";
foreach ($skip .. $end) {
# MiniBBS7.5あやしいわーるど仕様
if ($lines[$_] =~ /<font size=-1> 投稿日:/) {
$hour = substr( $lines[$_], 36, 8 );
# あやしいわーるど@ふぁみーる オリジナル掲示板スクリプト
# if ($lines[$_] =~ /<font size="-1"> 投稿日:/) {
# $hour = substr( $lines[$_], 40, 8 );
last if ($hour ge "$last");
}
if ($keyword ne '') {
if ($lines[$_] =~ /$keyword/) {
$flag = 1;
$hit++;
}
push( @article, $lines[$_] );
if ($lines[$_] =~ /<\/blockquote>/) {
print @article if ($flag > 0);
splice( @article, 0 );
$flag = 0;
}
}
else { print $lines[$_]; }
}
if ($COMMAND{'keyword'} ne '') {
print "<hr>";
if ( $hit > 0 ) { print "<h3>「$COMMAND{'keyword'}」は $hit件見つかりました。</h3>"; }
else { print "<h3>「$COMMAND{'keyword'}」は見つかりませんでした。</h3>"; }
}
print "</body></html>";
exit;
}
sub error {
$error = $_[0];
if ($error == 0) { $errmsg = 'ディレクトリが開けませんでした。'; }
if ($error == 1) { $errmsg = 'ファイルが開けませんでした。'; }
if ($error == 2) { $errmsg = 'キーワードが長すぎます。'; }
print "Content-type: text/html\n";
print "<html><head><title>エラー</title></head>";
print "$body";
print "<h1>$errmsg</h1>";
print "</body></html>";
exit;
}
sub by_number {
$a <=> $b;
}
sub location {
print <<"EOF";
<center>
<font size=+1><b>$bbstitle 過去ログ一覧</b></font>
EOF
}