Diff for /comics/fetch.pl.new between versions 1.3 and 1.11

version 1.3, 2011/09/18 14:04:29 version 1.11, 2013/02/27 14:56:26
Line 3 Line 3
 use strict;  use strict;
 use File::Path;  use File::Path;
 use Data::Dumper;  use Data::Dumper;
   use Pod::Usage;
   use Getopt::Long;
   
 ##   ## 
 ## Some default values  ## Some default values
Line 10  use Data::Dumper; Line 12  use Data::Dumper;
 my $ver         = q/$Id$/;  my $ver         = q/$Id$/;
 my $comicFile   = "comics.conf";  my $comicFile   = "comics.conf";
 my %comics      = &readComicConfig ( $comicFile );  my %comics      = &readComicConfig ( $comicFile );
   my %opts        = &fetchOptions( );
   my $days_ago    = $opts{'days'} || 0;
 my %dates       = &fetchDates();  my %dates       = &fetchDates();
 my $baseDir     = $comics{'configs'}{'base_directory'} || ".";  my $baseDir     = $comics{'configs'}{'base_directory'} || ".";
 my $imageDir    = $baseDir . "/" . ( $comics{'configs'}{'image_directory'} || "images" ) .   my $imageDir    = $baseDir . "/" . ( $comics{'configs'}{'image_directory'} || "images" ) . 
                   "/$dates{'mon2'}$dates{'year2'}";                    "/$dates{'mon2'}$dates{'year2'}";
 my $indexDir    = $baseDir . "/" . ( $comics{'configs'}{'index_directory'} || "indexes" );  my $indexDir    = $baseDir . "/" . ( $comics{'configs'}{'index_directory'} || "indexes" );
 my $USER_AGENT  = "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.18) Gecko/20110628 Ubuntu/10.10 (maverick) Firefox/3.6.18";  my $USER_AGENT  = "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.18) Gecko/20110628 Ubuntu/10.10 (maverick) Firefox/3.6.18";
   my @days        = qw/ Sunday Monday Tuesday Wednesday Thursday Friday Saturday /;
   
   
 my $DATE=`date`; chomp $DATE;  my $DATE=`date`; chomp $DATE;
Line 34  foreach my $comic ( sort keys %comics ) Line 39  foreach my $comic ( sort keys %comics )
   &writeComic ( \%comics, $comic, \%dates );    &writeComic ( \%comics, $comic, \%dates );
 }  }
   
   print "Finding in $imageDir/*-$dates{'day2'}.jpg\n";
   foreach my $file ( glob( "$imageDir/*-$dates{'day2'}.jpg" ) ) 
   {
           my $size = `/usr/bin/identify $file`;
           $size =~ s/.*\s(\d+)x\d+.*/$1/;
   
           system( "/usr/bin/convert -resize 640 $file $file" )
                   if ( $size > 640 ) 
   }
   
 ## &writeMainIndex ( \%dates );  ## &writeMainIndex ( \%dates );
   
 &writeFooter( \%dates );  &writeFooter( \%dates );
