#-*-Perl-*-

foreach (qw(chickw buckets dilbert gf topworld meatloaf tarzan ripleys bignate
	    fatcats bullsnbears grandave duncan randolph reality shirley 
	    soupnutz lupo trevor)) {
    $hof{$_} = 0;
}
foreach (qw(cheap pcpixel pickles flightdeck redrover thatslife)) {
    $hof{$_} = 7;
}

#Keep in sync with comiczone.
#They're exactly the same except for the baseurl.
sub unitedmedia {
    #get arguments (fp stands for file prefix, syn for syndicate)
    my ($time,$title,$author,$syn,$fp,$sun_size,$wd_size,$func) = @_;
    my @ltime = gmtime($time);
    my @ntime = gmtime(time);
    my $ntime = mkgmtime(0,0,0,@ntime[3..5]);
    my $first_avail = $ntime - (31 + $hof{$func})*(3600*24);
    my $size = ($ltime[6] == 0 ? $sun_size : $wd_size);

    return undef if ! defined $size || $time < $first_avail;

    my $baseurl = "http://www.comics.com";
    
    my $rec = {
	'title' => $title,
	'author' => $author,
	'type' => 'gif',
	'main' => "$baseurl/$syn/$fp/",
	'archives' => "$baseurl/$syn/$fp/archive/",
	'base' => $baseurl,
	'exprs' => [strftime("(/$syn/$fp/archive/images/$fp\\d+\\.(gif|jpg))",
			  @ltime)],
	'page' => strftime("/$syn/$fp/archive/$fp-%Y%m%d.html",@ltime),
	'size' => $size,
    };
    
    return $rec;
}

#Buckets http://www.unitedmedia.com/comics/buckets/
sub buckets {
    return unitedmedia(shift(@_),"Buckets","Scott Stantis","comics","buckets", 
		       [725,380],[600,210],"buckets");
}

#Dilbert http://www.unitedmedia.com/comics/dilbert/
sub dilbert {
    return unitedmedia(shift(@_),"Dilbert","Scott Adams","comics","dilbert", 
		       [725,515],[600,210],"dilbert");
}

#Fat Cats http://www.unitedmedia.com/comics/fatcats/
sub fatcats {
    return unitedmedia(shift(@_),"Fat Cats","Charlie Podrebarac","comics",
		       "fatcats", [600,215],[600,215],"fatcats");
}

#Get Fuzzy http://www.unitedmedia.com/comics/getfuzzy/
sub gf {
    return unitedmedia(shift(@_),"Get Fuzzy","Darby Conley","comics","getfuzzy",
		       [725,375],[600,210],"gf");
}

#Top Of The World http://www.unitedmedia.com/comics/topofworld/
sub topworld {
    return unitedmedia(shift(@_),"Top Of This World","Mark Tonra","comics",
		       "topofworld", [600,212],[600,212],"topworld");
}

#Meatloaf Night http://www.unitedmedia.com/comics/meatloaf/
sub meatloaf {
    return unitedmedia(shift(@_),"Meatloaf Night","Mark Buford","comics",
		       "meatloaf", [600,200],[600,202],"meatloaf");
}

#Tarzan http://www.unitedmedia.com/comics/tarzan/
sub tarzan {
    return unitedmedia(shift(@_),"Tarzan","Gray Morrow","comics","tarzan", 
		       [725,525],[600,190],"tarzan");
}

#Ripleys Believe it or not http://www.unitedmedia.com/comics/ripleys/
sub ripleys {
    return unitedmedia(shift(@_),"Ripleys Believe It Or Not",
		       "Don Wimmer and Karen Kemlo","comics","ripleys",
		       [725,514],[300,430],"ripleys");
}

# 9 Chickweed Lane
sub chickw {
    return unitedmedia(shift(@_),"9 Chickweed Lane",
		       "Brooke McEldowney","comics","chickweed",
		       [725,521],[600,214],"chickw");
}

# Big Nate
sub bignate {
    return unitedmedia(shift(@_),"Big Nate",
		       "Lincoln Peirce","comics","bignate",
		       [725,520],[600,190],"bignate");
}

