#-*-Perl-*-

foreach (qw(bg bb be blondie fu gb hg lo mf ma mu fa sf sh 
    pc ro zp spider apt3g bfriends buckles ba zt phantom
    crock curtis dennis dinette familyc fgordon tumble wildwood rmorgan
    jparker mtrail mworth hi pvaliant theydo tiger
    katkids popeye sroper needhelp re schix)) {
    $hof{$_} = 0;
}

foreach (qw(mandrake ss henry hazel moosem pops trudy)) {
    $hof{$_} = 14;
}


#King Features http://www.kingfeatures.com/comics
sub kingfeature {
    #get arguments (fp stands for file prefix)
    my ($time,$title,$author,$dir,$fp,$wd_size,$sun_size,$sfx) = @_;
    my $sf = (defined($sfx)? $sfx : "gif"); #default suffix of gif
    my @ltime = gmtime($time);
    my $size = $ltime[6] == 0 ? $sun_size : $wd_size;
    my $base = "http://www.kingfeatures.com/comics/$dir/";
    my $rec = {
	'title' => $title,
	'author' => $author,
	'type' => $sf,
	'main' => $base,
	'archives' => $base,
	'base' => "http://est.rbma.com/content/",
	'page' => strftime("${fp}?date=%Y%m%d",@ltime),
	'referer' => "http://www.kingfeatures.com",
	};
    $rec->{'size'} = $size if defined $size;
    return $rec;
}

sub kingfeature2 {
  my ($time,$title,$author,$dir,$fp,$wd_size,$sun_size,$sfx) = @_;
  my $sf = (defined($sfx)? $sfx : "gif"); #default suffix of gif
  my @ltime = gmtime($time);
  my $res = kingfeature(@_);
  if (defined($res)) {
      $res->{'page'} = strftime("${fp}%y%m%d.$sf", @ltime);
  }
  return $res;
}

sub kingfeature3 {
    my ($time,$title,$author,$dir,$fp,$wd_size,$sun_size,$sfx) = @_;
    my $rec = kingfeature2(@_);
    $rec->{'base'} = "http://www.kingfeatures.com/features/comics/$dir/"
	if defined $rec;
    return $rec;
}

# The Amazing Spider-Man
# http://www.kingfeatures.com/comics/spidermn/
sub spider {
    return kingfeature(shift(@_),"The Amazing Spider-Man","Stan Lee",
		       "spidermn","Spiderman",[480,157], [700,488]);
}

# Apartment 3-G
# http://www.kingfeatures.com/comics/apt3g/
sub apt3g {
    return kingfeature(shift(@_),"Apartment 3-G",
		       "Brian Kotzky & Lisa Trusiani","apt3g","Apartment_3-G",[480,150],[600,422]);
}

#Baby Blues http://www.kingfeatures.com/comics/babyblue/
sub ba {
    return kingfeature(shift(@_),"Baby Blues","Rick Kirkman and Jerry Scott",
             "babyblue","Baby_Blues", [525,153],[600,400]);
}

# Barney Google and Snuffy Smith
# http://www.kingfeatures.com/comics/bgoogle/
sub bg {
    return kingfeature(shift(@_),"Barney Google and Snuffy Smith",
		       "Fred Lasswell","bgoogle","Barney_Google",[480,135],
		       [600,414]);
}

# Beatle Baily
# http://www.kingfeatures.com/comics/bbailey/
sub bb {
    return kingfeature(shift(@_),"Beetle Bailey","Mort Walker",
		       "bbailey","Beetle_Bailey", [480,147], [600,402]);
}

# The Better Half
# http://www.kingfeatures.com/comics/bet_half/
sub be {
    return kingfeature(shift(@_),"The Better Half","Randy Glasbergen",
		       "bet_half","Better_Half",[249,214], [600,392]);
}

sub bfriends {
    return kingfeature(shift(@_),"Between Friends","Sandra Bell-Lundy",
		       "bfriends","Between_Friends",[480,151], [600,281]);
}

#Blondie http://www.kingfeatures.com/comics/blondie/
sub blondie {
    return kingfeature(shift(@_),"Blondie","Dean Young and Denis Lebrun",
		       "blondie","Blondie",[480,142], [600,406]);
}

