2016-04-11 20:34:11 +00:00
|
|
|
# -*- coding: utf-8 -*-
|
2016-10-28 22:21:41 +00:00
|
|
|
# Copyright (C) 2004-2008 Tristan Seligmann and Jonathan Jacobs
|
2014-01-05 15:50:57 +00:00
|
|
|
# Copyright (C) 2012-2014 Bastian Kleineidam
|
2020-03-25 23:43:43 +00:00
|
|
|
# Copyright (C) 2015-2020 Tobias Gruetzmacher
|
2016-04-11 20:34:11 +00:00
|
|
|
from ..scraper import _ParserScraper
|
2018-04-06 18:09:13 +00:00
|
|
|
from ..helpers import indirectStarter, xpath_class
|
2016-04-11 20:34:11 +00:00
|
|
|
|
|
|
|
|
2016-05-22 22:01:10 +00:00
|
|
|
class GoComics(_ParserScraper):
|
2019-12-03 23:15:44 +00:00
|
|
|
url = 'https://www.gocomics.com/'
|
2018-07-14 09:00:27 +00:00
|
|
|
imageSearch = '//picture[{}]/img'.format(xpath_class('item-comic-image'))
|
|
|
|
prevSearch = '//a[{}]'.format(xpath_class('js-previous-comic'))
|
|
|
|
latestSearch = '//div[{}]//a'.format(xpath_class('gc-deck--cta-0'))
|
2018-04-06 18:09:13 +00:00
|
|
|
starter = indirectStarter
|
2016-04-11 20:34:11 +00:00
|
|
|
help = 'Index format: yyyy/mm/dd'
|
|
|
|
|
2016-05-22 22:01:10 +00:00
|
|
|
def __init__(self, name, path, lang=None):
|
|
|
|
super(GoComics, self).__init__('GoComics/' + name)
|
2019-12-03 23:15:44 +00:00
|
|
|
self.session.add_throttle('www.gocomics.com', 1.0, 2.0)
|
|
|
|
self.url = 'https://www.gocomics.com/' + path
|
2016-05-22 22:01:10 +00:00
|
|
|
self.shortname = name
|
|
|
|
if lang:
|
|
|
|
self.lang = lang
|
2012-11-26 06:13:32 +00:00
|
|
|
|
2016-04-21 06:20:49 +00:00
|
|
|
def namer(self, image_url, page_url):
|
2016-04-11 20:34:11 +00:00
|
|
|
prefix, year, month, day = page_url.rsplit('/', 3)
|
2016-05-22 22:01:10 +00:00
|
|
|
return "%s_%s%s%s.gif" % (self.shortname, year, month, day)
|
2016-04-11 20:34:11 +00:00
|
|
|
|
|
|
|
def getIndexStripUrl(self, index):
|
2020-03-25 23:43:43 +00:00
|
|
|
return '{}/{}'.format(self.url, index)
|
2016-04-11 20:34:11 +00:00
|
|
|
|
|
|
|
def shouldSkipUrl(self, url, data):
|
|
|
|
"""Skip pages without images."""
|
|
|
|
return data.xpath('//img[contains(@src, "content-error-missing")]')
|
|
|
|
|
2016-05-22 22:01:10 +00:00
|
|
|
@classmethod
|
|
|
|
def getmodules(cls):
|
|
|
|
return (
|
|
|
|
# old comics removed from the listing
|
|
|
|
cls('HeavenlyNostrils', 'heavenly-nostrils'),
|
|
|
|
cls('MyCage', 'mycage'),
|
|
|
|
|
|
|
|
# do not edit anything below since these entries are generated from
|
|
|
|
# scripts/gocomics.py
|
|
|
|
# START AUTOUPDATE
|
|
|
|
cls('1AndDone', '1-and-done'),
|
|
|
|
cls('2CowsAndAChicken', '2cowsandachicken'),
|
|
|
|
cls('9ChickweedLane', '9chickweedlane'),
|
|
|
|
cls('9To5', '9to5'),
|
|
|
|
cls('AdamAtHome', 'adamathome'),
|
|
|
|
cls('AdultChildren', 'adult-children'),
|
|
|
|
cls('Agnes', 'agnes'),
|
|
|
|
cls('AJAndMagnus', 'aj-and-magnus'),
|
2016-10-01 01:39:36 +00:00
|
|
|
cls('AlisHouse', 'alis-house'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('AlleyOop', 'alley-oop'),
|
|
|
|
cls('AmandaTheGreat', 'amanda-the-great'),
|
|
|
|
cls('Andertoons', 'andertoons'),
|
|
|
|
cls('AndyCapp', 'andycapp'),
|
|
|
|
cls('AngryLittleGirls', 'angry-little-girls'),
|
|
|
|
cls('AnimalCrackers', 'animalcrackers'),
|
|
|
|
cls('Annie', 'annie'),
|
|
|
|
cls('ArloAndJanis', 'arloandjanis'),
|
|
|
|
cls('AskACat', 'ask-a-cat'),
|
|
|
|
cls('AskShagg', 'askshagg'),
|
2016-10-01 01:39:36 +00:00
|
|
|
cls('AtTavicat', 'tavicat'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('AuntyAcid', 'aunty-acid'),
|
|
|
|
cls('BackInTheDay', 'backintheday'),
|
|
|
|
cls('BackToBC', 'back-to-bc'),
|
2016-10-01 01:39:36 +00:00
|
|
|
cls('Bacon', 'bacon'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('Badlands', 'badlands'),
|
|
|
|
cls('BadMachinery', 'bad-machinery'),
|
|
|
|
cls('BadReporter', 'badreporter'),
|
|
|
|
cls('Baldo', 'baldo'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('BaldoEnEspanol', 'baldoespanol', 'es'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('BallardStreet', 'ballardstreet'),
|
|
|
|
cls('BananaTriangle', 'banana-triangle'),
|
|
|
|
cls('BarkeaterLake', 'barkeaterlake'),
|
|
|
|
cls('BarneyAndClyde', 'barneyandclyde'),
|
|
|
|
cls('BasicInstructions', 'basicinstructions'),
|
|
|
|
cls('BC', 'bc'),
|
|
|
|
cls('BeanieTheBrownie', 'beanie-the-brownie'),
|
|
|
|
cls('Beardo', 'beardo'),
|
|
|
|
cls('Ben', 'ben'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('BenitinYEneas', 'muttandjeffespanol', 'es'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('BergerAndWyse', 'berger-and-wyse'),
|
|
|
|
cls('BerkeleyMews', 'berkeley-mews'),
|
|
|
|
cls('Betty', 'betty'),
|
|
|
|
cls('Bewley', 'bewley'),
|
|
|
|
cls('BigNate', 'bignate'),
|
|
|
|
cls('BigNateFirstClass', 'big-nate-first-class'),
|
|
|
|
cls('BigTop', 'bigtop'),
|
|
|
|
cls('Biographic', 'biographic'),
|
|
|
|
cls('Birdbrains', 'birdbrains'),
|
|
|
|
cls('BleekerTheRechargeableDog', 'bleeker'),
|
|
|
|
cls('Bliss', 'bliss'),
|
|
|
|
cls('BloomCounty', 'bloomcounty'),
|
2017-05-21 21:10:32 +00:00
|
|
|
cls('BloomCounty2017', 'bloom-county'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('BobGorrell', 'bobgorrell'),
|
|
|
|
cls('BobTheSquirrel', 'bobthesquirrel'),
|
|
|
|
cls('BoNanas', 'bonanas'),
|
|
|
|
cls('Boomerangs', 'boomerangs'),
|
|
|
|
cls('Bottomliners', 'bottomliners'),
|
|
|
|
cls('BoundAndGagged', 'boundandgagged'),
|
|
|
|
cls('BrainSquirts', 'brain-squirts'),
|
|
|
|
cls('BreakingCatNews', 'breaking-cat-news'),
|
|
|
|
cls('BreakOfDay', 'break-of-day'),
|
2017-02-12 11:21:01 +00:00
|
|
|
cls('Brevity', 'brevity'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('BrewsterRockit', 'brewsterrockit'),
|
|
|
|
cls('BrianMcFadden', 'brian-mcfadden'),
|
|
|
|
cls('BroomHilda', 'broomhilda'),
|
|
|
|
cls('Bully', 'bully'),
|
|
|
|
cls('Buni', 'buni'),
|
|
|
|
cls('BushyTales', 'bushy-tales'),
|
|
|
|
cls('CalvinAndHobbes', 'calvinandhobbes'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('CalvinAndHobbesEnEspanol', 'calvinandhobbesespanol', 'es'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('Candorville', 'candorville'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('CapsulasMedicas', 'capsulas-medicas%20', 'es'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('Cathy', 'cathy'),
|
2016-10-01 01:39:36 +00:00
|
|
|
cls('CattitudeDoggonit', 'cattitude-doggonit'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('CestLaVie', 'cestlavie'),
|
|
|
|
cls('CheapThrillsCuisine', 'cheap-thrills-cuisine'),
|
2017-05-21 21:10:32 +00:00
|
|
|
cls('CheerUpEmoKid', 'cheer-up-emo-kid'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('ChipBok', 'chipbok'),
|
|
|
|
cls('ChrisBritt', 'chrisbritt'),
|
|
|
|
cls('ChuckleBros', 'chucklebros'),
|
|
|
|
cls('CitizenDog', 'citizendog'),
|
2016-10-01 01:39:36 +00:00
|
|
|
cls('Claw', 'claw'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('ClayBennett', 'claybennett'),
|
|
|
|
cls('ClayJones', 'clayjones'),
|
|
|
|
cls('ClearBlueWater', 'clearbluewater'),
|
|
|
|
cls('Cleats', 'cleats'),
|
|
|
|
cls('CloseToHome', 'closetohome'),
|
|
|
|
cls('Committed', 'committed'),
|
|
|
|
cls('Computoon', 'compu-toon'),
|
|
|
|
cls('ConnieToTheWonnie', 'connie-to-the-wonnie'),
|
|
|
|
cls('Cornered', 'cornered'),
|
|
|
|
cls('CowAndBoyClassics', 'cowandboy'),
|
|
|
|
cls('CowTown', 'cowtown'),
|
|
|
|
cls('Crumb', 'crumb'),
|
|
|
|
cls('CulDeSac', 'culdesac'),
|
|
|
|
cls('DaddysHome', 'daddyshome'),
|
|
|
|
cls('DanaSummers', 'danasummers'),
|
|
|
|
cls('DanWasserman', 'danwasserman'),
|
|
|
|
cls('DarkSideOfTheHorse', 'darksideofthehorse'),
|
|
|
|
cls('DeepDarkFears', 'deep-dark-fears'),
|
|
|
|
cls('DiamondLil', 'diamondlil'),
|
|
|
|
cls('DickTracy', 'dicktracy'),
|
|
|
|
cls('DilbertClassics', 'dilbert-classics'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('DilbertEnEspanol', 'dilbert-en-espanol', 'es'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('DinosaurComics', 'dinosaur-comics'),
|
|
|
|
cls('DogEatDoug', 'dogeatdoug'),
|
|
|
|
cls('DogsOfCKennel', 'dogsofckennel'),
|
|
|
|
cls('DomesticAbuse', 'domesticabuse'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('DonBrutus', 'don-brutus', 'es'),
|
|
|
|
cls('DoodleForFood', 'doodle-for-food'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('DoodleTown', 'doodle-town'),
|
|
|
|
cls('Doonesbury', 'doonesbury'),
|
|
|
|
cls('DorrisMcComics', 'dorris-mccomics'),
|
|
|
|
cls('Drabble', 'drabble'),
|
|
|
|
cls('DragonGirl', 'dragon-girl'),
|
|
|
|
cls('DrewSheneman', 'drewsheneman'),
|
|
|
|
cls('Drive', 'drive'),
|
|
|
|
cls('DudeAndDude', 'dudedude'),
|
2017-02-12 11:21:01 +00:00
|
|
|
cls('DumbwichCastle', 'dumbwich-castle'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('EdgeCity', 'edge-city'),
|
|
|
|
cls('EdgeOfAdventure', 'edge-of-adventure'),
|
|
|
|
cls('Eek', 'eek'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('ElCafDePoncho', 'el-cafe-de-poncho', 'es'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('EmmyLou', 'emmy-lou'),
|
|
|
|
cls('Endtown', 'endtown'),
|
|
|
|
cls('EricTheCircle', 'eric-the-circle'),
|
2016-10-01 01:39:36 +00:00
|
|
|
cls('EverydayPeopleCartoons', 'everyday-people-cartoons'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('Eyebeam', 'eyebeam'),
|
|
|
|
cls('FacesOfTheNewsByKerryWaghorn', 'facesinthenews'),
|
|
|
|
cls('FamilyTree', 'familytree'),
|
|
|
|
cls('Farcus', 'farcus'),
|
|
|
|
cls('FatCats', 'fat-cats'),
|
|
|
|
cls('FloAndFriends', 'floandfriends'),
|
|
|
|
cls('FMinus', 'fminus'),
|
|
|
|
cls('FoolishMortals', 'foolish-mortals'),
|
|
|
|
cls('ForBetterOrForWorse', 'forbetterorforworse'),
|
|
|
|
cls('ForHeavensSake', 'forheavenssake'),
|
|
|
|
cls('FortKnox', 'fortknox'),
|
|
|
|
cls('FourEyes', 'four-eyes'),
|
|
|
|
cls('FowlLanguage', 'fowl-language'),
|
|
|
|
cls('FoxTrot', 'foxtrot'),
|
|
|
|
cls('FoxTrotClassics', 'foxtrotclassics'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('FoxTrotEnEspanol', 'foxtrotespanol', 'es'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('Francis', 'francis'),
|
|
|
|
cls('FrankAndErnest', 'frank-and-ernest'),
|
|
|
|
cls('Frazz', 'frazz'),
|
|
|
|
cls('FredBasset', 'fredbasset'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('FredBassetEnEspanol', 'fredbassetespanol', 'es'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('FreeRange', 'freerange'),
|
|
|
|
cls('FreshlySqueezed', 'freshlysqueezed'),
|
|
|
|
cls('FrogApplause', 'frogapplause'),
|
|
|
|
cls('Garfield', 'garfield'),
|
2016-10-01 01:39:36 +00:00
|
|
|
cls('GarfieldClassics', 'garfield-classics'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('GarfieldEnEspanol', 'garfieldespanol%20', 'es'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('GarfieldMinusGarfield', 'garfieldminusgarfield'),
|
|
|
|
cls('GaryMarkstein', 'garymarkstein'),
|
|
|
|
cls('GaryVarvel', 'garyvarvel'),
|
|
|
|
cls('GasolineAlley', 'gasolinealley'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('Gaturro', 'gaturro', 'es'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('Geech', 'geech'),
|
|
|
|
cls('GetALife', 'getalife'),
|
|
|
|
cls('GetFuzzy', 'getfuzzy'),
|
|
|
|
cls('Gil', 'gil'),
|
|
|
|
cls('GilThorp', 'gilthorp'),
|
|
|
|
cls('GingerMeggs', 'gingermeggs'),
|
|
|
|
cls('GlasbergenCartoons', 'glasbergen-cartoons'),
|
|
|
|
cls('GManWebcomics', 'g-man-webcomics'),
|
2016-10-01 01:39:36 +00:00
|
|
|
cls('GnomeSyndicate', 'gnome-syndicate'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('Goats', 'goats'),
|
|
|
|
cls('GoComicsFanArt', 'fan-art'),
|
|
|
|
cls('Graffiti', 'graffiti'),
|
|
|
|
cls('GrandAvenue', 'grand-avenue'),
|
|
|
|
cls('GrayMatters', 'gray-matters'),
|
|
|
|
cls('GreenHumour', 'green-humour'),
|
|
|
|
cls('HaikuEwe', 'haikuewe'),
|
|
|
|
cls('HalfFull', 'half-full'),
|
2017-05-21 21:10:32 +00:00
|
|
|
cls('Harley', 'harley'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('HealthCapsules', 'healthcapsules'),
|
|
|
|
cls('HeartOfTheCity', 'heartofthecity'),
|
|
|
|
cls('Heathcliff', 'heathcliff'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('HeathcliffEnEspanol', 'heathcliffespanol', 'es'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('HenryPayne', 'henrypayne'),
|
|
|
|
cls('HerbAndJamaal', 'herbandjamaal'),
|
|
|
|
cls('Herman', 'herman'),
|
|
|
|
cls('HomeAndAway', 'homeandaway'),
|
|
|
|
cls('HotComicsForCoolPeople', 'hot-comics-for-cool-people'),
|
|
|
|
cls('HUBRIS', 'hubris'),
|
|
|
|
cls('HumanCull', 'human-cull'),
|
|
|
|
cls('HutchOwen', 'hutch-owen'),
|
|
|
|
cls('ImagineThis', 'imaginethis'),
|
2017-05-21 21:10:32 +00:00
|
|
|
cls('ImogenQuest', 'imogen-quest'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('InkPen', 'inkpen'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('InSecurity', 'in-security'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('InspectorDangersCrimeQuiz', 'inspector-dangers-crime-quiz'),
|
|
|
|
cls('InTheBleachers', 'inthebleachers'),
|
|
|
|
cls('InTheSticks', 'inthesticks'),
|
|
|
|
cls('InvisibleBread', 'invisible-bread'),
|
|
|
|
cls('ItsAllAboutYou', 'itsallaboutyou'),
|
|
|
|
cls('JackOhman', 'jackohman'),
|
|
|
|
cls('JanesWorld', 'janesworld'),
|
|
|
|
cls('JeffDanziger', 'jeffdanziger'),
|
|
|
|
cls('JeffStahler', 'jeffstahler'),
|
|
|
|
cls('JenSorensen', 'jen-sorensen'),
|
|
|
|
cls('JerryHolbert', 'jerryholbert'),
|
|
|
|
cls('JimBentonCartoons', 'jim-benton-cartoons'),
|
|
|
|
cls('JimMorin', 'jimmorin'),
|
|
|
|
cls('JimsJournal', 'jimsjournal'),
|
|
|
|
cls('JoeHeller', 'joe-heller'),
|
|
|
|
cls('JoelPett', 'joelpett'),
|
|
|
|
cls('JoeVanilla', 'joevanilla'),
|
2017-02-12 11:21:01 +00:00
|
|
|
cls('JoeyAlisonSayersComics', 'joey-alison-sayers-comics'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('JohnDeering', 'johndeering'),
|
|
|
|
cls('JumpStart', 'jumpstart'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('JustoYFranco', 'justo-y-franco', 'es'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('JustSayUncle', 'just-say-uncle'),
|
|
|
|
cls('KenCatalino', 'kencatalino'),
|
|
|
|
cls('KevinKallaugher', 'kevinkallaugher'),
|
|
|
|
cls('KidBeowulf', 'kid-beowulf'),
|
|
|
|
cls('KidSpot', 'kidspot'),
|
|
|
|
cls('KidTown', 'kidtown'),
|
|
|
|
cls('KitchenCapers', 'kitchen-capers'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('KitNCarlyle', 'kitncarlyle'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('Kliban', 'kliban'),
|
|
|
|
cls('KlibansCats', 'klibans-cats'),
|
|
|
|
cls('LaCucaracha', 'lacucaracha'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('LaCucarachaEnEspanol', 'la-cucaracha-en-espanol', 'es'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('LaloAlcaraz', 'laloalcaraz'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('LaloAlcarazEnEspanol', 'laloenespanol', 'es'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('LardsWorldPeaceTips', 'lards-world-peace-tips'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('LasHermanasStone', 'stonesoup_espanol', 'es'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('LastKiss', 'lastkiss'),
|
|
|
|
cls('LayLines', 'lay-lines'),
|
|
|
|
cls('LearnToSpeakCat', 'learn-to-speak-cat'),
|
|
|
|
cls('LibertyMeadows', 'libertymeadows'),
|
|
|
|
cls('LilAbner', 'lil-abner'),
|
|
|
|
cls('Lio', 'lio'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('LioEnEspanol', 'lioespanol', 'es'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('LisaBenson', 'lisabenson'),
|
|
|
|
cls('LittleDogLost', 'littledoglost'),
|
|
|
|
cls('LittleFriedChickenAndSushi', 'little-fried-chicken-and-sushi'),
|
|
|
|
cls('LittleNemo', 'little-nemo'),
|
|
|
|
cls('Lola', 'lola'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('LolaEnEspanol', 'lola-en-espanol', 'es'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('LooksGoodOnPaper', 'looks-good-on-paper'),
|
|
|
|
cls('LooseParts', 'looseparts'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('LosOsorios', 'los-osorios', 'es'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('LostSheep', 'lostsheep'),
|
|
|
|
cls('LostSideOfSuburbia', 'lostsideofsuburbia'),
|
|
|
|
cls('Luann', 'luann'),
|
|
|
|
cls('LuannAgainn', 'luann-againn'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('LuannEnEspanol', 'luannspanish', 'es'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('LuckyCow', 'luckycow'),
|
|
|
|
cls('LugNuts', 'lug-nuts'),
|
|
|
|
cls('Lunarbaboon', 'lunarbaboon'),
|
|
|
|
cls('MagicInAMinute', 'magicinaminute'),
|
|
|
|
cls('Magnificatz', 'magnificatz'),
|
|
|
|
cls('Maintaining', 'maintaining'),
|
|
|
|
cls('MakingIt', 'making-it'),
|
|
|
|
cls('MariasDay', 'marias-day'),
|
|
|
|
cls('Marmaduke', 'marmaduke'),
|
|
|
|
cls('MarshallRamsey', 'marshallramsey'),
|
|
|
|
cls('MattBors', 'matt-bors'),
|
|
|
|
cls('MattDavies', 'mattdavies'),
|
|
|
|
cls('MattWuerker', 'mattwuerker'),
|
|
|
|
cls('MazeToonsPuzzle', 'mazetoons-puzzle'),
|
|
|
|
cls('MediumLarge', 'medium-large'),
|
|
|
|
cls('MegClassics', 'meg-classics'),
|
2017-05-21 21:10:32 +00:00
|
|
|
cls('MichaelAndrew', 'michael-andrew'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('MichaelRamirez', 'michaelramirez'),
|
|
|
|
cls('Microcosm', 'microcosm'),
|
|
|
|
cls('MikeDuJour', 'mike-du-jour'),
|
|
|
|
cls('MikeLester', 'mike-lester'),
|
|
|
|
cls('MikeLuckovich', 'mikeluckovich'),
|
|
|
|
cls('ModeratelyConfused', 'moderately-confused'),
|
|
|
|
cls('Momma', 'momma'),
|
|
|
|
cls('MomsCancer', 'moms-cancer'),
|
|
|
|
cls('Monty', 'monty'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('MontyDiaros', 'monty-diaros', 'es'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('MotleyClassics', 'motley-classics'),
|
|
|
|
cls('MrLowe', 'mr-lowe'),
|
|
|
|
cls('MustardAndBoloney', 'mustard-and-boloney'),
|
|
|
|
cls('MuttAndJeff', 'muttandjeff'),
|
|
|
|
cls('MyCageNewAndOld', 'mycage'),
|
|
|
|
cls('MythTickle', 'mythtickle'),
|
|
|
|
cls('Nancy', 'nancy'),
|
|
|
|
cls('NancyClassics', 'nancy-classics'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('NateElGrande', 'nate-el-grande', 'es'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('NestHeads', 'nestheads'),
|
|
|
|
cls('NEUROTICA', 'neurotica'),
|
|
|
|
cls('NewAdventuresOfQueenVictoria', 'thenewadventuresofqueenvictoria'),
|
2016-10-01 01:39:36 +00:00
|
|
|
cls('NextDoorNeighbors', 'next-door-neighbors'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('NickAnderson', 'nickanderson'),
|
|
|
|
cls('NickAndZuzu', 'nick-and-zuzu'),
|
|
|
|
cls('NonSequitur', 'nonsequitur'),
|
|
|
|
cls('NothingIsNotSomething', 'nothing-is-not-something'),
|
|
|
|
cls('NotInventedHere', 'not-invented-here'),
|
2016-10-01 01:39:36 +00:00
|
|
|
cls('NowRecharging', 'now-recharging'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('OffTheMark', 'offthemark'),
|
|
|
|
cls('OhBrother', 'oh-brother'),
|
|
|
|
cls('OllieAndQuentin', 'ollie-and-quentin'),
|
|
|
|
cls('OnAClaireDay', 'onaclaireday'),
|
|
|
|
cls('OneBigHappy', 'onebighappy'),
|
|
|
|
cls('OrdinaryBill', 'ordinary-bill'),
|
|
|
|
cls('OriginsOfTheSundayComics', 'origins-of-the-sunday-comics'),
|
|
|
|
cls('OutOfTheGenePoolReRuns', 'outofthegenepool'),
|
|
|
|
cls('Overboard', 'overboard'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('OverboardEnEspanol', 'overboardespanol', 'es'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('OverTheHedge', 'overthehedge'),
|
|
|
|
cls('Owlturd', 'owlturd'),
|
|
|
|
cls('OzyAndMillie', 'ozy-and-millie'),
|
|
|
|
cls('PatOliphant', 'patoliphant'),
|
|
|
|
cls('PaulSzep', 'paulszep'),
|
|
|
|
cls('PCAndPixel', 'pcandpixel'),
|
|
|
|
cls('Peanuts', 'peanuts'),
|
|
|
|
cls('PeanutsBegins', 'peanuts-begins'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('PeanutsEnEspanol', 'peanuts-espanol', 'es'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('PearlsBeforeSwine', 'pearlsbeforeswine'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('Periquita', 'periquita', 'es'),
|
|
|
|
cls('PerlasParaLosCerdos', 'perlas-para-los-cerdos', 'es'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('PerryBibleFellowship', 'perry-bible-fellowship'),
|
|
|
|
cls('PhilHands', 'phil-hands'),
|
|
|
|
cls('PhoebeAndHerUnicorn', 'phoebe-and-her-unicorn'),
|
|
|
|
cls('Pibgorn', 'pibgorn'),
|
|
|
|
cls('PibgornSketches', 'pibgornsketches'),
|
|
|
|
cls('Pickles', 'pickles'),
|
|
|
|
cls('PicturesInBoxes', 'pictures-in-boxes'),
|
|
|
|
cls('PieComic', 'pie-comic'),
|
|
|
|
cls('Pinkerton', 'pinkerton'),
|
|
|
|
cls('PleaseListenToMe', 'please-listen-to-me'),
|
|
|
|
cls('Pluggers', 'pluggers'),
|
|
|
|
cls('PoochCafe', 'poochcafe'),
|
2016-10-01 01:39:36 +00:00
|
|
|
cls('Poorcraft', 'poorcraft'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('PoorlyDrawnLines', 'poorly-drawn-lines'),
|
|
|
|
cls('PopCultureShockTherapy', 'pop-culture-shock-therapy'),
|
|
|
|
cls('PotShots', 'pot-shots'),
|
|
|
|
cls('PreTeena', 'preteena'),
|
|
|
|
cls('PricklyCity', 'pricklycity'),
|
|
|
|
cls('PromisesPromises', 'promises-promises'),
|
|
|
|
cls('QuestionableQuotebook', 'questionable-quotebook'),
|
|
|
|
cls('RabbitsAgainstMagic', 'rabbitsagainstmagic'),
|
|
|
|
cls('RaisingDuncan', 'raising-duncan'),
|
|
|
|
cls('RandolphItch2Am', 'randolphitch'),
|
|
|
|
cls('RealityCheck', 'realitycheck'),
|
|
|
|
cls('RealLifeAdventures', 'reallifeadventures'),
|
|
|
|
cls('RebeccaHendin', 'rebecca-hendin'),
|
|
|
|
cls('RedAndRover', 'redandrover'),
|
|
|
|
cls('ReplyAll', 'replyall'),
|
|
|
|
cls('ReplyAllLite', 'reply-all-lite'),
|
|
|
|
cls('RichardsPoorAlmanac', 'richards-poor-almanac'),
|
|
|
|
cls('RipHaywire', 'riphaywire'),
|
|
|
|
cls('RipleysBelieveItOrNot', 'ripleysbelieveitornot'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('RipleysBelieveItOrNotSpanish', 'ripleys-en-espanol', 'es'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('RobbieAndBobby', 'robbie-and-bobby'),
|
|
|
|
cls('RobertAriail', 'robert-ariail'),
|
|
|
|
cls('RobRogers', 'robrogers'),
|
|
|
|
cls('RoseIsRose', 'roseisrose'),
|
|
|
|
cls('Rubes', 'rubes'),
|
|
|
|
cls('RudyPark', 'rudypark'),
|
|
|
|
cls('SarahsScribbles', 'sarahs-scribbles'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('SaturdayMorningBreakfastCereal', 'saturday-morning-breakfast-cereal'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('SavageChickens', 'savage-chickens'),
|
|
|
|
cls('ScaryGary', 'scarygary'),
|
|
|
|
cls('ScenesFromAMultiverse', 'scenes-from-a-multiverse'),
|
|
|
|
cls('ScottStantis', 'scottstantis'),
|
|
|
|
cls('Sheldon', 'sheldon'),
|
|
|
|
cls('ShirleyAndSonClassics', 'shirley-and-son-classics'),
|
|
|
|
cls('Shoe', 'shoe'),
|
|
|
|
cls('Shoecabbage', 'shoecabbage'),
|
|
|
|
cls('Shortcuts', 'shortcuts'),
|
|
|
|
cls('ShutterbugFollies', 'shutterbug-follies'),
|
|
|
|
cls('SigneWilkinson', 'signewilkinson'),
|
2016-10-01 01:39:36 +00:00
|
|
|
cls('SketchsharkComics', 'sketchshark-comics'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('SkinHorse', 'skinhorse'),
|
|
|
|
cls('Skippy', 'skippy'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('SmallPotatoes', 'small-potatoes'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('Snowflakes', 'snowflakes'),
|
|
|
|
cls('SnowSez', 'snow-sez'),
|
|
|
|
cls('Speechless', 'speechless'),
|
|
|
|
cls('SpeedBump', 'speedbump'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('SpiritOfTheStaircase', 'spirit-of-the-staircase'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('SpotTheFrog', 'spot-the-frog'),
|
2016-10-01 01:39:36 +00:00
|
|
|
cls('Starling', 'starling'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('SteveBenson', 'stevebenson'),
|
|
|
|
cls('SteveBreen', 'stevebreen'),
|
|
|
|
cls('SteveKelley', 'stevekelley'),
|
|
|
|
cls('StickyComics', 'sticky-comics'),
|
|
|
|
cls('StoneSoup', 'stonesoup'),
|
|
|
|
cls('StoneSoupClassics', 'stone-soup-classics'),
|
|
|
|
cls('StrangeBrew', 'strangebrew'),
|
|
|
|
cls('StuartCarlson', 'stuartcarlson'),
|
|
|
|
cls('SunnyStreet', 'sunny-street'),
|
|
|
|
cls('SunshineState', 'sunshine-state'),
|
|
|
|
cls('SuperFunPakComix', 'super-fun-pak-comix'),
|
|
|
|
cls('SweetAndSourPork', 'sweet-and-sour-pork'),
|
|
|
|
cls('Sylvia', 'sylvia'),
|
|
|
|
cls('TankMcNamara', 'tankmcnamara'),
|
|
|
|
cls('Tarzan', 'tarzan'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('TarzanEnEspanol', 'tarzan-en-espanol', 'es'),
|
|
|
|
cls('TedRall', 'ted-rall'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('TenCats', 'ten-cats'),
|
|
|
|
cls('Thatababy', 'thatababy'),
|
|
|
|
cls('ThatIsPriceless', 'that-is-priceless'),
|
|
|
|
cls('ThatNewCarlSmell', 'that-new-carl-smell'),
|
|
|
|
cls('ThatsLife', 'thats-life'),
|
|
|
|
cls('TheAcademiaWaltz', 'academiawaltz'),
|
|
|
|
cls('TheAdventuresOfBusinessCat', 'the-adventures-of-business-cat'),
|
|
|
|
cls('TheArgyleSweater', 'theargylesweater'),
|
|
|
|
cls('TheAwkwardYeti', 'the-awkward-yeti'),
|
|
|
|
cls('TheBarn', 'thebarn'),
|
|
|
|
cls('TheBentPinky', 'the-bent-pinky'),
|
|
|
|
cls('TheBestMedicineCartoon', 'the-best-medicine'),
|
|
|
|
cls('TheBigPicture', 'thebigpicture'),
|
|
|
|
cls('TheBoondocks', 'boondocks'),
|
|
|
|
cls('TheBornLoser', 'the-born-loser'),
|
|
|
|
cls('TheBuckets', 'thebuckets'),
|
|
|
|
cls('TheCity', 'thecity'),
|
|
|
|
cls('TheComicStripThatHasAFinaleEveryDay', 'the-comic-strip-that-has-a-finale-every-day'),
|
|
|
|
cls('TheConjurers', 'the-conjurers'),
|
|
|
|
cls('TheCreeps', 'the-creeps'),
|
|
|
|
cls('TheDailyDrawing', 'the-daily-drawing'),
|
|
|
|
cls('TheDinetteSet', 'dinetteset'),
|
|
|
|
cls('TheDoozies', 'thedoozies'),
|
|
|
|
cls('TheDuplex', 'duplex'),
|
|
|
|
cls('TheElderberries', 'theelderberries'),
|
|
|
|
cls('TheFlyingMcCoys', 'theflyingmccoys'),
|
|
|
|
cls('TheFuscoBrothers', 'thefuscobrothers'),
|
2016-10-01 01:39:36 +00:00
|
|
|
cls('TheGentlemansArmchair', 'the-gentlemans-armchair'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('TheGrizzwells', 'thegrizzwells'),
|
|
|
|
cls('TheHumbleStumble', 'humble-stumble'),
|
|
|
|
cls('TheKChronicles', 'thekchronicles'),
|
|
|
|
cls('TheKnightLife', 'theknightlife'),
|
|
|
|
cls('TheLeftyBoscoPictureShow', 'leftyboscopictureshow'),
|
|
|
|
cls('TheLostBear', 'the-lost-bear'),
|
|
|
|
cls('TheMartianConfederacy', 'the-martian-confederacy'),
|
|
|
|
cls('TheMeaningOfLila', 'meaningoflila'),
|
|
|
|
cls('TheMiddletons', 'themiddletons'),
|
|
|
|
cls('TheNorm40', 'the-norm-4-0'),
|
|
|
|
cls('TheNormClassics', 'thenorm'),
|
|
|
|
cls('TheOtherCoast', 'theothercoast'),
|
2016-10-01 01:39:36 +00:00
|
|
|
cls('TheOtherEnd', 'the-other-end'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('TheQuixoteSyndrome', 'the-quixote-syndrome'),
|
|
|
|
cls('TheSunshineClub', 'the-sunshine-club'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('TheUpsideDownWorldOfGustaveVerbeek', 'upside-down-world-of-gustave-verbeek'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('TheWanderingMelon', 'the-wandering-melon'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('TheWizardOfIdSpanish', 'wizardofidespanol', 'es'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('TheWorriedWell', 'the-worried-well'),
|
|
|
|
cls('think', 'think'),
|
|
|
|
cls('ThinLines', 'thinlines'),
|
|
|
|
cls('TimEagan', 'tim-eagan'),
|
|
|
|
cls('TinySepuku', 'tinysepuku'),
|
|
|
|
cls('TOBY', 'toby'),
|
|
|
|
cls('TomTheDancingBug', 'tomthedancingbug'),
|
|
|
|
cls('TomToles', 'tomtoles'),
|
|
|
|
cls('TooMuchCoffeeMan', 'toomuchcoffeeman'),
|
|
|
|
cls('ToughTown', 'tough-town'),
|
|
|
|
cls('Trivquiz', 'trivquiz'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('Trucutu', 'trucutu', 'es'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('TruthFacts', 'truth-facts'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('Tutelandia', 'tutelandia', 'es'),
|
2017-05-21 21:10:32 +00:00
|
|
|
cls('TwoPartyOpera', 'two-party-opera'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('UncleArtsFunland', 'uncleartsfunland'),
|
|
|
|
cls('UnderstandingChaos', 'understanding-chaos'),
|
|
|
|
cls('UnstrangePhenomena', 'unstrange-phenomena'),
|
|
|
|
cls('USAcres', 'us-acres'),
|
|
|
|
cls('ViewsAfrica', 'viewsafrica'),
|
|
|
|
cls('ViewsAmerica', 'viewsamerica'),
|
|
|
|
cls('ViewsAsia', 'viewsasia'),
|
|
|
|
cls('ViewsBusiness', 'viewsbusiness'),
|
|
|
|
cls('ViewsEurope', 'viewseurope'),
|
|
|
|
cls('ViewsLatinAmerica', 'viewslatinamerica'),
|
|
|
|
cls('ViewsMidEast', 'viewsmideast'),
|
|
|
|
cls('ViewsOfTheWorld', 'viewsoftheworld'),
|
|
|
|
cls('ViiviAndWagner', 'viivi-and-wagner'),
|
|
|
|
cls('WallaceTheBrave', 'wallace-the-brave'),
|
|
|
|
cls('WaltHandelsman', 'walthandelsman'),
|
2016-10-01 01:39:36 +00:00
|
|
|
cls('Warped', 'warped'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('WatchYourHead', 'watchyourhead'),
|
|
|
|
cls('WaynoVision', 'waynovision'),
|
|
|
|
cls('WeePals', 'weepals'),
|
2016-10-01 01:39:36 +00:00
|
|
|
cls('Widdershins', 'widdershins'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('WideOpen', 'wide-open'),
|
|
|
|
cls('WinLoseDrew', 'drewlitton'),
|
|
|
|
cls('Winston', 'winston'),
|
|
|
|
cls('WizardOfId', 'wizardofid'),
|
|
|
|
cls('WizardOfIdClassics', 'wizard-of-id-classics'),
|
2016-10-01 01:39:36 +00:00
|
|
|
cls('Wondermark', 'wondermark'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('WorkingDaze', 'working-daze'),
|
|
|
|
cls('WorkingItOut', 'workingitout'),
|
|
|
|
cls('WorldOfWonder', 'world-of-wonder'),
|
|
|
|
cls('WrongHands', 'wrong-hands'),
|
|
|
|
cls('WTDuck', 'wtduck'),
|
|
|
|
cls('WuMo', 'wumo'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('WumoEnEspanol', 'wumoespanol', 'es'),
|
2016-05-22 22:01:10 +00:00
|
|
|
cls('ZackHill', 'zackhill'),
|
|
|
|
cls('ZenPencils', 'zen-pencils'),
|
|
|
|
cls('Ziggy', 'ziggy'),
|
2017-01-11 01:21:05 +00:00
|
|
|
cls('ZiggyEnEspanol', 'ziggyespanol', 'es'),
|
2016-05-22 22:01:10 +00:00
|
|
|
# END AUTOUPDATE
|
|
|
|
)
|