# Bull$ n Bear$ 
sub bullsnbears {
    my @ltime = gmtime($_[0]);
    return unitedmedia(shift(@_),"Bulls n Bears",
		       "Wells and Lindstrom","comics","bullsnbears",
		       undef,[600,200],"bullsnbears");
}

# Flight Deck
sub flightdeck {
    return unitedmedia(shift(@_),"Flight Deck",
		       "Peter Waldner","creators","flightdeck",
		       [725,272],[300,340],"flightdeck");
}

# Grand Avenue
sub grandave {
    return unitedmedia(shift(@_),"Grand Avenue",
		       "Steve Breen","comics","grandave",
		       [725,382],[600,218],"grandave");
}

# Lupo Alberto
sub lupo {
    my @ltime = gmtime($_[0]);
    return undef if $ltime[6] != 1; #only mondays
    return unitedmedia(shift(@_),"Lupo Alberto",
		       "Silver","comics","lupo",
		       undef,[600,227],"lupo");
}

# PC And Pixel
sub pcpixel {
    return unitedmedia(shift(@_),"PC and Pixel",
		       "Bui and Johnson","wash","pcnpixel",
		       [725,498],[600,218],"pcpixel");
}

# Pickles
sub pickles {
    return unitedmedia(shift(@_),"Pickles",
		       "Brian Crane","wash","pickles",
		       [700,500],[600,195],"pickles");
}

# Raising Duncan
sub duncan {
    return unitedmedia(shift(@_),"Raising Duncan",
		       "Chris Browne","comics","raisingduncan",
		       [725,377],[600,200],"duncan");
}

# Randolph Itch 2:00 AM
sub randolph {
    return unitedmedia(shift(@_),"Randolph Itch 2:00 AM",
		       "Tom Toles","comics","randolphitch",
		       undef,[315,351],"randolph");
}

# Reality Check
sub reality {
    return unitedmedia(shift(@_),"Reality Check",
		       "Dave Whammond","comics","reality",
		       undef,[315,335],"reality");
}

# Red and Rover
sub redrover {
    return unitedmedia(shift(@_),"Red and Rover",
		       "Brian Basset","wash","redandrover",
		       [725,357],[600,200],"redrover");
}

# Shirley and Son
sub shirley {
    return unitedmedia(shift(@_),"Shirley and Son",
		       "Jerry Bittle","comics","shirleynson",
		       undef,[600,230],"shirley");
}

# Soup to Nutz
sub soupnutz {
    return unitedmedia(shift(@_),"Soup to Nutz",
		       "Rick Stromoski","comics","soup2nutz",
		       undef,[600,210],"soupnutz");
}

# That's Life -- the one in mercury is being used.
sub thatslife {
    return unitedmedia(shift(@_),"That's Life",
		       "Mike Twohy","wash","thatslife",
		       [725,357],[300,360],"thatslife");
}

# Cheap Thrills Cuisine
sub cheap {
    my @ltime = gmtime($_[0]);
    return undef if $ltime[6] != 3; #only wednesdays
    return unitedmedia(shift(@_),"Cheap Thrills Cuisine",
		       "Lombardo and Bui","wash","cheapthrills",
		       undef,[725,270],"cheap");
}


# Trevor! - interactive two gifs per panel, but we'll just download them all.
sub trevor {
    my $rec = unitedmedia(shift(@_),"Trevor!",
			  "Piper and Lee","comics","trevor",
			  0,0,"trevor");
    $rec->{'func'} = sub {
	my $text = shift;
	my $id = "trevor";
	my @relurls = ();
	#repeatedly match and replace.  
        while (1) {
	    if ($text =~ s/\.src = "(\/comics\/$id\/archive\/images\/$id\d+_\d\w?\.gif)"//i) {
		unshift(@relurls,$1);
	    } else {
		last;
	    }
        }
	return sort(@relurls);
    };
    $rec->{'exprs'} = undef;
    $rec->{'size'} = undef;
    return $rec;
}


1;

