#!/usr/bin/perl
eval 'exec /usr/local/bin/perl -S $0 ${1+"$@"}'
if $running_under_some_shell;
require 'jcode.pl';
require 'find.pl';
%form=&get_form;
&find('.');
@img=sort(@img);
if ($form{TYPE}=~/^list$/i) {
print "Content-type: text/html\n\n";
print "\n";
print "
Thumb nails\n\n";
print "\n";
print "\n";
foreach $i (@img) {
print "\n";
}
print "\n";
print "\n\n";
exit;
} elsif ($form{TYPE}=~/^frame$/i) {
print "Content-type: text/html\n\n";
print "\n";
exit;
}
@l=search_link($form{IMG});
print "Content-type: text/html\n\n";
print "\n";
print "" . &basename($l[1]) . "\n" if ($l[1] ne '');
print "\n";
print "\n";
if ($l[0] ne '') {
print "<<Prev";
} else {
print "<<Prev";
}
print "||";
print "Up";
print "||";
if ($l[2] ne '') {
print "Next>>";
} else {
print "Next>>";
}
print "
\n";
print "\n";
print "\n";
print "\n\n";
exit;
sub basename {
local($_)=@_;
$_=$1 if m#([^/]+/)\s*$#;
$_=$1 if m#([^/]+)(\.s?html?)?\s*$#;
s/\.s?html?//;
return $_;
}
sub search_link {
local($cur)=@_;
local($_,$prev,$next,$i,@link);
$i=0;
@link=('',$img[0],$img[1]);
return @link if ($cur eq '');
foreach $_ (@img) {
if ($_ eq $cur) {
@link=('','','');
@link[0]=($i>0)? $img[$i-1] : $img[$#img];
@link[1]=$img[$i];
@link[2]=($i<$#img)? $img[$i+1] : $img[0];
last;
}
$i++;
}
return @link;
}
sub get_form {
local($args, $method);
local($cont_len);
local($a, $form_name, $form_arg);
local(%form);
$method=$ENV{'REQUEST_METHOD'};
if ($method=~/^POST$/i) {
$cont_len=$ENV{'CONTENT_LENGTH'};
while (<>) {
push(@args, $_);
}
foreach (split('&', $ENV{'QUERY_STRING'})) {
push(@args, $_)
}
} elsif ($method=~/^GET$/i) {
@args=split('&', $ENV{'QUERY_STRING'});
}
foreach $a (@args) {
foreach (split('&',$a)) {
if (/([^=]+)=(.+)/) {
$form_name=$1;
$form_name=~tr/[a-z]/[A-Z]/;
$form_arg=$2;
$form_arg=~s/\+/ /g;
$form_arg=~s/%92//g;
$form_arg=~s/%(..)/pack("c",hex($1))/ge;
&jcode'convert(*form_arg, 'euc');
$form{$form_name}=$form_arg;
}
}
}
$form{'METHOD'}=$method;
@form=('REMOTE_USER', 'REMOTE_HOST', 'SERVER_SOFTWARE', 'SERVER_NAME',
'GATEWAY_INTERFACE', 'SERVER_PROTCOL', 'SERVER_PORT',
'REQUEST_METHOD', 'PATH_INFO', 'PATH_TRANSLATED', 'SCRIPT_NAME',
'QUERY_STRING', 'REMOTE_HOST', 'REMOTE_ADDR', 'AUTH_TYPE',
'REMOTE_USER', 'REMOTE_IDENT', 'CONTENT_TYPE', 'CONTENT_LENGTH',
'HTTP_ACCEPT', 'HTTP_USER_AGENT', 'HTTP_REFERER');
foreach $f (@form) {
$form{$f}=$ENV{$f};
}
return %form;
}
sub wanted {
$name=~s/^\.\///;
push(@img,$name) if ($name=~/^IMG_?\d+\.JPG$/);
}