# Wildwood
# was Bobos Progress
# http://www.kingfeatures.com/features/comics/wildwood/about.htm
sub wildwood {
    return kingfeature(shift(@_),"Wildwood","Dan Wright and Tom Spurgeon",
                       "wildwood","Wildwood",[525,165], [525,166]);
}

sub buckles {
    return kingfeature(shift(@_),"Buckles","David Gilbert","buckles","Buckles",
		       [480,147]);
}

sub crock {
    return kingfeature(shift(@_),"Crock","Bill Rechin & Don Wilder","crock",
		       "Crock",[480,155], [600,422]);
}

sub curtis {
    return kingfeature(shift(@_),"Curtis","Ray Billingsley","curtis","Curtis",
		       [480,146], [600,405]);
}

sub dennis {
    return kingfeature(shift(@_),"Dennis The Menace","Hank Ketcham","dennis",
		       "Dennis_The_Menace",[251,322], [600,422]);
}

sub dinette {
    return kingfeature(shift(@_),"Dinette Set","Julie Larson","dinette",
		       "Dinette_Set",[251,272], [600,289]);
}

#The Family Circus http://www.kingfeatures.com/comics/familyc/
sub familyc {
    return kingfeature(shift(@_),"The Family Circus","Bil Keane","familyc",
		       "Family_Circus",[249,290]);
}

sub fgordon {
    my $time = shift;
    my @ltime = gmtime($time);
    return undef if $ltime[6] != 0; #sun only
    return kingfeature3($time,"Flash Gordon","Jim Keefe","fgordon","fg",
		       [600,414],undef,"jpg");
}

#Funky Winkerbean http://www.kingfeatures.com/comics/fwinker/
sub fu {
    return kingfeature(shift(@_),"Funky Winkerbean","Tom Batiuk","fwinker",
		       "Funky_Winkerbean",[480,154], [600,402]);
}

#Grin and Bear It http://www.kingfeatures.com/comics/grinbear/
sub gb {
    return kingfeature(shift(@_),"Grin and Bear It",
		       "Fred Wagner & Ralph Dunagin","grinbear",
		       "Grin_and_Bear_It",[250,315], [600,406]);
}

#Hagar the Horrible http://www.kingfeatures.com/comics/hagar/
sub hg {
    return kingfeature(shift(@_),"Hagar the Horrible","Chris Browne","hagar",
		       "Hagar_The_Horrible",[480,148], [600,398]);
}

#Hazel http://www.kingfeatures.com/comics/hazel/index.htm
#http://www.kingfeatures.com/features/comics/hazel/hat010124.gif
sub hazel {
    return kingfeature3(shift(@_),"Hazel","Ted Key",
	"hazel","hat", [243,285]);
}

#Henry http://www.kingfeatures.com/comics/henry/index.htm
#http://www.kingfeatures.com/features/comics/henry/het010124.gif
sub henry {
    return kingfeature3(shift(@_),"Henry","","henry","het",
		       [480,157]);
}

# Hi and Lois
# http://www.kingfeatures.com/features/comics/hi_lois/about.htm
sub hi {
    return kingfeature(shift(@_),"Hi and Lois",
		       "Brian Walker, Greg Walker and Chance Browne",
                       "hi_lois","Hi_and_Lois",[525,155], [600,401]);
}

#Horroscope http://www.kingfeatures.com/comics/horrscpe/
sub hr {
    return kingfeature2(shift(@_),"Horrorscope","Susan Kelso & Carol Kemp",
		       "horrscpe","hrt",[240,295]);
}

#I Need Help http://www.kingfeatures.com/comics/needhelp/index.htm
sub needhelp {
    return kingfeature(shift(@_),"I Need Help",
	"Vic Lee", "needhelp","I_Need_Help", [263,258], [600,280]);
}

#Judge Parker http://www.kingfeatures.com/comics/jparker/index.htm
sub jparker {
    return kingfeature(shift(@_),"Judge Parker","Woody Wilson & Harold LeDoux",
	"jparker","Judge_Parker", [480,157], [600,405]);
}

