version 1.17, 2015/02/19 14:56:10
|
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 |
|
# 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. |
|
# |
|
# Revision 1.19 2015/07/13 12:56:58 nick |
|
# Added Sally Forth and Pearls Before Swine. Adding Sally Forth required a change in the 'wget' command for fetching the index file to include 'user-agent' and 'referer'. |
|
# |
|
# Revision 1.18 2015/05/07 12:31:43 nick |
|
# Added favicon |
|
# |
# Revision 1.17 2015/02/19 14:56:10 nick |
# Revision 1.17 2015/02/19 14:56:10 nick |
# Fixed a problem that forced everything to JPG. This would kill GIF animations, but would not display the gifs either because 'convert' appends an index number to the end of the file name for each from of the GIF animation. I fixed this to maintain GIF compatibilty as well as rewritting how the script fetches the size of the file. Additionally, I updated the configuration for Questionable Content to search for GIF or JPG, which is what triggered this entire update. |
# Fixed a problem that forced everything to JPG. This would kill GIF animations, but would not display the gifs either because 'convert' appends an index number to the end of the file name for each from of the GIF animation. I fixed this to maintain GIF compatibilty as well as rewritting how the script fetches the size of the file. Additionally, I updated the configuration for Questionable Content to search for GIF or JPG, which is what triggered this entire update. |
# |
# |
Line 19 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 48 print STDOUT "Starting comic fetch at $D
|
Line 64 print STDOUT "Starting comic fetch at $D
|
&writeTitle ( \%dates ); |
&writeTitle ( \%dates ); |
|
|
foreach my $comic ( sort keys %comics ) { |
foreach my $comic ( sort keys %comics ) { |
|
|
|
## 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 ) ) { print "Skipping.\n"; next; } |
($comics{$comic}{'sunday'} == 0)) { |
|
print "Skipping '$comic'; Weekdays only.\n"; |
|
next; |
|
} |
|
|
|
## Skip if Sunday only comic and it's not Sunday. |
|
if (($dates{'wday'} ne "Sunday") && |
|
($comics{$comic}{'sunday_only'} == 1)) { |
|
print "Skipping '$comic' ($comics{$comic}{'sunday_only'}); Sunday only.\n"; |
|
next |
|
} |
|
|
$comics{$comic}{'error'} = &downloadComic ( \%comics, $comic, \%dates ); |
$comics{$comic}{'error'} = &downloadComic ( \%comics, $comic, \%dates ); |
&writeComic ( \%comics, $comic, \%dates ); |
&writeComic ( \%comics, $comic, \%dates ); |
|
|
Line 66 foreach my $comic ( sort keys %comics )
|
Line 95 foreach my $comic ( sort keys %comics )
|
} |
} |
close(IMG); |
close(IMG); |
|
|
|
|
system( "/usr/bin/convert -resize 640 $file $file" ) |
system( "/usr/bin/convert -resize 640 $file $file" ) |
if ( $size > 640 ) |
if ( $size > 640 ) |
} |
} |
Line 120 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 131 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'} = sprintf("%d", $res[7] || 0); |
$comicConfig{$res[0]}{'error'} = 0; |
$comicConfig{$res[0]}{'error'} = 0; |
} |
} |
elsif ( $_ =~ m/(.*)\s+=\s+(.*)/ ) { |
elsif ( $_ =~ m/(.*)\s+=\s+(.*)/ ) { |
Line 216 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 258 sub writeTitle ($$) {
|
Line 293 sub writeTitle ($$) {
|
<head> |
<head> |
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> |
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> |
<link href="/daily/comics/comics.css" type="text/css" rel="stylesheet" media="screen"> |
<link href="/daily/comics/comics.css" type="text/css" rel="stylesheet" media="screen"> |
|
<link rel="shortcut icon" href="./favicon.ico"> |
<title>Daily Comics for $today</title> |
<title>Daily Comics for $today</title> |
</head> |
</head> |
<body bgcolor="#FFFFFF"> |
<body bgcolor="#FFFFFF"> |
Line 285 sub directDownload ($$) {
|
Line 321 sub directDownload ($$) {
|
my $cDir = $date->{'mon2'} . $date->{'year2'}; |
my $cDir = $date->{'mon2'} . $date->{'year2'}; |
my $cDate = $date->{'day2'}; |
my $cDate = $date->{'day2'}; |
|
|
my $cmd = "wget -q $file --referer=\"" . $comics->{$comic}{'url'} ."\" --user-agent=\"$USER_AGENT\" -O - | /usr/bin/convert - jpeg:images/$cDir/$comic-$cDate.jpg"; |
my $cmd = "wget -q $file --referer=\"" . $comics->{$comic}{'url'} ."\" --user-agent=\"$USER_AGENT\" -O - | /usr/bin/convert - jpeg:images/$cDir/$comic-$cDate.jpg"; |
|
|
return system($cmd); |
return system($cmd); |
} |
} |
Line 297 sub indexDownload ($$) {
|
Line 333 sub indexDownload ($$) {
|
my ( @lines, $comicLine, $mainURL ); |
my ( @lines, $comicLine, $mainURL ); |
my $comicIndex = "indexes/index.$comic"; |
my $comicIndex = "indexes/index.$comic"; |
|
|
`wget -q $comics->{$comic}{'url'} -O $comicIndex`; |
my $wget_cmd = "wget -q --referer=\"$comics->{$comic}{'url'}\" " . |
|
"--user-agent=\"$USER_AGENT\" " . |
|
"$comics->{$comic}{'url'} -O $comicIndex"; |
|
system($wget_cmd); |
|
|
if ( ! open FILEN, "<$comicIndex" ) { |
if ( ! open FILEN, "<$comicIndex" ) { |
return "ERROR: Can't open index file for " . $comics->{$comic}{'fullName'} . |
return "ERROR: Can't open index file for " . $comics->{$comic}{'fullName'} . |
Line 371 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; |
} |
} |