#!/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"; print "\n"; print "\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$/); }