#Katzenjammer Kids http://www.kingfeatures.com/comics/katzkids/index.htm
sub katkids {
    my $time = shift;
    my @ltime = gmtime($time);
    return undef if $ltime[6] != 0; #sun only
    return kingfeature3($time,"Katzenjammer Kids",
        "Hy Eisman", "katzkids",
        "kk",[600,404],undef,"jpg");                 
}

#The Lockhorns http://www.kingfeatures.com/comics/lockhorn/
sub lo {
    return kingfeature(shift(@_),"The Lockhorns","Bunny Hoest & John Reiner",
		       "lockhorn","Lockhorns",[249,175], [600,290]);
}

#Mallard Fillmore http://www.kingfeatures.com/comics/mallard/
sub mf {
    return kingfeature(shift(@_),"Mallard Fillmore","Bruce Tinsley","mallard",
		       "Mallard_Fillmore",[480,157], [600,288]);
}

#Mandrake the Magician
sub mandrake {
    return kingfeature3(shift(@_),"Mandrake the Magician",
	"Created by Lee Falk & drawn by Fred Fredericks", "mandrake","mmt", 
	[480,145]);
}

#Mark Trail http://www.kingfeatures.com/comics/mtrail/index.htm
sub mtrail {
    return kingfeature(shift(@_),"Mark Trail","Jack Elrod",
	"mtrail","Mark_Trail", [480,157], [600,418]);
}

#Marvin http://www.kingfeatures.com/comics/marvin/
sub ma {
    return kingfeature(shift(@_),"Marvin","Tom Armstrong","marvin","Marvin",
		       [480,159], [600,423]);
}

# Mary Worth
# http://www.kingfeatures.com/features/comics/mworth/about.htm
sub worth {
    return kingfeature(shift(@_),"Mary Worth","John Saunders and Joe Giella",
                       "mworth","Mary_Worth",[525,156]);
}

#Moose and Molly http://www.kingfeatures.com/comics/moosemol/index.htm
#http://www.kingfeatures.com/features/comics/moosemol/mot010124.gif
sub moosem {
    return kingfeature3(shift(@_),"Moose and Molly",
	"Bob Weber Sr", "moosemol","mot", [480,149]);
}

#Mutts http://www.kingfeatures.com/comics/mutts/
sub mu {
    return kingfeature(shift(@_),"Mutts","Patrick McDonnell","mutts","Mutts",
		       [480,147], [600,293]);
}

#On The Fastrack http://www.kingfeatures.com/comics/fastrack/
sub fa {
    return kingfeature(shift(@_),"On The Fastrack","Bill Holbrook","fastrack",
		       "Fast_Track",[525,157],[600,400]);
}

#Phantom
sub phantom {
    return kingfeature(shift(@_),"Phantom","George Olesen and Graham Nolan",
		       "phantom", "Phantom",[525,157], [600,403]);
}

#The Piranha Club http://www.kingfeatures.com/comics/ernie/
sub pc {
    return kingfeature(shift(@_),"The Piranha Club",
		       "Bud Grace","ernie","Piranha",[480,158], [600,417]);
}

#Popeye http://www.kingfeatures.com/comics/popeye/index.htm
sub popeye {
    return kingfeature(shift(@_),"Popeye","",
	"popeye","Popeye", [480,143], [600,418]);
}

#Pops Place http://www.kingfeatures.com/comics/popplace/index.htm
#http://www.kingfeatures.com/features/comics/popplace/ppt010124.gif
sub pops {
    return kingfeature3(shift(@_),"Pops Place","Sam C Rawls",
	"popplace","ppt", [480,140]);
}

#Prince Valiant http://www.kingfeatures.com/comics/pvaliant/index.htm
sub  pvaliant{
    my $time = shift;
    my @ltime = gmtime($time);
    return undef if $ltime[6] != 0; #sun only
    return kingfeature3($time,"Prince Valiant",
	"John Cullen Murphy & Cullen Murphy", "pvaliant",
	"val",[750,500],undef,"jpg");
}  

