| version 1.20, 2015/10/22 12:58:44 | version 1.22, 2017/12/05 13:37:40 | 
| Line 2 | Line 2 | 
 |  |  | 
 | ############################################################################### | ############################################################################### | 
 | # $Log$ | # $Log$ | 
 |  | # Revision 1.22  2017/12/05 13:37:40  nick | 
 |  | # Added the CVS config version to the outpuit. | 
 |  | # | 
 |  | # Revision 1.21  2015/10/26 14:25:40  nick | 
 |  | # Fixed a bug that was improperly including the day of week string preventing the weekend comics from fetching proproperly. | 
 |  | # | 
 | # Revision 1.20  2015/10/22 12:58:44  nick | # Revision 1.20  2015/10/22 12:58:44  nick | 
 | # Added the ability for Sunday only comics.  Stonesoup is no longer weekdays, this has been added to Sunday only.  I also added Foxtrot Classics for weekdays and Foxtrot for Sundays. | # Added the ability for Sunday only comics.  Stonesoup is no longer weekdays, this has been added to Sunday only.  I also added Foxtrot Classics for weekdays and Foxtrot for Sundays. | 
 | # | # | 
| Line 28  use Data::Dumper; | Line 34  use Data::Dumper; | 
 | use Pod::Usage; | use Pod::Usage; | 
 | use Getopt::Long; | use Getopt::Long; | 
 |  |  | 
| use Date::Calc qw/Date_to_Text_Long Today/; | use Date::Calc qw/Date_to_Text_Long Today Day_of_Week Day_of_Week_to_Text/; | 
 |  |  | 
 | ## | ## | 
 | ## Some default values | ## Some default values | 
 | ## | ## | 
 | my $ver         = '$Id$'; | my $ver         = '$Id$'; | 
 | my $comicFile   = "comics.conf"; | my $comicFile   = "comics.conf"; | 
 |  | my $comicConfigVer = "Unknown"; | 
 | my %comics      = &readComicConfig ( $comicFile ); | my %comics      = &readComicConfig ( $comicFile ); | 
 | my %opts        = &fetchOptions( ); | my %opts        = &fetchOptions( ); | 
 | my $days_ago    = $opts{'days'} || 0; | my $days_ago    = $opts{'days'} || 0; | 
| Line 60  foreach my $comic ( sort keys %comics ) | Line 67  foreach my $comic ( sort keys %comics ) | 
 |  |  | 
 | ## Skip if this is Sunday and the comic is weekdays only | ## Skip if this is Sunday and the comic is weekdays only | 
 | next if ( $comic =~ m/config/ ); | next if ( $comic =~ m/config/ ); | 
| if (($dates{'day2'} eq "Sunday") && | if (($dates{'wday'} eq "Sunday") && | 
 | ($comics{$comic}{'sunday'} == 0)) { | ($comics{$comic}{'sunday'} == 0)) { | 
 | print "Skipping '$comic'; Weekdays only.\n"; | print "Skipping '$comic'; Weekdays only.\n"; | 
 | next; | next; | 
 | } | } | 
 |  |  | 
 | ## Skip if Sunday only comic and it's not Sunday. | ## Skip if Sunday only comic and it's not Sunday. | 
| if (($dates{'day2'} ne "Sunday") && | if (($dates{'wday'} ne "Sunday") && | 
 | ($comics{$comic}{'sunday_only'} == 1)) { | ($comics{$comic}{'sunday_only'} == 1)) { | 
| print "Skipping '$comic'; Sunday only.\n"; | print "Skipping '$comic' ($comics{$comic}{'sunday_only'}); Sunday only.\n"; | 
 | next | next | 
 | } | } | 
 |  |  | 
| Line 143  sub readComicConfig ($$) { | Line 150  sub readComicConfig ($$) { | 
 |  |  | 
 | open FILEN, "<$comicFile"; | open FILEN, "<$comicFile"; | 
 | while (<FILEN>) { | while (<FILEN>) { | 
 |  | if ($_ =~ m/^#.* \$Id$/) { | 
 |  | $comicConfigVer = $1; | 
 |  | } | 
 | if ( ( $_ !~ m/^#/ ) && ( $_ =~ m/,.*,/) ){ | if ( ( $_ !~ m/^#/ ) && ( $_ =~ m/,.*,/) ){ | 
 | $_ =~ s/__YEAR__/$year/g; | $_ =~ s/__YEAR__/$year/g; | 
 | $_ =~ s/__MON__/$mon/g; | $_ =~ s/__MON__/$mon/g; | 
| Line 154  sub readComicConfig ($$) { | Line 164  sub readComicConfig ($$) { | 
 | $comicConfig{$res[0]}{'mode'}     = $res[3]; | $comicConfig{$res[0]}{'mode'}     = $res[3]; | 
 | $comicConfig{$res[0]}{'fullName'} = $res[4]; | $comicConfig{$res[0]}{'fullName'} = $res[4]; | 
 | $comicConfig{$res[0]}{'ext'}      = $res[5]; | $comicConfig{$res[0]}{'ext'}      = $res[5]; | 
| $comicConfig{$res[0]}{'sunday'}   = $res[6] || 1; | $comicConfig{$res[0]}{'sunday'}   = sprintf("%d", $res[6] || 1); | 
| $comicConfig{$res[0]}{'sunday_only'} = $res[7] || 0; | $comicConfig{$res[0]}{'sunday_only'} = sprintf("%d", $res[7] || 0); | 
 | $comicConfig{$res[0]}{'error'}    = 0; | $comicConfig{$res[0]}{'error'}    = 0; | 
 | } | } | 
 | elsif ( $_ =~ m/(.*)\s+=\s+(.*)/ ) { | elsif ( $_ =~ m/(.*)\s+=\s+(.*)/ ) { | 
| Line 240  sub writeFooter { | Line 250  sub writeFooter { | 
 | <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><br /> | Version: <font color="green">$ver</font><br /> | 
 |  | Config Version: <font color="green">$comicConfigVer</font><br /> | 
 | CVS: <a href="http://demandred.dyndns.org/cgi-bin/cvsweb/comics/">http://demandred.dyndns.org/cgi-bin/cvsweb/comics/</a> | 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 | 
| Line 399  sub fetchDates () { | Line 410  sub fetchDates () { | 
 | $dates{'day2'}  = ( $dates{'day'} < 10 ) ? "0" . $dates{'day'} : $dates{'day'}; | $dates{'day2'}  = ( $dates{'day'} < 10 ) ? "0" . $dates{'day'} : $dates{'day'}; | 
 | $dates{'mon'}++; | $dates{'mon'}++; | 
 | $dates{'mon2'}  = ( $dates{'mon'} < 10 ) ? "0".$dates{'mon'} : $dates{'mon'}; | $dates{'mon2'}  = ( $dates{'mon'} < 10 ) ? "0".$dates{'mon'} : $dates{'mon'}; | 
 |  | my @days = qw/ Sunday Monday Tuesday Wednesday Thursday Friday Saturday /; | 
 |  | $dates{'wday'} = $days[$dates{'dow'}]; | 
 |  |  | 
 | return %dates; | return %dates; | 
 | } | } |