#-*-CPerl-*-

foreach (qw(ashfield alice banditb crfh cotc menagerie ccs elf
   evjake exploit funny gpf greystone helpdesk walky joeav krazyl lwibh
   lostfound  bayside rad greytown mp mcs newshounds nukees ozy pentasmal
   real rpg rwaffles ssdd schlock sheldon sinf soap suburban sp wander wendy
   cutewendy wigu youdamn)) {
   $hof{"$_"} = 0;
}

#Set back two months for now
$hof{"hh"} = 60;

#Set back one months for now
$hof{"avalon"} = 10;

sub keenspot {  
  my ($title,$author,$date,$url,$index) = @_;
  if ($url =~ /http:\/\//) {$baseurl = $url;}
  else {$baseurl = "http://$url.keenspot.com";}
  if (!defined($index)) {$index = "index.html";}
  my @ltime2 = gmtime(time);
  
  my $page = "/d/$date.html";
  if ($index =~ /wander/) {
    $page = "/D/$date.html";
    $index = "index.html";
  }
  if ($date == strftime("%Y%m%d",@ltime2)) {
      $page = "/$index";
  }
  
  my $rec = {
    'title' => "$title",
    'author' => "$author",
    'main' => $baseurl,
    'archives' => $baseurl,
    'base' => $baseurl,
    'page' => $page,
  };

  $rec->{'func'} = sub {
   my $text = shift;
   my @relurls = ();
    #repeatedly match and replace.  
        while (1) {
          if ($text =~ s/src=".*?(\/((comics)|(strips))\/.*?$date:?\w*\.((:?jpg)|(:?gif)|(:?png)|(:?swf)))"//i) {
            push(@relurls,$1);
            $rec->{'type'} = $5;
          } else {
            last;
          }
        }
    if ($text =~ s/selected>(.*?)<\/option>//i) {
      $rec->{'caption'} = $1;
    }
    return reverse @relurls;
  };
  return $rec;
}

#? - Ashfield online
sub ashfield {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

   # Last updated July 5, 2001
    my @missing = (20000623);
    my @extra = (20000401);

    #M to F until present
    return undef if 
      (($date < 19990125) || #first comic on January 25, 1999
      (($date >= 19990125 && $date <= $date2) &&
      ($ltime[6] =~ /[06]/ && !grep(/$date/,@extra))) ||
      grep(/$date/,@missing));

    my $title = "Prof Ashfield";
    my $author = "Aric McKeown";
    my $url = "http://www.ashfieldonline.com";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

# Alice!
sub alice {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

   # Last updated July 5, 2001
    my @missing = (19990707,19990904,19990906,19990913,19990914,19990915,
      19990916,19990917,19990918,19990920,19990921,19990929,19990930,
      19991001,19991002,19991004,19991005,19991007,19991008,19991009,
      19991011,19991012,19991013,19991014,19991015,19991016,19991018,
      19991019,19991020,19991021,19991022,19991023,19991028,19991029,
      19991030,19991102,19991103,19991105,19991106,19991108,19991109,
      19991111,19991112,19991113,19991120,19991122,19991127,19991130,
      19991201,19991202,19991204,19991207,19991208,19991209,19991210,
      19991211,19991213,19991214,19991218,19991225,19991227,19991228,
      19991229,19991230,19991231,20000101,20000105,20000106,20000108,
      20000115,20000118,20000121,20000122,20000127,20000129,20000201,
      20000204,20000205,20000207,20000212,20000215,20000218,20000219,
      20000222,20000226,20000229,20000301,20000302,20000303,20000304,
      20000306,20000307,20000308,20000309,20000310,20000311,20000522,
      20000607,20000611,20000629,20000701,20000707,20000711,20000713,
      20000717,20000827,20000902,20000905,20000919,20000920,20000921,
      20000924,20001007,20001008,20001009,20001226,20001227,20001228,
      20001229,20001230,20001231,20010101,20010102,20010103,20010104,
      20010105,20010106,20010107,20010414,20010503,20010504,20010629);
    my @extra = ();

    #M to Sa until March 19, 2000
    # Everyday until April 20, 2001
    #M to F until present
    return undef if 
      (($date < 19990625) || #first comic on June 25, 1999
      (($date >= 19990625 && $date < 20000319) && 
      ($ltime[6] !~ /[123456]/ && !grep(/$date/,@extra))) ||
      (($date >= 20000319 && $date <= 20010420) &&
      ($ltime[6] !~ /[0123456]/)) ||
      (($date >= 20010420 && $date <= $date2) &&
      ($ltime[6] !~ /[12345]/)) ||
      grep(/$date/,@missing));

    my $title = "Alice";
    my $author = "Michael McKay-Fleming";
    my $url = "http://www.alicecomics.com";
    my $index = "today.html";
    
    return keenspot($title,$author,$date,$url,$index);
}

#Avalon
sub avalon {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

	# Last updated March 21, 2002
	# For some reason, 20010211 and 20010325 don't downlaod properly.
    my @missing = (20000305,20000507,20000521,20000629,20000630,20000703,
      20000704,20000705,20000827,20000903,20000910,20000924,20001105,
      20001217,20001231,20010107,20010514,20010515,20010516,20010517,
      20010518,20010528,20010529,20010530,20010531,20010601,20010603,
      20010610,20010708,20010820,20010821,20010822,20010823,20010824,
	  20010826,20010827,20010828,20010829,20010830,20010831,20010902,
	  20010917,20010918,20010919,20010920,20010921,20010923,20011014,
	  20011015,20011016,20011017,20011018,20011019,20011021,20011105,
	  20011106,20011107,20011108,20011109,20011125,20011126,20011127,
	  20011128,20011129,20011130,20011202,20011203,20011204,20011205,
	  20011206,20011207,20011209,20011217,20011218,20011219,20011220,
      20011221,20020120,20020121,20020122,20020123,20020124,20020125,
	  20020127,20020128,20020129,20020130,20020131,20020201,20020203,
	  20020210,20020218,20020219,20020220,20020221,20020222);
    my @extra = (20000401,20001223);

    #M to F until February 27, 2000
    #S to F until present
    return undef if 
      (($date < 19991108) || #first comic on November 8, 1999
      (($date >= 19991108 && $date < 20000227) && 
       ($ltime[6] !~ /[12345]/ && !grep(/$date/,@extra))) ||
      (($date >= 20000227 && $date <= $date2) &&
       ($ltime[6] !~ /[012345]/ && !grep(/$date/,@extra))) ||
      grep(/$date/,@missing));

    my $title = "Avalon";
    my $author = "Josh Phillips";
    my $url = "http://www.avalonhigh.com";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

#Bruno the Bandit
sub banditb {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

   # Last updated July 5, 2001
    my @missing = ();
    my @extra = ();

    #M to Sa until present
    return undef if 
      (($date < 19990720) || #first comic on July 20, 1999
      (($date >= 19990720 && $date <= $date2) &&
      ($ltime[6] !~ /[123456]/ && !grep(/$date/,@extra))) ||
      grep(/$date/,@missing));

    my $title = "Bruno the Bandit";
    my $author = "Ian McDonald";
    my $url = "http://www.brunothebandit.com";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

#College Roomies From Hell
sub crfh {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

   # Last updated July 5, 2001
    my @missing = (19990114,19990329,19990402,19990403,19990426,19990513,
      19990612,19990615,19990617,19990821,19990822,19990824,19990825,
      19990826,19990827,19990828,19991009,19991010,19991011,19991012,
      19991013,19991014,19991015,19991025,19991105,19991106,19991219,
      19991220,19991221,19991222,19991223,19991224,19991225,19991230,
      19991231,20000115,20000211,20000212,20000415,20000429,20000722,
      20000923,20001201,20001221,20001222,20001223,20001224,20001225,
      20001226,20001227,20001228,20001229,20001230,20001231,20010219,
      20010512,20010516,20010517,20010519,20010520,20010521,20010609);
    my @extra = ();

    #comics M to F until april 2, 1999
    #everyday until present
    return undef if 
      (($date < 19990101) || #first comic on Jan 01, 1999
      (($date >= 19990101 && $date < 19990402) && 
      ($ltime[6] !~ /[12345]/ && !grep(/$date/,@extra))) ||
      (($date >= 19990402 && $date <= $date2) && 
      ($ltime[6] !~ /[0123456]/)) ||
      grep(/$date/,@missing));

    my $title = "College Roomies From Hell";
    my $author = "Maritza Campos";
    my $url = "http://www.crfh.net";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

#Clan of the Cats
sub cotc {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

   # Last updated July 5, 2001
    my @missing = (19990726,19990727,19990728,19990729,19990730,19990731,
      19990801,20001227,20001228,20001229,20001230,20001231);
    my @extra = ();

    #Everyday until present
    return undef if 
      (($date < 19990620) || #first comic on June 20, 1999
      (($date >= 19990620 && $date <= $date2) &&
      ($ltime[6] !~ /[0123456]/)) ||
      grep(/$date/,@missing));

    my $title = "Clan of the Cats";
    my $author = "Jamie Robertson";
    my $url = "http://www.clanofthecats.com";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

#Class Menagerie
sub menagerie {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

   # Last updated July 5, 2001
    my @missing = (19980823,19980824,19980825,19980826,19980827,19980828,
      19980829,19980906,19980906,19980907,19980908,19980909,19980910,
      19980911,19980912,19980920,19980921,19980922,19980923,19980924,
      19980925,19980926,19981004,19981005,19981006,19981007,19981008,
      19981009,19981010,19981016,19981017,19981025,19981026,19981027,
      19981028,19981029,19981030,19981031,19981228,19981229,19981230,
      19981231,19990203,19990204,19990227,19990228,19990307,19990308,
      19990309,19990310,19990311,19990312,19990313,19990326,19990327,
      19990402,19990403,19990409,19990410,19990411,19990416,19990417,
      19990418,19990423,19990424,19990502,19990503,19990504,19990505,
      19990506,19990507,19990508,19991225,19991226,19991227,19991228,
      19991229,19991230,19991231,20000101,20000109,20000110,20000111,
      20000112,20000113,20000114,20000115,20000304,20000319,20000320,
      20000321,20000322,20000323,20000324,20000325,20000628,20000629,
      20000925,20000926,20000927,20000928,20010125,20010409,20010410,
      20010411,20010412,20010416,20010417,20010418,20010419,20010423,
      20010424,20010425,20010426,20010528);
    my @extra = (19981220,19990207,19991031,19991219,20000402,20000409,
      20000702,20000709,20001001,20010102);

    #MTh until March 28, 1998
    #STh until May 16, 1998
    #None May 16, 1998 until August 16, 1998
    #Everyday until November 13, 1998
    #MTh until February 27, 1999
    #Everday until May 15, 1999
    #None until August 16, 1999
    #MTh until December 25, 1999
    #Everyday until January 23
    #MTh until March 4, 2000
    #Everday until April 7, 2000
    #MTh until present
    return undef if 
      (($date < 19980105) || #first comic on January 5, 1998
      (($date >= 19980105 && $date < 19980328) && 
      ($ltime[6] !~ /[1234]/ && !grep(/$date/,@extra))) ||
      (($date >= 19980328 && $date < 19980516) && 
      ($ltime[6] !~ /[01234]/ && !grep(/$date/,@extra))) ||
      (($date >= 19980516 && $date < 19980816) && 
      (!grep(/$date/,@extra))) ||
      (($date >= 19980816 && $date < 19981113) && 
      ($ltime[6] !~ /[0123456]/)) ||
      (($date >= 19981113 && $date < 19990227) && 
      ($ltime[6] !~ /[1234]/ && !grep(/$date/,@extra))) ||
      (($date >= 19990227 && $date < 19990515) && 
      ($ltime[6] !~ /[0123456]/)) ||
      (($date >= 19990515 && $date < 19990816) && 
      (!grep(/$date/,@extra))) ||
      (($date >= 19990816 && $date < 19991225) && 
      ($ltime[6] !~ /[1234]/ && !grep(/$date/,@extra))) ||
      (($date >= 19991225 && $date < 20000123) && 
      ($ltime[6] !~ /[0123456]/)) ||
      (($date >= 20000123 && $date < 20000304) && 
      ($ltime[6] !~ /[1234]/ && !grep(/$date/,@extra))) ||
      (($date >= 20000304 && $date < 20000407) && 
      ($ltime[6] !~ /[0123456]/)) ||
      (($date >= 20000407 && $date <= $date2) &&
      ($ltime[6] !~ /[1234]/ && !grep(/$date/,@extra))) ||
      grep(/$date/,@missing));

    my $title = "Class Menagerie";
    my $author = "Vince Suzukawa";
    my $url = "http://www.theclassm.com";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

#Cool Cat Studio
sub ccs {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

    # Last updated July 5, 2001
    my @missing = (20000703,20000807,20000913,20001124,20001201,20001206,
      20001208,20001225,20001227,20001229,20010101,20010103,20010224,
      20010315,20010317,20010320,20010322,20010324,20010327,20010329,
      20010403,20010412,20010414,20010426,20010428,20010522,20010630);
    my @extra = (20000401,20001207,20010104,20010323,20010413,20010427);

    #MWF until Feb 5, 2001
    #TThSa until present
    return undef if
	  (($date < 20000313) || # First comic March 13, 2000
  	  (($date >= 20000313 && $date < 20010205) && 
      ($ltime[6] !~ /[135]/ && !grep(/$date/,@extra))) ||
  	  (($date >= 20010205 && $date <= $date2) && 
      ($ltime[6] !~ /[246]/ && !grep(/$date/,@extra))) ||
      grep(/$date/,@missing)); 

    my $title = "Cool Cat Studio";
    my $author = "Gisle Lagac";
    my $url = "http://www.coolcatstudio.com";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

#Elf Life
sub elf {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

	# Last updated March 21, 2002
    my @missing = (19990620,19990627,19990704,19990711,19990718,19990725,
      19990801,19990808,19990815,19990822,19990829,19990905,19990912,
      19990913,19990914,19990915,19990916,19990917,19990918,19990919,
      19990920,19990921,19990922,19990923,19990924,19990925,19990926,
      19990927,19990928,19990929,19990930,19991001,19991002,19991003,
      19991010,19991017,19991021,19991024,19991025,19991026,19991027,
      19991028,19991029,19991030,19991114,19991120,19991126,19991128,
      19991129,19991204,19991205,19991206,19991212,19991219,19991226,
      19991228,19991229,20000102,20000103,20000104,20000105,20000109,
      20000112,20000113,20000116,20000117,20000120,20000121,20000122,
      20000123,20000127,20000129,20000130,20000204,20000205,20000206,
      20000211,20000212,20000213,20000218,20000219,20000220,20000225,
      20000226,20000227,20000228,20000229,20000301,20000302,20000303,
      20000304,20000305,20000312,20000319,20000326,20000402,20000409,
      20000416,20000423,20000507,20000521,20000615,20000709,20000723,
      20000730,20000805,20000806,20000810,20000813,20000819,20000823,
      20000824,20000902,20000903,20000909,20000910,20001001,20001007,
      20001008,20001014,20001015,20001028,20001029,20001104,20001105,
      20001111,20001112,20001119,20001125,20001126,20001203,20001216,
      20001226,20001228,20001230,20001231,20010105,20010311,20010324,
      20010325,20010331,20010405,20010415,20010421,20010422,20010428,
      20010429,20010513,20010519,20010520,20010526,20010527,20010530,
      20010601,20010602,20010603,20010606,20010607,20010608,20010609,
      20010610,20010616,20010623,20010624,20010628,20010630,20010706,
	  20010707,20010708,20010713,20010714,20010715,20010728,20010730,
	  20010804,20010805,20010811,20010812,20010818,20010819,20010824,
	  20010825,20010826,20010831,20010901,20010902,20010909,20010915,
	  20010916,20010922,20010923,20010929,20010930,20011006,20011007,
	  20011010,20011011,20011020,20011021,20011022,20011024,20011025,
	  20011026,20011027,20011028,20011029,20011030,20011031,20011101,
	  20011102,20011103,20011104,20011105,20011106,20011107,20011108,
	  20011109,20011110,20011111,20011117,20011121,20011122,20011123,
      20011124,20011125,20011127,20011130,20011201,20011202,20011208,
      20011209,20011215,20011216,20011222,20011223,20011226,20011227,
      20011228,20011229,20011230,20020105,20020106,20020108,20020109,
      20020110,20020111,20020112,20020113,20020115,20020116,20020118,
	  20020119);

    my @extra = ();

    #Everyday until Present
    return undef if 
		(($date < 19990614) || #first comic on June 14, 1999
		 (($date >= 19990614 && $date <= 20020120) &&    # Check all days up to
		  ($ltime[6] !~ /[0123456]/)) ||                 # 2002-01-20
		 (($date >= 20020121 && $date <= $date2 ) &&     # MWF schedule after
		  ($ltime[6] !~ /[135]/)) ||                     # 2002-01-28
		 grep(/$date/,@missing));
	
    my $title = "Elf Life";
    my $author = "Carson Fire";
    my $url = "http://www.elflife.com";
    my $index = "index.shtml";
    
    return keenspot($title,$author,$date,$url,$index);
}

#Everything Jake
sub evjake {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

   # Last updated July 5, 2001
    my @missing = ();
    my @extra = ();

    #Everyday until present
    return undef if 
      (($date < 20000410) || #first comic on April 10, 2000
      (($date >= 20000410 && $date <= $date2) && 
      ($ltime[6] !~ /[0123456]/)) ||
      grep(/$date/,@missing));

    my $title = "Everything Jake";
    my $author = "Mike Rosenzweig";
    my $url = "http://www.everythingjake.com";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

#Exploitation Now
sub exploit {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

   # Last updated November 16, 2001
    my @missing = (20010413,20010921,20011103,20011104,20011105,20011106,
				   20011107,20011108,20011109,20011110,20011111);
    my @extra = (20010412);

    #MWF until present
    return undef if
      (($date < 20000707) || #first comic on July 07, 2000
      (($date >= 20000707 && $date <= $date2) &&
      ($ltime[6] =~ /[0246]/ && !grep(/$date/,@extra))) ||
      grep(/$date/,@missing));

    my $title = "Exploitation Now";
    my $author = "Michael Poe";
    my $url = "http://www.exploitationnow.com";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

#Funny Farm
sub funny {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

   # Last updated July 5, 2001
    my @missing = (19990816,19990817,19990818,19990819,19990820,20000703,
      20000704,20000705,20000706,20000707,20000708,20000709,20010116,
      20010402,20010403,20010404,20010405,20010406,20010409,20010410,
      20010411,20010412,20010413,20010416,20010417,20010418,20010419,
      20010420,20010423,20010424,20010425,20010426,20010427,20010430);
    my @extra = ();

    #Everyday until present
    return undef if
      (($date < 19990126) || #first comic on January 26, 1999
      (($date >= 19990126 && $date <= $date2) &&
      ($ltime[6] !~ /[0123456]/)) ||
      grep(/$date/,@missing));

    my $title = "Funny Farm";
    my $author = "R. Smith";
    my $url = "http://www.funnyfarmcomics.com";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

#General Protection Fault
sub gpf {
    my $time = shift;
    my @ltime = gmtime($time);
    my $date = strftime("%Y%m%d", @ltime);

    my $issunday = 0;
    if ($ltime[6] == 0) {
	# After Nov 3, 2001 every sunday
	# First Sunday of each month after Aug 2000
	$issunday = 1 if ($date >= 20011104 || 
			  ($date > 20000831 && $ltime[3] < 8));
    }

    # Last updated Dec 10, 2001
    my @missing = ();
    my @extra = (20010916);

    return undef if 
	(($date < 19981102) || #first comic on November 02, 1998
	 ($ltime[6] !~ /[123456]/ && $issunday == 0 && !grep(/$date/,@extra)) ||
	 (grep(/$date/,@missing)));

    my $title = "General Protection Fault";
    my $author = "Jeffrey T. Darlington";
    my $url = "http://www.gpf-comics.com";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

#Greystone Inn
sub greystone {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

   # Last updated July 5, 2001
    my @missing = (20000501,20000502,20000503,20000504,20000505,20000506,
      20000529,20000612,20000703,20000704,20000705,20000706,20000707,
      20000708,20000711,20000712,20000713,20000714,20000715,20010327,
      20010328,20010329,20010331);
    my @extra = (20000220,20000305,20000409,20000618,20000625,20001231);

    #M to Sa until present
    return undef if 
      (($date < 20000214) || #first comic on Feb 14, 2000
      (($date >= 20000214 && $date <= $date2) &&
      ($ltime[6] !~ /[123456]/ && !grep(/$date/,@extra))) ||
      grep(/$date/,@missing));

    my $title = "Greystone Inn";
    my $author = "Brad J. Guigar";
    my $url = "http://www.greystoneinn.net";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

#Help Desk
sub helpdesk {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);
 
   # Last updated July 5, 2001
    my @missing = (19960401,19960520,19960530,19960606,19960613,19960704,
      19960711,19960718,19960725,19960801,19960808,19960815,19960822,
      19960905,19960919,19960926,19961003,19961010,19961017,19961024,
      19961031,19961128,19990117,19990118,19990119,19990120,19990121,
      19990122,19990123,19990124,19990125,19990126,19990127,19990128,
      19990129,19990130,19990131,19990202,19990203,19990204,19990205,
      19990206,19990207,19990208,19990209,19990210,19990211,19990212,
      19990213,19990214,19990215,19990217,19990218,19990219,19990220,
      19990221,19990222,19990223,19990224,19990225,19990226,19990227,
      19990228,19990301,19990302,19990303,19990304,19990305,19990306,
      19990307,19990308,19990309,19990310,19990311,19990312,19990313,
      19990314,19990315,19990317,19990318,19990319,19990320,19990321,
      19990322,19990323,19990324,19990325,19990326,19990327,19990328,
      19990329,19990330,19990331,19990402,19990403,19990404,19990405,
      19990406,19990407,19990408,19990409,19990410,19990411,19990412,
      19990413,19990414,19990415,19990416,19990417,19990418,19990419,
      19990420,19990421,19990422,19990423,19990424,19990425,19990426,
      19990427,19990428,19990429,19990430,19990502,19990503,19990504,
      19990505,19990506,19990507,19990508,19990509,19990510,19990511,
      19990512,19990513,19990514,19990515,19990516,19990517,19990518,
      19990519,19990520,19990521,19990522,19990523,19990524,19990525,
      19990526,19990527,19990528,19990529,19990530,19990531,19990601,
      19990602,19990603,19990604,19990605,19990606,19990607,19990608,
      19990609,19990610,19990611,19990612,19990613,19990614,19990615,
      19990617,19990618,19990619,19990620,19990621,19990622,19990623,
      19990624,19990625,19990626,19990627,19990628,19990629,19990630,
      19990701,19990703,19990704,19990705,19990706,19990707,19990708,
      19990710,19990711,19990712,19990713,19990714,19990716,19990717,
      19990718,19990719,19990720,19990722,19990723,19990724,19990725,
      19990726,19990727,19990729,19990730,19990731,19990801,19990803,
      19990805,19990807,19990808,19990810,19990812,19990814,19990815,
      19990817,19990818,19990819,19990820,19990822,19990824,19990826,
      19990827,19990829,19990830,19990831,19990902,19990904,19990906,
      19990907,19990909,19990911,19990913,19990914,19990916,19990918,
      19990919,19990921,19990923,19990925,19990926,19990928,19990929,
      19990930,19991001,19991002,19991003,19991004,19991005,19991006,
      19991007,19991008,19991009,19991010,19991011,19991012,19991013,
      19991014,19991015,19991016,19991017,19991018,19991019,19991020,
      19991021,19991022,19991023,19991024,19991025,19991026,19991027,
      19991028,19991029,19991030,19991031,19991124,19991126,20000216,
      20000218,20000221,20000228,20000303,20000310,20000403,20000410,
      20000704,20000707,20000711,20000719,20000721,20000725,20000726,
      20000809,20000817,20000818,20000905,20000918,20000928,20001005,
      20001006,20001013,20001030,20001101,20001116,20001117,20001127,
      20001212,20001220,20010101,20010102,20010220,20010312,20010313,
      20010315,20010327,20010328,20010329,20010404,20010419,20010420,
      20010522,20010528,20010614,20010615,20010618,20010619,20010620,
      20010621,20010622,20010627,20010704);
    my @extra = (19960331,19960521,19970809,19970816,19971116,19971123,
      19971217,19971224,19971229,19980111,19981201,19981216,19991118,
      19991120,19991125,19991127,20000101,20000328,20000330,20000401,
      20000409,20010311);

    #M until May 28, 1996
    #Th until December 12, 1997
    #No Comics (but 6) until January 16, 1999
    #Sporatic until November 1, 1999
    #MWF until May 13, 2000
    #M to F until present
    return undef if 
      (($date < 19960331) || #first comic on March 31, 1996
      (($date >= 19960331 && $date < 19960528) && 
      ($ltime[6] !~ /[1]/ && !grep(/$date/,@extra))) ||
      (($date >= 19960528 && $date < 19971212) && 
      ($ltime[6] !~ /[4]/ && !grep(/$date/,@extra))) ||
      (($date >= 19961212 && $date < 19990116) && 
      (!grep(/$date/,@extra))) ||
      (($date >= 19990116 && $date < 19991101) && 
      ($ltime[6] !~ /[0123456]/)) ||
      (($date >= 19991101 && $date < 20000513) && 
      ($ltime[6] !~ /[135]/ && !grep(/$date/,@extra))) ||
      (($date >= 20000513 && $date <= $date2) && 
      ($ltime[6] !~ /[12345]/ && !grep(/$date/,@extra))) ||
      grep(/$date/,@missing));

    my $title = "Help Desk";
    my $author = "Cristopher B. Wright";
    my $url = "http://www.ubersoft.net";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

#Hounds Home
sub hh {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

   # Last updated June 6, 2001
    my @missing = (20000514,20010403,20010404,20010405,20010406,20010407,
      20010408,20010410,20010411,20010412,20010413,20010414,20010415,
      20010417,20010418,20010419,20010420,20010421,20010422,20010424,
      20010425,20010426,20010427,20010428,20010429,20010501,20010502,
      20010503,20010504,20010505,20010506);
    my @extra = (20010401,20010402,20010409,20010416,20010413,20010423,
      20010430);

    #Every day until January 22, 2001
    #none until may 7, 2001
    #everyday until present
    return undef if 
      (($date < 19990906) || #first comic on September 6, 1999
      (($date >= 19990906 && $date < 20010122) && 
      ($ltime[6] !~ /[0123456]/)) ||
      (($date >= 20010122 && $date < 20010401) && 
      (!grep(/$date/,@extra))) ||
      grep(/$date/,@missing));

    my $title = "Hounds Home";
    my $author = "Ryan Duchane";
    my $url = "http://www.houndshome.com";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

#It's Walky
sub walky {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

   # Last updated July 5, 2001
    my @missing = (19971126,19971127,19971128,19971216,19971217,19971218,
      19971219,19971222,19971223,19971224,19971225,19971226,19971229,
      19971230,19971231,19980101,19980102,19980105,19980106,19980107,
      19980108,19980109,19980119,19980316,19980317,19980318,19980319,
      19980320,19981126,19981127,19981222,19981223,19981224,19981228,
      19981229,19981230,19990405,19990406,19990407,19990408,19990409,
      19990410,19990411,19990906,19990912,19991031,19991116,19991216,
      20000102,20000103,20000104,20000105,20000106,20000107,20000108,
      20000109,20000220,20000228,20000229,20000301,20000302,20000303,
      20000304,20000305);
    my @extra = ();

    #comics M to F until May 4, 1998
    #None until Sept 14, 1998
    #comics M to F until march 22, 1999
    #everyday until present
    return undef if 
      (($date < 19970908) || #first comic on September 08, 1997
      (($date >= 19970908 && $date < 19980504) && 
      ($ltime[6] !~ /[12345]/ && !grep(/$date/,@extra))) ||
      (($date >= 19980504 && $date < 19980914) &&
      (!grep(/$date/,@extra))) ||
      (($date >= 19980914 && $date < 19990322 ) && 
      ($ltime[6] !~ /[12345]/ && !grep(/$date/,@extra))) ||
      (($date >= 19990322 && $date <= $date2) &&
      ($ltime[6] !~ /[0123456]/)) ||
      grep(/$date/,@missing));

    my $title = "Its Walky";
    my $author = "David Willis";
    my $url = "http://www.itswalky.com";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

#Joe Average
sub joeav {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

   # Last updated June 25, 2001
    my @missing = (20000317,20000425,20000428,20000504,20000508,20000511,
      20000518,20000519,20000522,20000523,20000608,20000615,20000616,
      20000619,20000623,20000627,20000629,20000630,20000703,20000704,
      20000705,20000706,20000707,20000710,20000711,20000712,20000713,
      20000714,20000717,20000718,20000719,20000720,20000721,20000727,
      20000801,20000804,20000807,20000810,20000811,20000814,20000815,
      20000816,20000817,20000818,20000824,20000825,20000828,20000831,
      20000901,20000921,20001004,20001005,20001006,20001017,20001025,
      20001026,20001027,20001030,20001031,20001101,20001102,20001103,
      20001106,20001107,20001108,20001109,20001110,20001113,20001114,
      20001115,20001116,20001122,20001123,20001124,20001127,20001128,
      20001129,20001130,20001225,20001226,20001227,20001228,20001229,
      20010125,20010126,20010205,20010206,20010207,20010208,20010209,
      20010219,20010221,20010222,20010307,20010309,20010314,20010316,
      20010321,20010327,20010402,20010403,20010404,20010405,20010406,
      20010409,20010410,20010411,20010412,20010413,20010416,20010417,
      20010418,20010419,20010420,20010423,20010424,20010425,20010426,
      20010427,20010430,20010501,20010502,20010503,20010504,20010507,
      20010508,20010509,20010510,20010511,20010514,20010515,20010517,
      20010521,20010522,20010529,20010530,20010531,20010601,20010606,
      20010612,20010615,20010618,20010620);
    my @extra = (20000318,20000401,20000408,20000415,20000429,20000513,
      20000527,20000603,20000624,20001021,20001028,20010519);

    #M to F until present
    return undef if 
      (($date < 19991213) || #first comic on December 13, 1999
      (($date >= 19991213 && $date <= $date2) &&
      ($ltime[6] !~ /[12345]/ && !grep(/$date/,@extra))) ||
      grep(/$date/,@missing));

    my $title = "Joe Average";
    my $author = "Aaron M. Holm";
    my $url = "http://www.joeaverage.org";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

#Krazy Larry
sub krazyl {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

   # Last updated July 5, 2001
    my @missing = (19990207,19990208,19990209,19990211,19990212,19990214,
      19990215,19990216,19990217,19990218,19990219,19990220,19990221,
      19990222,19990223,19990227,19990228,19990303,19990304,19990306,
      19990307,19990308,19990309,19990310,19990311,19990312,19990313,
      19990314,19990316,19990317,19990318,19990319,19990321,19990322,
      19990323,19990324,19990325,19990326,19990327,19990328,19990329,
      19990330,19990331,19990401,19990402,19990403,19990404,19990405,
      19990406,19990407,19990408,19990409,19990410,19990411,19990412,
      19990413,19990414,19990415,19990416,19990417,19990418,19990419,
      19990420,19990421,19990422,19990423,19990424,19990425,19990426,
      19990427,19990428,19990429,19990430,19990501,19990502,19990503,
      19990504,19990505,19990506,19990507,19990508,19990509,19990510,
      19990511,19990512,19990513,19990514,19990515,19990516,19990517,
      19990518,19990519,19990520,19990521,19990522,19990523,19990524,
      19990525,19990526,19990527,19990528,19990529,19990530,19990531,
      19990601,19990602,19990603,19990604,19990605,19990606,19990607,
      19990608,19990609,19990610,19990611,19990612,19990613,19990614,
      19990615,19990616,19990617,19990618,19990619,19990620,19990621,
      19990622,19990623,19990624,19990625,19990626,19990627,19990628,
      19990629,19990630,19990701,19990702,19990703,19990704,19990705,
      19990706,19990707,19990708,19990709,19990710,19990711,19990712,
      19990713,19990714,19990715,19990716,19990717,19990718,19990719,
      19990720,19990721,19990722,19990723,19990724,19990725,19990726,
      19990727,19990728,19990729,19990730,19990731,19990801,19990802,
      19990803,19990804,19990805,19990806,19990807,19990808,19990809,
      19990810,19990811,19990812,19990813,19990814,19990815,19990816,
      19990817,19990818,19990819,19990820,19990821,19990822,19990823,
      19990824,19990825,19990826,19990827,19990828,19990829,19990830,
      19990831,19990901,19990902,19990903,19990904,19990905,19990906,
      19990907,19990908,19990909,19990910,19990911,19990912,19990913,
      19990914,19990915,19990916,19990917,19990918,19990919,19990920,
      19990921,19990922,19990923,19990924,19990925,19990926,19990927,
      19990928,19990929,19990930,19991001,19991002,19991003,19991004,
      19991005,19991006,19991007,19991008,19991009,19991010,19991011,
      19991012,19991013,19991015,19991016,19991017,19991018,19991019,
      19991020,19991021,19991022,19991023,19991024,19991025,19991026,
      19991027,19991028,19991029,19991030,19991101,19991102,19991103,
      19991105,19991106,19991107,19991109,19991110,19991112,19991113,
      19991115,19991116,19991117,19991119,19991120,19991121,19991123,
      19991124,19991126,19991127,19991128,19991130,19991201,19991203,
      19991204,19991205,19991207,19991208,19991210,19991211,19991212,
      19991214,19991215,19991217,19991218,19991219,19991221,19991222,
      19991224,19991225,19991226,19991227,19991228,19991229,19991230,
      19991231,20000101,20000102,20000103,20000104,20000105,20000106,
      20000107,20000108,20000109,20000110,20000111,20000112,20000113,
      20000114,20000115,20000116,20000117,20000118,20000119,20000120,
      20000121,20000122,20000123,20000124,20000125,20000126,20000127,
      20000128,20000129,20000130,20000131,20000201,20000202,20000203,
      20000204,20000205,20000206,20000207,20000208,20000209,20000210,
      20000211,20000212,20000213,20000214,20000215,20000216,20000217,
      20000218,20000219,20000220,20000221,20000222,20000223,20000224,
      20000225,20000226,20000227,20000228,20000229,20000301,20000302,
      20000303,20000304,20000305,20000306,20000307,20000308,20000309,
      20000310,20000311,20000312,20000318,20000319,20000325,20000326,
      20000401,20000402,20000408,20000409,20000415,20000416,20000422,
      20000423,20000429,20000430,20000506,20000507,20000513,20000514,
      20000520,20000521,20000528,20000603,20000604,20000610,20000611,
      20000617,20000618,20000624,20000625,20000701,20000702,20000708,
      20000709,20000715,20000716,20000722,20000723,20000729,20000730,
      20000805,20000806,20000812,20000813,20000819,20000820,20000826,
      20000827,20000902,20000903,20000909,20000910,20000916,20000917,
      20000924,20000930,20001001,20001007,20001008,20001014,20001015,
      20001021,20001022,20001028,20001029,20001104,20001105,20001111,
      20001112,20001118,20001119,20001125,20001126,20001202,20001203,
      20001209,20001210,20001216,20001217,20001223,20001224,20001230,
      20001231,20010106,20010107,20010113,20010114,20010120,20010121,
      20010127,20010128,20010203,20010204,20010210,20010211,20010217,
      20010218,20010224,20010225,20010303,20010304,20010310,20010311,
      20010317,20010318,20010324,20010325,20010331,20010401,20010407,
      20010408,20010414,20010415,20010421,20010422,20010428,20010429,
      20010506,20010512,20010513,20010519,20010520,20010526,20010527,
      20010602,20010603,20010609,20010610,20010616,20010617,20010623,
      20010624,20010630,20010701);
    my @extra = (19960601,19970206,19970208,19970701);

    #Very sporadic check every day
    return undef if 
      #first comic June 1, 1996, but only four before Feb 1, 1999
      (($date < 19990201 && !grep(/$date/,@extra)) || 
      (($date >= 19990201 && $date <= $date2) &&
      ($ltime[6] !~ /[0123456]/)) ||
      grep(/$date/,@missing));

    my $title = "Krazy Larry";
    my $author = "Paul Southworth";
    my $url = "http://www.krazylarry.com";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

#Lost and Found Investigations
sub lostfound {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

   # Last updated July 5, 2001
    my @missing = ();
    my @extra = ();

    # No comics Tuedays, Thursdays and Saturdays
    return undef if 
      (($date < 20000103) || #first comic on January 03, 2000
      (($date >= 20000103 && $date <= $date2) &&
      ($ltime[6] =~ /[246]/ && !grep(/$date/,@extra))) ||
      grep(/$date/,@missing));

    my $title = "Lost and Found";
    my $author = "Matt Mulligan";
    my $url = "http://www.lostandfoundcomic.com";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

#Life at Bayside
sub bayside {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

   # Last updated July 5, 2001
    my @missing = (19991103,19991104,19991105,19991108,19991126,20010210,
      20010211,20010217,20010218,20010224,20010225,20010303,20010304,
      20010419,20010420,20010504,20010619,20010620,20010621,20010622,
      20010625,20010626,20010627,20010628,20010629,20010702,20010703,
      20010704,20010705);
    my @extra = (20000304,20000305,20000311,20000312,20000401,20001007,
      20001008,);

    #M to F until December 2, 2000
    #None until December 24, 2000
    #Eveyday until 20010309
    #M to F until present
    return undef if 
      (($date < 19990503) || #first comic on May 03, 1999
      (($date >= 19990503 && $date < 20001202) && 
      ($ltime[6] !~ /[12345]/ && !grep(/$date/,@extra))) ||
      ($date >= 20001202 && $date < 20001224) ||
      (($date >= 20010309 && $date <= $date2) &&
      ($ltime[6] !~ /[12345]/ && !grep(/$date/,@extra))) ||
      grep(/$date/,@missing));

    my $title = "Life at Bayside";
    my $author = "Curtis Berry";
    my $url = "http://www.baysid.com";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

#Look What I Brought Home
sub lwibh {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

   # Last updated July 5, 2001
    my @missing = ();
    my @extra = (19990202,19990204);

    #MWF until October 3, 1999
    #Everyday until present
    return undef if 
      (($date < 19990201) || #first comic on February 1, 1999
      (($date >= 19990201 && $date < 19991003) && 
      ($ltime[6] !~ /[135]/ && !grep(/$date/,@extra))) ||
      grep(/$date/,@missing));

    my $title = "Look What I Brought Home";
    my $author = "Scott and Amanda Kuehner";
    my $url = "http://www.lookwhatibroughthome.com";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

#Life's so Rad
sub rad {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

   # Last updated July 5, 2001
    my @missing = ();
    my @extra = (19991114,20000728,20010401,20010415,20010610,20010617);

    #M to F until June 29, 2000
    #None until Feb 16, 2001
    #M to F until present
    return undef if 
      (($date < 19991114) || #first comic on November 11, 1999
      (($date >= 19991114 && $date < 20000629) &&
      ($ltime[6] !~ /[12345]/ && !grep(/$date/,@extra))) ||
      (($date >= 20000629 && $date < 20010216) ||
      (!grep(/$date/,@extra))) ||
      (($date >= 20010216 && $date <= $date2) &&
      ($ltime[6] !~ /[12345]/)) ||
      grep(/$date/,@missing));

    my $title = "Lifes so Rad";
    my $author = "corey marie kitley";
    my $url = "http://www.radcomics.com";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

#Living in Greytown
sub greytown {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

   # Last updated July 5, 2001
    my @missing = (20000117,20000118,20000119,20000120,20000121,20000122,
      20000131,20000210,20000211,20000212,20000213,20000214,20000215,
      20000216,20000217,20000218,20000219,20000220,20000221,20000222,
      20000223,20000224,20000225,20000226,20000227,20000228,20000229,
      20000301,20000302,20000303,20000304,20000305,20000306,20000307,
      20000308,20000309,20000310,20000311,20000312,20000313,20000531);
    my @extra = ();

    #Everyday until present
    return undef if 
      (($date < 20000110) || #first comic on January 10, 2000
      (($date >= 20000110 && $date <= $date2) &&
      ($ltime[6] !~ /[0123456]/)) ||
      grep(/$date/,@missing));

    my $title = "Living in Greytown";
    my $author = "Dave Kelly";
    my $url = "http://www.livingingreytown.com";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

#Melonpool
sub mp {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

   # Last updated July 5, 2001
    my @missing = (19960826,19960827,19960828,19960829,19960830,19960831,
      19960901,19960902,19960903,19960904,19960905,19960906,19960907,
      19960908,19961020,19961021,19961022,19961023,19961024,19961025,
      19961026,19961118,19961119,19961120,19961121,19961122,19961123,
      19961124,19961202,19961203,19961204,19961205,19961206,19961207,
      19961208,19961209,19961210,19961211,19961212,19961213,19961214,
      19961215,19961216,19961217,19961218,19961219,19961220,19961221,
      19961222,19961223,19961224,19961225,19961226,19961227,19961228,
      19961229,19970216,19970217,19970218,19970219,19970220,19970221,
      19970222,19970223,19970224,19970225,19970226,19970227,19970228,
      19970301,19970302,19970303,19970304,19970305,19970306,19970307,
      19970308,19970309,19970310,19970311,19970312,19970313,19970314,
      19970315,19970316,19970317,19970318,19970319,19970320,19970321,
      19970322,19970323,19970324,19970325,19970326,19970327,19970328,
      19970329,19970330,19970331,19970401,19970402,19970403,19970404,
      19970405,19970406,19970407,19970408,19970409,19970410,19970411,
      19970412,19970518,19970519,19970520,19970521,19970522,19970523,
      19970524,19970525,19970526,19970527,19970528,19970529,19970530,
      19970531,19970601,19970602,19970603,19970604,19970605,19970606,
      19970607,19970608,19970609,19970610,19970611,19970612,19970613,
      19970614,19970622,19970623,19970624,19970625,19970626,19970627,
      19970628,19970630,19970701,19970702,19970703,19970704,19970705,
      19970706,19970707,19970708,19970709,19970710,19970711,19970712,
      19970713,19970714,19970715,19970716,19970717,19970718,19970719,
      19970720,19970721,19970722,19970723,19970724,19970725,19970726,
      19970727,19970810,19970811,19970812,19970813,19970814,19970815,
      19970816,19970825,19970826,19970827,19970828,19970829,19970830,
      19970831,19970907,19970908,19970909,19970910,19970911,19970912,
      19970913,19970914,19970915,19970916,19970917,19970918,19970919,
      19970920,19970921,19970922,19970923,19970924,19970925,19970926,
      19970927,19970928,19970929,19970930,19971001,19971002,19971003,
      19971004,19971026,19971027,19971028,19971029,19971030,19971031,
      19971101,19971102,19971103,19971104,19971105,19971106,19971107,
      19971108,19971130,19971201,19971202,19971203,19971204,19971205,
      19971206,19971207,19971208,19971209,19971210,19971211,19971212,
      19971213,19971228,19971229,19971230,19971231,19980101,19980102,
      19980103,19980104,19980105,19980106,19980107,19980108,19980109,
      19980110,19980111,19980112,19980113,19980114,19980115,19980116,
      19980117,19980118,19980119,19980120,19980121,19980122,19980123,
      19980124,19980125,19980126,19980127,19980128,19980129,19980130,
      19980131,19980201,19980202,19980203,19980204,19980205,19980206,
      19980207,19980208,19980209,19980210,19980211,19980212,19980213,
      19980214,19980215,19980216,19980217,19980218,19980219,19980220,
      19980221,19980222,19980223,19980224,19980225,19980226,19980227,
      19980228,19980426,19980427,19980428,19980429,19980430,19980501,
      19980502,19980503,19980504,19980505,19980506,19980507,19980508,
      19980509,19980510,19980511,19980512,19980513,19980514,19980515,
      19980516,19980517,19980518,19980519,19980520,19980521,19980522,
      19980523,19980607,19980608,19980609,19980610,19980611,19980612,
      19980613,19980614,19980615,19980616,19980617,19980618,19980619,
      19980620,19980621,19980622,19980623,19980624,19980625,19980626,
      19980627,19980628,19980629,19980630,19980701,19980702,19980703,
      19980704,19980705,19980706,19980707,19980708,19980709,19980710,
      19980711,19980712,19980713,19980714,19980715,19980716,19980717,
      19980718,19980719,19980720,19980721,19980722,19980723,19980724,
      19980725,19980802,19980803,19980804,19980805,19980806,19980807,
      19980808,19980809,19980810,19980811,19980812,19980813,19980814,
      19980815,19980816,19980817,19980818,19980819,19980820,19980821,
      19980822,19980823,19980824,19980825,19980826,19980827,19980828,
      19980829,19981004,19981005,19981006,19981007,19981008,19981009,
      19981010,19981011,19981012,19981013,19981014,19981015,19981016,
      19981017,19981018,19981019,19981020,19981021,19981022,19981023,
      19981024,19981025,19981026,19981027,19981028,19981029,19981030,
      19981031,19981101,19981102,19981103,19981104,19981105,19981106,
      19981107,19981108,19981109,19981110,19981111,19981112,19981113,
      19981114,19981115,19981116,19981117,19981118,19981119,19981120,
      19981121,19990103,19990104,19990105,19990106,19990107,19990108,
      19990109,19990110,19990111,19990112,19990113,19990114,19990115,
      19990116,19990201,19990202,19990203,19990204,19990205,19990206,
      19990207,19990228,19990301,19990302,19990303,19990304,19990305,
      19990306,19990314,19990315,19990316,19990317,19990318,19990319,
      19990320,19990321,19990322,19990323,19990324,19990325,19990326,
      19990327,19990328,19990329,19990330,19990331,19990401,19990402,
      19990403,19990404,19990405,19990406,19990407,19990408,19990409,
      19990410,19990620,19990621,19990622,19990623,19990624,19990625,
      19990626,19990705,19990706,19990707,19990708,19990709,19990710,
      19990711,19990712,19990713,19990714,19990715,19990716,19990717,
      19990718,19990719,19990720,19990721,19990722,19990723,19990724,
      19990725,19990726,19990727,19990728,19990729,19990730,19990731,
      19990801,19990802,19990803,19990804,19990805,19990806,19990807,
      19990808,19990809,19990810,19990811,19990812,19990813,19990814,
      19990815,19990816,19990817,19990818,19990819,19990820,19990821,
      19990822,19990823,19990824,19990825,19990826,19990827,19990828,
      19990829,19990830,19990831,19990901,19990902,19990903,19990904,
      19990905,19990926,19990927,19990928,19990929,19990930,19991001,
      19991002,19991003,19991004,19991005,19991006,19991007,19991008,
      19991009,19991017,19991018,19991019,19991020,19991021,19991022,
      19991023,19991101,19991102,19991103,19991104,19991105,19991106,
      19991107,19991226,19991227,19991228,19991229,19991230,19991231,
      20000101,20000117,20000118,20000119,20000120,20000121,20000122,
      20000123,20000130,20000131,20000201,20000202,20000203,20000204,
      20000205,20000206,20000207,20000208,20000209,20000210,20000211,
      20000212,20000213,20000214,20000215,20000216,20000217,20000218,
      20000219,20000220,20000221,20000222,20000223,20000224,20000225,
      20000226,20000227,20000228,20000229,20000301,20000302,20000303,
      20000304,20000305,20000306,20000307,20000308,20000309,20000310,
      20000311,20000312,20000313,20000314,20000315,20000316,20000317,
      20000318,20000402,20000403,20000404,20000405,20000406,20000407,
      20000408,20000409,20000410,20000411,20000412,20000413,20000414,
      20000415,20000416,20000417,20000418,20000419,20000420,20000421,
      20000422,20000423,20000424,20000425,20000426,20000427,20000428,
      20000429,20000430,20000501,20000502,20000503,20000504,20000505,
      20000506,20000528,20000529,20000530,20000531,20000601,20000602,
      20000603,20000604,20000605,20000606,20000607,20000608,20000609,
      20000610,20000611,20000612,20000613,20000614,20000615,20000616,
      20000617,20000618,20000619,20000620,20000621,20000622,20000623,
      20000624,20000625,20000626,20000627,20000628,20000629,20000630,
      20000701,20000702,20000703,20000704,20000705,20000706,20000707,
      20000708,20000709,20000710,20000711,20000712,20000713,20000714,
      20000715,20000716,20000717,20000718,20000719,20000720,20000721,
      20000722,20000723,20000724,20000725,20000726,20000727,20000728,
      20000729,20000730,20000731,20000801,20000802,20000803,20000804,
      20000805,20000806,20000807,20000808,20000809,20000810,20000811,
      20000812,20001227,20001228,20001229,20001230,20001231,20010101,
      20010102,20010103,20010104,20010105,20010106,20010107,20010108,
      20010109,20010210,20010211,20010212,20010213,20010215,20010216,
      20010217);
    my @extra = ();

    #Everyday until present
    return undef if 
      (($date < 19960428) || #first comic on April 28, 1996
      (($date >= 19960428 && $date <= $date2) &&
      ($ltime[6] !~ /[0123456]/)) ||
      grep(/$date/,@missing));

    my $title = "Melonpool";
    my $author = "Steve Troop";
    my $url = "http://www.melonpool.com";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

#Mr Chuck Show
sub mcs {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

   # Last updated July 5, 2001
    my @missing = (19990816,19990930,20000403);
    my @extra = (19990401,19990622,19990623,19990624,19990625,19990626,19990627,
      20000401,20000527,20001020,20001027,20001117,20001124);

    #M until Sept 27, 1999
    #MTh until April 24, 2000
    #MTWTh until Jan 11, 2001
    #M to F until present
    return undef if 
      (($date < 19990301) || #first comic on March 1, 1999
      (($date >= 1990301 && $date < 19990927) && 
      ($ltime[6] !~ /[1]/ && !grep(/$date/,@extra))) ||
      (($date >= 1990927 && $date < 20000424) && 
      ($ltime[6] !~ /[14]/ && !grep(/$date/,@extra))) ||
      (($date >= 20000424 && $date < 20010111) && 
      ($ltime[6] !~ /[1234]/ && !grep(/$date/,@extra))) ||
      (($date >= 20010111 && $date <= $date2) && 
      ($ltime[6] !~ /[12345]/ && !grep(/$date/,@extra))) ||
      grep(/$date/,@missing));

    my $title = "The Mr Chuck Show";
    my $author = "John Myers";
    my $url = "http://www.mrchuckshow.com";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

#News Hounds
sub newshounds {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

    # Last updated July 5, 2001
    my @missing = (19971112,19971124,19971127,19980303,19980305,19980310,
      19980312,19980317,19980319,19980324,19980326,19980331,19980402,
      19980407,19980409,19980414,19980416,19990104,19990105,19990106,
      19990107,19990108,19990405,19990406,19990407,19990408,19990409,
      19990607,19990802,19990803,19990804,19990805,19990806,19991122,
      19991123,19991124,19991125,19991126,19991129,19991130,19991201,
      19991202,19991203,20000306,20000307,20000308,20000309,20000310,
      20000410,20000411,20000412,20000413,20000414,20010104,20010105,
      20010108,20010109,20010110);
    my @extra = (19971102,19971109,19971116,19971123,19971130,19971207,
      20000401,20000422);
    my @sunday = (19971102,19971109,19971116,19971123,19971130,19971207);

    #M to Sa until March 1, 1998
    #M to F after
    return undef if 
      (($date < 19971101) || #first strip November 1, 1997
      (($date >= 19971101 && $date < 19980301) && 
      ($ltime[6] !~ /[123456]/ && !grep(/$date/,@extra))) ||
      (($date >= 19980301 && $date <= $date2) && 
      ($ltime[6] !~ /[12345]/ && !grep(/$date/,@extra))) ||
      grep(/$date/,@missing));
      
    my $title = "News Hounds";
    my $author = "Thomas K. Dye";
    my $url = "http://www.newshounds.com";

    if (grep(/$date/,@sunday)) {
      my $i=0;
      foreach (@sunday) {
        $i++;
        last if (/$date/);
      }
      my $index = "nhsunday$i.html";
      my @ltime2 = gmtime(time);
      my $page = "/$index";
    
      my $rec = {
        'title' => "$title",
        'author' => "$author",
        'main' => $url,
        'archives' => $url,
        'base' => $url,
        'page' => $page,
      };

      $rec->{'func'} = sub {
        my $text = shift;
        my @relurls = ();
        #repeatedly match and replace.  
        while (1) {
          if ($text =~ s/src=".*?(images\/.*?$i\w?\.((:?jpg)|(:?gif)|(:?png)|(:?swf)))"//i) {
            push(@relurls,"/".$1);
            $rec->{'type'} = $2;
          } else {
            last;
          }
        }
        if ($text =~ s/selected>(.*?)<\/option>//i) {
          $rec->{'caption'} = $1;
        }
        return reverse @relurls;
      };
      return $rec;
    } else {  
      my $index = undef;
      return keenspot($title,$author,$date,$url,$index);
    }
}

#Nukees
sub nukees {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

   # Last updated July 5, 2001
    my @missing = (19970213,19970220,19970325,19970327,19970513,19970522,
      19970527,19970529,19970627,19970808,19970827,19971010,19971128,
      19971217,19971219,19971224,19971226,19971231,19980102,19980107,
      19980109,19980114,19980116,19980325,19980327,19980501,19980819,
      19980821,19980925,19981202,19981216,19981218,19981223,19981225,
      19981230,19990101,19990106,19990108,19990113,19990115,19990122,
      19990324,19990326,19990331,19990428,19990519,19990521,19990526,
      19990602,19990609,19990616,19990623,19990625,19990630,19990707,
      19990714,19990721,19990728,19990804,19990811,19990818,19991126);
    my @extra = (19970203,19970214,19970221,19970514,19980928,19990401,
      20000401,20010505);

    #TTh until May 30, 1997
    #F until August 29, 1997
    #WF until May 19, 1998
    #T until August 18, 1998
    #WF until December 6, 1999
    #MWF until present
    return undef if 
      (($date < 19970121) || #first comic on January 21, 1997
      (($date >= 19970121 && $date < 19970530) && 
      ($ltime[6] !~ /[24]/ && !grep(/$date/,@extra))) ||
      (($date >= 19970530 && $date < 19970827) && 
      ($ltime[6] !~ /[5]/ && !grep(/$date/,@extra))) ||
      (($date >= 19970827 && $date < 19980519) && 
      ($ltime[6] !~ /[35]/ && !grep(/$date/,@extra))) ||
      (($date >= 19980519 && $date < 19980818) && 
      ($ltime[6] !~ /[2]/ && !grep(/$date/,@extra))) ||
      (($date >= 19980818 && $date < 19991206) && 
      ($ltime[6] !~ /[35]/ && !grep(/$date/,@extra))) ||
      (($date >= 19991206 && $date <= $date2) &&
      ($ltime[6] !~ /[135]/ && !grep(/$date/,@extra))) ||
      grep(/$date/,@missing));

    my $title = "Nukees";
    my $author = "Darren Bleuel";
    my $url = "http://www.nukees.com";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

#Ozy and Millie
sub ozy {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

   # Last updated July 5, 2001
    my @missing = (19980629,19980630,19980701,19980702,19980820,19980821,
      19980824,19980825,19980826,19980827,19980828,19980831,19980901,
      19980903,19980904,19980908,19980909,19980910,19980929,19981001,
      19981020,19981022,19981027,19981029,19981030,19990209,19990211,
      19990212,19990215,19990217,19990218,19990219,19990222,19990223,
      19990224,19990225,19990226,19990301,19990302,19990303,19990304,
      19990305,19990401,19990531,19990601,19990602,19990603,19990604,
      19990607,19990608,19990609,19990610,19990611,19990614,19990615,
      19990616,19990617,19990618,19990621,19990622,19990623,19990624,
      19990625,19990628,19990629,19990630,19990830,19990831,19990901,
      19990902,19990903,19991025,19991026,19991027,19991028,19991029,
      19991101,19991102,19991103,19991104,19991105,20000117,20000118,
      20000119,20000120,20000121,20000125,20000228,20000229,20000301,
      20000302,20000303,20000410,20000412,20000413,20000414,20000417,
      20000418,20000419,20000420,20000421,20000424,20000425,20000426,
      20000427,20000428,20000501,20000502,20000503,20000504,20000505,
      20000704,20000705,20000706,20000730,20000731,20000801,20000802,
      20000803,20000804,20000805,20001123,20001124,20001125,20001126,
      20001127,20010118,20010119,20010120,20010121,20010416,20010417,
      20010418,20010419,20010420,20010421,20010422,20010624);
    my @extra = (19981031,19990213,20000123);

    #Everyday until June 26, 1998
    #M to F until November 2, 1998
    #None until December 20, 1998
    #M to F until may 22, 2000
    #Everyday until present
    return undef if 
      (($date < 19980429) || #first comic on April 29, 1998
      (($date >= 19980429 && $date < 19980626) &&
      ($ltime[6] !~ /[0123456]/)) ||
      (($date >= 19980626 && $date < 19981102) &&
      ($ltime[6] !~ /[12345]/ && !grep(/$date/,@extra))) ||
      (($date >= 19981102 && $date < 19981220) &&
      (!grep(/$date/,@extra))) ||
      (($date >= 19981220 && $date < 20000522) &&
      ($ltime[6] !~ /[12345]/ && !grep(/$date/,@extra))) ||
      (($date >= 20000522 && $date <= $date2) &&
      ($ltime[6] !~ /[0123456]/)) ||
      grep(/$date/,@missing));

    my $title = "Ozy and Millie";
    my $author = "D. C. Simpson";
    my $url = "http://www.ozyandmillie.org";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

#Pentasmal
sub pentasmal {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

   # Last updated July 5, 2001
    my @missing = (20001201,20001229,20010101,20010430);
    my @extra = (20000102,20000401,20010429);

    #M to F until present
    return undef if 
      (($date < 20000102) || #first comic on January 2, 2000
      (($date >= 20000102 && $date <= $date2) &&
      ($ltime[6] !~ /[12345]/ && !grep(/$date/,@extra))) ||
      grep(/$date/,@missing));

    my $title = "Pentasmal";
    my $author = "Arron Farber";
    my $url = "http://pentasmal.com";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

#Real Life
sub real {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

   # Last updated July 5, 2001
    my @missing = (19991220,19991221,19991222,19991223,19991224,19991225,
      19991226,20000304,20000305,20000326,20000501,20000527,20000528,
      20000611,20000617,20000619,20000621,20000622,20000623,20000624,
      20000625,20000716,20000725,20000808,20000820,20000914,20000916,
      20000917,20000928,20001010,20001011,20001012,20001013,20001025,
      20001205,20001225,20010101,20010102,20010219,20010504,20010515,
      20010524,20010525,20010528,20010529,20010530,20010704);
    my @extra = ();

    #Everday until September 24, 2000
    #M to F until present
    return undef if 
      (($date < 19991115) || #first comic on November 15, 1999
      (($date >= 19991115 && $date < 20000924) &&
      ($ltime[6] !~ /[0123456]/)) ||
      (($date >= 20000924 && $date <= $date2) &&
      ($ltime[6] !~ /[12345]/ && !grep(/$date/,@extra))) ||
      grep(/$date/,@missing));

    my $title = "Real Life";
    my $author = "Greg Dean";
    my $url = "http://reallifecomics.com";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

sub rpg {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

	# Last updated Feb. 7, 2002
    my @missing = (20010207,20020106,20020118);
    my @extra = (20000827,20000903,20000910,20000917,20000928,20000930,
				 20001005,20001009,20001021,20001027,20001029,20001103,
				 20001105,20001010,20001225,20010206,20010611,20010612,
				 20010614,20010827,20010920,20020107
				);

    #First comic on 20000827.
    #Comic begins regular SWF schedule on 20001112
    return undef if 
		(($date < 20000827) ||             #first comic on August 27, 2000
		 (($date >= 20000827 && $date < 20001112) &&
		  (!grep(/$date/,@extra))) ||
		 (($date >= 20001112) &&           # Sunday, Wednesay, Friday
		  (($ltime[6] !~ /[035]/) && (!grep(/$date/,@extra)))) ||  
		 grep(/$date/,@missing));

    my $title = "RPG World";
    my $author = "Ian J.";
    my $url = "http://www.rpgworldcomic.com";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

#Road Waffles
sub rwaffles {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

   # Last updated July 5, 2001
    my @missing = ();
    my @extra = ();

    #everyday until July 29, 2000
    #None until November 13, 2000
    #everyday until april 5, 2001
    #no new comics since april 5, 2001
    return undef if 
		(($date < 19991108) || #first comic on November 8, 1999
		 (($date >= 19991108 && $date < 20000729) &&
		  ($ltime[6] !~ /[0123456]/)) ||
		 (($date >= 20000729 && $date < 20001113) &&
		  (!grep(/$date/,@extra))) ||
		 (($date >= 20001113 && $date < 20010405) &&
		  ($ltime[6] !~ /[0123456]/)) ||
		 (($date >= 20010405 && $date <= $date2) &&
		  (!grep(/$date/,@extra))) ||
		 grep(/$date/,@missing));

    my $title = "Road Waffles";
    my $author = "eight";
    my $url = "http://www.roadwaffles.com";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

#S.S.D.D.
sub ssdd {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

   # Last updated July 5, 2001
    my @missing = (19980928,19990405,20000731,20001225,20010101,20010302,
      20010309,20010323,20010406,20010625);
    my @extra = (19980927,19980929,19981001,19981007,19981009,19981014,
      19981016,19981022,19981029,19981112,19981203,19990401,20000401,
      20000801,20010405);

    #M until September 25, 2000
    #MF until present
    return undef if 
      (($date < 19980927) || #first comic on September 27, 1998
      (($date >= 19980927 && $date < 20000925) &&
      ($ltime[6] !~ /[1]/ && !grep(/$date/,@extra))) ||
      (($date >= 20000925 && $date <= $date2) &&
      ($ltime[6] !~ /[15]/ && !grep(/$date/,@extra))) ||
      grep(/$date/,@missing));

    my $title = "SSDD";
    my $author = "Alan Foreman";
    my $url = "http://www.poisonedminds.com";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

#Schlock Mercenary
sub schlock {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

   # Last updated July 5, 2001
    my @missing = ();
    my @extra = ();

    #everyday until present
    return undef if 
      (($date < 20000612) || #first comic on June 12, 2000
      (($date >= 20000612 && $date <= $date2) &&
      ($ltime[6] !~ /[0123456]/)) ||
      grep(/$date/,@missing));

    my $title = "Schlock Mercenary";
    my $author = "Howard Tayler";
    my $url = "http://www.schlockmercenary.com";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

#Sheldon
sub sheldon {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

   # Last updated July 5, 2001
    my @missing = (19990827,19990828,19990829,19990830,19990910,19990911,
      19990912,19990913,19990915,19990916,19990917,19990918,19990919,
      19991002,19991003,19991004,19991005,19991022,19991027,19991102,
      19991108,19991113,19991127,19991203,19991204,19991214,19991223,
      19991224,19991227,19991228,19991229,19991230,19991231,20000106,
      20000121,20000124,20000131,20000228,20000316,20000331,20000419,
      20000428,20000503,20000508,20000526,20000529,20000619,20000626,
      20000703,20000704,20000710,20000713,20000717,20000718,20000719,
      20000727,20000804,20000807,20000809,20000810,20000831,20000904,
      20000912,20000918,20001016,20001023,20001024,20001025,20001026,
      20001027,20001030,20001031,20001101,20001102,20001103,20001106,
      20001107,20001108,20001109,20001110,20001128,20001130,20001214,
      20001219,20001227,20010228,20010301,20010302,20010404,20010528,
      20010705);
    my @extra = (20000108,20000115,20000116,20000122,20000129,20000130,
      20000227,20000401);

    #Everyday until December 12, 1999
    #M to F until present
    return undef if 
      (($date < 19990621) || #first comic on June 21, 1999
      (($date >= 19990621 && $date < 19991212) &&
      ($ltime[6] !~ /[0123456]/)) ||
      (($date >= 19991212 && $date <= $date2) && 
      ($ltime[6] !~ /[12345]/ && !grep(/$date/,@extra))) ||
      grep(/$date/,@missing));

    my $title = "Sheldon";
    my $author = "Dave Kellett";
    my $url = "http://www.sheldoncomics.com";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

#Sinfest
sub sinf {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

   # Last updated July 5, 2001
    my @missing = (20000131,20000222,20000223,20000224,20000225,20000226,
      20000227,20000228,20000229);
    my @extra = ();

    #Everyday until present
    return undef if 
      (($date < 20000117) || #first comic on January 17, 2000
      (($date >= 20000117 && $date <= $date2) &&
      ($ltime[6] !~ /[0123456]/)) ||
      grep(/$date/,@missing));

    my $title = "Sinfest";
    my $author = "Tatsuya Ishida";
    my $url = "http://www.sinfest.net";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

#Soap on a Rope
sub soap {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

   # Last updated July 5, 2001
    my @missing = (19990331,19990806,19990809,19990811);
    my @extra = ();

    #MWF until July 9, 2000
    #MTWTh until present
    return undef if 
      (($date < 19970303) || #first comic on March 3, 1997
      (($date >= 19970303 && $date < 20000709) && 
      ($ltime[6] !~ /[135]/ && !grep(/$date/,@extra))) ||
      (($date >= 20000709 && $date <= $date2) &&
      ($ltime[6] !~ /[1234]/ && !grep(/$date/,@extra))) ||
      grep(/$date/,@missing));

    my $title = "Soap On A Rope";
    my $author = "Bob Roberds";
    my $url = "http://www.soaprope.com";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

#Suburban Jungle
sub suburban {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

   # Last updated July 5, 2001
    my @missing = (19990215,19990216,19990217,19990218,19990219,19990301,
      19990302,19990303,19990304,19990305,19990315,19990316,19990317,
      19990318,19990319,19990329,19990330,19990331,19990401,19990402,
      19990412,19990413,19990414,19990415,19990416,19990426,19990427,
      19990428,19990429,19990430,19990510,19990511,19990512,19990513,
      19990514,19990524,19990525,19990526,19990527,19990528,19990607,
      19990608,19990609,19990610,19990611,19990621,19990622,19990623,
      19990624,19990625,19990705,19990706,19990707,19990708,19990709,
      19990719,19990720,19990721,19990722,19990723,19990802,19990803,
      19990804,19990805,19990806,19990816,19990817,19990818,19990819,
      19990820,19990823,19990824,19990825,19990826,19990827,19990830,
      19990831,19990901,19990902,19990903,19990913,19990914,19990915,
      19990916,19990917,19990927,19990928,19990929,19990930,19991001,
      19991011,19991012,19991013,19991014,19991015,19991025,19991026,
      19991027,19991028,19991029,19991108,19991109,19991110,19991111,
      19991112,19991122,19991123,19991124,19991125,19991126,19991206,
      19991207,19991208,19991209,19991210,19991220,19991221,19991222,
      19991223,19991224,19991226,19991227,19991228,19991229,19991230,
      19991231,20000102,20000103,20000104,20000105,20000106,20000107,
      20000110,20000111,20000112,20000113,20000114,20000117,20000118,
      20000119,20000120,20000121,20000124,20000125,20000126,20000127,
      20000128,20000313,20000315,20000317,20000319,20000402,20000410,
      20000412,20000414,20000416,20000423,20000507,20000514,20000905,
      20000906,20000907,20000928,20001121,20001205,20001206,20001207,
      20001221,20010201,20010202,20010205,20010206,20010207,20010208,
      20010209,20010606,20010627,20010629,20010704);
    my @extra = (20000716,20001124);

    #comics M to F until may 29, 1999
    #comics S to F until jan 29, 2000
    #comics SMWF until may 16, 2000
    #comics missing may 16, 2000 to july 23, 2000, one extra july 16
    #comics M to Th until Dec 10, 2000
    #comics M to F until feb 24, 2001
    #comics missing feb 24, 2001 to apr 01, 2001
    #comics MWF after apr 01, 2001    
    return undef if 
      (($date < 19990201) || #first comic on Feb 01, 1999
      (($date >= 19990201 && $date < 19990529) && 
      ($ltime[6] !~ /[12345]/ && !grep(/$date/,@extra))) ||
      (($date >= 19990529 && $date < 20000129) && 
      ($ltime[6] !~ /[012345]/ && !grep(/$date/,@extra))) ||
      (($date >= 20000129 && $date < 20000516) && 
      ($ltime[6] !~ /[0135]/ && !grep(/$date/,@extra))) ||
      (($date >= 20000516 && $date < 20000723) && 
      (!grep(/$date/,@extra))) ||
      (($date >= 20000723 && $date < 20001210) && 
      ($ltime[6] !~ /[1234]/ && !grep(/$date/,@extra))) ||
      (($date >= 20001210 && $date <= 20010224) && 
      ($ltime[6] !~ /[12345]/ && !grep(/$date/,@extra))) ||
      (($date >= 20010224 && $date < 20010401) && 
      (!grep(/$date/,@extra))) ||
      (($date >= 20010401 && $date <= $date2) &&
      ($ltime[6] !~ /[135]/ && !grep(/$date/,@extra))) ||
      grep(/$date/,@missing));

    my $title = "Suburban Jungle";
    my $author = "John Robey";
    my $url = "http://www.suburbanjungle.com";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

#Superosity
sub sp {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

   # Last updated July 5, 2001
    my @missing = ();
    my @extra = ();

    #everyday until present
    return undef if 
      (($date < 19990301) || #first comic on March 1, 1999
      (($date >= 19990301 && $date <= $date2) &&
      ($ltime[6] !~ /[0123456]/)) ||
      grep(/$date/,@missing));

    my $title = "Superosity";
    my $author = "Chris Crosby";
    my $url = "http://www.superosity.com";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

#Wandering Ones
sub wander {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

   # Last updated July 5, 2001
    my @missing = (20000914,20001124,20001218,20001225,20010101,20010705,
      20010706);
    my @extra = (20001217);

    #T to Sa until to May 6, 2000
    #M to F until present
    return undef if 
      (($date < 20000408) || #first comic on April 8, 2000
      (($date >=  20000408 && $date < 20000506) && 
      ($ltime[6] !~ /[23456]/ && !grep(/$date/,@extra))) ||
      (($date >= 20000506 && $date <= $date2) &&
      ($ltime[6] !~ /[12345]/ && !grep(/$date/,@extra))) ||      
      grep(/$date/,@missing));

    my $title = "Wandering Ones";
    my $author = "Clint Hollingsworth";
    my $url = "http://www.wanderingones.com";
    my $index = "wander";
    
    return keenspot($title,$author,$date,$url,$index);
}

#Wendy
sub wendy {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

    my @exists = (19900712,19900806,19900810,19900906,19901023,19901027,
		  19901111,19901115,19901121,19901130,19990705,19990726,
		  19990807,19990814,19990911,19990913,19990915,19990917,
		  19991004,19991122,19991218,19991221,20000110,20000126,
		  20000201,20000223,20000313,20000322,20000326,20000330,
		  20000428,20000508,20000514,20000516,20000519,20000524,
		  20000527,20000604,20000612,20000614,20000706,20000716,
		  20000722,20000820,20000901,20000908,20000919,20000929,
		  20001005,20001009,20001021,20001208,20001214,20001219,
		  20001222,20010108,20010111,20010117,20010125,20010202,
		  20010211,20010217,20010223,20010301,20010308,20010216,
		  20010324,20010429,20010507,20010512,20010513,20020107,
		  20020111,20020114,20020118,20020121,20020204,20020211,
		  20020213,20020215);

    # Old wendy had a very irregular release cycle, therefor using an exists
    # list. The new wendy seems to be released every monday.

    return undef if
	(
	 ($date < 19900711) || #first comic on July 11, 1990 (?!)
	 ($date < 20020216 && ! grep(/$date/,@exists)) || # old wendy
	 ($date >= 20020216 && $ltime[6] !~ /[1]/) # new wendy since 20020218
	);

    my $title = "Wendy";
    my $author = "Joshua Lesnick";
    my $url = "http://www.wendycomic.com";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);

}

#Cute Wendy
sub cutewendy {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

   # Last updated July 5, 2001
    my @missing = (20000904,20000911,20000918,20000925,20001002,20001009,
      20001016,20001023,20001030,20001204,20001211,20001218,20001225,
      20010101,20010106,20010107,20010108,20010113,20010114,20010115,
      20010120,20010121,20010122,20010127,20010128,20010129,20010203,
      20010204,20010205,20010210,20010211,20010212,20010217,20010218,
      20010219,20010224,20010225,20010226,20010303,20010304,20010305,
      20010310,20010311,20010312,20010317,20010318,20010319,20010324,
      20010325,20010326,20010331,20010401,20010407,20010408,20010414,
      20010415,20010509,20010518,20010525,20010608,20010615,20010627,
      20010704,20010706);
    my @extra = (20010616);

    #MWF until January 2, 2001
    #Everyday until April 30 , 2001
    #MWF until present
    return undef if 
      (($date < 20000830) || #first comic on August 30, 2000
      (($date >= 20000830 && $date < 20010102) && 
      ($ltime[6] !~ /[135]/ && !grep(/$date/,@extra))) ||
      (($date >= 20010102 && $date < 20010429) && 
      ($ltime[6] !~ /[0123456]/)) ||
      (($date >= 20010429 && $date <= $date2) &&
      ($ltime[6] !~ /[135]/ && !grep(/$date/,@extra))) ||      
      grep(/$date/,@missing));

  my $rec = {
    'title' => "Cute Wendy",
    'author' => "Joshua Lesnick",
    'main' => "http://www.wendycomic.com",
    'archives' => "http://www.wendycomic.com/arc.html",
    'base' => "http://www.wendycomic.com",
    'page' => "/cutecomics/cutewendy$date.gif",
  };

    return $rec;
}

#When I Grow Up
sub wigu {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

   # Last updated July 5, 2001
    my @missing = (19990615,19990617,19990618,19991218,20000502,20000520,
      20000524,20000525,20000526,20000527,20000603,20000610,20000617,
      20000624,20000701,20000706,20000714,20000715,20000826,20000902,
      20000906,20000909,20000912,20000913,20000918,20000919,20000920,
      20000921,20000922,20000923,20000925,20000926,20000927,20000928,
      20000929,20000930,20001007,20001014,20001021,20001028,20001104,
      20001111,20001125,20001202,20001205,20001206,20001209,20001216,
      20001223,20010106,20010113,20010120,20010122,20010127,20010203,
      20010310,20010331,20010407,20010416,20010421,20010428,20010505,
      20010512,20010519,20010524,20010529,20010531,20010601,20010602,
      20010604,20010609,20010611,20010616,20010630);
    my @extra = (19990826,20000723,20000917,20001231,20010311,20010401,
      20010415,20010603,20010610);

    #M to Sa until present
    return undef if 
      (($date < 19990614) || #first comic on June 14, 1999
      (($date >= 19990614 && $date <= $date2) &&
      ($ltime[6] !~ /[123456]/ && !grep(/$date/,@extra))) ||
      grep(/$date/,@missing));

    my $title = "Whenigrowup";
    my $author = "Jeffrey Rowland";
    my $url = "http://www.whenigrowup.net";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

#You Damn Kid
sub youdamn {
    my $time = shift;
    my @ltime = gmtime($time);
    my @ltime2 = gmtime(time);
    my $date = strftime("%Y%m%d", @ltime);
    my $date2 = strftime("%Y%m%d", @ltime2);

   # This missing list is not to be updated.  Update the @exists list instead.
    my @missing = (19990305,19990312,19990313,19990314,19990315,19990316,
      19990317,19990318,19990319,19990320,19990321,19990322,19990323,
      19990324,19990325,19990326,19990327,19990328,19990329,19990330,
      19990331,19990401,19990402,19990403,19990404,19990405,19990406,
      19990407,19990408,19990409,19990410,19990411,19990412,19990413,
      19990414,19990416,19990417,19990418,19990420,19990421,19990422,
      19990423,19990424,19990425,19990427,19990428,19990429,19990430,
      19990501,19990502,19990504,19990505,19990506,19990507,19990508,
      19990509,19990511,19990512,19990513,19990514,19990515,19990516,
      19990518,19990519,19990520,19990521,19990522,19990523,19990524,
      19990525,19990526,19990527,19990528,19990529,19990530,19990531,
      19990601,19990602,19990603,19990604,19990605,19990606,19990607,
      19990609,19990610,19990611,19990612,19990613,19990615,19990616,
      19990617,19990618,19990619,19990620,19990622,19990623,19990624,
      19990625,19990626,19990627,19990629,19990630,19990701,19990702,
      19990703,19990704,19990706,19990707,19990708,19990709,19990710,
      19990711,19990713,19990714,19990715,19990716,19990717,19990718,
      19990720,19990721,19990722,19990723,19990724,19990725,19990727,
      19990728,19990729,19990730,19990731,19990801,19990803,19990804,
      19990805,19990807,19990808,19990809,19990810,19990812,19990814,
      19990815,19990816,19990817,19990819,19990820,19990821,19990822,
      19990824,19990825,19990826,19990827,19990828,19990829,19990830,
      19990831,19990901,19990903,19990904,19990906,19990907,19990909,
      19990910,19990911,19990912,19990913,19990914,19990915,19990916,
      19990917,19990918,19990919,19990921,19990923,19990924,19990925,
      19990926,19990928,19990929,19991001,19991002,19991003,19991005,
      19991006,19991007,19991008,19991009,19991010,19991011,19991012,
      19991013,19991014,19991016,19991017,19991019,19991020,19991021,
      19991023,19991024,19991025,19991026,19991027,19991028,19991029,
      19991030,19991031,19991102,19991104,19991106,19991107,19991109,
      19991111,19991113,19991114,19991116,19991118,19991120,19991121,
      19991122,19991123,19991124,19991125,19991126,19991127,19991128,
      19991129,19991130,19991202,19991203,19991204,19991205,19991206,
      19991207,19991209,19991211,19991212,19991213,19991214,19991216,
      19991217,19991218,19991219,19991220,19991221,19991223,19991224,
      19991225,19991226,19991227,19991228,19991230,19991231,20000101,
      20000102,20000105,20000106,20000108,20000109,20000111,20000113,
      20000115,20000116,20000118,20000119,20000120,20000122,20000123,
      20000125,20000126,20000129,20000130,20000201,20000202,20000203,
      20000204,20000205,20000206,20000208,20000209,20000210,20000212,
      20000213,20000215,20000217,20000218,20000219,20000220,20000223,
      20000225,20000226,20000227,20000229,20000301,20000302,20000303,
      20000304,20000305,20000306,20000307,20000309,20000311,20000312,
      20000314,20000316,20000317,20000318,20000319,20000321,20000322,
      20000323,20000325,20000326,20000328,20000330,20000331,20000401,
      20000402,20000404,20000405,20000406,20000407,20000408,20000409,
      20000411,20000412,20000413,20000415,20000416,20000417,20000418,
      20000419,20000420,20000422,20000423,20000424,20000425,20000426,
      20000427,20000428,20000429,20000430,20000501,20000502,20000503,
      20000504,20000506,20000507,20000509,20000511,20000512,20000513,
      20000514,20000515,20000516,20000517,20000519,20000520,20000521,
      20000522,20000523,20000524,20000525,20000526,20000527,20000528,
      20000529,20000530,20000531,20000601,20000602,20000603,20000604,
      20000605,20000606,20000608,20000609,20000610,20000611,20000612,
      20000614,20000615,20000616,20000617,20000618,20000619,20000620,
      20000621,20000622,20000623,20000624,20000625,20000626,20000627,
      20000628,20000629,20000630,20000701,20000702,20000703,20000704,
      20000705,20000706,20000707,20000708,20000709,20000710,20000711,
      20000712,20000713,20000714,20000715,20000716,20000717,20000718,
      20000719,20000722,20000723,20000725,20000726,20000727,20000729,
      20000730,20000731,20000801,20000802,20000803,20000804,20000805,
      20000806,20000807,20000808,20000810,20000811,20000812,20000813,
      20000814,20000815,20000816,20000817,20000818,20000819,20000820,
      20000821,20000822,20000823,20000824,20000825,20000826,20000827,
      20000828,20000829,20000830,20000831,20000901,20000902,20000903,
      20000904,20000905,20000906,20000907,20000908,20000909,20000910,
      20000913,20000914,20000915,20000916,20000917,20000918,20000919,
      20000920,20000921,20000922,20000923,20000924,20000925,20000926,
      20000927,20000928,20000929,20000930,20001001,20001002,20001003,
      20001004,20001005,20001006,20001007,20001008,20001009,20001010,
      20001011,20001012,20001013,20001014,20001015,20001016,20001017,
      20001020,20001021,20001022,20001023,20001025,20001026,20001027,
      20001028,20001029,20001030,20001031,20001101,20001102,20001103,
      20001104,20001105,20001106,20001107,20001108,20001109,20001110,
      20001111,20001112,20001114,20001117,20001118,20001119,20001120,
      20001121,20001122,20001125,20001126,20001127,20001128,20001129,
      20001201,20001202,20001203,20001204,20001205,20001206,20001208,
      20001209,20001210,20001211,20001212,20001213,20001216,20001217,
      20001218,20001219,20001220,20001221,20001222,20001223,20001224,
      20001225,20001226,20001228,20001229,20001230,20001231,20010101,
      20010102,20010103,20010104,20010105,20010106,20010107,20010109,
      20010111,20010112,20010113,20010114,20010115,20010116,20010117,
      20010118,20010119,20010120,20010121,20010122,20010123,20010124,
      20010125,20010126,20010127,20010128,20010129,20010130,20010131,
      20010201,20010202,20010203,20010204,20010205,20010206,20010207,
      20010208,20010209,20010210,20010211,20010212,20010213,20010214,
      20010215,20010216,20010217,20010218,20010219,20010220,20010221,
      20010222,20010223,20010224,20010225,20010226,20010227,20010228,
      20010303,20010304,20010310,20010311,20010316,20010317,20010318,
      20010320,20010321,20010322,20010324,20010325,20010327,20010329,
      20010331,20010401,20010403,20010405,20010407,20010408,20010409,
      20010410,20010412,20010413,20010414,20010415,20010417,20010418,
      20010419,20010420,20010421,20010422,20010423,20010424,20010425,
      20010426,20010427,20010428,20010429,20010430,20010502,20010503,
      20010504,20010506,20010507,20010508,20010510,20010511,20010512,
      20010513,20010514,20010516,20010517,20010518,20010519,20010520,
      20010522,20010525,20010526,20010527,20010528,20010529,20010530,
      20010531,20010602,20010603,20010604,20010605,20010606,20010608,
      20010609,20010614,20010615,20010616,20010617,20010618,20010620,
      20010621,20010622,20010623,20010624,20010625,20010627,20010630,
      20010701,20010702,20010704,20010705,20010706);
    #the list of "exists" is a lot smaller than "missings"
    my $switchedToExists = 20010707;
    my $existsLastUpdated = 20020326; #very important to udpate this
    my @exists =
	(20010724,20010806,20010814,20010828,20010904,20010906,20010914,
	 20010918,20010921,20010925,20010925,20010928,20011002,20011005,
	 20011010,20011016,20011019,20011023,20011026,20011031,20011103,
	 20011107,20011111,20011114,20011120,20011127,20011204,20011211,
	 20011218,20011231,20020102,20020104,20020108,20020110,20020111,
	 20020114,20020116,20020128,20020130,20020207,20020212,20020214,
	 20020226,20020228,20020305,20020307,20020312,20020314,20020322,
	); #be sure to update $existsLastUpdated!

    #very sporadic so get everyday
    return undef if 
      (($date < 19990301) || #first comic on March 1, 1999
       ($date < $switchedToExists && grep(/$date/,@missing)) ||
       ($date >= $switchedToExists && $date <= $existsLastUpdated &&
	! grep(/$date/,@exists))
      );

    my $title = "You Damn Kid";
    my $author = "Owen Dunne";
    my $url = "http://www.youdamnkid.com";
    my $index = undef;
    
    return keenspot($title,$author,$date,$url,$index);
}

1;

