# -*- coding: utf-8 -*- # Copyright (C) 2004-2005 Tristan Seligmann and Jonathan Jacobs # Copyright (C) 2012-2014 Bastian Kleineidam # Copyright (C) 2015-2016 Tobias Gruetzmacher from __future__ import absolute_import, division, print_function from ..scraper import _ParserScraper from ..helpers import bounceStarter class GoComics(_ParserScraper): url = 'http://www.gocomics.com/' imageSearch = ('//div/img[@class="strip"]', '//p[@class="feature_item"]/img[@class="strip"]') prevSearch = '//ul[@class="feature-nav"]//a[@class="prev"]' nextSearch = '//ul[@class="feature-nav"]//a[@class="next"]' starter = bounceStarter help = 'Index format: yyyy/mm/dd' def __init__(self, name, path, lang=None): super(GoComics, self).__init__('GoComics/' + name) self.url = 'http://www.gocomics.com/' + path self.shortname = name if lang: self.lang = lang def namer(self, image_url, page_url): prefix, year, month, day = page_url.rsplit('/', 3) return "%s_%s%s%s.gif" % (self.shortname, year, month, day) def getIndexStripUrl(self, index): return self.url + self.path + '/%s' % index def shouldSkipUrl(self, url, data): """Skip pages without images.""" return data.xpath('//img[contains(@src, "content-error-missing")]') @classmethod def getmodules(cls): return ( # old comics removed from the listing cls('AbnormalTruth', 'abnormal-truth'), cls('ABootsAndPupComic', 'a-boots-and-pup-comic'), cls('AdmiralSquirt', 'admiral-squirt'), cls('AdventuresofDaisy', 'Adventures-of-Daisy'), cls('AdventuresOfMartyAndTurkey', 'marty-and-turkey'), cls('AdventuresofMikeAndSimon', 'adventures-of-mike-and-simon'), cls('AmaZnEvents', 'amaznevents'), cls('AnythingGoes', 'anything-goes'), cls('BarkingCrayon', 'barking-crayon'), cls('BenAndSeymour', 'ben-seymour'), cls('BERSERKALERT', 'berserk-alert'), cls('BestInShow', 'best-in-show'), cls('BobtheGroanUP', 'bob-the-groanup'), cls('BradsPit', 'brads-pit'), cls('CalAndOzz', 'cal-and-ozz'), cls('CandyPills', 'candy-pills'), cls('Cartertoons', 'cartertoons'), cls('CatsAtWork', 'cats-at-work'), cls('ChasingUnicorns', 'chasing-unicorns'), cls('ChubbyGirlComics', 'chubbygirlcomics'), cls('Classifudds', 'classifudds'), cls('CockroachComix', 'cockroachcomix'), cls('CoffeeShopTidbits', 'coffee-shop-tidbits'), cls('ColonelKernel', 'colonel-kernel'), cls('Cooper', 'cooper'), cls('CowSheepandaGnomeNamedHelga', 'cow-sheep-and-a-gnome-named-helga'), cls('CoyoteVille', 'coyteville'), cls('Crooksville', 'crooksville'), cls('DabneyandDad', 'dabney-and-dad'), cls('DialHforHBomb', 'dial-h-for-h-bomb'), cls('DiligentCity', 'diligent-city'), cls('DitzAbledPrincess', 'ditzabled-princess'), cls('DogsDucksandAliens', 'dogs-ducks-and-aliens'), cls('DoingTime', 'doingtime'), cls('DoodleDaysComics', 'doodle-days'), cls('EBEJeebie', 'ebe-jeebie'), cls('EDITORIALPASTANDPRESENT', 'editorial-past-and-present'), cls('ElephantintheRoom', 'elephant-in-the-room'), cls('ElfandMotorbelly', 'elf-and-motorbelly'), cls('EngagAndNevets', 'engag-nevets'), cls('EspressoCity', 'Espresso-City'), cls('EttoreandBaldo', 'ettore-and-baldo'), cls('FantasticMegaLeague', 'fantastiteam'), cls('FarcesofNature', 'farces-of-nature'), cls('Featherweight', 'featherweight'), cls('FleasonFlick', 'fleasonflick'), cls('FrizziToons', 'frizzitoons'), cls('FundayMorning', 'funday-morning'), cls('GatorsAndSuch', 'gators-and-such'), cls('GenerationMute', 'generation-mute'), cls('GetAGrip', 'get-a-grip'), cls('GramDragon', 'gramdragon'), cls('HanginOut', 'hangin-out'), cls('HankAndDalesOurWorld', 'hank-and-dales-our-world'), cls('HanktheSock', 'hank-the-sock'), cls('HarambeeHills', 'harambeehills'), cls('Hbenson7', 'hbenson7'), cls('HeadComics', 'head-comics'), cls('HeavenlyNostrils', 'heavenly-nostrils'), cls('HolySchnark', 'holy-schnark!'), cls('HumblebeeandBob', 'humblebee-and-bob'), cls('Humoresque', 'humoresque'), cls('ImaDillo', 'i-m-a-dillo'), cls('ImTellingMom', 'telling-mom'), cls('IsleofEx', 'isle-of-ex'), cls('JackRadioComics', 'jack-radio-comics'), cls('JillpokeBohemia', 'jillpoke-bohemia'), cls('JimAndSarah', 'jim-and-sarah'), cls('JordanandBentley', 'jordan-and-bentley'), cls('KirbysTreehouse', 'kirbys-treehouse'), cls('KozmooftheCosmos', 'kozmoofthecosmos'), cls('LardWantsWorldPeace', 'lard-wants-world-peace'), cls('LarryvilleBlue', 'larryville-blue'), cls('Leadbellies', 'leadbellies'), cls('LEFTOVERS', 'leftovers'), cls('LeGooseyLu', 'LeGoosey-Lu'), cls('LIGHTERSIDE', 'lighter-side'), cls('LostInTranslation', 'lost-in-translation'), cls('LucasLuminous', 'lucas-luminous'), cls('MagnificatzOld', 'magnificatz-sherpa'), cls('Markonpaper', 'mark-on-paper'), cls('MaryBWary', 'mary-b-wary'), cls('Maximus', 'maximus'), cls('Mick', 'mick'), cls('MixedMedications', 'mixedmedications'), cls('Mortimer', 'mortimer'), cls('MrMorris', 'mr-morris'), cls('MyCage', 'mycage'), cls('MyGuardianGrandpa', 'my-guardian-grandpa'), cls('NeatStep', 'neatstep'), cls('NeighborhoodZone', 'neightborhood-zone'), cls('NobodysHome', 'nobodys-home'), cls('NoPlaceLikeHolmes', 'no-place-like-holmes'), cls('Oat', 'oat'), cls('ObamaandtheFatman', 'obama-and-the-fatman'), cls('OntheQuad', 'on-the-quad'), cls('OrangesareFunny', 'oranges-are-funny'), cls('Outnumbered', 'outnumbered'), cls('PamosWorld', 'pamos-world'), cls('ParisDoodles', 'mo-willems-paris-doodles'), cls('Peanizles', 'peanizles'), cls('PetFood', 'pet-food'), cls('PipethePelican', 'pipe-the-pelican'), cls('PlasticBabyHeadsfromOuterSpace', 'plastic-babyheads'), cls('PlentyofPenguins', 'plenty-of-penguins'), cls('Puppets', 'puppets'), cls('Putz', 'putz'), cls('QuestionsForKids', 'questions-for-kids'), cls('Rackafracka', 'rackafracka'), cls('RegularCreatures', 'regular-creatures'), cls('Risible', 'risible'), cls('RogueSymmetry', 'rogue_symmetry'), cls('Rosy', 'rosy'), cls('Sabine', 'sabine'), cls('SCAIRYTALESTheNotSoScaryFairyTales', 'Scairy-Tales:-the-not-so-scary-fairy-tales!'), cls('SecondPrize', 'secondprize'), cls('SincerelyBeatrice', 'sincerely-beatrice'), cls('Skooled', 'skooled'), cls('SNAFU', 'snafu'), cls('SpaceNutz', 'space-nutz'), cls('SPACESLUGS', 'spaceslugs'), cls('SpaceTimeFunnies', 'spacetimefunnies'), cls('Spectickles', 'abbotts-spectickles'), cls('SpinCrazy', 'spin-crazy'), cls('STEPDAD', 'stepdad'), cls('Stookie', 'Stookie'), cls('SuburbanWilderness', 'suburban-wilderness'), cls('SuckerHeadSmack', 'suckerhead-smack'), cls('TeacherInk', 'teacher-ink'), cls('TheAdventuresofHeromanGuy', 'adventures-of-heroman-guy'), cls('TheEdperiment', 'the-edperiment'), cls('TheFamilyBlend', 'the-family-blend'), cls('TheFruitBowl', 'thefruitbowl'), cls('TheGoldenKid', 'golden-kid'), cls('TheInsolentLemon', 'the-insolent-lemon'), cls('TheLightedLab', 'the-lighted-lab'), cls('TheLilMiesters', 'the-lil-miesters'), cls('TheOdderLimits', 'the-odder-limits'), cls('THESILVERLINING', 'silver-lining'), cls('TheSingleDadDiaries', 'single-dad-diaries'), cls('TheVernalPool', 'vernal-pool'), cls('TheWinyChild', 'the-winy-child'), cls('ThrompTM', 'thromp'), cls('TnCComics', 'tnc-comics'), cls('ToBeNamed', 'to-be-named'), cls('TonyAuth', 'tonyauth'), cls('Toocrazy', 'too-crazy'), cls('TwitchyOToole', 'twitchy-otoole'), cls('TwoBits', 'two-bits'), cls('Vernscartoons', 'vernscartoons'), cls('WayOutInLeftField', 'Way-Out-In-Left-Field'), cls('WelcometoFriendly', 'welcome-to-friendly'), cls('WendlesLife', 'wendleslife'), cls('Whatcatscanandcantdo', 'whatcatscanandcantdo'), cls('Whiteouts', 'whiteouts'), cls('WillSays', 'will-says'), cls('WillyWho', 'willy-who'), cls('WindingRoads', 'winding-roads'), cls('WittOfWill', 'witt-of-will'), cls('YouGuysAreMyFriendsTheComic', 'you-guys-are-my-friends'), # do not edit anything below since these entries are generated from # scripts/gocomics.py # START AUTOUPDATE cls('060', '0-60'), cls('1AndDone', '1-and-done'), cls('2CowsAndAChicken', '2cowsandachicken'), cls('9ChickweedLane', '9chickweedlane'), cls('9To5', '9to5'), cls('AaronGuile', 'aaron-guile'), cls('ABitSketch', 'a-bit-sketch'), cls('ABomb', 'a-bomb'), cls('ACMEINKD', 'acme-inkd'), cls('AcornPark', 'acorn-park'), cls('AdamAtHome', 'adamathome'), cls('AdultChildren', 'adult-children'), cls('Adulting', 'adulting'), cls('Agnes', 'agnes'), cls('AJAndMagnus', 'aj-and-magnus'), cls('AlisHouse', 'alis-house'), cls('AlisonWard', 'alison-ward'), cls('AlleyOop', 'alley-oop'), cls('AllInGoodTime', 'all-in-good-time'), cls('AmandaTheGreat', 'amanda-the-great'), cls('Andertoons', 'andertoons'), cls('AndNow', 'and-now'), cls('AndyCapp', 'andycapp'), cls('Anecdote', 'anecdote'), cls('AngryLittleGirls', 'angry-little-girls'), cls('AnimalCrackers', 'animalcrackers'), cls('AnimalMitchell', 'animal-mitchell'), cls('AnneAndPythagoras', 'anne-and-pythagoras'), cls('Annie', 'annie'), cls('AppleCreekComics', 'apple-creek'), cls('ArloAndJanis', 'arloandjanis'), cls('AskACat', 'ask-a-cat'), cls('AskShagg', 'askshagg'), cls('ATasteOfTimes', 'a-taste-of-times'), cls('AtTavicat', 'tavicat'), cls('AtTheZoo', 'at-the-zoo'), cls('AuntyAcid', 'aunty-acid'), cls('BackInTheDay', 'backintheday'), cls('BackToBC', 'back-to-bc'), cls('Bacon', 'bacon'), cls('Badlands', 'badlands'), cls('BadMachinery', 'bad-machinery'), cls('BadReporter', 'badreporter'), cls('Baldo', 'baldo'), cls('BaldoEnEspaol', 'espanol/baldoespanol', 'es'), cls('BallardStreet', 'ballardstreet'), cls('BananaTriangle', 'banana-triangle'), cls('BarkeaterLake', 'barkeaterlake'), cls('BarneyAndClyde', 'barneyandclyde'), cls('BasicInstructions', 'basicinstructions'), cls('BatchRejection', 'batch-rejection'), cls('Bazoobee', 'bazoobee'), cls('BC', 'bc'), cls('BeanieTheBrownie', 'beanie-the-brownie'), cls('Beardo', 'beardo'), cls('BeMisery', 'bemisery'), cls('Ben', 'ben'), cls('BeneathTheFerns', 'beneath-the-ferns'), cls('BenitinYEneas', 'espanol/muttandjeffespanol', 'es'), cls('BentObjects', 'bent-objects'), cls('BergerAndWyse', 'berger-and-wyse'), cls('BerkeleyMews', 'berkeley-mews'), cls('Betty', 'betty'), cls('Bewley', 'bewley'), cls('BiffAndRiley', 'biff-and-riley'), cls('BigJim', 'bigjim'), 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'), cls('BloomCounty2016', 'bloom-county'), cls('Bluebonnets', 'cowsandstuff'), cls('BlueSkiesToons', 'blue-skies-toons'), cls('BobGorrell', 'bobgorrell'), cls('BobTheSquirrel', 'bobthesquirrel'), cls('BoltsAndNuts', 'bolts-and-nuts'), cls('BoNanas', 'bonanas'), cls('Boomerangs', 'boomerangs'), cls('Bork', 'bork'), cls('BottAuto', 'bott-auto'), cls('Bottomliners', 'bottomliners'), cls('BoundAndGagged', 'boundandgagged'), cls('BrainSquirts', 'brain-squirts'), cls('BreakingCatNews', 'breaking-cat-news'), cls('BreakOfDay', 'break-of-day'), cls('Brevity', 'brevity'), cls('BrewsterRockit', 'brewsterrockit'), cls('BrianMcFadden', 'brian-mcfadden'), cls('BroomHilda', 'broomhilda'), cls('Bully', 'bully'), cls('Buni', 'buni'), cls('BUNS', 'buns'), cls('Bushscrubs', 'bushscrubs'), cls('BushyTales', 'bushy-tales'), cls('CAFFEINATED', 'CAFFEINATED'), cls('CalvinAndHobbes', 'calvinandhobbes'), cls('CalvinAndHobbesEnEspaol', 'espanol/calvinandhobbesespanol', 'es'), cls('CandacenCompany', 'candace-n-company'), cls('Candorville', 'candorville'), cls('CapsulasMedicas', 'espanol/capsulas-medicas', 'es'), cls('CarteBlanche', 'carte-blanche'), cls('Cathy', 'cathy'), cls('CattitudeDoggonit', 'cattitude-doggonit'), cls('CestLaVie', 'cestlavie'), cls('ChanLowe', 'chanlowe'), cls('CharmysArmy', 'charmys-army'), cls('CheapThrillsCuisine', 'cheap-thrills-cuisine'), cls('ChipBok', 'chipbok'), cls('ChrisBritt', 'chrisbritt'), cls('ChuckleBros', 'chucklebros'), cls('CitizenDog', 'citizendog'), cls('Claw', 'claw'), cls('ClayBennett', 'claybennett'), cls('ClayJones', 'clayjones'), cls('ClearBlueWater', 'clearbluewater'), cls('Cleats', 'cleats'), cls('CleoAndCompany', 'cleo-and-company'), cls('CloseToHome', 'closetohome'), cls('Committed', 'committed'), cls('Complex', 'complex'), cls('Computoon', 'compu-toon'), cls('ConnieToTheWonnie', 'connie-to-the-wonnie'), cls('Cornered', 'cornered'), cls('CourageousManAdventures', 'courageous-man-adventures'), cls('CowAndBoyClassics', 'cowandboy'), cls('CowTown', 'cowtown'), cls('Crumb', 'crumb'), cls('CulDeSac', 'culdesac'), cls('DaddingBadly', 'dadding-badly'), cls('DaddysHome', 'daddyshome'), cls('DadsDay', 'dads-day'), cls('DanaSummers', 'danasummers'), cls('DanWasserman', 'danwasserman'), cls('DarkSideOfTheHorse', 'darksideofthehorse'), cls('DarrinBell', 'darrin-bell'), cls('DBCartoons', 'db-cartoons'), cls('DeepDarkFears', 'deep-dark-fears'), cls('DevinCraneComicStripGhostwriter', 'devincranecomicstripghostwriter'), cls('DiamondLil', 'diamondlil'), cls('DickTracy', 'dicktracy'), cls('DilbertClassics', 'dilbert-classics'), cls('DilbertEnEspaol', 'espanol/dilbert-en-espanol', 'es'), cls('DinosaurComics', 'dinosaur-comics'), cls('DogEatDoug', 'dogeatdoug'), cls('DoghouseInYourSoul', 'doghouse-in-your-soul'), cls('DogsOfCKennel', 'dogsofckennel'), cls('DomesticAbuse', 'domesticabuse'), cls('DonBrutus', 'espanol/don-brutus', 'es'), cls('DontPickTheFlowers', 'dont-pick-the-flowers'), cls('DoodleTown', 'doodle-town'), cls('Doonesbury', 'doonesbury'), cls('DorrisMcComics', 'dorris-mccomics'), cls('Drabble', 'drabble'), cls('Dragin', 'dragin'), cls('DragonGirl', 'dragon-girl'), cls('DrewSheneman', 'drewsheneman'), cls('Drive', 'drive'), cls('Dromo', 'dro-mo'), cls('DrWhiskers', 'dr-whiskers'), cls('DudeAndDude', 'dudedude'), cls('DumbQuestionBadAnswer', 'dumb-question-bad-answer'), cls('DungeonHordes', 'dungeon-hordes'), cls('DustSpecks', 'dust-specks'), cls('DutchnPals', 'dutch-n-pals'), cls('Dysconnected', 'dysconnected'), cls('Econogirl', 'econogirl'), cls('EdgeCity', 'edge-city'), cls('EdgeOfAdventure', 'edge-of-adventure'), cls('Eek', 'eek'), cls('EightballEyeball', 'eightball-eyeball'), cls('ElCafDePoncho', 'espanol/poochcafeespanol', 'es'), cls('Elmo', 'elmo'), cls('EmmyLou', 'emmy-lou'), cls('Endangered', 'endangered'), cls('Endtown', 'endtown'), cls('EricTheCircle', 'eric-the-circle'), cls('EverydayPeopleCartoons', 'everyday-people-cartoons'), cls('Eyebeam', 'eyebeam'), cls('FacesOfTheNewsByKerryWaghorn', 'facesinthenews'), cls('FamilyTree', 'familytree'), cls('FamousAndNotSoFamousQuotes', 'famous-and-not-so-famous-quotes'), cls('Farcus', 'farcus'), cls('FarOut', 'far-out'), cls('FatCats', 'fat-cats'), cls('FatherOfTheBrood', 'father-of-the-brood'), cls('FloAndFriends', 'floandfriends'), cls('FloydAndTony', 'floyd-and-tony'), 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'), cls('FoxTrotEnEspaol', 'espanol/foxtrotespanol', 'es'), cls('Francis', 'francis'), cls('FrankAndErnest', 'frank-and-ernest'), cls('FrankAndSteinway', 'frank-and-steinway'), cls('FrankieComics', 'frankie-comics'), cls('Frazz', 'frazz'), cls('FredBasset', 'fredbasset'), cls('FredBassetEnEspaol', 'espanol/fredbassetespanol', 'es'), cls('FreeRange', 'freerange'), cls('FreshlySqueezed', 'freshlysqueezed'), cls('FriedCritter', 'fried-critter'), cls('FrogApplause', 'frogapplause'), cls('FromTheMoWillemsSketchbook', 'from-the-mo-willems-sketchbook'), cls('GarciaCartoonCo', 'garcia-cartoon-co'), cls('Garfield', 'garfield'), cls('GarfieldClassics', 'garfield-classics'), cls('GarfieldEnEspaol', 'espanol/garfieldespanol', 'es'), cls('GarfieldMinusGarfield', 'garfieldminusgarfield'), cls('GaryMarkstein', 'garymarkstein'), cls('GaryVarvel', 'garyvarvel'), cls('GasolineAlley', 'gasolinealley'), cls('Gaturro', 'espanol/gaturro', 'es'), cls('Geech', 'geech'), cls('GentleCreatures', 'gentle-creatures'), cls('GetALife', 'getalife'), cls('GetFuzzy', 'getfuzzy'), cls('Gil', 'gil'), cls('GilThorp', 'gilthorp'), cls('GingerMeggs', 'gingermeggs'), cls('GingerMeggsEnEspaol', 'espanol/gingermeggsespanol', 'es'), cls('GIRTH', 'girth'), cls('GlasbergenCartoons', 'glasbergen-cartoons'), cls('GlennMcCoy', 'glennmccoy'), cls('GManWebcomics', 'g-man-webcomics'), cls('GnomeSyndicate', 'gnome-syndicate'), cls('Goats', 'goats'), cls('GoComicsFanArt', 'fan-art'), cls('Graffiti', 'graffiti'), cls('GrandAvenue', 'grand-avenue'), cls('GrandmaSnoops', 'grandmasnoops'), cls('GrannyAnny', 'granny-anny'), cls('Gravy', 'gravy'), cls('GrayMatters', 'gray-matters'), cls('GreenHumour', 'green-humour'), cls('GreenPieces', 'green-pieces'), cls('GunstonStreet', 'gunston-street'), cls('HaikuEwe', 'haikuewe'), cls('HalfFull', 'half-full'), cls('HalfFullEnEspaol', 'espanol/half-full-espanol', 'es'), cls('HallEditorialCartoons', 'hall-editorial-cartoons'), cls('HaloAndHorns', 'no-place-like-holmes'), cls('HamShears', 'ham-shears'), cls('HaphazardHumor', 'haphazard-humor'), cls('Headcheese', 'headcheese'), cls('HealthCapsules', 'healthcapsules'), cls('HeartOfTheCity', 'heartofthecity'), cls('Heathcliff', 'heathcliff'), cls('HeathcliffEnEspaol', 'espanol/heathcliffespanol', 'es'), cls('HenryPayne', 'henrypayne'), cls('HerbAndJamaal', 'herbandjamaal'), cls('Herman', 'herman'), cls('HermanEnEspaol', 'espanol/herman-en-espanol', 'es'), cls('HipsterPicnic', 'hipster-picnic'), cls('Hogwashed', 'hogwashed'), cls('HolidayDoodles', 'holiday-doodles'), cls('HomeAndAway', 'homeandaway'), cls('HomeLife', 'home-life'), cls('HotComicsForCoolPeople', 'hot-comics-for-cool-people'), cls('Hubbel', 'hubbel'), cls('HUBRIS', 'hubris'), cls('HugoComics', 'hugo-comics'), cls('HumanCull', 'human-cull'), cls('HurrieTheMisManager', 'hurrie'), cls('HuskyTales', 'husky-tales'), cls('HutchOwen', 'hutch-owen'), cls('ImagineThis', 'imaginethis'), cls('InheritTheMirth', 'inherit-the-mirth'), cls('InkPen', 'inkpen'), cls('InkwellForest', 'inkwell-forest'), cls('InspectorDangersCrimeQuiz', 'inspector-dangers-crime-quiz'), cls('InTheBleachers', 'inthebleachers'), cls('InTheSticks', 'inthesticks'), cls('InvisibleBread', 'invisible-bread'), cls('IronyOr', 'irony-or'), cls('ItsAllAboutYou', 'itsallaboutyou'), cls('ItsJustJim', 'its-just-jim'), cls('JackOhman', 'jackohman'), cls('JanesWorld', 'janesworld'), cls('JeffDanziger', 'jeffdanziger'), cls('JeffStahler', 'jeffstahler'), cls('JenSorensen', 'jen-sorensen'), cls('JerryHolbert', 'jerryholbert'), cls('JetpackJr', 'jetpack-jr'), cls('JimBentonCartoons', 'jim-benton-cartoons'), cls('JimMorin', 'jimmorin'), cls('JimsJournal', 'jimsjournal'), cls('JoeHeller', 'joe-heller'), cls('JoelPett', 'joelpett'), cls('JoeVanilla', 'joevanilla'), cls('JohnDeering', 'johndeering'), cls('JolleyStuffBrowser', 'jolleystuff-browser'), cls('JumpStart', 'jumpstart'), cls('JustoYFranco', 'espanol/justo-y-franco', 'es'), cls('JustSayUncle', 'just-say-uncle'), cls('KALEECHIKORNERS', 'kaleechi-korners'), cls('KartoonsByKline', 'kartoons-by-kline'), cls('KenCatalino', 'kencatalino'), cls('KevinKallaugher', 'kevinkallaugher'), cls('KidBeowulf', 'kid-beowulf'), cls('KidShayComics', 'kid-shay-comics'), cls('KidSpot', 'kidspot'), cls('KidTown', 'kidtown'), cls('KitchenCapers', 'kitchen-capers'), cls('KitNCarlyle', 'kitandcarlyle'), cls('Kliban', 'kliban'), cls('KlibansCats', 'klibans-cats'), cls('LaCucaracha', 'lacucaracha'), cls('LaCucarachaEnEspaol', 'espanol/la-cucaracha-en-espanol', 'es'), cls('LaffToons', 'lafftoons'), cls('LaloAlcaraz', 'laloalcaraz'), cls('LaloAlcarazEnEspaol', 'espanol/laloenespanol', 'es'), cls('LardsWorldPeaceTips', 'lards-world-peace-tips'), cls('LasHermanasStone', 'espanol/stonesoup_espanol', 'es'), cls('LastKiss', 'lastkiss'), cls('LayLines', 'lay-lines'), cls('LearnToSpeakCat', 'learn-to-speak-cat'), cls('LegendOfBill', 'legendofbill'), cls('LeighLunaComics', 'leigh-luna-comics'), cls('LibertyMeadows', 'libertymeadows'), cls('LilAbner', 'lil-abner'), cls('LiliAndDerek', 'lili-and-derek'), cls('LilleysSillies', 'lilleys-sillies'), cls('LimboRoad', 'limbo-road'), cls('Lio', 'lio'), cls('LioEnEspaol', 'espanol/lioespanol', 'es'), cls('LisaBenson', 'lisabenson'), cls('LittleDogLost', 'littledoglost'), cls('LittleFriedChickenAndSushi', 'little-fried-chicken-and-sushi'), cls('LittleNemo', 'little-nemo'), cls('Lola', 'lola'), cls('LolaEnEspaol', 'espanol/lola-en-espanol', 'es'), cls('LooksGoodOnPaper', 'looks-good-on-paper'), cls('Loose', 'loose'), cls('LooseParts', 'looseparts'), cls('LosOsorios', 'espanol/los-osorios', 'es'), cls('LostSheep', 'lostsheep'), cls('LostSideOfSuburbia', 'lostsideofsuburbia'), cls('Luann', 'luann'), cls('LuannAgainn', 'luann-againn'), cls('LuannEnEspaol', 'espanol/luannspanish', 'es'), cls('Lucan', 'lucan'), cls('LuckyCow', 'luckycow'), cls('LugNuts', 'lug-nuts'), cls('LumAndAbner', 'lum-and-abner'), cls('Lunarbaboon', 'lunarbaboon'), cls('MadDogGhettoCop', 'maddogghettocop'), cls('MagicInAMinute', 'magicinaminute'), cls('Magnificatz', 'magnificatz'), cls('Maintaining', 'maintaining'), cls('MakingIt', 'making-it'), cls('MariasDay', 'marias-day'), cls('Marmaduke', 'marmaduke'), cls('MarmadukeEnEspaol', 'espanol/marmaduke-en-espanol', 'es'), cls('MarshallRamsey', 'marshallramsey'), cls('MarysNature', 'marys-nature'), cls('MassiveFalls', 'massive-falls'), cls('MattBors', 'matt-bors'), cls('MattDavies', 'mattdavies'), cls('MattWuerker', 'mattwuerker'), cls('MazeToonsPuzzle', 'mazetoons-puzzle'), cls('MediumLarge', 'medium-large'), cls('MegClassics', 'meg-classics'), cls('MichaelRamirez', 'michaelramirez'), cls('Microcosm', 'microcosm'), cls('MikeDuJour', 'mike-du-jour'), cls('MikeLester', 'mike-lester'), cls('MikeLuckovich', 'mikeluckovich'), cls('Millennialville', 'millennialville'), cls('Milton50', 'milton-5-0'), cls('Mindframe', 'mindframe'), cls('Minihahas', 'vernscartoons'), cls('MinimumSecurity', 'minimumsecurity'), cls('MiscSoup', 'misc-soup'), cls('MisterAndMe', 'mister-and-me'), cls('MockAll', 'mock-all'), cls('ModeratelyConfused', 'moderately-confused'), cls('Molebashed', 'molebashed'), cls('MollyAndTheBear', 'mollyandthebear'), cls('Moments', 'moments'), cls('Momma', 'momma'), cls('MomsCancer', 'moms-cancer'), cls('Mongrels', 'mongrels'), cls('Monty', 'monty'), cls('MontyDiaros', 'espanol/monty-diarios', 'es'), cls('MortsIsland', 'noahs-island'), cls('MotleyClassics', 'motley-classics'), cls('MrLowe', 'mr-lowe'), cls('Mulligan', 'mulligan'), cls('MustardAndBoloney', 'mustard-and-boloney'), cls('MuttAndJeff', 'muttandjeff'), cls('MyCageNewAndOld', 'mycage'), cls('MySonIsADog', 'my-son-is-a-dog'), cls('MythTickle', 'mythtickle'), cls('Nancy', 'nancy'), cls('NancyClassics', 'nancy-classics'), cls('NateElGrande', 'espanol/nate-el-grande', 'es'), cls('NavyBean', 'navybean'), cls('NedAndLarry', 'ned-and-larry'), cls('NestHeads', 'nestheads'), cls('NEUROTICA', 'neurotica'), cls('NewAdventuresOfQueenVictoria', 'thenewadventuresofqueenvictoria'), cls('NextDoorNeighbors', 'next-door-neighbors'), cls('NickAnderson', 'nickanderson'), cls('NickAndZuzu', 'nick-and-zuzu'), cls('NoAmbiguity', 'no-ambiguity'), cls('NoBusinessIKnow', 'nobusinessiknow'), cls('NonSequitur', 'nonsequitur'), cls('NoOrdinaryLife', 'no-ordinary-life'), cls('Norman', 'Norman'), cls('NothingIsNotSomething', 'nothing-is-not-something'), cls('NotInventedHere', 'not-invented-here'), cls('NowRecharging', 'now-recharging'), cls('Npchumorcom', 'npchumor'), cls('OffTheMark', 'offthemark'), cls('OhBrother', 'oh-brother'), cls('OllieAndQuentin', 'ollie-and-quentin'), cls('OnAClaireDay', 'onaclaireday'), cls('OneBigHappy', 'onebighappy'), cls('OneFunnyGoldenRetriever', 'one-funny-golden-retriever'), cls('ONIONAndPEA', 'onion-and-pea'), cls('OrdinaryBill', 'ordinary-bill'), cls('OriginsOfTheSundayComics', 'origins-of-the-sunday-comics'), cls('OscarAndAnnie', 'oscar-and-annie'), cls('OutOfTheGenePoolReRuns', 'outofthegenepool'), cls('Overboard', 'overboard'), cls('OverboardEnEspaol', 'espanol/overboardespanol', 'es'), cls('OverQuirked', 'over-quirked'), cls('OverTheHedge', 'overthehedge'), cls('Owlturd', 'owlturd'), cls('OzyAndMillie', 'ozy-and-millie'), cls('PaddedCell', 'padded-cell'), cls('Painterly', 'sparcomics'), cls('PalAndBuddy', 'pal-and-buddy'), cls('PatOliphant', 'patoliphant'), cls('PaulSzep', 'paulszep'), cls('PawsForThoughtComics', 'paws-for-thought-comics'), cls('PCAndPixel', 'pcandpixel'), cls('Peanuts', 'peanuts'), cls('PeanutsBegins', 'peanuts-begins'), cls('PeanutsEnEspaol', 'espanol/peanuts-espanol', 'es'), cls('PearlsBeforeSwine', 'pearlsbeforeswine'), cls('Peeples', 'peeples'), cls('PeopleOfEarth', 'frankblunt'), cls('Periquita', 'espanol/periquita', 'es'), cls('PerlasParaLosCerdos', 'espanol/perlas-para-los-cerdos', 'es'), 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('PicpakDog', 'picpak-dog'), cls('PicturesInBoxes', 'pictures-in-boxes'), cls('PieComic', 'pie-comic'), cls('Pinkerton', 'pinkerton'), cls('PirateMike', 'pirate-mike'), cls('PlanB', 'planb'), cls('PleaseListenToMe', 'please-listen-to-me'), cls('Pluggers', 'pluggers'), cls('PoliceLimit', 'policelimit'), cls('PoliticallyMad', 'politically-mad'), cls('PoliticularJokesAndRuffus', 'politcular-jokes-and-ruffas'), cls('PoochCafe', 'poochcafe'), cls('Poorcraft', 'poorcraft'), cls('PoorlyDrawnLines', 'poorly-drawn-lines'), cls('PopCultureShockTherapy', 'pop-culture-shock-therapy'), cls('Poptropica', 'poptropica'), cls('PotShots', 'pot-shots'), cls('PreTeena', 'preteena'), cls('PricklyCity', 'pricklycity'), cls('Prideland', 'prideland'), cls('PrimusTheBadPhilosopher', 'primus-the-bad-philosopher'), cls('ProfessorHerbertAndGEO', 'professor-herbert-and-geo'), cls('PromisesPromises', 'promises-promises'), cls('QueenBlackbeard', 'queen-blackbeard'), cls('QuestionableQuotebook', 'questionable-quotebook'), cls('QuickDraw', 'quickdraw'), cls('RabbitsAgainstMagic', 'rabbitsagainstmagic'), cls('RaisingDuncan', 'raising-duncan'), cls('RandolphItch2Am', 'randolphitch'), cls('RandomActsOfNancy', 'random-acts-of-nancy'), 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('Ringers', 'ringers'), cls('RipHaywire', 'riphaywire'), cls('RipleysBelieveItOrNot', 'ripleysbelieveitornot'), cls('RipleysBelieveItOrNotSpanish', 'espanol/ripleys-en-espanol', 'es'), cls('RobbieAndBobby', 'robbie-and-bobby'), cls('RobertAriail', 'robert-ariail'), cls('RobRogers', 'robrogers'), cls('RonWarren', 'ron-warren'), cls('RosaDominical', 'espanol/rosa-dominical', 'es'), cls('RoseIsRose', 'roseisrose'), cls('Rubes', 'rubes'), cls('RudyPark', 'rudypark'), cls('Rufus', 'rufus'), cls('SandSharkBeach', 'sandshark-beach'), cls('SarahsScribbles', 'sarahs-scribbles'), cls('SavageChickens', 'savage-chickens'), cls('ScaryGary', 'scarygary'), cls('ScenesFromAMultiverse', 'scenes-from-a-multiverse'), cls('ScottStantis', 'scottstantis'), cls('SharpCurveComics', 'sharp-curve-comics'), cls('Sheldon', 'sheldon'), cls('SherpaAid', 'sherpaaid'), cls('ShirleyAndSonClassics', 'shirley-and-son-classics'), cls('Shoe', 'shoe'), cls('Shoecabbage', 'shoecabbage'), cls('Shortcuts', 'shortcuts'), cls('ShutterbugFollies', 'shutterbug-follies'), cls('SigneWilkinson', 'signewilkinson'), cls('SignGarden', 'signgarden'), cls('SignsOfAFrustratedGolfer', 'signs-of-a-frustrated-golfer'), cls('SketchsharkComics', 'sketchshark-comics'), cls('SketchyChics', 'sketchy-chics'), cls('SkinHorse', 'skinhorse'), cls('Skippy', 'skippy'), cls('Skull', 'skull'), cls('Skylarking', 'skylarking'), cls('SleepytownBeagles', 'sleepytown-beagles'), cls('SmallNerdyCreatures', 'small-nerdy-creatures'), cls('Smith', 'smith'), cls('Snootle', 'snootle'), cls('Snowflakes', 'snowflakes'), cls('SnowSez', 'snow-sez'), cls('SoccerDude', 'soccer-dude'), cls('SoccerEarth', 'soccer-earth'), cls('SOD', 'sod'), cls('SomethingAboutCeleste', 'something-about-celeste'), cls('SookyRottweiler', 'sooky-rottweiler'), cls('Soulmates', 'soulmates'), cls('SoupToNutz', 'soup-to-nutz'), cls('Spaceport51', 'spaceport-51'), cls('Speechless', 'speechless'), cls('SpeedBump', 'speedbump'), cls('SportsByVoort', 'sports-by-voort'), cls('SpotTheFrog', 'spot-the-frog'), cls('StaleCrackers', 'clifton'), cls('StankoAndTibor', 'stankotibor'), cls('Starling', 'starling'), cls('Starslip', 'starslip'), 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('SubSub', 'subsub'), cls('SuburbanFairyTales', 'suburban-fairy-tales'), cls('SUITSANDGUARDERS', 'suits-and-guarders'), cls('SunnyStreet', 'sunny-street'), cls('SunshineState', 'sunshine-state'), cls('SuperFunPakComix', 'super-fun-pak-comix'), cls('SuperSiblings', 'super-siblings'), cls('SweetAndSourPork', 'sweet-and-sour-pork'), cls('Sylvia', 'sylvia'), cls('TankMcNamara', 'tankmcnamara'), cls('Tarzan', 'tarzan'), cls('TarzanEnEspaol', 'espanol/tarzan-en-espanol', 'es'), cls('TedRall', 'tedrall'), cls('TenCats', 'ten-cats'), cls('Thatababy', 'thatababy'), cls('ThatIsPriceless', 'that-is-priceless'), cls('ThatMonkeyTune', 'that-monkey-tune'), cls('ThatNewCarlSmell', 'that-new-carl-smell'), cls('ThatsLife', 'thats-life'), cls('TheAcademiaWaltz', 'academiawaltz'), cls('TheAdventuresOfBusinessCat', 'the-adventures-of-business-cat'), cls('TheAngryGamer', 'the-angry-gamer'), cls('TheArgyleSweater', 'theargylesweater'), cls('TheAwkwardYeti', 'the-awkward-yeti'), cls('TheBarn', 'thebarn'), cls('TheBeauforts', 'the-beauforts'), cls('TheBellies', 'the-bellies'), cls('TheBentPinky', 'the-bent-pinky'), cls('TheBestMedicineCartoon', 'the-best-medicine'), cls('TheBigPicture', 'thebigpicture'), cls('TheBoobiehatch', 'the-boobiehatch'), cls('TheBoondocks', 'boondocks'), cls('TheBornLoser', 'the-born-loser'), cls('TheBuckets', 'thebuckets'), cls('TheCardinal', 'thecardinal'), 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('TheDinkledorfs', 'the-dinkledorfs'), cls('TheDoozies', 'thedoozies'), cls('TheDuplex', 'duplex'), cls('TheElderberries', 'theelderberries'), cls('TheEntrepiranha', 'the-entrepiranha'), cls('TheFabulousBushPigs', 'the-fabulous-bush-pigs'), cls('TheFlyingMcCoys', 'theflyingmccoys'), cls('TheFuscoBrothers', 'thefuscobrothers'), cls('TheGentlemansArmchair', 'the-gentlemans-armchair'), cls('TheGrayZone', 'the-gray-zone'), cls('TheGreenMonkeys', 'thegreenmonkeys'), cls('TheGrizzwells', 'thegrizzwells'), cls('TheHumbleStumble', 'humble-stumble'), cls('TheKChronicles', 'thekchronicles'), cls('TheKnightLife', 'theknightlife'), cls('TheLeftyBoscoPictureShow', 'leftyboscopictureshow'), cls('TheLostBear', 'the-lost-bear'), cls('TheMagicForest', 'the-magic-forest'), cls('TheMartianConfederacy', 'the-martian-confederacy'), cls('TheMeaningOfLila', 'meaningoflila'), cls('TheMiddletons', 'themiddletons'), cls('TheMothManAndLarvaeBoy', 'the-mothman-and-larvae-boy'), cls('TheMountainMen', 'the-mountain-men'), cls('TheNeighborhood', 'the-neighborhood'), cls('TheNevilleYouKnow', 'the-neville-you-know'), cls('TheNonsenseNewz', 'the-nonsense-newz'), cls('TheNorm40', 'the-norm-4-0'), cls('TheNormClassics', 'thenorm'), cls('TheOldManAndHisDog', 'old-man-and-his-dog'), cls('TheOtherCoast', 'theothercoast'), cls('TheOtherEnd', 'the-other-end'), cls('TheQuinnAndFinnShow', 'quinn-and-finn'), cls('TheQuixoteSyndrome', 'the-quixote-syndrome'), cls('TheRocks', 'the-rocks'), cls('TheSunshineClub', 'the-sunshine-club'), cls('TheUnemployed', 'the-unemployed'), cls('TheWagesOfSindy', 'the-wages-of-sindy'), cls('TheWanderingMelon', 'the-wandering-melon'), cls('TheWizardOfIdSpanish', 'espanol/wizardofidespanol', 'es'), cls('TheWorriedWell', 'the-worried-well'), cls('TheWorstThingIveEverDone', 'the-worst-thing-ive-ever-done'), cls('Thingsesque', 'thingsesque'), cls('think', 'think'), cls('ThinLines', 'thinlines'), cls('TimEagan', 'tim-eagan'), cls('TinyConfessions', 'tiny-confessions'), cls('TinySepuku', 'tinysepuku'), cls('TOBY', 'toby'), cls('TodaysDogg', 'todays-dogg'), cls('TodaysTrump', 'todays-trump'), cls('TomTheDancingBug', 'tomthedancingbug'), cls('TomToles', 'tomtoles'), cls('TooMuchCoffeeMan', 'toomuchcoffeeman'), cls('TopicToons', 'topictoons'), cls('ToughTown', 'tough-town'), cls('ToxicValues', 'toxic-values'), cls('Trivquiz', 'trivquiz'), cls('Trucutu', 'espanol/trucutu', 'es'), cls('TruthBeKnown', 'truth-be-known'), cls('TruthFacts', 'truth-facts'), cls('TuesdaysWithCory', 'tuesdays-with-cory'), cls('Tutelandia', 'espanol/tutelandia', 'es'), cls('UncleArtsFunland', 'uncleartsfunland'), cls('Underdone', 'underdone'), cls('UnderstandingChaos', 'understanding-chaos'), cls('UnMannerlyWays', 'mannerly-ways'), cls('UnstrangePhenomena', 'unstrange-phenomena'), cls('UpAndOut', 'up-and-out'), cls('USAcres', 'us-acres'), cls('ViewFromTheCouch', 'view-from-the-couch'), 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('VoicesInTheDark', 'voices-in-the-dark'), cls('WallaceTheBrave', 'wallace-the-brave'), cls('WaltHandelsman', 'walthandelsman'), cls('Warped', 'warped'), cls('WarpedAndDemented', 'warped-and-demented'), cls('Waskataskahiskewaskewan', 'waskataskahiskewaskewan'), cls('WatchYourHead', 'watchyourhead'), cls('WaynoVision', 'waynovision'), cls('WayOutComics', 'way-out-comics'), cls('WeaselInk', 'weasel-ink'), cls('WeePals', 'weepals'), cls('WhiskeyFalls', 'whiskey-falls'), cls('WickedCrispy', 'wicked-crispy'), cls('Widdershins', 'widdershins'), cls('WideOpen', 'wide-open'), cls('Windsock', 'windsock'), cls('WinLoseDrew', 'drewlitton'), cls('Winston', 'winston'), cls('WitOfTheWorld', 'witoftheworld'), cls('WizardOfId', 'wizardofid'), cls('WizardOfIdClassics', 'wizard-of-id-classics'), cls('Wondermark', 'wondermark'), cls('WorkingDaze', 'working-daze'), cls('WorkingItOut', 'workingitout'), cls('WorldOfWonder', 'world-of-wonder'), cls('WrobbertCartoons', 'wrobbertcartoons'), cls('WrongHands', 'wrong-hands'), cls('WTDuck', 'wtduck'), cls('WuMo', 'wumo'), cls('WumoEnEspaol', 'espanol/wumoespanol', 'es'), cls('Wyatt', 'wyatt'), cls('YennyEnEspaol', 'espanol/yennyespanol', 'es'), cls('YennyLopez', 'yenny-lopez'), cls('YinYangster', 'yin-yangster'), cls('ZackHill', 'zackhill'), cls('ZenPencils', 'zen-pencils'), cls('Ziggy', 'ziggy'), cls('ZiggyEnEspaol', 'espanol/ziggyespanol', 'es'), cls('ZITO', 'zito'), cls('ZombieHeights', 'zombie-heights'), cls('Zootopia', 'zootopia'), # END AUTOUPDATE )