Diff for /comics/fetch.pl.new between versions 1.7 and 1.10

version 1.7, 2013/01/10 14:25:57 version 1.10, 2013/02/26 14:24:14
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 $days_ago    = 0;  # Set this to fetch comics from X days ago  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 35  foreach my $comic ( sort keys %comics ) Line 39  foreach my $comic ( sort keys %comics )
   &writeComic ( \%comics, $comic, \%dates );    &writeComic ( \%comics, $comic, \%dates );
 }  }
   
 my $D  = `date +%d`; chomp $D;  print "Finding in $imageDir/*-$dates{'day2'}.jpg\n";
 print "Finding in $imageDir/*-$D.jpg\n";  foreach my $file ( glob( "$imageDir/*-$dates{'day2'}.jpg" ) ) 
 foreach my $file ( glob( "$imageDir/*-$D.jpg" ) )   
 {  {
         my $size = `/usr/bin/identify $file`;          my $size = `/usr/bin/identify $file`;
         $size =~ s/.*\s(\d+)x\d+.*/$1/;          $size =~ s/.*\s(\d+)x\d+.*/$1/;
Line 113  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 $indexFile = $indexDir . "/index-" . $days[$date->{'dow'}] .
                           "-" . $date->{'year2'} . $date->{'mon2'} .
                         $date->{'day2'} . ".html";                          $date->{'day2'} . ".html";
         my $content = <<EOF;          my $content = <<EOF;
   
Line 167  sub writeMainIndex ($$) { Line 171  sub writeMainIndex ($$) {
 #######################################################################  #######################################################################
 sub writeFooter {  sub writeFooter {
         my ( $date ) = @_;          my ( $date ) = @_;
         my $indexFile = $indexDir . "/index-" . $date->{'year2'} . $date->{'mon2'} .          my $indexFile = $indexDir . "/index-" . $days[$date->{'dow'}] . 
                           "-" . $date->{'year2'} . $date->{'mon2'} .
                         $date->{'day2'} . ".html";                          $date->{'day2'} . ".html";
         my $sysDate = `date`;          my $sysDate = `date`;
   
Line 205  sub checkDir ($$) { Line 210  sub checkDir ($$) {
 #######################################################################  #######################################################################
 sub writeTitle ($$) {  sub writeTitle ($$) {
         my ( $date ) = @_;          my ( $date ) = @_;
         my $indexFile = $indexDir . "/index-" . $date->{'year2'} . $date->{'mon2'} .          my $indexFile = $indexDir . "/index-" . $days[$date->{'dow'}] . 
                           "-" . $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 315  sub parseComic ($$) { Line 321  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'} -= $days_ago;  ## <-- 5 days ago  
   
         $dates{'year'} += 1900;          $dates{'year'} += 1900;
         $dates{'year2'} = substr $dates{'year'}, 2, 2;          $dates{'year2'} = substr $dates{'year'}, 2, 2;
Line 328  sub fetchDates () { Line 331  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.7  
changed lines
  Added in v.1.10


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