Line 101  sub readComicConfig ($$) { Line 116  sub readComicConfig ($$) {
 #######################################################################  #######################################################################
 sub writeComic ($$) {  sub writeComic ($$) {
         my ( $comics, $comic, $date ) = @_;          my ( $comics, $comic, $date ) = @_;
         my $indexFile = $indexDir . "/index-" . $date->{'year2'} . $date->{'mon2'} .          my $sd = substr( join( '', $days[$date->{'dow'}] ), 0, 3 );
           my $indexFile = $indexDir . "/index-" . $sd .
                           "-" . $date->{'year2'} . $date->{'mon2'} .
                         $date->{'day2'} . ".html";                          $date->{'day2'} . ".html";
         my $content = <<EOF;          my $content = <<EOF;
   
Line 155  sub writeMainIndex ($$) { Line 172  sub writeMainIndex ($$) {
 #######################################################################  #######################################################################
 sub writeFooter {  sub writeFooter {
         my ( $date ) = @_;          my ( $date ) = @_;
         my $indexFile = $indexDir . "/index-" . $date->{'year2'} . $date->{'mon2'} .          my $sd = substr( join( '', $days[$date->{'dow'}] ), 0, 3 );
           my $indexFile = $indexDir . "/index-" . $sd .
                           "-" . $date->{'year2'} . $date->{'mon2'} .
                         $date->{'day2'} . ".html";                          $date->{'day2'} . ".html";
         my $sysDate = `date`;          my $sysDate = `date`;
   
Line 165  sub writeFooter { Line 184  sub writeFooter {
 <center>  <center>
 <font size="2">  <font size="2">
 Generated on: <font color="green">$sysDate</font><br/>  Generated on: <font color="green">$sysDate</font><br/>
 Version: <font color="green">$ver</font></font>  Version: <font color="green">$ver</font><br />
   CVS: <a href="http://demandred.dyndns.org/cgi-bin/cvsweb/comics/">http://demandred.dyndns.org/cgi-bin/cvsweb/comics/</a>
   <p>    <p>
     <a href="http://validator.w3.org/check?uri=referer"><img      <a href="http://validator.w3.org/check?uri=referer"><img
       src="http://www.w3.org/Icons/valid-xhtml10-blue" alt="Valid XHTML 1.0 Transitional" height="31" width="88" border="0" /></a>        src="http://www.w3.org/Icons/valid-xhtml10-blue" alt="Valid XHTML 1.0 Transitional" height="31" width="88" border="0" /></a>
Line 192  sub checkDir ($$) { Line 212  sub checkDir ($$) {
 #######################################################################  #######################################################################
 sub writeTitle ($$) {  sub writeTitle ($$) {
         my ( $date ) = @_;          my ( $date ) = @_;
         my $indexFile = $indexDir . "/index-" . $date->{'year2'} . $date->{'mon2'} .          my $sd = substr( join( '', $days[$date->{'dow'}] ), 0, 3 );
           my $indexFile = $indexDir . "/index-" . $sd .
                           "-" . $date->{'year2'} . $date->{'mon2'} .
                          $date->{'day2'} . ".html";                           $date->{'day2'} . ".html";
         my $today     = $date->{'mon'} . "/" . $date->{'day'} . "/" . $date->{'year'};          my $today     = $days[$date->{'dow'}] . " " . $date->{'mon'} . "/" . $date->{'day'} . "/" . $date->{'year'};
   
         open INDEX, ">$indexFile";          open INDEX, ">$indexFile";
         print INDEX <<EOF;          print INDEX <<EOF;
Line 302  sub parseComic ($$) { Line 324  sub parseComic ($$) {
 sub fetchDates () {  sub fetchDates () {
         my %dates = ();          my %dates = ();
   
         ($dates{'day'}, $dates{'mon'}, $dates{'year'}, $dates{'dow'}) = (localtime)[3,4,5,6];          ($dates{'day'}, $dates{'mon'}, $dates{'year'}, $dates{'dow'}) = (localtime(time - (86400 * $days_ago )))[3,4,5,6];
   
         ## If you missed a day or two, reflect it here:  
         # $dates{'day'}-=1;  ## <-- 5 days ago  
   
         $dates{'year'} += 1900;          $dates{'year'} += 1900;
         $dates{'year2'} = substr $dates{'year'}, 2, 2;          $dates{'year2'} = substr $dates{'year'}, 2, 2;
Line 315  sub fetchDates () { Line 334  sub fetchDates () {
   
         return %dates;          return %dates;
 }  }
   
   ###############################################################################
   ##
   ## &fetchOptions( );
   ##
   ##      Grab our command line arguments and toss them in to a hash
   ##
   ###############################################################################
   sub fetchOptions {
           my %opts;
   
           &GetOptions(
                           "days:i"        => \$opts{'days'},
                           "help|?"        => \$opts{'help'},
                           "man"           => \$opts{'man'},
                      ) || &pod2usage( );
           &pod2usage( ) if defined $opts{'help'};
           &pod2usage( { -verbose => 2, -input => \*DATA } ) if defined $opts{'man'};
   
           return %opts;
   }
   
   __END__
   
   =head1 NAME
   
   fetch.pl - Fetches comics and places them all locally in a single html file.
   
   =head1 SYNOPSIS
   
   fetch.pl [options]
   
   Options:
           --days,d        Fetch comics from X days ago
           --help,?        Display the basic help menu
           --man,m         Display the detailed man page
   
   =head1 DESCRIPTION
   
   =head1 HISTORY
   
   =head1 AUTHOR
   
   Nicholas DeClario <nick@declario.com>
   
   =head1 BUGS
   
   This is a work in progress.  Please report all bugs to the author.
   
   =head1 SEE ALSO
   
   =head1 COPYRIGHT
   
   =cut
   
   

Removed from v.1.3  
changed lines
  Added in v.1.11


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>