# RedEye
# http://www.kingfeatures.com/comics/redeye/Redeye.20000321.gif
sub re {
  return kingfeature(shift(@_),"Red Eye","Bill Yates & Mel Casson",
		     "redeye","Redeye", [480,140], [600,405]);
}

# Rex Morgan
# http://www.kingfeatures.com/features/comics/rmorgan/about.htm
sub rex {
    return kingfeature(shift(@_),"Rex Morgan, M.D.",
		       "Woody Wilson and Graham Nolan",
                       "rmorgan","Rex_Morgan",[525,166]);
}

#Rhymes With Orange http://www.kingfeatures.com/comics/orange/
sub ro {
  return kingfeature(shift(@_),"Rhymes With Orange","Hilary Price","orange",
		     "Rhymes_with_Orange",[480,154], [600,296]);
}

#Safe Havens http://www.kingfeatures.com/comics/safehavn/
sub sh {
    my $today = shift(@_);
    my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = 
        gmtime($today);
    if ($wday != 0) {
	return kingfeature($today,"Safe Havens","Bill Holbrook","safehavn",
			   "Safe_Havens",[480,145]);
    } else {
	return undef;
    }
}

#Sally Forth http://www.kingfeatures.com/comics/sforth/
sub sf {
    return kingfeature(shift(@_),"Sally Forth","Greg Howard & Craig MacIntosh",
		       "sforth","Sally_Forth",[525,153], [600,288]);
}

#Sam & Silo http://www.kingfeatures.com/comics/sam_silo/
#http://www.kingfeatures.com/features/comics/sam_silo/sst010124.gif
sub ss {
    return kingfeature3(shift(@_),"Sam and Silo","Jerry Dumas",
			"sam_silo","sst",
		       [480,149]);
}

# Six Chix
sub schix {
    my $time = shift(@_);
    my @ltime = localtime($time);
    my %author = (0 => "Bannerman, Shulock, Piccolo, Telnaes, LeMieux, Piro",
		  1 => "Isabella Bannerman",
		  2 => "Margaret Shulock",
		  3 => "Rina Piccolo",
		  4 => "Ann C. Telnaes",
		  5 => "Kathryn LeMieux",
		  6 => "Stephanie Piro");
    
    return kingfeature($time,"Six Chix",$author{$ltime[6]},
		       "sixchix","6Chix",[525,165], [600,274]);
}

#Steve Roper & Mike Nomad http://www.kingfeatures.com/comics/sroper/index.htm
sub sroper {
    return kingfeature(shift(@_),"Steve Roper and Mike Nomad",
	"John Saunders & Fran Matera", "sroper","Steve_Roper",
		       [480,149], [600,403]);
}

#They Do It Every Time http://www.kingfeatures.com/comics/theydoit/index.htm
sub theydo {
    return kingfeature(shift(@_),"They Do It Every Time","Al Scaduto",
	"theydoit","TDIE", [246,275], [600,407]);
}

#Tiger http://www.kingfeatures.com/comics/tiger/index.htm
sub tiger {
    return kingfeature(shift(@_),"Tiger","Bud Blake",
	"tiger","Tiger", [480,144], [600,405]);
}

#Trudy http://www.kingfeatures.com/comics/trudy/
#http://www.kingfeatures.com/features/comics/trudy/trt010124.gif
sub trudy {
    return kingfeature3(shift(@_),"Trudy","Jerry Marcus","trudy","trt",
		       [247,306]);
}

# Tumbleweeds
sub tumble {
    return kingfeature(shift(@_),"Tumbleweeds","Tom K. Ryan",
	"tumblewd","Tumbleweeds", [480,144], [600,436]);
}

#Zippy http://www.kingfeatures.com/comics/zippy/
sub zp {
    return kingfeature(shift(@_),"Zippy","Bill Griffith","zippy",
		       "Zippy_the_Pinhead", [525,209], [600,142]);
}

#Zits http://www.kingfeatures.com/comics/zits/
sub zt {
    return kingfeature(shift(@_),"Zits","Jerry Scott and JimBorgman","zits",
                       "Zits", [480,166], [600,295]);
}

1;
