diff --git a/comics/__init__.py b/comics/__init__.py index 6247231..2706786 100644 --- a/comics/__init__.py +++ b/comics/__init__.py @@ -3,9 +3,9 @@ ~~~~~~ """ -from comics import exceptions -from comics.api import * from comics.constants import directory -from comics.gocomics import InvalidDateError +from comics.exceptions import InvalidDateError, InvalidEndpointError +from comics.gocomics import search -__version__ = "0.2.0" + +__version__ = "0.3.0" diff --git a/comics/api.py b/comics/api.py deleted file mode 100644 index 10ef90f..0000000 --- a/comics/api.py +++ /dev/null @@ -1,3808 +0,0 @@ -""" -comics/api -~~~~~~~~~~ -""" - -from datetime import datetime - -from comics.gocomics import ComicsAPI - - -class aaggghhh(ComicsAPI): - """GoComics endpoint for 'Aaggghhh'.""" - - title = "Aaggghhh" - start_date = datetime.strptime("2017-10-10", "%Y-%m-%d") - _endpoint = "Aaggghhh" - - -class the_academia_waltz(ComicsAPI): - """GoComics endpoint for 'The Academia Waltz'.""" - - title = "The Academia Waltz" - start_date = datetime.strptime("2003-12-08", "%Y-%m-%d") - _endpoint = "academiawaltz" - - -class adam_at_home(ComicsAPI): - """GoComics endpoint for 'Adam@Home'.""" - - title = "Adam@Home" - start_date = datetime.strptime("1995-06-20", "%Y-%m-%d") - _endpoint = "adamathome" - - -class adult_children(ComicsAPI): - """GoComics endpoint for 'Adult Children'.""" - - title = "Adult Children" - start_date = datetime.strptime("2014-04-14", "%Y-%m-%d") - _endpoint = "adult-children" - - -class the_adventures_of_business_cat(ComicsAPI): - """GoComics endpoint for 'The Adventures of Business Cat'.""" - - title = "The Adventures of Business Cat" - start_date = datetime.strptime("2015-04-27", "%Y-%m-%d") - _endpoint = "the-adventures-of-business-cat" - - -class agnes(ComicsAPI): - """GoComics endpoint for 'Agnes'.""" - - title = "Agnes" - start_date = datetime.strptime("2002-01-01", "%Y-%m-%d") - _endpoint = "agnes" - - -class aj_and_magnus(ComicsAPI): - """GoComics endpoint for 'AJ and Magnus'.""" - - title = "AJ and Magnus" - start_date = datetime.strptime("2014-08-08", "%Y-%m-%d") - _endpoint = "aj-and-magnus" - - -class lalo_alcaraz(ComicsAPI): - """GoComics endpoint for 'Lalo Alcaraz'.""" - - title = "Lalo Alcaraz" - start_date = datetime.strptime("2001-03-27", "%Y-%m-%d") - _endpoint = "laloalcaraz" - - -class lalo_alcaraz_en_espanol(ComicsAPI): - """GoComics endpoint for 'Lalo Alcaraz en Español'.""" - - title = "Lalo Alcaraz en Español" - start_date = datetime.strptime("2004-12-07", "%Y-%m-%d") - _endpoint = "laloenespanol" - - -class alis_house(ComicsAPI): - """GoComics endpoint for 'Ali's House'.""" - - title = "Ali's House" - start_date = datetime.strptime("2016-08-01", "%Y-%m-%d") - _endpoint = "alis-house" - - -class alley_oop(ComicsAPI): - """GoComics endpoint for 'Alley Oop'.""" - - title = "Alley Oop" - start_date = datetime.strptime("1939-01-03", "%Y-%m-%d") - _endpoint = "alley-oop" - - -class amanda_the_great(ComicsAPI): - """GoComics endpoint for 'Amanda the Great'.""" - - title = "Amanda the Great" - start_date = datetime.strptime("2016-11-03", "%Y-%m-%d") - _endpoint = "amanda-the-great" - - -class nick_anderson(ComicsAPI): - """GoComics endpoint for 'Nick Anderson'.""" - - title = "Nick Anderson" - start_date = datetime.strptime("2003-01-09", "%Y-%m-%d") - _endpoint = "nickanderson" - - -class andertoons(ComicsAPI): - """GoComics endpoint for 'Andertoons'.""" - - title = "Andertoons" - start_date = datetime.strptime("2011-09-01", "%Y-%m-%d") - _endpoint = "andertoons" - - -class andy_capp(ComicsAPI): - """GoComics endpoint for 'Andy Capp'.""" - - title = "Andy Capp" - start_date = datetime.strptime("2002-01-01", "%Y-%m-%d") - _endpoint = "andycapp" - - -class angry_little_girls(ComicsAPI): - """GoComics endpoint for 'Angry Little Girls'.""" - - title = "Angry Little Girls" - start_date = datetime.strptime("2011-08-08", "%Y-%m-%d") - _endpoint = "angry-little-girls" - - -class animal_crackers(ComicsAPI): - """GoComics endpoint for 'Animal Crackers'.""" - - title = "Animal Crackers" - start_date = datetime.strptime("2001-04-08", "%Y-%m-%d") - _endpoint = "animalcrackers" - - -class annie(ComicsAPI): - """GoComics endpoint for 'Annie'.""" - - title = "Annie" - start_date = datetime.strptime("2001-04-08", "%Y-%m-%d") - _endpoint = "annie" - - -class the_argyle_sweater(ComicsAPI): - """GoComics endpoint for 'The Argyle Sweater'.""" - - title = "The Argyle Sweater" - start_date = datetime.strptime("2006-11-29", "%Y-%m-%d") - _endpoint = "theargylesweater" - - -class robert_ariail(ComicsAPI): - """GoComics endpoint for 'Robert Ariail'.""" - - title = "Robert Ariail" - start_date = datetime.strptime("2011-06-01", "%Y-%m-%d") - _endpoint = "robert-ariail" - - -class arlo_and_janis(ComicsAPI): - """GoComics endpoint for 'Arlo and Janis'.""" - - title = "Arlo and Janis" - start_date = datetime.strptime("1994-05-02", "%Y-%m-%d") - _endpoint = "arloandjanis" - - -class art_by_moga(ComicsAPI): - """GoComics endpoint for 'Art by Moga'.""" - - title = "Art by Moga" - start_date = datetime.strptime("2022-05-25", "%Y-%m-%d") - _endpoint = "artbymoga" - - -class ask_shagg(ComicsAPI): - """GoComics endpoint for 'Ask Shagg'.""" - - title = "Ask Shagg" - start_date = datetime.strptime("2002-08-12", "%Y-%m-%d") - _endpoint = "askshagg" - - -class aunty_acid(ComicsAPI): - """GoComics endpoint for 'Aunty Acid'.""" - - title = "Aunty Acid" - start_date = datetime.strptime("2013-05-06", "%Y-%m-%d") - _endpoint = "aunty-acid" - - -class the_awkward_yeti(ComicsAPI): - """GoComics endpoint for 'The Awkward Yeti'.""" - - title = "The Awkward Yeti" - start_date = datetime.strptime("2014-09-08", "%Y-%m-%d") - _endpoint = "the-awkward-yeti" - - -class bc(ComicsAPI): - """GoComics endpoint for 'B.C.'.""" - - title = "B.C." - start_date = datetime.strptime("2002-01-01", "%Y-%m-%d") - _endpoint = "bc" - - -class back_to_bc(ComicsAPI): - """GoComics endpoint for 'Back to B.C.'.""" - - title = "Back to B.C." - start_date = datetime.strptime("2015-08-31", "%Y-%m-%d") - _endpoint = "back-to-bc" - - -class baby_blues(ComicsAPI): - """GoComics endpoint for 'Baby Blues'.""" - - title = "Baby Blues" - start_date = datetime.strptime("1990-01-07", "%Y-%m-%d") - _endpoint = "babyblues" - - -class back_in_the_day(ComicsAPI): - """GoComics endpoint for 'Back in the Day'.""" - - title = "Back in the Day" - start_date = datetime.strptime("2010-03-08", "%Y-%m-%d") - _endpoint = "backintheday" - - -class bacon(ComicsAPI): - """GoComics endpoint for 'bacon'.""" - - title = "bacon" - start_date = datetime.strptime("2016-07-17", "%Y-%m-%d") - _endpoint = "bacon" - - -class bad_machinery(ComicsAPI): - """GoComics endpoint for 'Bad Machinery'.""" - - title = "Bad Machinery" - start_date = datetime.strptime("2016-04-11", "%Y-%m-%d") - _endpoint = "bad-machinery" - - -class baldo(ComicsAPI): - """GoComics endpoint for 'Baldo'.""" - - title = "Baldo" - start_date = datetime.strptime("2000-01-01", "%Y-%m-%d") - _endpoint = "baldo" - - -class baldo_en_espanol(ComicsAPI): - """GoComics endpoint for 'Baldo en Español'.""" - - title = "Baldo en Español" - start_date = datetime.strptime("2000-04-17", "%Y-%m-%d") - _endpoint = "baldoespanol" - - -class ballard_street(ComicsAPI): - """GoComics endpoint for 'Ballard Street'.""" - - title = "Ballard Street" - start_date = datetime.strptime("2002-01-01", "%Y-%m-%d") - _endpoint = "ballardstreet" - - -class banana_triangle(ComicsAPI): - """GoComics endpoint for 'Banana Triangle'.""" - - title = "Banana Triangle" - start_date = datetime.strptime("2011-07-18", "%Y-%m-%d") - _endpoint = "banana-triangle" - - -class barkeater_lake(ComicsAPI): - """GoComics endpoint for 'Barkeater Lake'.""" - - title = "Barkeater Lake" - start_date = datetime.strptime("2007-04-17", "%Y-%m-%d") - _endpoint = "barkeaterlake" - - -class the_barn(ComicsAPI): - """GoComics endpoint for 'The Barn'.""" - - title = "The Barn" - start_date = datetime.strptime("2009-02-02", "%Y-%m-%d") - _endpoint = "thebarn" - - -class barney_and_clyde(ComicsAPI): - """GoComics endpoint for 'Barney & Clyde'.""" - - title = "Barney & Clyde" - start_date = datetime.strptime("2010-01-01", "%Y-%m-%d") - _endpoint = "barneyandclyde" - - -class basic_instructions(ComicsAPI): - """GoComics endpoint for 'Basic Instructions'.""" - - title = "Basic Instructions" - start_date = datetime.strptime("2003-02-25", "%Y-%m-%d") - _endpoint = "basicinstructions" - - -class batch_rejection(ComicsAPI): - """GoComics endpoint for 'Batch Rejection'.""" - - title = "Batch Rejection" - start_date = datetime.strptime("2018-08-27", "%Y-%m-%d") - _endpoint = "batch-rejection" - - -class beanie_the_brownie(ComicsAPI): - """GoComics endpoint for 'Beanie the Brownie'.""" - - title = "Beanie the Brownie" - start_date = datetime.strptime("2014-12-01", "%Y-%m-%d") - _endpoint = "beanie-the-brownie" - - -class bear_with_me(ComicsAPI): - """GoComics endpoint for 'Bear with Me'.""" - - title = "Bear with Me" - start_date = datetime.strptime("2009-01-19", "%Y-%m-%d") - _endpoint = "bear-with-me" - - -class beardo(ComicsAPI): - """GoComics endpoint for 'Beardo'.""" - - title = "Beardo" - start_date = datetime.strptime("2011-03-01", "%Y-%m-%d") - _endpoint = "beardo" - - -class ben(ComicsAPI): - """GoComics endpoint for 'Ben'.""" - - title = "Ben" - start_date = datetime.strptime("2009-01-01", "%Y-%m-%d") - _endpoint = "ben" - - -class benitin_y_eneas(ComicsAPI): - """GoComics endpoint for 'Benitin y Eneas'.""" - - title = "Benitin y Eneas" - start_date = datetime.strptime("2004-03-20", "%Y-%m-%d") - _endpoint = "muttandjeffespanol" - - -class clay_bennett(ComicsAPI): - """GoComics endpoint for 'Clay Bennett'.""" - - title = "Clay Bennett" - start_date = datetime.strptime("2008-01-16", "%Y-%m-%d") - _endpoint = "claybennett" - - -class lisa_benson(ComicsAPI): - """GoComics endpoint for 'Lisa Benson'.""" - - title = "Lisa Benson" - start_date = datetime.strptime("2006-10-16", "%Y-%m-%d") - _endpoint = "lisabenson" - - -class steve_benson(ComicsAPI): - """GoComics endpoint for 'Steve Benson'.""" - - title = "Steve Benson" - start_date = datetime.strptime("2005-01-03", "%Y-%m-%d") - _endpoint = "stevebenson" - - -class berger_and_wyse(ComicsAPI): - """GoComics endpoint for 'Berger & Wyse'.""" - - title = "Berger & Wyse" - start_date = datetime.strptime("2012-07-20", "%Y-%m-%d") - _endpoint = "berger-and-wyse" - - -class berkeley_mews(ComicsAPI): - """GoComics endpoint for 'Berkeley Mews'.""" - - title = "Berkeley Mews" - start_date = datetime.strptime("2014-11-24", "%Y-%m-%d") - _endpoint = "berkeley-mews" - - -class betty(ComicsAPI): - """GoComics endpoint for 'Betty'.""" - - title = "Betty" - start_date = datetime.strptime("1996-01-01", "%Y-%m-%d") - _endpoint = "betty" - - -class bfgf_syndrome(ComicsAPI): - """GoComics endpoint for 'BFGF Syndrome'.""" - - title = "BFGF Syndrome" - start_date = datetime.strptime("2017-07-10", "%Y-%m-%d") - _endpoint = "bfgf-syndrome" - - -class big_nate(ComicsAPI): - """GoComics endpoint for 'Big Nate'.""" - - title = "Big Nate" - start_date = datetime.strptime("1991-01-07", "%Y-%m-%d") - _endpoint = "bignate" - - -class big_nate_first_class(ComicsAPI): - """GoComics endpoint for 'Big Nate: First Class'.""" - - title = "Big Nate: First Class" - start_date = datetime.strptime("2015-01-12", "%Y-%m-%d") - _endpoint = "big-nate-first-class" - - -class the_big_picture(ComicsAPI): - """GoComics endpoint for 'The Big Picture'.""" - - title = "The Big Picture" - start_date = datetime.strptime("1999-08-24", "%Y-%m-%d") - _endpoint = "thebigpicture" - - -class big_top(ComicsAPI): - """GoComics endpoint for 'Big Top'.""" - - title = "Big Top" - start_date = datetime.strptime("2002-04-22", "%Y-%m-%d") - _endpoint = "bigtop" - - -class bill_bramhall(ComicsAPI): - """GoComics endpoint for 'Bill Bramhall'.""" - - title = "Bill Bramhall" - start_date = datetime.strptime("2023-04-25", "%Y-%m-%d") - _endpoint = "bill-bramhall" - - -class bird_and_moon(ComicsAPI): - """GoComics endpoint for 'Bird and Moon'.""" - - title = "Bird and Moon" - start_date = datetime.strptime("2018-08-13", "%Y-%m-%d") - _endpoint = "bird-and-moon" - - -class birdbrains(ComicsAPI): - """GoComics endpoint for 'Birdbrains'.""" - - title = "Birdbrains" - start_date = datetime.strptime("2007-01-01", "%Y-%m-%d") - _endpoint = "birdbrains" - - -class bleeker_the_rechargeable_dog(ComicsAPI): - """GoComics endpoint for 'Bleeker: The Rechargeable Dog'.""" - - title = "Bleeker: The Rechargeable Dog" - start_date = datetime.strptime("2006-07-27", "%Y-%m-%d") - _endpoint = "bleeker" - - -class bliss(ComicsAPI): - """GoComics endpoint for 'Bliss'.""" - - title = "Bliss" - start_date = datetime.strptime("2004-09-01", "%Y-%m-%d") - _endpoint = "bliss" - - -class bloom_county(ComicsAPI): - """GoComics endpoint for 'Bloom County'.""" - - title = "Bloom County" - start_date = datetime.strptime("1980-12-08", "%Y-%m-%d") - _endpoint = "bloomcounty" - - -class bloom_county_2019(ComicsAPI): - """GoComics endpoint for 'Bloom County 2019'.""" - - title = "Bloom County 2019" - start_date = datetime.strptime("2015-07-20", "%Y-%m-%d") - _endpoint = "bloom-county" - - -class bo_nanas(ComicsAPI): - """GoComics endpoint for 'Bo Nanas'.""" - - title = "Bo Nanas" - start_date = datetime.strptime("2004-01-01", "%Y-%m-%d") - _endpoint = "bonanas" - - -class bob_the_angry_flower(ComicsAPI): - """GoComics endpoint for 'Bob the Angry Flower'.""" - - title = "Bob the Angry Flower" - start_date = datetime.strptime("2022-10-24", "%Y-%m-%d") - _endpoint = "bob-the-angry-flower" - - -class bob_the_squirrel(ComicsAPI): - """GoComics endpoint for 'Bob the Squirrel'.""" - - title = "Bob the Squirrel" - start_date = datetime.strptime("2004-01-01", "%Y-%m-%d") - _endpoint = "bobthesquirrel" - - -class chip_bok(ComicsAPI): - """GoComics endpoint for 'Chip Bok'.""" - - title = "Chip Bok" - start_date = datetime.strptime("2002-08-09", "%Y-%m-%d") - _endpoint = "chipbok" - - -class boomerangs(ComicsAPI): - """GoComics endpoint for 'Boomerangs'.""" - - title = "Boomerangs" - start_date = datetime.strptime("2008-06-09", "%Y-%m-%d") - _endpoint = "boomerangs" - - -class the_boondocks(ComicsAPI): - """GoComics endpoint for 'The Boondocks'.""" - - title = "The Boondocks" - start_date = datetime.strptime("1999-04-19", "%Y-%m-%d") - _endpoint = "boondocks" - - -class the_born_loser(ComicsAPI): - """GoComics endpoint for 'The Born Loser'.""" - - title = "The Born Loser" - start_date = datetime.strptime("1994-07-14", "%Y-%m-%d") - _endpoint = "the-born-loser" - - -class matt_bors(ComicsAPI): - """GoComics endpoint for 'Matt Bors'.""" - - title = "Matt Bors" - start_date = datetime.strptime("2007-09-24", "%Y-%m-%d") - _endpoint = "matt-bors" - - -class bottom_liners(ComicsAPI): - """GoComics endpoint for 'Bottom Liners'.""" - - title = "Bottom Liners" - start_date = datetime.strptime("2001-04-18", "%Y-%m-%d") - _endpoint = "bottomliners" - - -class bound_and_gagged(ComicsAPI): - """GoComics endpoint for 'Bound and Gagged'.""" - - title = "Bound and Gagged" - start_date = datetime.strptime("2001-04-08", "%Y-%m-%d") - _endpoint = "boundandgagged" - - -class bozo(ComicsAPI): - """GoComics endpoint for 'Bozo'.""" - - title = "Bozo" - start_date = datetime.strptime("1947-11-24", "%Y-%m-%d") - _endpoint = "bozo" - - -class breaking_cat_news(ComicsAPI): - """GoComics endpoint for 'Breaking Cat News'.""" - - title = "Breaking Cat News" - start_date = datetime.strptime("2010-01-01", "%Y-%m-%d") - _endpoint = "breaking-cat-news" - - -class steve_breen(ComicsAPI): - """GoComics endpoint for 'Steve Breen'.""" - - title = "Steve Breen" - start_date = datetime.strptime("2008-08-01", "%Y-%m-%d") - _endpoint = "stevebreen" - - -class brevity(ComicsAPI): - """GoComics endpoint for 'Brevity'.""" - - title = "Brevity" - start_date = datetime.strptime("2005-01-03", "%Y-%m-%d") - _endpoint = "brevity" - - -class brewster_rockit(ComicsAPI): - """GoComics endpoint for 'Brewster Rockit'.""" - - title = "Brewster Rockit" - start_date = datetime.strptime("2004-07-05", "%Y-%m-%d") - _endpoint = "brewsterrockit" - - -class chris_britt(ComicsAPI): - """GoComics endpoint for 'Chris Britt'.""" - - title = "Chris Britt" - start_date = datetime.strptime("2008-03-08", "%Y-%m-%d") - _endpoint = "chrisbritt" - - -class broom_hilda(ComicsAPI): - """GoComics endpoint for 'Broom Hilda'.""" - - title = "Broom Hilda" - start_date = datetime.strptime("2001-04-08", "%Y-%m-%d") - _endpoint = "broomhilda" - - -class the_buckets(ComicsAPI): - """GoComics endpoint for 'The Buckets'.""" - - title = "The Buckets" - start_date = datetime.strptime("1996-02-19", "%Y-%m-%d") - _endpoint = "thebuckets" - - -class buckles(ComicsAPI): - """GoComics endpoint for 'Buckles'.""" - - title = "Buckles" - start_date = datetime.strptime("2021-05-10", "%Y-%m-%d") - _endpoint = "buckles" - - -class bully(ComicsAPI): - """GoComics endpoint for 'Bully'.""" - - title = "Bully" - start_date = datetime.strptime("2014-05-05", "%Y-%m-%d") - _endpoint = "bully" - - -class buni(ComicsAPI): - """GoComics endpoint for 'Buni'.""" - - title = "Buni" - start_date = datetime.strptime("2011-07-06", "%Y-%m-%d") - _endpoint = "buni" - - -class el_cafe_de_poncho(ComicsAPI): - """GoComics endpoint for 'El Café de Poncho'.""" - - title = "El Café de Poncho" - start_date = datetime.strptime("2004-02-23", "%Y-%m-%d") - _endpoint = "el-cafe-de-poncho" - - -class calvin_and_hobbes(ComicsAPI): - """GoComics endpoint for 'Calvin and Hobbes'.""" - - title = "Calvin and Hobbes" - start_date = datetime.strptime("1985-11-18", "%Y-%m-%d") - _endpoint = "calvinandhobbes" - - -class calvin_and_hobbes_en_espanol(ComicsAPI): - """GoComics endpoint for 'Calvin and Hobbes en Español'.""" - - title = "Calvin and Hobbes en Español" - start_date = datetime.strptime("2004-03-01", "%Y-%m-%d") - _endpoint = "calvinandhobbesespanol" - - -class tim_campbell(ComicsAPI): - """GoComics endpoint for 'Tim Campbell'.""" - - title = "Tim Campbell" - start_date = datetime.strptime("2017-07-01", "%Y-%m-%d") - _endpoint = "tim-campbell" - - -class stuart_carlson(ComicsAPI): - """GoComics endpoint for 'Stuart Carlson'.""" - - title = "Stuart Carlson" - start_date = datetime.strptime("1996-04-10", "%Y-%m-%d") - _endpoint = "stuartcarlson" - - -class catana_comics(ComicsAPI): - """GoComics endpoint for 'Catana Comics'.""" - - title = "Catana Comics" - start_date = datetime.strptime("2018-09-24", "%Y-%m-%d") - _endpoint = "little-moments-of-love" - - -class cathy(ComicsAPI): - """GoComics endpoint for 'Cathy Classics'.""" - - title = "Cathy Classics" - start_date = datetime.strptime("1976-11-22", "%Y-%m-%d") - _endpoint = "cathy" - - -class cathy_commiserations(ComicsAPI): - """GoComics endpoint for 'Cathy Commiserations'.""" - - title = "Cathy Commiserations" - start_date = datetime.strptime("2018-03-20", "%Y-%m-%d") - _endpoint = "cathy-commiserations" - - -class cats_cafe(ComicsAPI): - """GoComics endpoint for 'Cat's Cafe'.""" - - title = "Cat's Cafe" - start_date = datetime.strptime("2019-05-20", "%Y-%m-%d") - _endpoint = "cats-cafe" - - -class cattitude_doggonit(ComicsAPI): - """GoComics endpoint for 'Cattitude — Doggonit'.""" - - title = "Cattitude — Doggonit" - start_date = datetime.strptime("2016-05-16", "%Y-%m-%d") - _endpoint = "cattitude-doggonit" - - -class cest_la_vie(ComicsAPI): - """GoComics endpoint for 'C'est la Vie'.""" - - title = "C'est la Vie" - start_date = datetime.strptime("2003-11-11", "%Y-%m-%d") - _endpoint = "cestlavie" - - -class cheer_up_emo_kid(ComicsAPI): - """GoComics endpoint for 'Cheer Up, Emo Kid'.""" - - title = "Cheer Up, Emo Kid" - start_date = datetime.strptime("2017-03-20", "%Y-%m-%d") - _endpoint = "cheer-up-emo-kid" - - -class chuck_draws_things(ComicsAPI): - """GoComics endpoint for 'Chuck Draws Things'.""" - - title = "Chuck Draws Things" - start_date = datetime.strptime("2019-11-18", "%Y-%m-%d") - _endpoint = "chuck-draws-things" - - -class chuckle_bros(ComicsAPI): - """GoComics endpoint for 'Chuckle Bros'.""" - - title = "Chuckle Bros" - start_date = datetime.strptime("2009-02-02", "%Y-%m-%d") - _endpoint = "chucklebros" - - -class citizen_dog(ComicsAPI): - """GoComics endpoint for 'Citizen Dog'.""" - - title = "Citizen Dog" - start_date = datetime.strptime("1995-05-15", "%Y-%m-%d") - _endpoint = "citizendog" - - -class the_city(ComicsAPI): - """GoComics endpoint for 'The City'.""" - - title = "The City" - start_date = datetime.strptime("2003-03-05", "%Y-%m-%d") - _endpoint = "thecity" - - -class claw(ComicsAPI): - """GoComics endpoint for 'Claw'.""" - - title = "Claw" - start_date = datetime.strptime("2008-02-12", "%Y-%m-%d") - _endpoint = "claw" - - -class cleats(ComicsAPI): - """GoComics endpoint for 'Cleats'.""" - - title = "Cleats" - start_date = datetime.strptime("2001-11-26", "%Y-%m-%d") - _endpoint = "cleats" - - -class close_to_home(ComicsAPI): - """GoComics endpoint for 'Close to Home'.""" - - title = "Close to Home" - start_date = datetime.strptime("1992-12-07", "%Y-%m-%d") - _endpoint = "closetohome" - - -class the_comic_strip_that_has_a_finale_every_day(ComicsAPI): - """GoComics endpoint for 'The Comic Strip That Has A Finale Every Day'.""" - - title = "The Comic Strip That Has A Finale Every Day" - start_date = datetime.strptime("2015-01-01", "%Y-%m-%d") - _endpoint = "the-comic-strip-that-has-a-finale-every-day" - - -class compu_toon(ComicsAPI): - """GoComics endpoint for 'Compu-toon'.""" - - title = "Compu-toon" - start_date = datetime.strptime("2001-04-23", "%Y-%m-%d") - _endpoint = "compu-toon" - - -class cornered(ComicsAPI): - """GoComics endpoint for 'Cornered'.""" - - title = "Cornered" - start_date = datetime.strptime("1997-09-01", "%Y-%m-%d") - _endpoint = "cornered" - - -class cow_and_boy(ComicsAPI): - """GoComics endpoint for 'Cow and Boy Classics'.""" - - title = "Cow and Boy Classics" - start_date = datetime.strptime("2006-01-02", "%Y-%m-%d") - _endpoint = "cowandboy" - - -class cowtown(ComicsAPI): - """GoComics endpoint for 'CowTown'.""" - - title = "CowTown" - start_date = datetime.strptime("2010-12-13", "%Y-%m-%d") - _endpoint = "cowtown" - - -class crabgrass(ComicsAPI): - """GoComics endpoint for 'Crabgrass'.""" - - title = "Crabgrass" - start_date = datetime.strptime("2019-04-05", "%Y-%m-%d") - _endpoint = "crabgrass" - - -class crankshaft(ComicsAPI): - """GoComics endpoint for 'Crankshaft'.""" - - title = "Crankshaft" - start_date = datetime.strptime("2003-03-17", "%Y-%m-%d") - _endpoint = "crankshaft" - - -class crumb(ComicsAPI): - """GoComics endpoint for 'Crumb'.""" - - title = "Crumb" - start_date = datetime.strptime("2008-09-24", "%Y-%m-%d") - _endpoint = "crumb" - - -class cul_de_sac(ComicsAPI): - """GoComics endpoint for 'Cul de Sac'.""" - - title = "Cul de Sac" - start_date = datetime.strptime("2007-09-10", "%Y-%m-%d") - _endpoint = "culdesac" - - -class curses(ComicsAPI): - """GoComics endpoint for 'Curses'.""" - - title = "Curses" - start_date = datetime.strptime("2022-10-31", "%Y-%m-%d") - _endpoint = "curses" - - -class daddys_home(ComicsAPI): - """GoComics endpoint for 'Daddy's Home'.""" - - title = "Daddy's Home" - start_date = datetime.strptime("2008-03-23", "%Y-%m-%d") - _endpoint = "daddyshome" - - -class the_daily_drawing(ComicsAPI): - """GoComics endpoint for 'The Daily Drawing'.""" - - title = "The Daily Drawing" - start_date = datetime.strptime("2015-01-19", "%Y-%m-%d") - _endpoint = "the-daily-drawing" - - -class jeff_danziger(ComicsAPI): - """GoComics endpoint for 'Jeff Danziger'.""" - - title = "Jeff Danziger" - start_date = datetime.strptime("2000-08-14", "%Y-%m-%d") - _endpoint = "jeffdanziger" - - -class dark_side_of_the_horse(ComicsAPI): - """GoComics endpoint for 'Dark Side of the Horse'.""" - - title = "Dark Side of the Horse" - start_date = datetime.strptime("2010-06-25", "%Y-%m-%d") - _endpoint = "darksideofthehorse" - - -class matt_davies(ComicsAPI): - """GoComics endpoint for 'Matt Davies'.""" - - title = "Matt Davies" - start_date = datetime.strptime("2001-04-23", "%Y-%m-%d") - _endpoint = "mattdavies" - - -class day_by_dave(ComicsAPI): - """GoComics endpoint for 'Day by Dave'.""" - - title = "Day by Dave" - start_date = datetime.strptime("2022-12-12", "%Y-%m-%d") - _endpoint = "day-by-dave" - - -class deep_dark_fears(ComicsAPI): - """GoComics endpoint for 'Deep Dark Fears'.""" - - title = "Deep Dark Fears" - start_date = datetime.strptime("2014-04-14", "%Y-%m-%d") - _endpoint = "deep-dark-fears" - - -class john_deering(ComicsAPI): - """GoComics endpoint for 'John Deering'.""" - - title = "John Deering" - start_date = datetime.strptime("2005-01-04", "%Y-%m-%d") - _endpoint = "johndeering" - - -class deflocked(ComicsAPI): - """GoComics endpoint for 'DeFlocked'.""" - - title = "DeFlocked" - start_date = datetime.strptime("2008-05-05", "%Y-%m-%d") - _endpoint = "deflocked" - - -class diamond_lil(ComicsAPI): - """GoComics endpoint for 'Diamond Lil'.""" - - title = "Diamond Lil" - start_date = datetime.strptime("2002-06-12", "%Y-%m-%d") - _endpoint = "diamondlil" - - -class dick_tracy(ComicsAPI): - """GoComics endpoint for 'Dick Tracy'.""" - - title = "Dick Tracy" - start_date = datetime.strptime("2001-04-08", "%Y-%m-%d") - _endpoint = "dicktracy" - - -class the_dinette_set(ComicsAPI): - """GoComics endpoint for 'The Dinette Set'.""" - - title = "The Dinette Set" - start_date = datetime.strptime("2005-01-02", "%Y-%m-%d") - _endpoint = "dinetteset" - - -class dinosaur_comics(ComicsAPI): - """GoComics endpoint for 'Dinosaur Comics'.""" - - title = "Dinosaur Comics" - start_date = datetime.strptime("2014-08-04", "%Y-%m-%d") - _endpoint = "dinosaur-comics" - - -class dog_eat_doug(ComicsAPI): - """GoComics endpoint for 'Dog Eat Doug'.""" - - title = "Dog Eat Doug" - start_date = datetime.strptime("2005-01-02", "%Y-%m-%d") - _endpoint = "dogeatdoug" - - -class dogs_of_c_kennel(ComicsAPI): - """GoComics endpoint for 'Dogs of C-Kennel'.""" - - title = "Dogs of C-Kennel" - start_date = datetime.strptime("2010-10-04", "%Y-%m-%d") - _endpoint = "dogsofckennel" - - -class domestic_abuse(ComicsAPI): - """GoComics endpoint for 'Domestic Abuse'.""" - - title = "Domestic Abuse" - start_date = datetime.strptime("2004-11-10", "%Y-%m-%d") - _endpoint = "domesticabuse" - - -class don_brutus(ComicsAPI): - """GoComics endpoint for 'Don Brutus'.""" - - title = "Don Brutus" - start_date = datetime.strptime("2011-06-27", "%Y-%m-%d") - _endpoint = "don-brutus" - - -class doodle_for_food(ComicsAPI): - """GoComics endpoint for 'Doodle for Food'.""" - - title = "Doodle for Food" - start_date = datetime.strptime("2016-11-21", "%Y-%m-%d") - _endpoint = "doodle-for-food" - - -class doodle_town(ComicsAPI): - """GoComics endpoint for 'Doodle Town'.""" - - title = "Doodle Town" - start_date = datetime.strptime("2014-02-17", "%Y-%m-%d") - _endpoint = "doodle-town" - - -class doonesbury(ComicsAPI): - """GoComics endpoint for 'Doonesbury'.""" - - title = "Doonesbury" - start_date = datetime.strptime("1970-10-26", "%Y-%m-%d") - _endpoint = "doonesbury" - - -class the_doozies(ComicsAPI): - """GoComics endpoint for 'The Doozies'.""" - - title = "The Doozies" - start_date = datetime.strptime("2008-12-01", "%Y-%m-%d") - _endpoint = "thedoozies" - - -class drabble(ComicsAPI): - """GoComics endpoint for 'Drabble'.""" - - title = "Drabble" - start_date = datetime.strptime("1990-01-11", "%Y-%m-%d") - _endpoint = "drabble" - - -class the_duplex(ComicsAPI): - """GoComics endpoint for 'The Duplex'.""" - - title = "The Duplex" - start_date = datetime.strptime("1996-08-12", "%Y-%m-%d") - _endpoint = "duplex" - - -class edge_city(ComicsAPI): - """GoComics endpoint for 'Edge City'.""" - - title = "Edge City" - start_date = datetime.strptime("2016-05-02", "%Y-%m-%d") - _endpoint = "edge-city" - - -class eek(ComicsAPI): - """GoComics endpoint for 'Eek!'.""" - - title = "Eek!" - start_date = datetime.strptime("2007-09-10", "%Y-%m-%d") - _endpoint = "eek" - - -class the_elderberries(ComicsAPI): - """GoComics endpoint for 'The Elderberries'.""" - - title = "The Elderberries" - start_date = datetime.strptime("2004-12-06", "%Y-%m-%d") - _endpoint = "theelderberries" - - -class emmy_lou(ComicsAPI): - """GoComics endpoint for 'Emmy Lou'.""" - - title = "Emmy Lou" - start_date = datetime.strptime("2013-02-04", "%Y-%m-%d") - _endpoint = "emmy-lou" - - -class endtown(ComicsAPI): - """GoComics endpoint for 'Endtown'.""" - - title = "Endtown" - start_date = datetime.strptime("2009-01-19", "%Y-%m-%d") - _endpoint = "endtown" - - -class eric_allie(ComicsAPI): - """GoComics endpoint for 'Eric Allie'.""" - - title = "Eric Allie" - start_date = datetime.strptime("2022-09-01", "%Y-%m-%d") - _endpoint = "eric-allie" - - -class everyday_people_cartoons(ComicsAPI): - """GoComics endpoint for 'Everyday People Cartoons'.""" - - title = "Everyday People Cartoons" - start_date = datetime.strptime("2016-09-09", "%Y-%m-%d") - _endpoint = "everyday-people-cartoons" - - -class eyebeam(ComicsAPI): - """GoComics endpoint for 'Eyebeam'.""" - - title = "Eyebeam" - start_date = datetime.strptime("1996-01-01", "%Y-%m-%d") - _endpoint = "eyebeam" - - -class eyebeam_classic(ComicsAPI): - """GoComics endpoint for 'Eyebeam Classic'.""" - - title = "Eyebeam Classic" - start_date = datetime.strptime("1978-10-05", "%Y-%m-%d") - _endpoint = "eyebeam-classic" - - -class f_minus(ComicsAPI): - """GoComics endpoint for 'F Minus'.""" - - title = "F Minus" - start_date = datetime.strptime("2005-05-10", "%Y-%m-%d") - _endpoint = "fminus" - - -class false_knees(ComicsAPI): - """GoComics endpoint for 'False Knees'.""" - - title = "False Knees" - start_date = datetime.strptime("2017-08-28", "%Y-%m-%d") - _endpoint = "false-knees" - - -class family_tree(ComicsAPI): - """GoComics endpoint for 'Family Tree'.""" - - title = "Family Tree" - start_date = datetime.strptime("2008-01-07", "%Y-%m-%d") - _endpoint = "familytree" - - -class farcus(ComicsAPI): - """GoComics endpoint for 'Farcus'.""" - - title = "Farcus" - start_date = datetime.strptime("1991-12-02", "%Y-%m-%d") - _endpoint = "farcus" - - -class fat_cats(ComicsAPI): - """GoComics endpoint for 'Fat Cats'.""" - - title = "Fat Cats" - start_date = datetime.strptime("1998-06-29", "%Y-%m-%d") - _endpoint = "fat-cats" - - -class flo_and_friends(ComicsAPI): - """GoComics endpoint for 'Flo and Friends'.""" - - title = "Flo and Friends" - start_date = datetime.strptime("2001-11-03", "%Y-%m-%d") - _endpoint = "floandfriends" - - -class the_flying_mccoys(ComicsAPI): - """GoComics endpoint for 'The Flying McCoys'.""" - - title = "The Flying McCoys" - start_date = datetime.strptime("2005-05-09", "%Y-%m-%d") - _endpoint = "theflyingmccoys" - - -class foolish_mortals(ComicsAPI): - """GoComics endpoint for 'Foolish Mortals'.""" - - title = "Foolish Mortals" - start_date = datetime.strptime("2012-09-17", "%Y-%m-%d") - _endpoint = "foolish-mortals" - - -class for_better_or_for_worse(ComicsAPI): - """GoComics endpoint for 'For Better or For Worse'.""" - - title = "For Better or For Worse" - start_date = datetime.strptime("1979-09-10", "%Y-%m-%d") - _endpoint = "forbetterorforworse" - - -class for_heavens_sake(ComicsAPI): - """GoComics endpoint for 'For Heaven's Sake'.""" - - title = "For Heaven's Sake" - start_date = datetime.strptime("2002-08-12", "%Y-%m-%d") - _endpoint = "forheavenssake" - - -class four_eyes(ComicsAPI): - """GoComics endpoint for 'Four Eyes'.""" - - title = "Four Eyes" - start_date = datetime.strptime("2003-10-14", "%Y-%m-%d") - _endpoint = "four-eyes" - - -class fowl_language(ComicsAPI): - """GoComics endpoint for 'Fowl Language'.""" - - title = "Fowl Language" - start_date = datetime.strptime("2015-11-09", "%Y-%m-%d") - _endpoint = "fowl-language" - - -class foxtrot(ComicsAPI): - """GoComics endpoint for 'FoxTrot'.""" - - title = "FoxTrot" - start_date = datetime.strptime("1988-04-11", "%Y-%m-%d") - _endpoint = "foxtrot" - - -class foxtrot_classics(ComicsAPI): - """GoComics endpoint for 'FoxTrot Classics'.""" - - title = "FoxTrot Classics" - start_date = datetime.strptime("2007-01-01", "%Y-%m-%d") - _endpoint = "foxtrotclassics" - - -class foxtrot_en_espanol(ComicsAPI): - """GoComics endpoint for 'FoxTrot en Español'.""" - - title = "FoxTrot en Español" - start_date = datetime.strptime("2004-02-16", "%Y-%m-%d") - _endpoint = "foxtrotespanol" - - -class francis(ComicsAPI): - """GoComics endpoint for 'Francis'.""" - - title = "Francis" - start_date = datetime.strptime("2014-03-30", "%Y-%m-%d") - _endpoint = "francis" - - -class frank_and_ernest(ComicsAPI): - """GoComics endpoint for 'Frank and Ernest'.""" - - title = "Frank and Ernest" - start_date = datetime.strptime("1990-03-10", "%Y-%m-%d") - _endpoint = "frank-and-ernest" - - -class frazz(ComicsAPI): - """GoComics endpoint for 'Frazz'.""" - - title = "Frazz" - start_date = datetime.strptime("2001-04-02", "%Y-%m-%d") - _endpoint = "frazz" - - -class fred_basset(ComicsAPI): - """GoComics endpoint for 'Fred Basset'.""" - - title = "Fred Basset" - start_date = datetime.strptime("2001-04-08", "%Y-%m-%d") - _endpoint = "fredbasset" - - -class fred_basset_en_espanol(ComicsAPI): - """GoComics endpoint for 'Fred Basset en Español'.""" - - title = "Fred Basset en Español" - start_date = datetime.strptime("2004-02-23", "%Y-%m-%d") - _endpoint = "fredbassetespanol" - - -class free_range(ComicsAPI): - """GoComics endpoint for 'Free Range'.""" - - title = "Free Range" - start_date = datetime.strptime("2007-02-03", "%Y-%m-%d") - _endpoint = "freerange" - - -class freshly_squeezed(ComicsAPI): - """GoComics endpoint for 'Freshly Squeezed'.""" - - title = "Freshly Squeezed" - start_date = datetime.strptime("2010-09-20", "%Y-%m-%d") - _endpoint = "freshlysqueezed" - - -class frog_applause(ComicsAPI): - """GoComics endpoint for 'Frog Applause'.""" - - title = "Frog Applause" - start_date = datetime.strptime("2006-12-20", "%Y-%m-%d") - _endpoint = "frogapplause" - - -class furbabies(ComicsAPI): - """GoComics endpoint for 'FurBabies'.""" - - title = "FurBabies" - start_date = datetime.strptime("2023-06-05", "%Y-%m-%d") - _endpoint = "furbabies" - - -class the_fusco_brothers(ComicsAPI): - """GoComics endpoint for 'The Fusco Brothers'.""" - - title = "The Fusco Brothers" - start_date = datetime.strptime("1998-01-01", "%Y-%m-%d") - _endpoint = "thefuscobrothers" - - -class garfield(ComicsAPI): - """GoComics endpoint for 'Garfield'.""" - - title = "Garfield" - start_date = datetime.strptime("1978-06-19", "%Y-%m-%d") - _endpoint = "garfield" - - -class garfield_classics(ComicsAPI): - """GoComics endpoint for 'Garfield Classics'.""" - - title = "Garfield Classics" - start_date = datetime.strptime("2016-06-20", "%Y-%m-%d") - _endpoint = "garfield-classics" - - -class garfield_en_espanol(ComicsAPI): - """GoComics endpoint for 'Garfield en Español'.""" - - title = "Garfield en Español" - start_date = datetime.strptime("1999-12-06", "%Y-%m-%d") - _endpoint = "garfieldespanol" - - -class gasoline_alley(ComicsAPI): - """GoComics endpoint for 'Gasoline Alley'.""" - - title = "Gasoline Alley" - start_date = datetime.strptime("2001-04-08", "%Y-%m-%d") - _endpoint = "gasolinealley" - - -class gaturro(ComicsAPI): - """GoComics endpoint for 'Gaturro'.""" - - title = "Gaturro" - start_date = datetime.strptime("2004-03-20", "%Y-%m-%d") - _endpoint = "gaturro" - - -class geech(ComicsAPI): - """GoComics endpoint for 'Geech'.""" - - title = "Geech" - start_date = datetime.strptime("2000-01-01", "%Y-%m-%d") - _endpoint = "geech" - - -class get_a_life(ComicsAPI): - """GoComics endpoint for 'Get a Life'.""" - - title = "Get a Life" - start_date = datetime.strptime("2010-04-01", "%Y-%m-%d") - _endpoint = "getalife" - - -class get_fuzzy(ComicsAPI): - """GoComics endpoint for 'Get Fuzzy'.""" - - title = "Get Fuzzy" - start_date = datetime.strptime("1999-09-06", "%Y-%m-%d") - _endpoint = "getfuzzy" - - -class gil(ComicsAPI): - """GoComics endpoint for 'Gil'.""" - - title = "Gil" - start_date = datetime.strptime("2016-01-04", "%Y-%m-%d") - _endpoint = "gil" - - -class gil_thorp(ComicsAPI): - """GoComics endpoint for 'Gil Thorp'.""" - - title = "Gil Thorp" - start_date = datetime.strptime("2001-04-18", "%Y-%m-%d") - _endpoint = "gilthorp" - - -class ginger_meggs(ComicsAPI): - """GoComics endpoint for 'Ginger Meggs'.""" - - title = "Ginger Meggs" - start_date = datetime.strptime("2004-04-01", "%Y-%m-%d") - _endpoint = "gingermeggs" - - -class ginger_meggs_en_espanol(ComicsAPI): - """GoComics endpoint for 'Ginger Meggs en Español'.""" - - title = "Ginger Meggs en Español" - start_date = datetime.strptime("2004-02-13", "%Y-%m-%d") - _endpoint = "gingermeggs-espanol " - - -class glasbergen_cartoons(ComicsAPI): - """GoComics endpoint for 'Glasbergen Cartoons'.""" - - title = "Glasbergen Cartoons" - start_date = datetime.strptime("2014-07-28", "%Y-%m-%d") - _endpoint = "glasbergen-cartoons" - - -class globetrotter(ComicsAPI): - """GoComics endpoint for 'Globetrotter'.""" - - title = "Globetrotter" - start_date = datetime.strptime("2022-04-11", "%Y-%m-%d") - _endpoint = "globetrotter" - - -class g_man_webcomics(ComicsAPI): - """GoComics endpoint for 'G-Man Webcomics'.""" - - title = "G-Man Webcomics" - start_date = datetime.strptime("2015-07-20", "%Y-%m-%d") - _endpoint = "g-man-webcomics" - - -class goats(ComicsAPI): - """GoComics endpoint for 'Goats'.""" - - title = "Goats" - start_date = datetime.strptime("2015-09-24", "%Y-%m-%d") - _endpoint = "goats" - - -class al_goodwyn_editorial_cartoons(ComicsAPI): - """GoComics endpoint for 'Al Goodwyn Editorial Cartoons'.""" - - title = "Al Goodwyn Editorial Cartoons" - start_date = datetime.strptime("2020-10-12", "%Y-%m-%d") - _endpoint = "algoodwyn" - - -class bob_gorrell(ComicsAPI): - """GoComics endpoint for 'Bob Gorrell'.""" - - title = "Bob Gorrell" - start_date = datetime.strptime("2004-03-25", "%Y-%m-%d") - _endpoint = "bobgorrell" - - -class grand_avenue(ComicsAPI): - """GoComics endpoint for 'Grand Avenue'.""" - - title = "Grand Avenue" - start_date = datetime.strptime("1999-04-05", "%Y-%m-%d") - _endpoint = "grand-avenue" - - -class gray_matters(ComicsAPI): - """GoComics endpoint for 'Gray Matters'.""" - - title = "Gray Matters" - start_date = datetime.strptime("2012-04-02", "%Y-%m-%d") - _endpoint = "gray-matters" - - -class green_humour(ComicsAPI): - """GoComics endpoint for 'Green Humour'.""" - - title = "Green Humour" - start_date = datetime.strptime("2013-12-02", "%Y-%m-%d") - _endpoint = "green-humour" - - -class the_grizzwells(ComicsAPI): - """GoComics endpoint for 'The Grizzwells'.""" - - title = "The Grizzwells" - start_date = datetime.strptime("1994-03-14", "%Y-%m-%d") - _endpoint = "thegrizzwells" - - -class haircut_practice(ComicsAPI): - """GoComics endpoint for 'Haircut Practice'.""" - - title = "Haircut Practice" - start_date = datetime.strptime("2020-01-20", "%Y-%m-%d") - _endpoint = "haircut-practice" - - -class half_full(ComicsAPI): - """GoComics endpoint for 'Half Full'.""" - - title = "Half Full" - start_date = datetime.strptime("2013-09-16", "%Y-%m-%d") - _endpoint = "half-full" - - -class walt_handelsman(ComicsAPI): - """GoComics endpoint for 'Walt Handelsman'.""" - - title = "Walt Handelsman" - start_date = datetime.strptime("2001-04-23", "%Y-%m-%d") - _endpoint = "walthandelsman" - - -class phil_hands(ComicsAPI): - """GoComics endpoint for 'Phil Hands'.""" - - title = "Phil Hands" - start_date = datetime.strptime("2013-08-22", "%Y-%m-%d") - _endpoint = "phil-hands" - - -class harley(ComicsAPI): - """GoComics endpoint for 'Harley'.""" - - title = "Harley" - start_date = datetime.strptime("2017-03-06", "%Y-%m-%d") - _endpoint = "harley" - - -class heart_of_the_city(ComicsAPI): - """GoComics endpoint for 'Heart of the City'.""" - - title = "Heart of the City" - start_date = datetime.strptime("1999-07-01", "%Y-%m-%d") - _endpoint = "heartofthecity" - - -class heathcliff(ComicsAPI): - """GoComics endpoint for 'Heathcliff'.""" - - title = "Heathcliff" - start_date = datetime.strptime("2002-01-01", "%Y-%m-%d") - _endpoint = "heathcliff" - - -class heathcliff_en_espanol(ComicsAPI): - """GoComics endpoint for 'Heathcliff en Español'.""" - - title = "Heathcliff en Español" - start_date = datetime.strptime("2005-01-02", "%Y-%m-%d") - _endpoint = "heathcliffespanol" - - -class joe_heller(ComicsAPI): - """GoComics endpoint for 'Joe Heller'.""" - - title = "Joe Heller" - start_date = datetime.strptime("2012-02-15", "%Y-%m-%d") - _endpoint = "joe-heller" - - -class rebecca_hendin(ComicsAPI): - """GoComics endpoint for 'Rebecca Hendin'.""" - - title = "Rebecca Hendin" - start_date = datetime.strptime("2015-03-23", "%Y-%m-%d") - _endpoint = "rebecca-hendin" - - -class herb_and_jamaal(ComicsAPI): - """GoComics endpoint for 'Herb and Jamaal'.""" - - title = "Herb and Jamaal" - start_date = datetime.strptime("2002-01-01", "%Y-%m-%d") - _endpoint = "herbandjamaal" - - -class herman(ComicsAPI): - """GoComics endpoint for 'Herman'.""" - - title = "Herman" - start_date = datetime.strptime("1997-06-02", "%Y-%m-%d") - _endpoint = "herman" - - -class home_and_away(ComicsAPI): - """GoComics endpoint for 'Home and Away'.""" - - title = "Home and Away" - start_date = datetime.strptime("2008-06-23", "%Y-%m-%d") - _endpoint = "homeandaway" - - -class home_free(ComicsAPI): - """GoComics endpoint for 'Home Free'.""" - - title = "Home Free" - start_date = datetime.strptime("2022-07-25", "%Y-%m-%d") - _endpoint = "homefree" - - -class hot_comics_for_cool_people(ComicsAPI): - """GoComics endpoint for 'Hot Comics for Cool People'.""" - - title = "Hot Comics for Cool People" - start_date = datetime.strptime("2015-12-14", "%Y-%m-%d") - _endpoint = "hot-comics-for-cool-people" - - -class the_humble_stumble(ComicsAPI): - """GoComics endpoint for 'The Humble Stumble'.""" - - title = "The Humble Stumble" - start_date = datetime.strptime("2005-08-15", "%Y-%m-%d") - _endpoint = "humble-stumble" - - -class hutch_owen(ComicsAPI): - """GoComics endpoint for 'Hutch Owen'.""" - - title = "Hutch Owen" - start_date = datetime.strptime("2013-01-28", "%Y-%m-%d") - _endpoint = "hutch-owen" - - -class imagine_this(ComicsAPI): - """GoComics endpoint for 'Imagine This'.""" - - title = "Imagine This" - start_date = datetime.strptime("2009-04-08", "%Y-%m-%d") - _endpoint = "imaginethis" - - -class imogen_quest(ComicsAPI): - """GoComics endpoint for 'Imogen Quest'.""" - - title = "Imogen Quest" - start_date = datetime.strptime("2017-03-27", "%Y-%m-%d") - _endpoint = "imogen-quest" - - -class in_security(ComicsAPI): - """GoComics endpoint for 'In Security'.""" - - title = "In Security" - start_date = datetime.strptime("2017-01-02", "%Y-%m-%d") - _endpoint = "in-security" - - -class in_the_bleachers(ComicsAPI): - """GoComics endpoint for 'In the Bleachers'.""" - - title = "In the Bleachers" - start_date = datetime.strptime("1986-04-10", "%Y-%m-%d") - _endpoint = "inthebleachers" - - -class in_the_sticks(ComicsAPI): - """GoComics endpoint for 'In the Sticks'.""" - - title = "In the Sticks" - start_date = datetime.strptime("2009-10-11", "%Y-%m-%d") - _endpoint = "inthesticks" - - -class ink_pen(ComicsAPI): - """GoComics endpoint for 'Ink Pen'.""" - - title = "Ink Pen" - start_date = datetime.strptime("2005-11-07", "%Y-%m-%d") - _endpoint = "inkpen" - - -class invisible_bread(ComicsAPI): - """GoComics endpoint for 'Invisible Bread'.""" - - title = "Invisible Bread" - start_date = datetime.strptime("2013-03-11", "%Y-%m-%d") - _endpoint = "invisible-bread" - - -class its_all_about_you(ComicsAPI): - """GoComics endpoint for 'It's All About You'.""" - - title = "It's All About You" - start_date = datetime.strptime("2007-12-31", "%Y-%m-%d") - _endpoint = "itsallaboutyou" - - -class jake_likes_onions(ComicsAPI): - """GoComics endpoint for 'Jake Likes Onions'.""" - - title = "Jake Likes Onions" - start_date = datetime.strptime("2017-08-14", "%Y-%m-%d") - _endpoint = "jake-likes-onions" - - -class janes_world(ComicsAPI): - """GoComics endpoint for 'Jane's World'.""" - - title = "Jane's World" - start_date = datetime.strptime("2002-04-01", "%Y-%m-%d") - _endpoint = "janesworld" - - -class studio_jantze(ComicsAPI): - """GoComics endpoint for 'Studio Jantze'.""" - - title = "Studio Jantze" - start_date = datetime.strptime("2021-01-01", "%Y-%m-%d") - _endpoint = "studio-jantze" - - -class jerry_king_comics(ComicsAPI): - """GoComics endpoint for 'Jerry King Comics'.""" - - title = "Jerry King Comics" - start_date = datetime.strptime("2022-10-03", "%Y-%m-%d") - _endpoint = "jerry-king-comics" - - -class jim_benton_cartoons(ComicsAPI): - """GoComics endpoint for 'Jim Benton Cartoons'.""" - - title = "Jim Benton Cartoons" - start_date = datetime.strptime("2011-11-23", "%Y-%m-%d") - _endpoint = "jim-benton-cartoons" - - -class joey_weatherford(ComicsAPI): - """GoComics endpoint for 'Joey Weatherford'.""" - - title = "Joey Weatherford" - start_date = datetime.strptime("2023-05-16", "%Y-%m-%d") - _endpoint = "joey-weatherford" - - -class clay_jones(ComicsAPI): - """GoComics endpoint for 'Clay Jones'.""" - - title = "Clay Jones" - start_date = datetime.strptime("2005-01-03", "%Y-%m-%d") - _endpoint = "clayjones" - - -class jumpstart(ComicsAPI): - """GoComics endpoint for 'JumpStart'.""" - - title = "JumpStart" - start_date = datetime.strptime("1996-01-01", "%Y-%m-%d") - _endpoint = "jumpstart" - - -class junk_drawer(ComicsAPI): - """GoComics endpoint for 'Junk Drawer'.""" - - title = "Junk Drawer" - start_date = datetime.strptime("2019-09-23", "%Y-%m-%d") - _endpoint = "junk-drawer" - - -class justo_y_franco(ComicsAPI): - """GoComics endpoint for 'Justo y Franco'.""" - - title = "Justo y Franco" - start_date = datetime.strptime("2011-06-27", "%Y-%m-%d") - _endpoint = "justo-y-franco" - - -class kevin_kallaugher(ComicsAPI): - """GoComics endpoint for 'Kevin Kallaugher'.""" - - title = "Kevin Kallaugher" - start_date = datetime.strptime("2005-12-10", "%Y-%m-%d") - _endpoint = "kal" - - -class the_k_chronicles(ComicsAPI): - """GoComics endpoint for 'The K Chronicles'.""" - - title = "The K Chronicles" - start_date = datetime.strptime("2003-07-01", "%Y-%m-%d") - _endpoint = "thekchronicles" - - -class steve_kelley(ComicsAPI): - """GoComics endpoint for 'Steve Kelley'.""" - - title = "Steve Kelley" - start_date = datetime.strptime("2005-01-05", "%Y-%m-%d") - _endpoint = "stevekelley" - - -class kevin_necessary_editorial_cartoons(ComicsAPI): - """GoComics endpoint for 'Kevin Necessary Editorial Cartoons'.""" - - title = "Kevin Necessary Editorial Cartoons" - start_date = datetime.strptime("2017-09-25", "%Y-%m-%d") - _endpoint = "kevin-necessary-editorial-cartoons" - - -class kid_beowulf(ComicsAPI): - """GoComics endpoint for 'Kid Beowulf'.""" - - title = "Kid Beowulf" - start_date = datetime.strptime("2022-08-01", "%Y-%m-%d") - _endpoint = "kid-beowulf" - - -class kitchen_capers(ComicsAPI): - """GoComics endpoint for 'Kitchen Capers'.""" - - title = "Kitchen Capers" - start_date = datetime.strptime("2001-08-18", "%Y-%m-%d") - _endpoint = "kitchen-capers" - - -class kliban(ComicsAPI): - """GoComics endpoint for 'Kliban'.""" - - title = "Kliban" - start_date = datetime.strptime("2012-03-19", "%Y-%m-%d") - _endpoint = "kliban" - - -class klibans_cats(ComicsAPI): - """GoComics endpoint for 'Kliban's Cats'.""" - - title = "Kliban's Cats" - start_date = datetime.strptime("2012-03-27", "%Y-%m-%d") - _endpoint = "klibans-cats" - - -class the_knight_life(ComicsAPI): - """GoComics endpoint for 'The Knight Life'.""" - - title = "The Knight Life" - start_date = datetime.strptime("2008-05-05", "%Y-%m-%d") - _endpoint = "theknightlife" - - -class la_cucaracha(ComicsAPI): - """GoComics endpoint for 'La Cucaracha'.""" - - title = "La Cucaracha" - start_date = datetime.strptime("2002-11-25", "%Y-%m-%d") - _endpoint = "lacucaracha" - - -class la_cucaracha_en_espanol(ComicsAPI): - """GoComics endpoint for 'La Cucaracha en Español'.""" - - title = "La Cucaracha en Español" - start_date = datetime.strptime("2013-11-11", "%Y-%m-%d") - _endpoint = "la-cucaracha-en-espanol" - - -class lards_world_peace_tips(ComicsAPI): - """GoComics endpoint for 'Lard's World Peace Tips'.""" - - title = "Lard's World Peace Tips" - start_date = datetime.strptime("2014-04-07", "%Y-%m-%d") - _endpoint = "lards-world-peace-tips" - - -class last_kiss(ComicsAPI): - """GoComics endpoint for 'Last Kiss'.""" - - title = "Last Kiss" - start_date = datetime.strptime("2009-01-19", "%Y-%m-%d") - _endpoint = "lastkiss" - - -class laughing_redhead_comics(ComicsAPI): - """GoComics endpoint for 'Laughing Redhead Comics'.""" - - title = "Laughing Redhead Comics" - start_date = datetime.strptime("2017-06-26", "%Y-%m-%d") - _endpoint = "laughing-redhead-comics" - - -class lay_lines(ComicsAPI): - """GoComics endpoint for 'Lay Lines'.""" - - title = "Lay Lines" - start_date = datetime.strptime("2015-01-26", "%Y-%m-%d") - _endpoint = "lay-lines" - - -class learn_to_speak_cat(ComicsAPI): - """GoComics endpoint for 'Learn to Speak Cat'.""" - - title = "Learn to Speak Cat" - start_date = datetime.strptime("2015-02-02", "%Y-%m-%d") - _endpoint = "learn-to-speak-cat" - - -class legends_in_the_heights(ComicsAPI): - """GoComics endpoint for 'Legends in the Heights'.""" - - title = "Legends in the Heights" - start_date = datetime.strptime("2022-09-30", "%Y-%m-%d") - _endpoint = "legends-in-the-heights" - - -class mike_lester(ComicsAPI): - """GoComics endpoint for 'Mike Lester'.""" - - title = "Mike Lester" - start_date = datetime.strptime("2011-09-15", "%Y-%m-%d") - _endpoint = "mike-lester" - - -class liberty_meadows(ComicsAPI): - """GoComics endpoint for 'Liberty Meadows'.""" - - title = "Liberty Meadows" - start_date = datetime.strptime("2002-01-01", "%Y-%m-%d") - _endpoint = "libertymeadows" - - -class life_on_earth(ComicsAPI): - """GoComics endpoint for 'Life on Earth'.""" - - title = "Life on Earth" - start_date = datetime.strptime("2017-10-10", "%Y-%m-%d") - _endpoint = "life-on-earth" - - -class lil_abner(ComicsAPI): - """GoComics endpoint for 'Li'l Abner'.""" - - title = "Li'l Abner" - start_date = datetime.strptime("1934-08-19", "%Y-%m-%d") - _endpoint = "lil-abner" - - -class lio(ComicsAPI): - """GoComics endpoint for 'Lio'.""" - - title = "Lio" - start_date = datetime.strptime("2006-05-15", "%Y-%m-%d") - _endpoint = "lio" - - -class lio_en_espanol(ComicsAPI): - """GoComics endpoint for 'Lio en Español'.""" - - title = "Lio en Español" - start_date = datetime.strptime("2007-01-01", "%Y-%m-%d") - _endpoint = "lioespanol" - - -class little_dog_lost(ComicsAPI): - """GoComics endpoint for 'Little Dog Lost'.""" - - title = "Little Dog Lost" - start_date = datetime.strptime("2007-03-26", "%Y-%m-%d") - _endpoint = "littledoglost" - - -class little_fried_chicken_and_sushi(ComicsAPI): - """GoComics endpoint for 'Little Fried Chicken and Sushi'.""" - - title = "Little Fried Chicken and Sushi" - start_date = datetime.strptime("2014-05-26", "%Y-%m-%d") - _endpoint = "little-fried-chicken-and-sushi" - - -class little_nemo(ComicsAPI): - """GoComics endpoint for 'Little Nemo'.""" - - title = "Little Nemo" - start_date = datetime.strptime("2014-10-15", "%Y-%m-%d") - _endpoint = "little-nemo" - - -class liz_climo_cartoons(ComicsAPI): - """GoComics endpoint for 'Liz Climo Cartoons'.""" - - title = "Liz Climo Cartoons" - start_date = datetime.strptime("2018-03-26", "%Y-%m-%d") - _endpoint = "liz-climo-cartoons" - - -class lola(ComicsAPI): - """GoComics endpoint for 'Lola'.""" - - title = "Lola" - start_date = datetime.strptime("2001-04-08", "%Y-%m-%d") - _endpoint = "lola" - - -class lola_en_espanol(ComicsAPI): - """GoComics endpoint for 'Lola en Español'.""" - - title = "Lola en Español" - start_date = datetime.strptime("2005-05-02", "%Y-%m-%d") - _endpoint = "lola-en-espanol" - - -class long_story_short(ComicsAPI): - """GoComics endpoint for 'Long Story Short'.""" - - title = "Long Story Short" - start_date = datetime.strptime("2017-11-20", "%Y-%m-%d") - _endpoint = "long-story-short" - - -class looks_good_on_paper(ComicsAPI): - """GoComics endpoint for 'Looks Good on Paper'.""" - - title = "Looks Good on Paper" - start_date = datetime.strptime("2015-04-13", "%Y-%m-%d") - _endpoint = "looks-good-on-paper" - - -class loose_parts(ComicsAPI): - """GoComics endpoint for 'Loose Parts'.""" - - title = "Loose Parts" - start_date = datetime.strptime("2001-04-08", "%Y-%m-%d") - _endpoint = "looseparts" - - -class los_osorios(ComicsAPI): - """GoComics endpoint for 'Los Osorios'.""" - - title = "Los Osorios" - start_date = datetime.strptime("2011-06-27", "%Y-%m-%d") - _endpoint = "los-osorios" - - -class lost_sheep(ComicsAPI): - """GoComics endpoint for 'Lost Sheep'.""" - - title = "Lost Sheep" - start_date = datetime.strptime("2003-07-30", "%Y-%m-%d") - _endpoint = "lostsheep" - - -class luann(ComicsAPI): - """GoComics endpoint for 'Luann'.""" - - title = "Luann" - start_date = datetime.strptime("1985-03-17", "%Y-%m-%d") - _endpoint = "luann" - - -class luann_againn(ComicsAPI): - """GoComics endpoint for 'Luann Againn'.""" - - title = "Luann Againn" - start_date = datetime.strptime("2013-03-17", "%Y-%m-%d") - _endpoint = "luann-againn" - - -class luann_en_espanol(ComicsAPI): - """GoComics endpoint for 'Luann en Español'.""" - - title = "Luann en Español" - start_date = datetime.strptime("2014-06-23", "%Y-%m-%d") - _endpoint = "luannspanish" - - -class mike_luckovich(ComicsAPI): - """GoComics endpoint for 'Mike Luckovich'.""" - - title = "Mike Luckovich" - start_date = datetime.strptime("2002-08-06", "%Y-%m-%d") - _endpoint = "mikeluckovich" - - -class lucky_cow(ComicsAPI): - """GoComics endpoint for 'Lucky Cow'.""" - - title = "Lucky Cow" - start_date = datetime.strptime("2003-04-21", "%Y-%m-%d") - _endpoint = "luckycow" - - -class lug_nuts(ComicsAPI): - """GoComics endpoint for 'Lug Nuts'.""" - - title = "Lug Nuts" - start_date = datetime.strptime("2014-09-01", "%Y-%m-%d") - _endpoint = "lug-nuts" - - -class lunarbaboon(ComicsAPI): - """GoComics endpoint for 'Lunarbaboon'.""" - - title = "Lunarbaboon" - start_date = datetime.strptime("2015-11-02", "%Y-%m-%d") - _endpoint = "lunarbaboon" - - -class maintaining(ComicsAPI): - """GoComics endpoint for 'Maintaining'.""" - - title = "Maintaining" - start_date = datetime.strptime("2007-05-07", "%Y-%m-%d") - _endpoint = "maintaining" - - -class mannequin_on_the_moon(ComicsAPI): - """GoComics endpoint for 'Mannequin on the Moon'.""" - - title = "Mannequin on the Moon" - start_date = datetime.strptime("2021-02-22", "%Y-%m-%d") - _endpoint = "mannequin-on-the-moon" - - -class marias_day(ComicsAPI): - """GoComics endpoint for 'Maria's Day'.""" - - title = "Maria's Day" - start_date = datetime.strptime("2012-05-26", "%Y-%m-%d") - _endpoint = "marias-day" - - -class gary_markstein(ComicsAPI): - """GoComics endpoint for 'Gary Markstein'.""" - - title = "Gary Markstein" - start_date = datetime.strptime("2008-07-31", "%Y-%m-%d") - _endpoint = "garymarkstein" - - -class marmaduke(ComicsAPI): - """GoComics endpoint for 'Marmaduke'.""" - - title = "Marmaduke" - start_date = datetime.strptime("1996-12-30", "%Y-%m-%d") - _endpoint = "marmaduke" - - -class the_martian_confederacy(ComicsAPI): - """GoComics endpoint for 'The Martian Confederacy'.""" - - title = "The Martian Confederacy" - start_date = datetime.strptime("2014-06-23", "%Y-%m-%d") - _endpoint = "the-martian-confederacy" - - -class m2bulls(ComicsAPI): - """GoComics endpoint for 'M2Bulls'.""" - - title = "M2Bulls" - start_date = datetime.strptime("2013-08-23", "%Y-%m-%d") - _endpoint = "m2bulls" - - -class brian_mcfadden(ComicsAPI): - """GoComics endpoint for 'Brian McFadden'.""" - - title = "Brian McFadden" - start_date = datetime.strptime("2013-12-15", "%Y-%m-%d") - _endpoint = "brian-mcfadden" - - -class the_meaning_of_lila(ComicsAPI): - """GoComics endpoint for 'The Meaning of Lila'.""" - - title = "The Meaning of Lila" - start_date = datetime.strptime("2005-01-02", "%Y-%m-%d") - _endpoint = "meaningoflila" - - -class medium_large(ComicsAPI): - """GoComics endpoint for 'Medium Large'.""" - - title = "Medium Large" - start_date = datetime.strptime("2012-10-01", "%Y-%m-%d") - _endpoint = "medium-large" - - -class messycow_comics(ComicsAPI): - """GoComics endpoint for 'Messycow Comics'.""" - - title = "Messycow Comics" - start_date = datetime.strptime("2018-06-04", "%Y-%m-%d") - _endpoint = "messy-cow" - - -class mexikid_stories(ComicsAPI): - """GoComics endpoint for 'Mexikid Stories'.""" - - title = "Mexikid Stories" - start_date = datetime.strptime("2019-09-23", "%Y-%m-%d") - _endpoint = "mexikid-stories" - - -class the_middle_age(ComicsAPI): - """GoComics endpoint for 'The Middle Age'.""" - - title = "The Middle Age" - start_date = datetime.strptime("2017-06-19", "%Y-%m-%d") - _endpoint = "the-middle-age" - - -class the_middletons(ComicsAPI): - """GoComics endpoint for 'The Middletons'.""" - - title = "The Middletons" - start_date = datetime.strptime("2001-04-08", "%Y-%m-%d") - _endpoint = "themiddletons" - - -class mike_beckom(ComicsAPI): - """GoComics endpoint for 'Mike Beckom'.""" - - title = "Mike Beckom" - start_date = datetime.strptime("2022-09-01", "%Y-%m-%d") - _endpoint = "mike-beckom" - - -class mike_du_jour(ComicsAPI): - """GoComics endpoint for 'Mike du Jour'.""" - - title = "Mike du Jour" - start_date = datetime.strptime("2012-01-01", "%Y-%m-%d") - _endpoint = "mike-du-jour" - - -class miss_peach(ComicsAPI): - """GoComics endpoint for 'Miss Peach'.""" - - title = "Miss Peach" - start_date = datetime.strptime("1988-03-21", "%Y-%m-%d") - _endpoint = "miss-peach" - - -class moderately_confused(ComicsAPI): - """GoComics endpoint for 'Moderately Confused'.""" - - title = "Moderately Confused" - start_date = datetime.strptime("2003-03-03", "%Y-%m-%d") - _endpoint = "moderately-confused" - - -class pedro_x_molina(ComicsAPI): - """GoComics endpoint for 'Pedro X. Molina'.""" - - title = "Pedro X. Molina" - start_date = datetime.strptime("2022-06-03", "%Y-%m-%d") - _endpoint = "pedroxmolina" - - -class momma(ComicsAPI): - """GoComics endpoint for 'Momma'.""" - - title = "Momma" - start_date = datetime.strptime("2002-01-01", "%Y-%m-%d") - _endpoint = "momma" - - -class monty(ComicsAPI): - """GoComics endpoint for 'Monty'.""" - - title = "Monty" - start_date = datetime.strptime("2001-04-02", "%Y-%m-%d") - _endpoint = "monty" - - -class monty_diaros(ComicsAPI): - """GoComics endpoint for 'Monty Diaros'.""" - - title = "Monty Diaros" - start_date = datetime.strptime("2011-06-27", "%Y-%m-%d") - _endpoint = "monty-diaros" - - -class jim_morin(ComicsAPI): - """GoComics endpoint for 'Jim Morin'.""" - - title = "Jim Morin" - start_date = datetime.strptime("2005-12-12", "%Y-%m-%d") - _endpoint = "jimmorin" - - -class mother_goose_and_grimm(ComicsAPI): - """GoComics endpoint for 'Mother Goose and Grimm'.""" - - title = "Mother Goose and Grimm" - start_date = datetime.strptime("2023-01-01", "%Y-%m-%d") - _endpoint = "mother-goose-and-grimm" - - -class motley(ComicsAPI): - """GoComics endpoint for 'Motley Classics'.""" - - title = "Motley Classics" - start_date = datetime.strptime("2000-01-01", "%Y-%m-%d") - _endpoint = "motley-classics" - - -class mr_lowe(ComicsAPI): - """GoComics endpoint for 'Mr. Lowe'.""" - - title = "Mr. Lowe" - start_date = datetime.strptime("2015-05-18", "%Y-%m-%d") - _endpoint = "mr-lowe" - - -class mutt_and_jeff(ComicsAPI): - """GoComics endpoint for 'Mutt & Jeff'.""" - - title = "Mutt & Jeff" - start_date = datetime.strptime("2003-03-05", "%Y-%m-%d") - _endpoint = "muttandjeff" - - -class my_dad_is_dracula(ComicsAPI): - """GoComics endpoint for 'My Dad is Dracula'.""" - - title = "My Dad is Dracula" - start_date = datetime.strptime("2018-04-16", "%Y-%m-%d") - _endpoint = "my-dad-is-dracula" - - -class mythtickle(ComicsAPI): - """GoComics endpoint for 'MythTickle'.""" - - title = "MythTickle" - start_date = datetime.strptime("2007-11-15", "%Y-%m-%d") - _endpoint = "mythtickle" - - -class nancy(ComicsAPI): - """GoComics endpoint for 'Nancy'.""" - - title = "Nancy" - start_date = datetime.strptime("1948-01-05", "%Y-%m-%d") - _endpoint = "nancy" - - -class nancy_classics(ComicsAPI): - """GoComics endpoint for 'Nancy Classics'.""" - - title = "Nancy Classics" - start_date = datetime.strptime("2015-02-23", "%Y-%m-%d") - _endpoint = "nancy-classics" - - -class nate_el_grande(ComicsAPI): - """GoComics endpoint for 'Nate el Grande'.""" - - title = "Nate el Grande" - start_date = datetime.strptime("2011-06-06", "%Y-%m-%d") - _endpoint = "nate-el-grande" - - -class nest_heads(ComicsAPI): - """GoComics endpoint for 'Nest Heads'.""" - - title = "Nest Heads" - start_date = datetime.strptime("2003-05-30", "%Y-%m-%d") - _endpoint = "nestheads" - - -class neurotica(ComicsAPI): - """GoComics endpoint for 'NEUROTICA'.""" - - title = "NEUROTICA" - start_date = datetime.strptime("2003-12-21", "%Y-%m-%d") - _endpoint = "neurotica" - - -class new_adventures_of_queen_victoria(ComicsAPI): - """GoComics endpoint for 'New Adventures of Queen Victoria'.""" - - title = "New Adventures of Queen Victoria" - start_date = datetime.strptime("2006-02-08", "%Y-%m-%d") - _endpoint = "thenewadventuresofqueenvictoria" - - -class next_door_neighbors(ComicsAPI): - """GoComics endpoint for 'Next Door Neighbors'.""" - - title = "Next Door Neighbors" - start_date = datetime.strptime("2016-06-13", "%Y-%m-%d") - _endpoint = "next-door-neighbors" - - -class nick_and_zuzu(ComicsAPI): - """GoComics endpoint for 'Nick and Zuzu'.""" - - title = "Nick and Zuzu" - start_date = datetime.strptime("2013-07-01", "%Y-%m-%d") - _endpoint = "nick-and-zuzu" - - -class non_sequitur(ComicsAPI): - """GoComics endpoint for 'Non Sequitur'.""" - - title = "Non Sequitur" - start_date = datetime.strptime("1992-02-16", "%Y-%m-%d") - _endpoint = "nonsequitur" - - -class the_norm(ComicsAPI): - """GoComics endpoint for 'The Norm Classics'.""" - - title = "The Norm Classics" - start_date = datetime.strptime("2011-12-31", "%Y-%m-%d") - _endpoint = "thenorm" - - -class not_invented_here(ComicsAPI): - """GoComics endpoint for 'Not Invented Here'.""" - - title = "Not Invented Here" - start_date = datetime.strptime("2015-12-28", "%Y-%m-%d") - _endpoint = "not-invented-here" - - -class nothing_is_not_something(ComicsAPI): - """GoComics endpoint for 'Nothing is Not Something'.""" - - title = "Nothing is Not Something" - start_date = datetime.strptime("2012-11-12", "%Y-%m-%d") - _endpoint = "nothing-is-not-something" - - -class now_recharging(ComicsAPI): - """GoComics endpoint for 'Now Recharging'.""" - - title = "Now Recharging" - start_date = datetime.strptime("2016-09-26", "%Y-%m-%d") - _endpoint = "now-recharging" - - -class off_the_mark(ComicsAPI): - """GoComics endpoint for 'Off the Mark'.""" - - title = "Off the Mark" - start_date = datetime.strptime("2002-09-02", "%Y-%m-%d") - _endpoint = "offthemark" - - -class oh_brother(ComicsAPI): - """GoComics endpoint for 'Oh, Brother!'.""" - - title = "Oh, Brother!" - start_date = datetime.strptime("2012-04-16", "%Y-%m-%d") - _endpoint = "oh-brother" - - -class jack_ohman(ComicsAPI): - """GoComics endpoint for 'Jack Ohman'.""" - - title = "Jack Ohman" - start_date = datetime.strptime("2001-04-20", "%Y-%m-%d") - _endpoint = "jackohman" - - -class pat_oliphant(ComicsAPI): - """GoComics endpoint for 'Pat Oliphant'.""" - - title = "Pat Oliphant" - start_date = datetime.strptime("1980-03-30", "%Y-%m-%d") - _endpoint = "patoliphant" - - -class ollie_and_quentin(ComicsAPI): - """GoComics endpoint for 'Ollie and Quentin'.""" - - title = "Ollie and Quentin" - start_date = datetime.strptime("2012-07-30", "%Y-%m-%d") - _endpoint = "ollie-and-quentin" - - -class on_a_claire_day(ComicsAPI): - """GoComics endpoint for 'On A Claire Day'.""" - - title = "On A Claire Day" - start_date = datetime.strptime("2006-06-18", "%Y-%m-%d") - _endpoint = "onaclaireday" - - -class one_big_happy(ComicsAPI): - """GoComics endpoint for 'One Big Happy'.""" - - title = "One Big Happy" - start_date = datetime.strptime("2002-01-01", "%Y-%m-%d") - _endpoint = "onebighappy" - - -class ordinary_bill(ComicsAPI): - """GoComics endpoint for 'Ordinary Bill'.""" - - title = "Ordinary Bill" - start_date = datetime.strptime("2012-02-26", "%Y-%m-%d") - _endpoint = "ordinary-bill" - - -class origins_of_the_sunday_comics(ComicsAPI): - """GoComics endpoint for 'Origins of the Sunday Comics'.""" - - title = "Origins of the Sunday Comics" - start_date = datetime.strptime("2013-07-15", "%Y-%m-%d") - _endpoint = "origins-of-the-sunday-comics" - - -class the_other_coast(ComicsAPI): - """GoComics endpoint for 'The Other Coast'.""" - - title = "The Other Coast" - start_date = datetime.strptime("2002-01-01", "%Y-%m-%d") - _endpoint = "theothercoast" - - -class our_super_adventure(ComicsAPI): - """GoComics endpoint for 'Our Super Adventure'.""" - - title = "Our Super Adventure" - start_date = datetime.strptime("2019-07-08", "%Y-%m-%d") - _endpoint = "our-super-adventure" - - -class out_of_the_gene_pool_re_runs(ComicsAPI): - """GoComics endpoint for 'Out of the Gene Pool Re-Runs'.""" - - title = "Out of the Gene Pool Re-Runs" - start_date = datetime.strptime("2001-12-31", "%Y-%m-%d") - _endpoint = "outofthegenepool" - - -class outland(ComicsAPI): - """GoComics endpoint for 'Outland'.""" - - title = "Outland" - start_date = datetime.strptime("1989-09-03", "%Y-%m-%d") - _endpoint = "outland" - - -class over_the_hedge(ComicsAPI): - """GoComics endpoint for 'Over the Hedge'.""" - - title = "Over the Hedge" - start_date = datetime.strptime("1995-06-12", "%Y-%m-%d") - _endpoint = "overthehedge" - - -class overboard(ComicsAPI): - """GoComics endpoint for 'Overboard'.""" - - title = "Overboard" - start_date = datetime.strptime("1990-08-20", "%Y-%m-%d") - _endpoint = "overboard" - - -class overboard_en_espanol(ComicsAPI): - """GoComics endpoint for 'Overboard en Español'.""" - - title = "Overboard en Español" - start_date = datetime.strptime("2004-02-23", "%Y-%m-%d") - _endpoint = "overboardespanol" - - -class ozy_and_millie(ComicsAPI): - """GoComics endpoint for 'Ozy and Millie'.""" - - title = "Ozy and Millie" - start_date = datetime.strptime("2013-03-04", "%Y-%m-%d") - _endpoint = "ozy-and-millie" - - -class henry_payne(ComicsAPI): - """GoComics endpoint for 'Henry Payne'.""" - - title = "Henry Payne" - start_date = datetime.strptime("2001-02-06", "%Y-%m-%d") - _endpoint = "henrypayne" - - -class peanuts(ComicsAPI): - """GoComics endpoint for 'Peanuts'.""" - - title = "Peanuts" - start_date = datetime.strptime("1950-10-02", "%Y-%m-%d") - _endpoint = "peanuts" - - -class peanuts_begins(ComicsAPI): - """GoComics endpoint for 'Peanuts Begins'.""" - - title = "Peanuts Begins" - start_date = datetime.strptime("1950-10-02", "%Y-%m-%d") - _endpoint = "peanuts-begins" - - -class snoopy_en_espanol(ComicsAPI): - """GoComics endpoint for 'Snoopy en Español'.""" - - title = "Snoopy en Español" - start_date = datetime.strptime("2011-02-11", "%Y-%m-%d") - _endpoint = "peanuts-espanol" - - -class pearls_before_swine(ComicsAPI): - """GoComics endpoint for 'Pearls Before Swine'.""" - - title = "Pearls Before Swine" - start_date = datetime.strptime("2002-01-07", "%Y-%m-%d") - _endpoint = "pearlsbeforeswine" - - -class periquita(ComicsAPI): - """GoComics endpoint for 'Periquita'.""" - - title = "Periquita" - start_date = datetime.strptime("2011-06-27", "%Y-%m-%d") - _endpoint = "periquita" - - -class perlas_para_los_cerdos(ComicsAPI): - """GoComics endpoint for 'Perlas para los Cerdos'.""" - - title = "Perlas para los Cerdos" - start_date = datetime.strptime("2011-06-27", "%Y-%m-%d") - _endpoint = "perlas-para-los-cerdos" - - -class perry_bible_fellowship(ComicsAPI): - """GoComics endpoint for 'Perry Bible Fellowship'.""" - - title = "Perry Bible Fellowship" - start_date = datetime.strptime("2014-11-07", "%Y-%m-%d") - _endpoint = "perry-bible-fellowship" - - -class joel_pett(ComicsAPI): - """GoComics endpoint for 'Joel Pett'.""" - - title = "Joel Pett" - start_date = datetime.strptime("1999-09-20", "%Y-%m-%d") - _endpoint = "joelpett" - - -class petunia_and_dre(ComicsAPI): - """GoComics endpoint for 'Petunia & Dre'.""" - - title = "Petunia & Dre" - start_date = datetime.strptime("2021-05-03", "%Y-%m-%d") - _endpoint = "petunia-and-dre" - - -class phoebe_and_her_unicorn(ComicsAPI): - """GoComics endpoint for 'Phoebe and Her Unicorn'.""" - - title = "Phoebe and Her Unicorn" - start_date = datetime.strptime("2012-01-15", "%Y-%m-%d") - _endpoint = "phoebe-and-her-unicorn" - - -class pibgorn(ComicsAPI): - """GoComics endpoint for 'Pibgorn'.""" - - title = "Pibgorn" - start_date = datetime.strptime("2002-03-11", "%Y-%m-%d") - _endpoint = "pibgorn" - - -class pibgorn_sketches(ComicsAPI): - """GoComics endpoint for 'Pibgorn Sketches'.""" - - title = "Pibgorn Sketches" - start_date = datetime.strptime("2008-07-14", "%Y-%m-%d") - _endpoint = "pibgornsketches" - - -class pickles(ComicsAPI): - """GoComics endpoint for 'Pickles'.""" - - title = "Pickles" - start_date = datetime.strptime("2003-01-01", "%Y-%m-%d") - _endpoint = "pickles" - - -class please_listen_to_me(ComicsAPI): - """GoComics endpoint for 'Please Listen to Me'.""" - - title = "Please Listen to Me" - start_date = datetime.strptime("2015-12-21", "%Y-%m-%d") - _endpoint = "please-listen-to-me" - - -class pluggers(ComicsAPI): - """GoComics endpoint for 'Pluggers'.""" - - title = "Pluggers" - start_date = datetime.strptime("2001-04-08", "%Y-%m-%d") - _endpoint = "pluggers" - - -class pooch_cafe(ComicsAPI): - """GoComics endpoint for 'Pooch Cafe'.""" - - title = "Pooch Cafe" - start_date = datetime.strptime("2003-04-27", "%Y-%m-%d") - _endpoint = "poochcafe" - - -class poorcraft(ComicsAPI): - """GoComics endpoint for 'Poorcraft'.""" - - title = "Poorcraft" - start_date = datetime.strptime("2016-09-12", "%Y-%m-%d") - _endpoint = "poorcraft" - - -class poorly_drawn_lines(ComicsAPI): - """GoComics endpoint for 'Poorly Drawn Lines'.""" - - title = "Poorly Drawn Lines" - start_date = datetime.strptime("2013-09-18", "%Y-%m-%d") - _endpoint = "poorly-drawn-lines" - - -class pot_shots(ComicsAPI): - """GoComics endpoint for 'Pot-Shots'.""" - - title = "Pot-Shots" - start_date = datetime.strptime("2015-05-11", "%Y-%m-%d") - _endpoint = "pot-shots" - - -class preteena(ComicsAPI): - """GoComics endpoint for 'PreTeena'.""" - - title = "PreTeena" - start_date = datetime.strptime("2001-04-23", "%Y-%m-%d") - _endpoint = "preteena" - - -class prickly_city(ComicsAPI): - """GoComics endpoint for 'Prickly City'.""" - - title = "Prickly City" - start_date = datetime.strptime("2004-07-11", "%Y-%m-%d") - _endpoint = "pricklycity" - - -class a_problem_like_jamal(ComicsAPI): - """GoComics endpoint for 'A Problem Like Jamal'.""" - - title = "A Problem Like Jamal" - start_date = datetime.strptime("2018-07-02", "%Y-%m-%d") - _endpoint = "a-problem-like-jamal" - - -class questionable_quotebook(ComicsAPI): - """GoComics endpoint for 'Questionable Quotebook'.""" - - title = "Questionable Quotebook" - start_date = datetime.strptime("2016-02-01", "%Y-%m-%d") - _endpoint = "questionable-quotebook" - - -class rabbits_against_magic(ComicsAPI): - """GoComics endpoint for 'Rabbits Against Magic'.""" - - title = "Rabbits Against Magic" - start_date = datetime.strptime("2008-05-31", "%Y-%m-%d") - _endpoint = "rabbitsagainstmagic" - - -class raising_duncan(ComicsAPI): - """GoComics endpoint for 'Raising Duncan'.""" - - title = "Raising Duncan" - start_date = datetime.strptime("2000-07-17", "%Y-%m-%d") - _endpoint = "raising-duncan" - - -class ted_rall(ComicsAPI): - """GoComics endpoint for 'Ted Rall'.""" - - title = "Ted Rall" - start_date = datetime.strptime("1996-11-05", "%Y-%m-%d") - _endpoint = "ted-rall" - - -class michael_ramirez(ComicsAPI): - """GoComics endpoint for 'Michael Ramirez'.""" - - title = "Michael Ramirez" - start_date = datetime.strptime("2006-07-15", "%Y-%m-%d") - _endpoint = "michaelramirez" - - -class marshall_ramsey(ComicsAPI): - """GoComics endpoint for 'Marshall Ramsey'.""" - - title = "Marshall Ramsey" - start_date = datetime.strptime("2008-01-07", "%Y-%m-%d") - _endpoint = "marshallramsey" - - -class randolph_itch_2_am(ComicsAPI): - """GoComics endpoint for 'Randolph Itch, 2 a.m.'.""" - - title = "Randolph Itch, 2 a.m." - start_date = datetime.strptime("2000-01-03", "%Y-%m-%d") - _endpoint = "randolphitch" - - -class real_life_adventures(ComicsAPI): - """GoComics endpoint for 'Real Life Adventures'.""" - - title = "Real Life Adventures" - start_date = datetime.strptime("1998-01-01", "%Y-%m-%d") - _endpoint = "reallifeadventures" - - -class reality_check(ComicsAPI): - """GoComics endpoint for 'Reality Check'.""" - - title = "Reality Check" - start_date = datetime.strptime("1997-01-01", "%Y-%m-%d") - _endpoint = "realitycheck" - - -class red_and_rover(ComicsAPI): - """GoComics endpoint for 'Red and Rover'.""" - - title = "Red and Rover" - start_date = datetime.strptime("2000-05-07", "%Y-%m-%d") - _endpoint = "redandrover" - - -class red_meat(ComicsAPI): - """GoComics endpoint for 'Red Meat'.""" - - title = "Red Meat" - start_date = datetime.strptime("2009-08-22", "%Y-%m-%d") - _endpoint = "redmeat" - - -class richards_poor_almanac(ComicsAPI): - """GoComics endpoint for 'Richard's Poor Almanac'.""" - - title = "Richard's Poor Almanac" - start_date = datetime.strptime("2010-12-16", "%Y-%m-%d") - _endpoint = "richards-poor-almanac" - - -class rip_haywire(ComicsAPI): - """GoComics endpoint for 'Rip Haywire'.""" - - title = "Rip Haywire" - start_date = datetime.strptime("2009-01-05", "%Y-%m-%d") - _endpoint = "riphaywire" - - -class ripleys_aunque_usted_no_lo_crea(ComicsAPI): - """GoComics endpoint for 'Ripley’s ¡Aunque Usted no lo Crea!'.""" - - title = "Ripley’s ¡Aunque Usted no lo Crea!" - start_date = datetime.strptime("2011-06-27", "%Y-%m-%d") - _endpoint = "ripleys-en-espanol" - - -class ripleys_believe_it_or_not(ComicsAPI): - """GoComics endpoint for 'Ripley's Believe It or Not'.""" - - title = "Ripley's Believe It or Not" - start_date = datetime.strptime("1996-01-01", "%Y-%m-%d") - _endpoint = "ripleysbelieveitornot" - - -class robbie_and_bobby(ComicsAPI): - """GoComics endpoint for 'Robbie and Bobby'.""" - - title = "Robbie and Bobby" - start_date = datetime.strptime("2013-06-24", "%Y-%m-%d") - _endpoint = "robbie-and-bobby" - - -class rob_rogers(ComicsAPI): - """GoComics endpoint for 'Rob Rogers'.""" - - title = "Rob Rogers" - start_date = datetime.strptime("2011-05-26", "%Y-%m-%d") - _endpoint = "robrogers" - - -class rose_is_rose(ComicsAPI): - """GoComics endpoint for 'Rose is Rose'.""" - - title = "Rose is Rose" - start_date = datetime.strptime("1986-01-01", "%Y-%m-%d") - _endpoint = "roseisrose" - - -class rosebuds(ComicsAPI): - """GoComics endpoint for 'Rosebuds'.""" - - title = "Rosebuds" - start_date = datetime.strptime("2020-08-10", "%Y-%m-%d") - _endpoint = "rosebuds" - - -class rosebuds_en_espanol(ComicsAPI): - """GoComics endpoint for 'Rosebuds en Español'.""" - - title = "Rosebuds en Español" - start_date = datetime.strptime("2021-04-12", "%Y-%m-%d") - _endpoint = "rosebuds-en-espanol" - - -class rubes(ComicsAPI): - """GoComics endpoint for 'Rubes'.""" - - title = "Rubes" - start_date = datetime.strptime("2002-01-01", "%Y-%m-%d") - _endpoint = "rubes" - - -class rudy_park(ComicsAPI): - """GoComics endpoint for 'Rudy Park'.""" - - title = "Rudy Park" - start_date = datetime.strptime("2001-09-03", "%Y-%m-%d") - _endpoint = "rudypark" - - -class sarahs_scribbles(ComicsAPI): - """GoComics endpoint for 'Sarah's Scribbles'.""" - - title = "Sarah's Scribbles" - start_date = datetime.strptime("2014-01-02", "%Y-%m-%d") - _endpoint = "sarahs-scribbles" - - -class saturday_morning_breakfast_cereal(ComicsAPI): - """GoComics endpoint for 'Saturday Morning Breakfast Cereal'.""" - - title = "Saturday Morning Breakfast Cereal" - start_date = datetime.strptime("2014-07-14", "%Y-%m-%d") - _endpoint = "saturday-morning-breakfast-cereal" - - -class savage_chickens(ComicsAPI): - """GoComics endpoint for 'Savage Chickens'.""" - - title = "Savage Chickens" - start_date = datetime.strptime("2012-06-25", "%Y-%m-%d") - _endpoint = "savage-chickens" - - -class scary_gary(ComicsAPI): - """GoComics endpoint for 'Scary Gary'.""" - - title = "Scary Gary" - start_date = datetime.strptime("2009-02-02", "%Y-%m-%d") - _endpoint = "scarygary" - - -class scenes_from_a_multiverse(ComicsAPI): - """GoComics endpoint for 'Scenes from a Multiverse'.""" - - title = "Scenes from a Multiverse" - start_date = datetime.strptime("2015-08-31", "%Y-%m-%d") - _endpoint = "scenes-from-a-multiverse" - - -class shen_comix(ComicsAPI): - """GoComics endpoint for 'Shen Comix'.""" - - title = "Shen Comix" - start_date = datetime.strptime("2009-12-16", "%Y-%m-%d") - _endpoint = "shen-comix" - - -class drew_sheneman(ComicsAPI): - """GoComics endpoint for 'Drew Sheneman'.""" - - title = "Drew Sheneman" - start_date = datetime.strptime("2001-04-20", "%Y-%m-%d") - _endpoint = "drewsheneman" - - -class shermans_lagoon(ComicsAPI): - """GoComics endpoint for 'Sherman's Lagoon'.""" - - title = "Sherman's Lagoon" - start_date = datetime.strptime("2022-05-01", "%Y-%m-%d") - _endpoint = "shermanslagoon" - - -class shirley_and_son(ComicsAPI): - """GoComics endpoint for 'Shirley and Son Classics'.""" - - title = "Shirley and Son Classics" - start_date = datetime.strptime("2000-10-02", "%Y-%m-%d") - _endpoint = "shirley-and-son-classics" - - -class shoe(ComicsAPI): - """GoComics endpoint for 'Shoe'.""" - - title = "Shoe" - start_date = datetime.strptime("2001-04-08", "%Y-%m-%d") - _endpoint = "shoe" - - -class sketchshark_comics(ComicsAPI): - """GoComics endpoint for 'Sketchshark Comics'.""" - - title = "Sketchshark Comics" - start_date = datetime.strptime("2016-08-29", "%Y-%m-%d") - _endpoint = "sketchshark-comics" - - -class skin_horse(ComicsAPI): - """GoComics endpoint for 'Skin Horse'.""" - - title = "Skin Horse" - start_date = datetime.strptime("2007-12-31", "%Y-%m-%d") - _endpoint = "skinhorse" - - -class skippy(ComicsAPI): - """GoComics endpoint for 'Skippy'.""" - - title = "Skippy" - start_date = datetime.strptime("1925-06-22", "%Y-%m-%d") - _endpoint = "skippy" - - -class small_potatoes(ComicsAPI): - """GoComics endpoint for 'Small Potatoes'.""" - - title = "Small Potatoes" - start_date = datetime.strptime("2016-10-03", "%Y-%m-%d") - _endpoint = "small-potatoes" - - -class snow_sez(ComicsAPI): - """GoComics endpoint for 'Snow Sez'.""" - - title = "Snow Sez" - start_date = datetime.strptime("2015-10-12", "%Y-%m-%d") - _endpoint = "snow-sez" - - -class snowflakes(ComicsAPI): - """GoComics endpoint for 'Snowflakes'.""" - - title = "Snowflakes" - start_date = datetime.strptime("2015-07-06", "%Y-%m-%d") - _endpoint = "snowflakes" - - -class jen_sorensen(ComicsAPI): - """GoComics endpoint for 'Jen Sorensen'.""" - - title = "Jen Sorensen" - start_date = datetime.strptime("2002-07-22", "%Y-%m-%d") - _endpoint = "jen-sorensen" - - -class speed_bump(ComicsAPI): - """GoComics endpoint for 'Speed Bump'.""" - - title = "Speed Bump" - start_date = datetime.strptime("2002-01-01", "%Y-%m-%d") - _endpoint = "speedbump" - - -class spirit_of_the_staircase(ComicsAPI): - """GoComics endpoint for 'Spirit of the Staircase'.""" - - title = "Spirit of the Staircase" - start_date = datetime.strptime("2016-07-28", "%Y-%m-%d") - _endpoint = "spirit-of-the-staircase" - - -class spot_the_frog(ComicsAPI): - """GoComics endpoint for 'Spot the Frog'.""" - - title = "Spot the Frog" - start_date = datetime.strptime("2004-01-05", "%Y-%m-%d") - _endpoint = "spot-the-frog" - - -class jeff_stahler(ComicsAPI): - """GoComics endpoint for 'Jeff Stahler'.""" - - title = "Jeff Stahler" - start_date = datetime.strptime("2011-06-01", "%Y-%m-%d") - _endpoint = "jeffstahler" - - -class scott_stantis(ComicsAPI): - """GoComics endpoint for 'Scott Stantis'.""" - - title = "Scott Stantis" - start_date = datetime.strptime("1902-07-06", "%Y-%m-%d") - _endpoint = "scottstantis" - - -class sticky_comics(ComicsAPI): - """GoComics endpoint for 'Sticky Comics'.""" - - title = "Sticky Comics" - start_date = datetime.strptime("2016-03-14", "%Y-%m-%d") - _endpoint = "sticky-comics" - - -class stone_soup(ComicsAPI): - """GoComics endpoint for 'Stone Soup'.""" - - title = "Stone Soup" - start_date = datetime.strptime("1995-11-20", "%Y-%m-%d") - _endpoint = "stonesoup" - - -class stone_soup_classics(ComicsAPI): - """GoComics endpoint for 'Stone Soup Classics'.""" - - title = "Stone Soup Classics" - start_date = datetime.strptime("2015-10-19", "%Y-%m-%d") - _endpoint = "stone-soup-classics" - - -class las_hermanas_stone(ComicsAPI): - """GoComics endpoint for 'Las Hermanas Stone'.""" - - title = "Las Hermanas Stone" - start_date = datetime.strptime("2010-09-19", "%Y-%m-%d") - _endpoint = "stonesoup_espanol" - - -class strange_brew(ComicsAPI): - """GoComics endpoint for 'Strange Brew'.""" - - title = "Strange Brew" - start_date = datetime.strptime("2002-01-01", "%Y-%m-%d") - _endpoint = "strangebrew" - - -class dana_summers(ComicsAPI): - """GoComics endpoint for 'Dana Summers'.""" - - title = "Dana Summers" - start_date = datetime.strptime("2001-04-23", "%Y-%m-%d") - _endpoint = "danasummers" - - -class sunny_street(ComicsAPI): - """GoComics endpoint for 'Sunny Street'.""" - - title = "Sunny Street" - start_date = datetime.strptime("2005-02-14", "%Y-%m-%d") - _endpoint = "sunny-street" - - -class sunshine_state(ComicsAPI): - """GoComics endpoint for 'Sunshine State'.""" - - title = "Sunshine State" - start_date = datetime.strptime("2014-06-02", "%Y-%m-%d") - _endpoint = "sunshine-state" - - -class super_fun_pak_comix(ComicsAPI): - """GoComics endpoint for 'Super-Fun-Pak Comix'.""" - - title = "Super-Fun-Pak Comix" - start_date = datetime.strptime("2014-05-12", "%Y-%m-%d") - _endpoint = "super-fun-pak-comix" - - -class swan_eaters(ComicsAPI): - """GoComics endpoint for 'Swan Eaters'.""" - - title = "Swan Eaters" - start_date = datetime.strptime("2018-10-01", "%Y-%m-%d") - _endpoint = "swan-eaters" - - -class sweet_and_sour_pork(ComicsAPI): - """GoComics endpoint for 'Sweet and Sour Pork'.""" - - title = "Sweet and Sour Pork" - start_date = datetime.strptime("2013-08-19", "%Y-%m-%d") - _endpoint = "sweet-and-sour-pork" - - -class sylvia(ComicsAPI): - """GoComics endpoint for 'Sylvia'.""" - - title = "Sylvia" - start_date = datetime.strptime("2001-04-18", "%Y-%m-%d") - _endpoint = "sylvia" - - -class todays_szep(ComicsAPI): - """GoComics endpoint for 'Today's Szep'.""" - - title = "Today's Szep" - start_date = datetime.strptime("2020-08-31", "%Y-%m-%d") - _endpoint = "todays-szep" - - -class tank_mcnamara(ComicsAPI): - """GoComics endpoint for 'Tank McNamara'.""" - - title = "Tank McNamara" - start_date = datetime.strptime("1998-01-01", "%Y-%m-%d") - _endpoint = "tankmcnamara" - - -class tarzan(ComicsAPI): - """GoComics endpoint for 'Tarzan'.""" - - title = "Tarzan" - start_date = datetime.strptime("1996-01-01", "%Y-%m-%d") - _endpoint = "tarzan" - - -class tarzan_en_espanol(ComicsAPI): - """GoComics endpoint for 'Tarzán en Español'.""" - - title = "Tarzán en Español" - start_date = datetime.strptime("2007-01-07", "%Y-%m-%d") - _endpoint = "tarzan-en-espanol" - - -class at_tavicat(ComicsAPI): - """GoComics endpoint for '@Tavicat'.""" - - title = "@Tavicat" - start_date = datetime.strptime("2016-07-11", "%Y-%m-%d") - _endpoint = "tavicat" - - -class ten_cats(ComicsAPI): - """GoComics endpoint for 'Ten Cats'.""" - - title = "Ten Cats" - start_date = datetime.strptime("2003-04-08", "%Y-%m-%d") - _endpoint = "ten-cats" - - -class tex(ComicsAPI): - """GoComics endpoint for 'Tex'.""" - - title = "Tex" - start_date = datetime.strptime("2022-09-19", "%Y-%m-%d") - _endpoint = "tex" - - -class texts_from_mittens(ComicsAPI): - """GoComics endpoint for 'Texts From Mittens'.""" - - title = "Texts From Mittens" - start_date = datetime.strptime("2018-03-12", "%Y-%m-%d") - _endpoint = "texts-from-mittens" - - -class that_is_priceless(ComicsAPI): - """GoComics endpoint for 'That is Priceless'.""" - - title = "That is Priceless" - start_date = datetime.strptime("2011-10-31", "%Y-%m-%d") - _endpoint = "that-is-priceless" - - -class that_new_carl_smell(ComicsAPI): - """GoComics endpoint for 'That New Carl Smell'.""" - - title = "That New Carl Smell" - start_date = datetime.strptime("2013-08-12", "%Y-%m-%d") - _endpoint = "that-new-carl-smell" - - -class thatababy(ComicsAPI): - """GoComics endpoint for 'Thatababy'.""" - - title = "Thatababy" - start_date = datetime.strptime("2010-09-13", "%Y-%m-%d") - _endpoint = "thatababy" - - -class thin_lines(ComicsAPI): - """GoComics endpoint for 'Thin Lines'.""" - - title = "Thin Lines" - start_date = datetime.strptime("2010-04-26", "%Y-%m-%d") - _endpoint = "thinlines" - - -class think(ComicsAPI): - """GoComics endpoint for '(th)ink'.""" - - title = "(th)ink" - start_date = datetime.strptime("2003-08-25", "%Y-%m-%d") - _endpoint = "think" - - -class tiny_sepuku(ComicsAPI): - """GoComics endpoint for 'Tiny Sepuku'.""" - - title = "Tiny Sepuku" - start_date = datetime.strptime("2003-04-03", "%Y-%m-%d") - _endpoint = "tinysepuku" - - -class tom_toles(ComicsAPI): - """GoComics endpoint for 'Tom Toles'.""" - - title = "Tom Toles" - start_date = datetime.strptime("1995-05-16", "%Y-%m-%d") - _endpoint = "tomtoles" - - -class tom_the_dancing_bug(ComicsAPI): - """GoComics endpoint for 'Tom the Dancing Bug'.""" - - title = "Tom the Dancing Bug" - start_date = datetime.strptime("1998-01-04", "%Y-%m-%d") - _endpoint = "tomthedancingbug" - - -class too_much_coffee_man(ComicsAPI): - """GoComics endpoint for 'Too Much Coffee Man'.""" - - title = "Too Much Coffee Man" - start_date = datetime.strptime("2003-05-18", "%Y-%m-%d") - _endpoint = "toomuchcoffeeman" - - -class trucutu(ComicsAPI): - """GoComics endpoint for 'Trucutu'.""" - - title = "Trucutu" - start_date = datetime.strptime("2011-02-28", "%Y-%m-%d") - _endpoint = "trucutu" - - -class truth_facts(ComicsAPI): - """GoComics endpoint for 'Truth Facts'.""" - - title = "Truth Facts" - start_date = datetime.strptime("2014-06-16", "%Y-%m-%d") - _endpoint = "truth-facts" - - -class tutelandia(ComicsAPI): - """GoComics endpoint for 'Tutelandia'.""" - - title = "Tutelandia" - start_date = datetime.strptime("2004-06-04", "%Y-%m-%d") - _endpoint = "tutelandia" - - -class two_party_opera(ComicsAPI): - """GoComics endpoint for 'Two Party Opera'.""" - - title = "Two Party Opera" - start_date = datetime.strptime("2016-09-05", "%Y-%m-%d") - _endpoint = "two-party-opera" - - -class ufo(ComicsAPI): - """GoComics endpoint for 'UFO'.""" - - title = "UFO" - start_date = datetime.strptime("2023-07-10", "%Y-%m-%d") - _endpoint = "ufo" - - -class underpants_and_overbites(ComicsAPI): - """GoComics endpoint for 'Underpants and Overbites'.""" - - title = "Underpants and Overbites" - start_date = datetime.strptime("2018-04-11", "%Y-%m-%d") - _endpoint = "underpants-and-overbites" - - -class understanding_chaos(ComicsAPI): - """GoComics endpoint for 'Understanding Chaos'.""" - - title = "Understanding Chaos" - start_date = datetime.strptime("2013-11-25", "%Y-%m-%d") - _endpoint = "understanding-chaos" - - -class unstrange_phenomena(ComicsAPI): - """GoComics endpoint for 'Unstrange Phenomena'.""" - - title = "Unstrange Phenomena" - start_date = datetime.strptime("2011-06-01", "%Y-%m-%d") - _endpoint = "unstrange-phenomena" - - -class the_upside_down_world_of_gustave_verbeek(ComicsAPI): - """GoComics endpoint for 'The Upside Down World of Gustave Verbeek'.""" - - title = "The Upside Down World of Gustave Verbeek" - start_date = datetime.strptime("2016-12-19", "%Y-%m-%d") - _endpoint = "upside-down-world-of-gustave-verbeek" - - -class gary_varvel(ComicsAPI): - """GoComics endpoint for 'Gary Varvel'.""" - - title = "Gary Varvel" - start_date = datetime.strptime("1993-12-10", "%Y-%m-%d") - _endpoint = "garyvarvel" - - -class viewsafrica(ComicsAPI): - """GoComics endpoint for 'ViewsAfrica'.""" - - title = "ViewsAfrica" - start_date = datetime.strptime("2007-02-03", "%Y-%m-%d") - _endpoint = "viewsafrica" - - -class viewsamerica(ComicsAPI): - """GoComics endpoint for 'ViewsAmerica'.""" - - title = "ViewsAmerica" - start_date = datetime.strptime("2007-02-04", "%Y-%m-%d") - _endpoint = "viewsamerica" - - -class viewsasia(ComicsAPI): - """GoComics endpoint for 'ViewsAsia'.""" - - title = "ViewsAsia" - start_date = datetime.strptime("2007-01-15", "%Y-%m-%d") - _endpoint = "viewsasia" - - -class viewsbusiness(ComicsAPI): - """GoComics endpoint for 'ViewsBusiness'.""" - - title = "ViewsBusiness" - start_date = datetime.strptime("2001-07-08", "%Y-%m-%d") - _endpoint = "viewsbusiness" - - -class viewseurope(ComicsAPI): - """GoComics endpoint for 'ViewsEurope'.""" - - title = "ViewsEurope" - start_date = datetime.strptime("2007-01-19", "%Y-%m-%d") - _endpoint = "viewseurope" - - -class viewslatinamerica(ComicsAPI): - """GoComics endpoint for 'ViewsLatinAmerica'.""" - - title = "ViewsLatinAmerica" - start_date = datetime.strptime("2007-01-03", "%Y-%m-%d") - _endpoint = "viewslatinamerica" - - -class viewsmideast(ComicsAPI): - """GoComics endpoint for 'ViewsMidEast'.""" - - title = "ViewsMidEast" - start_date = datetime.strptime("2007-01-19", "%Y-%m-%d") - _endpoint = "viewsmideast" - - -class views_of_the_world(ComicsAPI): - """GoComics endpoint for 'Views of the World'.""" - - title = "Views of the World" - start_date = datetime.strptime("2007-03-15", "%Y-%m-%d") - _endpoint = "viewsoftheworld" - - -class viivi_and_wagner(ComicsAPI): - """GoComics endpoint for 'Viivi & Wagner'.""" - - title = "Viivi & Wagner" - start_date = datetime.strptime("2012-07-02", "%Y-%m-%d") - _endpoint = "viivi-and-wagner" - - -class wallace_the_brave(ComicsAPI): - """GoComics endpoint for 'Wallace the Brave'.""" - - title = "Wallace the Brave" - start_date = datetime.strptime("2015-06-29", "%Y-%m-%d") - _endpoint = "wallace-the-brave" - - -class the_wandering_melon(ComicsAPI): - """GoComics endpoint for 'The Wandering Melon'.""" - - title = "The Wandering Melon" - start_date = datetime.strptime("2014-06-30", "%Y-%m-%d") - _endpoint = "the-wandering-melon" - - -class warped(ComicsAPI): - """GoComics endpoint for 'Warped'.""" - - title = "Warped" - start_date = datetime.strptime("2016-09-19", "%Y-%m-%d") - _endpoint = "warped" - - -class watch_your_head(ComicsAPI): - """GoComics endpoint for 'Watch Your Head'.""" - - title = "Watch Your Head" - start_date = datetime.strptime("2006-03-27", "%Y-%m-%d") - _endpoint = "watchyourhead" - - -class wawawiwa(ComicsAPI): - """GoComics endpoint for 'Wawawiwa'.""" - - title = "Wawawiwa" - start_date = datetime.strptime("2020-02-10", "%Y-%m-%d") - _endpoint = "wawawiwa" - - -class waynovision(ComicsAPI): - """GoComics endpoint for 'WaynoVision'.""" - - title = "WaynoVision" - start_date = datetime.strptime("2014-12-01", "%Y-%m-%d") - _endpoint = "waynovision" - - -class wee_pals(ComicsAPI): - """GoComics endpoint for 'Wee Pals'.""" - - title = "Wee Pals" - start_date = datetime.strptime("2005-01-02", "%Y-%m-%d") - _endpoint = "weepals" - - -class widdershins(ComicsAPI): - """GoComics endpoint for 'Widdershins'.""" - - title = "Widdershins" - start_date = datetime.strptime("2016-08-08", "%Y-%m-%d") - _endpoint = "widdershins" - - -class wide_open(ComicsAPI): - """GoComics endpoint for 'Wide Open'.""" - - title = "Wide Open" - start_date = datetime.strptime("2010-07-17", "%Y-%m-%d") - _endpoint = "wide-open" - - -class win_lose_drew(ComicsAPI): - """GoComics endpoint for 'Win, Lose, Drew'.""" - - title = "Win, Lose, Drew" - start_date = datetime.strptime("2011-05-19", "%Y-%m-%d") - _endpoint = "drewlitton" - - -class wizard_of_id(ComicsAPI): - """GoComics endpoint for 'Wizard of Id'.""" - - title = "Wizard of Id" - start_date = datetime.strptime("2002-01-01", "%Y-%m-%d") - _endpoint = "wizardofid" - - -class the_wizard_of_id_spanish(ComicsAPI): - """GoComics endpoint for 'The Wizard of Id - Spanish'.""" - - title = "The Wizard of Id - Spanish" - start_date = datetime.strptime("2005-01-02", "%Y-%m-%d") - _endpoint = "wizardofidespanol" - - -class wizard_of_id_classics(ComicsAPI): - """GoComics endpoint for 'Wizard of Id Classics'.""" - - title = "Wizard of Id Classics" - start_date = datetime.strptime("2014-11-17", "%Y-%m-%d") - _endpoint = "wizard-of-id-classics" - - -class wondermark(ComicsAPI): - """GoComics endpoint for 'Wondermark'.""" - - title = "Wondermark" - start_date = datetime.strptime("2016-06-27", "%Y-%m-%d") - _endpoint = "wondermark" - - -class working_daze(ComicsAPI): - """GoComics endpoint for 'Working Daze'.""" - - title = "Working Daze" - start_date = datetime.strptime("2002-02-11", "%Y-%m-%d") - _endpoint = "working-daze" - - -class working_it_out(ComicsAPI): - """GoComics endpoint for 'Working It Out'.""" - - title = "Working It Out" - start_date = datetime.strptime("2005-01-02", "%Y-%m-%d") - _endpoint = "workingitout" - - -class the_worried_well(ComicsAPI): - """GoComics endpoint for 'The Worried Well'.""" - - title = "The Worried Well" - start_date = datetime.strptime("2016-01-04", "%Y-%m-%d") - _endpoint = "the-worried-well" - - -class worry_lines(ComicsAPI): - """GoComics endpoint for 'Worry Lines'.""" - - title = "Worry Lines" - start_date = datetime.strptime("2021-12-31", "%Y-%m-%d") - _endpoint = "worry-lines" - - -class wrong_hands(ComicsAPI): - """GoComics endpoint for 'Wrong Hands'.""" - - title = "Wrong Hands" - start_date = datetime.strptime("2015-02-20", "%Y-%m-%d") - _endpoint = "wrong-hands" - - -class w_t_duck(ComicsAPI): - """GoComics endpoint for 'W.T. Duck'.""" - - title = "W.T. Duck" - start_date = datetime.strptime("2009-01-05", "%Y-%m-%d") - _endpoint = "wtduck" - - -class matt_wuerker(ComicsAPI): - """GoComics endpoint for 'Matt Wuerker'.""" - - title = "Matt Wuerker" - start_date = datetime.strptime("2011-03-01", "%Y-%m-%d") - _endpoint = "mattwuerker" - - -class wumo(ComicsAPI): - """GoComics endpoint for 'WuMo'.""" - - title = "WuMo" - start_date = datetime.strptime("2013-10-13", "%Y-%m-%d") - _endpoint = "wumo" - - -class wumo_en_espanol(ComicsAPI): - """GoComics endpoint for 'Wumo en Español'.""" - - title = "Wumo en Español" - start_date = datetime.strptime("2014-01-01", "%Y-%m-%d") - _endpoint = "wumoespanol" - - -class yaffle(ComicsAPI): - """GoComics endpoint for 'Yaffle'.""" - - title = "Yaffle" - start_date = datetime.strptime("2018-04-02", "%Y-%m-%d") - _endpoint = "yaffle" - - -class yes_im_hot_in_this(ComicsAPI): - """GoComics endpoint for 'Yes, I'm Hot in This'.""" - - title = "Yes, I'm Hot in This" - start_date = datetime.strptime("2020-02-12", "%Y-%m-%d") - _endpoint = "yesimhotinthis" - - -class zack_hill(ComicsAPI): - """GoComics endpoint for 'Zack Hill'.""" - - title = "Zack Hill" - start_date = datetime.strptime("2003-01-01", "%Y-%m-%d") - _endpoint = "zackhill" - - -class zen_pencils(ComicsAPI): - """GoComics endpoint for 'Zen Pencils'.""" - - title = "Zen Pencils" - start_date = datetime.strptime("2013-07-09", "%Y-%m-%d") - _endpoint = "zen-pencils" - - -class ziggy(ComicsAPI): - """GoComics endpoint for 'Ziggy'.""" - - title = "Ziggy" - start_date = datetime.strptime("1971-06-27", "%Y-%m-%d") - _endpoint = "ziggy" - - -class ziggy_en_espanol(ComicsAPI): - """GoComics endpoint for 'Ziggy en Español'.""" - - title = "Ziggy en Español" - start_date = datetime.strptime("2004-02-09", "%Y-%m-%d") - _endpoint = "ziggyespanol" - - -class nine_to_five(ComicsAPI): - """GoComics endpoint for '9 to 5'.""" - - title = "9 to 5" - start_date = datetime.strptime("2001-04-13", "%Y-%m-%d") - _endpoint = "9to5" - - -class nine_chickweed_lane(ComicsAPI): - """GoComics endpoint for '9 Chickweed Lane'.""" - - title = "9 Chickweed Lane" - start_date = datetime.strptime("1993-07-12", "%Y-%m-%d") - _endpoint = "9chickweedlane" - - -class one_and_done(ComicsAPI): - """GoComics endpoint for '1 and Done'.""" - - title = "1 and Done" - start_date = datetime.strptime("2015-08-24", "%Y-%m-%d") - _endpoint = "1-and-done" - - -class nine_chickweed_lane_classics(ComicsAPI): - """GoComics endpoint for '9 Chickweed Lane Classics'.""" - - title = "9 Chickweed Lane Classics" - start_date = datetime.strptime("2018-01-29", "%Y-%m-%d") - _endpoint = "9-chickweed-lane-classics" diff --git a/comics/constants.py b/comics/constants.py index 3c64d50..13ffab0 100644 --- a/comics/constants.py +++ b/comics/constants.py @@ -3,93 +3,58 @@ ~~~~~~~~~~~~~~~~ """ -from comics import api - -# fmt: off -COMICS_CLASS = ( - api.a_problem_like_jamal, api.aaggghhh, api.adam_at_home, api.adult_children, api.agnes, - api.aj_and_magnus, api.al_goodwyn_editorial_cartoons, api.alis_house, api.alley_oop, api.amanda_the_great, - api.andertoons, api.andy_capp, api.angry_little_girls, api.animal_crackers, api.annie, api.arlo_and_janis, - api.art_by_moga, api.ask_shagg, api.at_tavicat, api.aunty_acid, api.baby_blues, api.back_in_the_day, - api.back_to_bc, api.bacon, api.bad_machinery, api.baldo, api.baldo_en_espanol, api.ballard_street, api.banana_triangle, - api.barkeater_lake, api.barney_and_clyde, api.basic_instructions, api.batch_rejection, api.bc, api.beanie_the_brownie, - api.bear_with_me, api.beardo, api.ben, api.benitin_y_eneas, api.berger_and_wyse, api.berkeley_mews, api.betty, - api.bfgf_syndrome, api.big_nate, api.big_nate_first_class, api.big_top, api.bill_bramhall, api.bird_and_moon, api.birdbrains, - api.bleeker_the_rechargeable_dog, api.bliss, api.bloom_county, api.bloom_county_2019, api.bo_nanas, api.bob_gorrell, - api.bob_the_angry_flower, api.bob_the_squirrel, api.boomerangs, api.bottom_liners, api.bound_and_gagged, api.bozo, - api.breaking_cat_news, api.brevity, api.brewster_rockit, api.brian_mcfadden, api.broom_hilda, api.buckles, api.bully, - api.buni, api.calvin_and_hobbes, api.calvin_and_hobbes_en_espanol, api.catana_comics, api.cathy, - api.cathy_commiserations, api.cats_cafe, api.cattitude_doggonit, api.cest_la_vie, api.cheer_up_emo_kid, api.chip_bok, - api.chris_britt, api.chuck_draws_things, api.chuckle_bros, api.citizen_dog, api.claw, api.clay_bennett, api.clay_jones, - api.cleats, api.close_to_home, api.compu_toon, api.cornered, api.cow_and_boy, api.cowtown, api.crabgrass, api.crankshaft, api.crumb, - api.cul_de_sac, api.curses, api.daddys_home, api.dana_summers, api.dark_side_of_the_horse, api.day_by_dave, api.deep_dark_fears, - api.deflocked, api.diamond_lil, api.dick_tracy, api.dinosaur_comics, api.dog_eat_doug, - api.dogs_of_c_kennel, api.domestic_abuse, api.don_brutus, api.doodle_for_food, api.doodle_town, api.doonesbury, api.drabble, - api.drew_sheneman, api.edge_city, api.eek, api.el_cafe_de_poncho, api.emmy_lou, api.endtown, - api.eric_allie, api.everyday_people_cartoons, api.eyebeam, api.eyebeam_classic, api.f_minus, api.false_knees, - api.family_tree, api.farcus, api.fat_cats, api.flo_and_friends, api.foolish_mortals, api.for_better_or_for_worse, - api.for_heavens_sake, api.four_eyes, api.fowl_language, api.foxtrot, api.foxtrot_classics, api.foxtrot_en_espanol, - api.francis, api.frank_and_ernest, api.frazz, api.fred_basset, api.fred_basset_en_espanol, api.free_range, - api.freshly_squeezed, api.frog_applause, api.furbabies, api.g_man_webcomics, api.garfield, api.garfield_classics, api.garfield_en_espanol, - api.gary_markstein, api.gary_varvel, api.gasoline_alley, api.gaturro, api.geech, api.get_a_life, api.get_fuzzy, api.gil, - api.gil_thorp, api.ginger_meggs, api.ginger_meggs_en_espanol, api.glasbergen_cartoons, api.globetrotter, api.goats, - api.grand_avenue, api.gray_matters, api.green_humour, api.haircut_practice, api.half_full, api.harley, api.heart_of_the_city, - api.heathcliff, api.heathcliff_en_espanol, api.henry_payne, api.herb_and_jamaal, api.herman, api.home_and_away, api.home_free, - api.hot_comics_for_cool_people, api.hutch_owen, api.imagine_this, api.imogen_quest, api.in_security, api.in_the_bleachers, - api.in_the_sticks, api.ink_pen, api.invisible_bread, api.its_all_about_you, api.jack_ohman, api.jake_likes_onions, - api.janes_world, api.jeff_danziger, api.jeff_stahler, api.jen_sorensen, api.jerry_king_comics, api.jim_benton_cartoons, - api.jim_morin, api.joe_heller, api.joel_pett, api.joey_weatherford, api.john_deering, api.jumpstart, api.junk_drawer, api.justo_y_franco, - api.kevin_kallaugher, api.kevin_necessary_editorial_cartoons, api.kid_beowulf, api.kitchen_capers, api.kliban, api.klibans_cats, - api.la_cucaracha, api.la_cucaracha_en_espanol, api.lalo_alcaraz, api.lalo_alcaraz_en_espanol, api.lards_world_peace_tips, - api.las_hermanas_stone, api.last_kiss, api.laughing_redhead_comics, api.lay_lines, api.learn_to_speak_cat, api.legends_in_the_heights, api.liberty_meadows, - api.life_on_earth, api.lil_abner, api.lio, api.lio_en_espanol, api.lisa_benson, api.little_dog_lost, - api.little_fried_chicken_and_sushi, api.little_nemo, api.liz_climo_cartoons, api.lola, api.lola_en_espanol, api.long_story_short, - api.looks_good_on_paper, api.loose_parts, api.los_osorios, api.lost_sheep, api.luann, api.luann_againn, api.luann_en_espanol, - api.lucky_cow, api.lug_nuts, api.lunarbaboon, api.m2bulls, api.maintaining, api.mannequin_on_the_moon, api.marias_day, - api.marmaduke, api.marshall_ramsey, api.matt_bors, api.matt_davies, api.matt_wuerker, api.medium_large, api.messycow_comics, - api.mexikid_stories, api.michael_ramirez, api.mike_beckom, api.mike_du_jour, api.mike_lester, api.mike_luckovich, api.miss_peach, - api.moderately_confused, api.momma, api.monty, api.monty_diaros, api.mother_goose_and_grimm, api.motley, api.mr_lowe, api.mutt_and_jeff, - api.my_dad_is_dracula, api.mythtickle, api.nancy, api.nancy_classics, api.nate_el_grande, api.nest_heads, api.neurotica, - api.new_adventures_of_queen_victoria, api.next_door_neighbors, api.nick_and_zuzu, api.nick_anderson, api.nine_chickweed_lane, - api.nine_chickweed_lane_classics, api.nine_to_five, api.non_sequitur, api.not_invented_here, api.nothing_is_not_something, - api.now_recharging, api.off_the_mark, api.oh_brother, api.ollie_and_quentin, api.on_a_claire_day, api.one_and_done, api.one_big_happy, - api.ordinary_bill, api.origins_of_the_sunday_comics, api.our_super_adventure, api.out_of_the_gene_pool_re_runs, api.outland, - api.over_the_hedge, api.overboard, api.overboard_en_espanol, api.ozy_and_millie, api.pat_oliphant, api.peanuts, - api.peanuts_begins, api.pearls_before_swine, api.pedro_x_molina, api.periquita, api.perlas_para_los_cerdos, api.perry_bible_fellowship, - api.petunia_and_dre, api.phil_hands, api.phoebe_and_her_unicorn, api.pibgorn, api.pibgorn_sketches, api.pickles, api.please_listen_to_me, - api.pluggers, api.pooch_cafe, api.poorcraft, api.poorly_drawn_lines, api.pot_shots, api.preteena, api.prickly_city, - api.questionable_quotebook, api.rabbits_against_magic, api.raising_duncan, api.randolph_itch_2_am, api.real_life_adventures, - api.reality_check, api.rebecca_hendin, api.red_and_rover, api.red_meat, api.richards_poor_almanac, api.rip_haywire, - api.ripleys_aunque_usted_no_lo_crea, api.ripleys_believe_it_or_not, api.rob_rogers, api.robbie_and_bobby, api.robert_ariail, - api.rose_is_rose, api.rosebuds, api.rosebuds_en_espanol, api.rubes, api.rudy_park, api.sarahs_scribbles, - api.saturday_morning_breakfast_cereal, api.savage_chickens, api.scary_gary, api.scenes_from_a_multiverse, api.scott_stantis, - api.shen_comix, api.shermans_lagoon, api.shirley_and_son, api.shoe, api.sketchshark_comics, api.skin_horse, - api.skippy, api.small_potatoes, api.snoopy_en_espanol, api.snow_sez, api.snowflakes, api.speed_bump, api.spirit_of_the_staircase, - api.spot_the_frog, api.steve_benson, api.steve_breen, api.steve_kelley, api.sticky_comics, api.stone_soup, api.stone_soup_classics, - api.strange_brew, api.stuart_carlson, api.studio_jantze, api.sunny_street, api.sunshine_state, api.super_fun_pak_comix, - api.swan_eaters, api.sweet_and_sour_pork, api.sylvia, api.tank_mcnamara, api.tarzan, api.tarzan_en_espanol, api.ted_rall, api.ten_cats, - api.tex, api.texts_from_mittens, api.that_is_priceless, api.that_new_carl_smell, api.thatababy, api.the_academia_waltz, - api.the_adventures_of_business_cat, api.the_argyle_sweater, api.the_awkward_yeti, api.the_barn, api.the_big_picture, api.the_boondocks, - api.the_born_loser, api.the_buckets, api.the_city, api.the_comic_strip_that_has_a_finale_every_day, api.the_daily_drawing, - api.the_dinette_set, api.the_doozies, api.the_duplex, api.the_elderberries, api.the_flying_mccoys, api.the_fusco_brothers, - api.the_grizzwells, api.the_humble_stumble, api.the_k_chronicles, api.the_knight_life, api.the_martian_confederacy, - api.the_meaning_of_lila, api.the_middle_age, api.the_middletons, api.the_norm, api.the_other_coast, - api.the_upside_down_world_of_gustave_verbeek, api.the_wandering_melon, api.the_wizard_of_id_spanish, api.the_worried_well, - api.thin_lines, api.think, api.tim_campbell, api.tiny_sepuku, api.todays_szep, api.tom_the_dancing_bug, api.tom_toles, - api.too_much_coffee_man, api.trucutu, api.truth_facts, api.tutelandia, api.two_party_opera, api.ufo, api.underpants_and_overbites, - api.understanding_chaos, api.unstrange_phenomena, api.views_of_the_world, api.viewsafrica, api.viewsamerica, api.viewsasia, - api.viewsbusiness, api.viewseurope, api.viewslatinamerica, api.viewsmideast, api.viivi_and_wagner, api.w_t_duck, api.wallace_the_brave, - api.walt_handelsman, api.warped, api.watch_your_head, api.wawawiwa, api.waynovision, api.wee_pals, api.widdershins, api.wide_open, - api.win_lose_drew, api.wizard_of_id, api.wizard_of_id_classics, api.wondermark, api.working_daze, api.working_it_out, api.worry_lines, - api.wrong_hands, api.wumo, api.wumo_en_espanol, api.yaffle, api.yes_im_hot_in_this, api.zack_hill, api.zen_pencils, api.ziggy, api.ziggy_en_espanol, -) -# fmt: on +import json +from functools import wraps +from pathlib import Path + +from comics.exceptions import InvalidEndpointError + +ROOT_PATH = Path(__file__).resolve().parent.parent + + +def _read_json(filepath, **kwargs): + """Reads and returns .json `filepath` as dictionary. + + Args: + filepath (str | pathlib.Path): Filepath of JSON file to read. + **kwargs (Any): Kwargs to pass to `json.load`. + + Returns: + dict: Dictionary representation of JSON file as specified in `filepath`. + """ + with open(filepath, "r") as f: + data = json.load(f, **kwargs) + return data + + +def _verify_endpoint(method): + """Wrapper to verify existence of a GoComics endpoint stored in variable `endpoint`.""" + + @wraps(method) + def wrapper(*args, **kwargs): + """Verifies user-specified GoComics endpoint is found in registered endpoints. + + Returns: + Any: The method called with all arguments and keyword arguments. + + Raises: + InvalidEndpointError: An invalid GoComics endpoint was queried. + """ + try: + return method(*args, **kwargs) + except KeyError as e: + # Relies on `endpoint` being the second argument of a class method if the value is not + # bound to kwarg variable `endpoint` + endpoint = kwargs.get("endpoint", args[1]) + raise InvalidEndpointError(f"'{endpoint}' is not a valid GoComics endpoint.") from e + + return wrapper class directory: """Directory of registered comics in GoComics.""" - _registered_comics = {cls_.title: cls_.__name__ for cls_ in COMICS_CLASS} + _registered_comics = _read_json(ROOT_PATH / "constants" / "endpoints.json") @classmethod def listall(cls): @@ -98,7 +63,7 @@ def listall(cls): Returns: tuple: Every registered comic in GoComics. """ - return tuple(sorted(cls._registered_comics.values())) + return tuple(sorted(cls._registered_comics.keys())) @classmethod def search(cls, key): @@ -111,7 +76,41 @@ def search(cls, key): tuple: Every registered comic in GoComics containing the queried keyword. """ return tuple( - cls_name - for title, cls_name in cls._registered_comics.items() - if key.lower() in title.lower() + endpoint + for endpoint, content in cls._registered_comics.items() + if key.lower() in content["title"].lower() ) + + @classmethod + @_verify_endpoint + def get_title(cls, endpoint): + """Gets the title of a registered comic endpoint in GoComics. + + Args: + endpoint (str): GoComics endpoint to query. + + Returns: + str: The GoComics endpoint's title. + + Raises: + InvalidEndpointError: An invalid GoComics endpoint was queried. + """ + endpoint_content = cls._registered_comics[endpoint.lower()] + return endpoint_content["title"] + + @classmethod + @_verify_endpoint + def get_start_date(cls, endpoint): + """Gets the publication start date of a registered comic endpoint in GoComics. + + Args: + endpoint (str): GoComics endpoint to query. + + Returns: + str: The GoComics endpoint's publication start date in format "%Y-%m-%d". + + Raises: + InvalidEndpointError: An invalid GoComics endpoint was queried. + """ + endpoint_content = cls._registered_comics[endpoint.lower()] + return endpoint_content["start_date"] diff --git a/comics/exceptions.py b/comics/exceptions.py index e57a66c..1c701c3 100644 --- a/comics/exceptions.py +++ b/comics/exceptions.py @@ -6,3 +6,7 @@ class InvalidDateError(Exception): """An invalid publication date was queried.""" + + +class InvalidEndpointError(Exception): + """An invalid GoComics endpoint was queried.""" diff --git a/comics/gocomics.py b/comics/gocomics.py index f986be7..65bf4a8 100644 --- a/comics/gocomics.py +++ b/comics/gocomics.py @@ -16,6 +16,7 @@ from bs4 import BeautifulSoup from PIL import Image +from comics.constants import directory from comics.exceptions import InvalidDateError urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) @@ -24,7 +25,7 @@ def bypass_comics_cache(func): - """Comcics cache wrapper that checks and bypasses specific cached arguments.""" + """Comics cache wrapper that checks and bypasses specific cached arguments.""" @wraps(func) def wrapper(*args, **kwargs): @@ -47,15 +48,18 @@ def wrapper(*args, **kwargs): return wrapper -class ComicsAPI: +class search: """Constructs user interface with GoComics.""" - title = "NULL" - start_date = datetime.today() - _endpoint = "NULL" + def __init__(self, endpoint): + self.endpoint = endpoint + self.start_date = directory.get_start_date(self.endpoint) + self.title = directory.get_title(self.endpoint) + + def __repr__(self): + return f'search(endpoint="{self.endpoint}", title="{self.title}")' - @classmethod - def date(cls, date): + def date(self, date): """Constructs user interface with GoComics provided a comic strip date. Args: @@ -65,34 +69,31 @@ def date(cls, date): InvalidDateError: If date is out of range for queried comic. Returns: - Comics: `Comics` instance of comic strip published on the provided date. + ComicsAPI: `ComicsAPI` instance of comic strip published on the provided date. """ if isinstance(date, str): date = dateutil.parser.parse(date) - if date < cls.start_date: - date_strf = datetime.strftime(date, "%Y-%m-%d") - start_date_strf = datetime.strftime(cls.start_date, "%Y-%m-%d") + if date < datetime.strptime(self.start_date, "%Y-%m-%d"): raise InvalidDateError( - f"Search for dates after {start_date_strf}. Your input: {date_strf}" + f"Search for dates after {self.start_date}. Your input: {datetime.strftime(date, '%Y-%m-%d')}" ) - return Comics(cls.title, cls._endpoint, date) + return ComicsAPI(self.endpoint, self.title, date) - @classmethod - def random_date(cls): + def random_date(self): """Constructs user interface with GoComics with a random comic strip date. Returns: - Comics: `Comics` instance of comic strip published on a random date. + ComicsAPI: `ComicsAPI` instance of comic strip published on a random date. """ - return Comics(cls.title, cls._endpoint) + return ComicsAPI(self.endpoint, self.title) -class Comics: +class ComicsAPI: """User interface with GoComics.""" - def __init__(self, title, endpoint, date=None): + def __init__(self, endpoint, title, date=None): + self.endpoint = endpoint self.title = title - self._endpoint = endpoint # Select a random comic strip if date is not specified if date is None: r = self._get_response(self._random_url) @@ -102,7 +103,7 @@ def __init__(self, title, endpoint, date=None): self._date = date def __repr__(self): - return f'Comics(title="{self.title}", date="{self.date}")' + return f'ComicsAPI(endpoint="{self.endpoint}", title="{self.title}", date="{self.date}")' @property def date(self): @@ -124,7 +125,7 @@ def download(self, path=None): """ path = os.getcwd() if path is None else str(path) if os.path.isdir(path): - path = os.path.join(path, f"{self._endpoint}.png") + path = os.path.join(path, f"{self.endpoint}.png") # Stream outside of context - will corrupt image if exception raised in opened file stream = self.stream() with open(path, "wb") as file: @@ -180,7 +181,7 @@ def url(self): str: GoComics URL with date. """ strf_datetime = datetime.strftime(self._date, "%Y/%m/%d") - return f"{_BASE_URL}/{self._endpoint}/{strf_datetime}" + return f"{_BASE_URL}/{self.endpoint}/{strf_datetime}" @property def _random_url(self): @@ -189,7 +190,7 @@ def _random_url(self): Returns: str: Random GoComics URL. """ - return f"{_BASE_RANDOM_URL}/{self._endpoint}" + return f"{_BASE_RANDOM_URL}/{self.endpoint}" @staticmethod @bypass_comics_cache diff --git a/tests/test_api.py b/tests/test_api.py index b805ae6..a4bfd05 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -15,22 +15,22 @@ # fmt: off attributes = ( - (comics.calvin_and_hobbes, "Calvin and Hobbes", "2017-02-14", "https://www.gocomics.com/calvinandhobbes/2017/02/14"), - (comics.jim_benton_cartoons, "Jim Benton Cartoons", "2020-05-10", "https://www.gocomics.com/jim-benton-cartoons/2020/05/10"), - (comics.foxtrot, "FoxTrot", "1992-04-17", "https://www.gocomics.com/foxtrot/1992/04/17"), - (comics.garfield, "Garfield", "2010-06-30", "https://www.gocomics.com/garfield/2010/06/30"), - (comics.peanuts, "Peanuts", "1965-07-04", "https://www.gocomics.com/peanuts/1965/07/04"), + ("calvinandhobbes", "Calvin and Hobbes", "2017-02-14", "https://www.gocomics.com/calvinandhobbes/2017/02/14"), + ("jim-benton-cartoons", "Jim Benton Cartoons", "2020-05-10", "https://www.gocomics.com/jim-benton-cartoons/2020/05/10"), + ("foxtrot", "FoxTrot", "1992-04-17", "https://www.gocomics.com/foxtrot/1992/04/17"), + ("garfield", "Garfield", "2010-06-30", "https://www.gocomics.com/garfield/2010/06/30"), + ("peanuts", "Peanuts", "1965-07-04", "https://www.gocomics.com/peanuts/1965/07/04"), ) # fmt: on -@mark.parametrize("attributes", attributes) -def test_attributes(attributes): +@mark.parametrize("attr", attributes) +def test_attributes(attr): """Test proper instance attributes. Args: - attributes (tuple): Args to unpack for testing proper instance attributes. + attr (tuple): Args to unpack for testing proper instance attributes. """ - comics_obj, title, date, url = attributes - comics_inst = comics_obj.date(date) + endpoint, title, date, url = attr + comics_inst = comics.search(endpoint).date(date) assert comics_inst.title == title assert comics_inst.date == date assert comics_inst.url == url @@ -40,23 +40,23 @@ def test_attributes(attributes): def test_random_date(): """Test random date instance is equal to date instance when using fixed date.""" - ch_random = comics.calvin_and_hobbes.random_date() + ch_random = comics.search("calvinandhobbes").random_date() random_date = ch_random.date - ch_date = comics.calvin_and_hobbes.date(random_date) + ch_date = comics.search("calvinandhobbes").date(random_date) assert ch_random.date == ch_date.date assert ch_random.url == ch_date.url def test_stream(): """Test comic image stream instance and status code.""" - ch = comics.calvin_and_hobbes.random_date() + ch = comics.search("calvinandhobbes").random_date() assert isinstance(ch.stream(), requests.models.Response) assert ch.stream().status_code == 200 def test_download_comic_and_verify_content(): """Test proper comic download execution and valid download image content.""" - ch = comics.calvin_and_hobbes.random_date() + ch = comics.search("calvinandhobbes").random_date() _download_comic_and_verify_content(ch) @@ -64,16 +64,16 @@ def test_download_static_gif_to_png(): """Test proper comic download execution and valid download image content of static GIF to PNG.""" bad_ch_date = "2009-09-10" - ch = comics.calvin_and_hobbes.date(bad_ch_date) + ch = comics.search("calvinandhobbes").date(bad_ch_date) _download_comic_and_verify_content(ch) def _download_comic_and_verify_content(comics_inst): """Private function. Verify proper download execution and valid download image content - of a `Comics` instance. + of a `ComicsAPI` instance. Args: - comics_inst (Comics): `Comics` instance. + comics_inst (ComicsAPI): `ComicsAPI` instance. """ img_filepath = Path(__file__).parent / "downloads" / "comics_test.png" # Start by deleting the image if present - this allows me to keep the file tracked in Git to enable diff --git a/tests/test_exceptions.py b/tests/test_exceptions.py index 5134614..0ddcbed 100644 --- a/tests/test_exceptions.py +++ b/tests/test_exceptions.py @@ -6,19 +6,26 @@ import pytest import comics -from comics import InvalidDateError +from comics import InvalidDateError, InvalidEndpointError + + +def test_invalid_endpoint(): + """Tests proper raise of `InvalidEndpointError` when using an endpoint that does + not exist in GoComics.""" + with pytest.raises(InvalidEndpointError): + comics.search("invalid_endpoint").date("2000-01-01") def test_date_before_creation(): """Tests proper raise of `InvalidDateError` when using date that is before the comic's creation date.""" with pytest.raises(InvalidDateError): - comics.calvin_and_hobbes.date("1900-01-01") + comics.search("calvinandhobbes").date("1900-01-01") -def test_unregistered_date(): - """Tests proper raise of `InvalidDateError` when using an unregistered date for - the comic of interest.""" - ch = comics.calvin_and_hobbes.date("2050-01-01") +def test_invalid_date(): + """Tests proper raise of `InvalidDateError` when using an invalid / unregistered + date for the comic of interest.""" + ch = comics.search("calvinandhobbes").date("2050-01-01") with pytest.raises(InvalidDateError): ch.show()