From c35ed17200bc4c00b6ea15bd1b2ddedfee48213e Mon Sep 17 00:00:00 2001 From: Don Armstrong Date: Sun, 11 Dec 2016 12:15:54 -0800 Subject: [PATCH] add index.cgi for catcam --- index.cgi | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100755 index.cgi diff --git a/index.cgi b/index.cgi new file mode 100755 index 0000000..7035f47 --- /dev/null +++ b/index.cgi @@ -0,0 +1,68 @@ +#!/usr/bin/perl + +use warnings; +use strict; + +use CGI::Simple; +use File::Find; +use File::stat; + +my $q = CGI::Simple->new({num=>100}); + +my $cat_dir = '/home/don/debian/.cat/'; + + +my %pics; +find(sub { + if (/\.html$/) { + $pics{$_} = stat($_); + } + }, + $cat_dir); + +print $q->header(-status => 200); + +print < + + +Cat Pictures! + + +
Cat Pictures!
+ +
+EOF + +my $num = 0; +my $previous_date = ''; +for my $pic (sort {$pics{$b}->ctime <=> $pics{$a}->ctime} keys %pics) { + my $this_date = POSIX::strftime('%Y-%m-%d',time($pics{$pic}->ctime)); + if ($previous_date ne $this_date){ + print "

$this_date

\n"; + $this_date = $previous_date; + } + my $basename = $pic; + $basename =~ s/\.html//; + print <$basename +EOF + $num++; + last if $num > 30; +} + +print < +
+A silly CGI script +
+ +EOF + +sub error { + my ($q,$error,$text) = @_; + $text //= ''; + print $q->header(-status => $error); + print "

$error: $text

"; + exit 0; +} -- 2.39.2