Update GoComics modules

The usual: GoComics removed some comics, added some and renamed some...
This commit is contained in:
Tobias Gruetzmacher 2020-09-28 01:15:07 +02:00
parent b090d86c9b
commit 8d7fd8b884
4 changed files with 116 additions and 56 deletions

View file

@ -44,9 +44,10 @@ class GoComics(_ParserScraper):
# scripts/gocomics.py # scripts/gocomics.py
# START AUTOUPDATE # START AUTOUPDATE
cls('1AndDone', '1-and-done'), cls('1AndDone', '1-and-done'),
cls('2CowsAndAChicken', '2cowsandachicken'),
cls('9ChickweedLane', '9chickweedlane'), cls('9ChickweedLane', '9chickweedlane'),
cls('9ChickweedLaneClassics', '9-chickweed-lane-classics'),
cls('9To5', '9to5'), cls('9To5', '9to5'),
cls('Aaggghhh', 'Aaggghhh', 'es'),
cls('AdamAtHome', 'adamathome'), cls('AdamAtHome', 'adamathome'),
cls('AdultChildren', 'adult-children'), cls('AdultChildren', 'adult-children'),
cls('Agnes', 'agnes'), cls('Agnes', 'agnes'),
@ -54,16 +55,20 @@ class GoComics(_ParserScraper):
cls('AlisHouse', 'alis-house'), cls('AlisHouse', 'alis-house'),
cls('AlleyOop', 'alley-oop'), cls('AlleyOop', 'alley-oop'),
cls('AmandaTheGreat', 'amanda-the-great'), cls('AmandaTheGreat', 'amanda-the-great'),
cls('AmericanChopSuey', 'american-chop-suey'),
cls('Andertoons', 'andertoons'), cls('Andertoons', 'andertoons'),
cls('AndyCapp', 'andycapp'), cls('AndyCapp', 'andycapp'),
cls('AngryLittleGirls', 'angry-little-girls'), cls('AngryLittleGirls', 'angry-little-girls'),
cls('AnimalCrackers', 'animalcrackers'), cls('AnimalCrackers', 'animalcrackers'),
cls('Annie', 'annie'), cls('Annie', 'annie'),
cls('AProblemLikeJamal', 'a-problem-like-jamal'),
cls('ArloAndJanis', 'arloandjanis'), cls('ArloAndJanis', 'arloandjanis'),
cls('AskACat', 'ask-a-cat'), cls('AskACat', 'ask-a-cat'),
cls('AskAPortlySyndicatePerson', 'ask-a-portly-syndicate-person'),
cls('AskShagg', 'askshagg'), cls('AskShagg', 'askshagg'),
cls('AtTavicat', 'tavicat'), cls('AtTavicat', 'tavicat'),
cls('AuntyAcid', 'aunty-acid'), cls('AuntyAcid', 'aunty-acid'),
cls('BabyTrump', 'baby-trump'),
cls('BackInTheDay', 'backintheday'), cls('BackInTheDay', 'backintheday'),
cls('BackToBC', 'back-to-bc'), cls('BackToBC', 'back-to-bc'),
cls('Bacon', 'bacon'), cls('Bacon', 'bacon'),
@ -77,24 +82,26 @@ class GoComics(_ParserScraper):
cls('BarkeaterLake', 'barkeaterlake'), cls('BarkeaterLake', 'barkeaterlake'),
cls('BarneyAndClyde', 'barneyandclyde'), cls('BarneyAndClyde', 'barneyandclyde'),
cls('BasicInstructions', 'basicinstructions'), cls('BasicInstructions', 'basicinstructions'),
cls('BatchRejection', 'batch-rejection'),
cls('BC', 'bc'), cls('BC', 'bc'),
cls('BeanieTheBrownie', 'beanie-the-brownie'), cls('BeanieTheBrownie', 'beanie-the-brownie'),
cls('Beardo', 'beardo'), cls('Beardo', 'beardo'),
cls('BearWithMe', 'bear-with-me'),
cls('Ben', 'ben'), cls('Ben', 'ben'),
cls('BenitinYEneas', 'muttandjeffespanol', 'es'), cls('BenitinYEneas', 'muttandjeffespanol', 'es'),
cls('BergerAndWyse', 'berger-and-wyse'), cls('BergerAndWyse', 'berger-and-wyse'),
cls('BerkeleyMews', 'berkeley-mews'), cls('BerkeleyMews', 'berkeley-mews'),
cls('Betty', 'betty'), cls('Betty', 'betty'),
cls('Bewley', 'bewley'), cls('BFGFSyndrome', 'bfgf-syndrome'),
cls('BigNate', 'bignate'), cls('BigNate', 'bignate'),
cls('BigNateFirstClass', 'big-nate-first-class'), cls('BigNateFirstClass', 'big-nate-first-class'),
cls('BigTop', 'bigtop'), cls('BigTop', 'bigtop'),
cls('Biographic', 'biographic'), cls('BirdAndMoon', 'bird-and-moon'),
cls('Birdbrains', 'birdbrains'), cls('Birdbrains', 'birdbrains'),
cls('BleekerTheRechargeableDog', 'bleeker'), cls('BleekerTheRechargeableDog', 'bleeker'),
cls('Bliss', 'bliss'), cls('Bliss', 'bliss'),
cls('BloomCounty', 'bloomcounty'), cls('BloomCounty', 'bloomcounty'),
cls('BloomCounty2017', 'bloom-county'), cls('BloomCounty2019', 'bloom-county'),
cls('BobGorrell', 'bobgorrell'), cls('BobGorrell', 'bobgorrell'),
cls('BobTheSquirrel', 'bobthesquirrel'), cls('BobTheSquirrel', 'bobthesquirrel'),
cls('BoNanas', 'bonanas'), cls('BoNanas', 'bonanas'),
@ -114,28 +121,30 @@ class GoComics(_ParserScraper):
cls('CalvinAndHobbes', 'calvinandhobbes'), cls('CalvinAndHobbes', 'calvinandhobbes'),
cls('CalvinAndHobbesEnEspanol', 'calvinandhobbesespanol', 'es'), cls('CalvinAndHobbesEnEspanol', 'calvinandhobbesespanol', 'es'),
cls('Candorville', 'candorville'), cls('Candorville', 'candorville'),
cls('CapsulasMedicas', 'capsulas-medicas%20', 'es'), cls('CatanaComics', 'little-moments-of-love'),
cls('Cathy', 'cathy'), cls('CathyClassics', 'cathy'),
cls('CathyCommiserations', 'cathy-commiserations'),
cls('CatsCafe', 'cats-cafe'),
cls('CattitudeDoggonit', 'cattitude-doggonit'), cls('CattitudeDoggonit', 'cattitude-doggonit'),
cls('CestLaVie', 'cestlavie'), cls('CestLaVie', 'cestlavie'),
cls('CheapThrillsCuisine', 'cheap-thrills-cuisine'), cls('CheapThrillsCuisine', 'cheap-thrills-cuisine'),
cls('CheerUpEmoKid', 'cheer-up-emo-kid'), cls('CheerUpEmoKid', 'cheer-up-emo-kid'),
cls('ChipBok', 'chipbok'), cls('ChipBok', 'chipbok'),
cls('ChrisBritt', 'chrisbritt'), cls('ChrisBritt', 'chrisbritt'),
cls('ChuckDrawsThings', 'chuck-draws-things'),
cls('ChuckleBros', 'chucklebros'), cls('ChuckleBros', 'chucklebros'),
cls('CitizenDog', 'citizendog'), cls('CitizenDog', 'citizendog'),
cls('Claw', 'claw'), cls('Claw', 'claw'),
cls('ClayBennett', 'claybennett'), cls('ClayBennett', 'claybennett'),
cls('ClayJones', 'clayjones'), cls('ClayJones', 'clayjones'),
cls('ClearBlueWater', 'clearbluewater'),
cls('Cleats', 'cleats'), cls('Cleats', 'cleats'),
cls('CloseToHome', 'closetohome'), cls('CloseToHome', 'closetohome'),
cls('Committed', 'committed'),
cls('Computoon', 'compu-toon'), cls('Computoon', 'compu-toon'),
cls('ConnieToTheWonnie', 'connie-to-the-wonnie'), cls('ConnieToTheWonnie', 'connie-to-the-wonnie'),
cls('Cornered', 'cornered'), cls('Cornered', 'cornered'),
cls('CowAndBoyClassics', 'cowandboy'), cls('CowAndBoyClassics', 'cowandboy'),
cls('CowTown', 'cowtown'), cls('CowTown', 'cowtown'),
cls('Crabgrass', 'crabgrass'),
cls('Crumb', 'crumb'), cls('Crumb', 'crumb'),
cls('CulDeSac', 'culdesac'), cls('CulDeSac', 'culdesac'),
cls('DaddysHome', 'daddyshome'), cls('DaddysHome', 'daddyshome'),
@ -143,6 +152,7 @@ class GoComics(_ParserScraper):
cls('DanWasserman', 'danwasserman'), cls('DanWasserman', 'danwasserman'),
cls('DarkSideOfTheHorse', 'darksideofthehorse'), cls('DarkSideOfTheHorse', 'darksideofthehorse'),
cls('DeepDarkFears', 'deep-dark-fears'), cls('DeepDarkFears', 'deep-dark-fears'),
cls('DeFlocked', 'deflocked'),
cls('DiamondLil', 'diamondlil'), cls('DiamondLil', 'diamondlil'),
cls('DickTracy', 'dicktracy'), cls('DickTracy', 'dicktracy'),
cls('DilbertClassics', 'dilbert-classics'), cls('DilbertClassics', 'dilbert-classics'),
@ -155,12 +165,9 @@ class GoComics(_ParserScraper):
cls('DoodleForFood', 'doodle-for-food'), cls('DoodleForFood', 'doodle-for-food'),
cls('DoodleTown', 'doodle-town'), cls('DoodleTown', 'doodle-town'),
cls('Doonesbury', 'doonesbury'), cls('Doonesbury', 'doonesbury'),
cls('DorrisMcComics', 'dorris-mccomics'),
cls('Drabble', 'drabble'), cls('Drabble', 'drabble'),
cls('DragonGirl', 'dragon-girl'),
cls('DrewSheneman', 'drewsheneman'), cls('DrewSheneman', 'drewsheneman'),
cls('Drive', 'drive'), cls('Drive', 'drive'),
cls('DudeAndDude', 'dudedude'),
cls('DumbwichCastle', 'dumbwich-castle'), cls('DumbwichCastle', 'dumbwich-castle'),
cls('EdgeCity', 'edge-city'), cls('EdgeCity', 'edge-city'),
cls('EdgeOfAdventure', 'edge-of-adventure'), cls('EdgeOfAdventure', 'edge-of-adventure'),
@ -168,12 +175,11 @@ class GoComics(_ParserScraper):
cls('ElCafDePoncho', 'el-cafe-de-poncho', 'es'), cls('ElCafDePoncho', 'el-cafe-de-poncho', 'es'),
cls('EmmyLou', 'emmy-lou'), cls('EmmyLou', 'emmy-lou'),
cls('Endtown', 'endtown'), cls('Endtown', 'endtown'),
cls('EricTheCircle', 'eric-the-circle'),
cls('EverydayPeopleCartoons', 'everyday-people-cartoons'), cls('EverydayPeopleCartoons', 'everyday-people-cartoons'),
cls('Eyebeam', 'eyebeam'), cls('Eyebeam', 'eyebeam'),
cls('FacesOfTheNewsByKerryWaghorn', 'facesinthenews'), cls('EyebeamClassic', 'eyebeam-classic'),
cls('FamilyTree', 'familytree'),
cls('FalseKnees', 'false-knees'), cls('FalseKnees', 'false-knees'),
cls('FamilyTree', 'familytree'),
cls('Farcus', 'farcus'), cls('Farcus', 'farcus'),
cls('FatCats', 'fat-cats'), cls('FatCats', 'fat-cats'),
cls('FloAndFriends', 'floandfriends'), cls('FloAndFriends', 'floandfriends'),
@ -181,7 +187,6 @@ class GoComics(_ParserScraper):
cls('FoolishMortals', 'foolish-mortals'), cls('FoolishMortals', 'foolish-mortals'),
cls('ForBetterOrForWorse', 'forbetterorforworse'), cls('ForBetterOrForWorse', 'forbetterorforworse'),
cls('ForHeavensSake', 'forheavenssake'), cls('ForHeavensSake', 'forheavenssake'),
cls('FortKnox', 'fortknox'),
cls('FourEyes', 'four-eyes'), cls('FourEyes', 'four-eyes'),
cls('FowlLanguage', 'fowl-language'), cls('FowlLanguage', 'fowl-language'),
cls('FoxTrot', 'foxtrot'), cls('FoxTrot', 'foxtrot'),
@ -197,31 +202,28 @@ class GoComics(_ParserScraper):
cls('FrogApplause', 'frogapplause'), cls('FrogApplause', 'frogapplause'),
cls('Garfield', 'garfield'), cls('Garfield', 'garfield'),
cls('GarfieldClassics', 'garfield-classics'), cls('GarfieldClassics', 'garfield-classics'),
cls('GarfieldEnEspanol', 'garfieldespanol%20', 'es'), cls('GarfieldEnEspanol', 'garfieldespanol', 'es'),
cls('GarfieldMinusGarfield', 'garfieldminusgarfield'),
cls('GaryMarkstein', 'garymarkstein'), cls('GaryMarkstein', 'garymarkstein'),
cls('GaryVarvel', 'garyvarvel'), cls('GaryVarvel', 'garyvarvel'),
cls('GasolineAlley', 'gasolinealley'), cls('GasolineAlley', 'gasolinealley'),
cls('Gaturro', 'gaturro', 'es'),
cls('Geech', 'geech'), cls('Geech', 'geech'),
cls('GetALife', 'getalife'), cls('GetALife', 'getalife'),
cls('GetFuzzy', 'getfuzzy'), cls('GetFuzzy', 'getfuzzy'),
cls('Gil', 'gil'), cls('Gil', 'gil'),
cls('GilThorp', 'gilthorp'), cls('GilThorp', 'gilthorp'),
cls('GingerMeggs', 'gingermeggs'), cls('GingerMeggs', 'gingermeggs'),
cls('GingerMeggsEnEspanol', 'gingermeggs-espanol', 'es'),
cls('GlasbergenCartoons', 'glasbergen-cartoons'), cls('GlasbergenCartoons', 'glasbergen-cartoons'),
cls('GManWebcomics', 'g-man-webcomics'), cls('GManWebcomics', 'g-man-webcomics'),
cls('GnomeSyndicate', 'gnome-syndicate'), cls('GnomeSyndicate', 'gnome-syndicate'),
cls('Goats', 'goats'), cls('Goats', 'goats'),
cls('GoComicsFanArt', 'fan-art'), cls('GoComicsFanArt', 'fan-art'),
cls('Graffiti', 'graffiti'),
cls('GrandAvenue', 'grand-avenue'), cls('GrandAvenue', 'grand-avenue'),
cls('GrayMatters', 'gray-matters'), cls('GrayMatters', 'gray-matters'),
cls('GreenHumour', 'green-humour'), cls('GreenHumour', 'green-humour'),
cls('HaikuEwe', 'haikuewe'), cls('HaircutPractice', 'haircut-practice'),
cls('HalfFull', 'half-full'), cls('HalfFull', 'half-full'),
cls('Harley', 'harley'), cls('Harley', 'harley'),
cls('HealthCapsules', 'healthcapsules'),
cls('HeartOfTheCity', 'heartofthecity'), cls('HeartOfTheCity', 'heartofthecity'),
cls('Heathcliff', 'heathcliff'), cls('Heathcliff', 'heathcliff'),
cls('HeathcliffEnEspanol', 'heathcliffespanol', 'es'), cls('HeathcliffEnEspanol', 'heathcliffespanol', 'es'),
@ -230,6 +232,7 @@ class GoComics(_ParserScraper):
cls('Herman', 'herman'), cls('Herman', 'herman'),
cls('HomeAndAway', 'homeandaway'), cls('HomeAndAway', 'homeandaway'),
cls('HotComicsForCoolPeople', 'hot-comics-for-cool-people'), cls('HotComicsForCoolPeople', 'hot-comics-for-cool-people'),
cls('HowToCat', 'how-to-cat'),
cls('HUBRIS', 'hubris'), cls('HUBRIS', 'hubris'),
cls('HumanCull', 'human-cull'), cls('HumanCull', 'human-cull'),
cls('HutchOwen', 'hutch-owen'), cls('HutchOwen', 'hutch-owen'),
@ -243,11 +246,11 @@ class GoComics(_ParserScraper):
cls('InvisibleBread', 'invisible-bread'), cls('InvisibleBread', 'invisible-bread'),
cls('ItsAllAboutYou', 'itsallaboutyou'), cls('ItsAllAboutYou', 'itsallaboutyou'),
cls('JackOhman', 'jackohman'), cls('JackOhman', 'jackohman'),
cls('JakeLikesOnions', 'jake-likes-onions'),
cls('JanesWorld', 'janesworld'), cls('JanesWorld', 'janesworld'),
cls('JeffDanziger', 'jeffdanziger'), cls('JeffDanziger', 'jeffdanziger'),
cls('JeffStahler', 'jeffstahler'), cls('JeffStahler', 'jeffstahler'),
cls('JenSorensen', 'jen-sorensen'), cls('JenSorensen', 'jen-sorensen'),
cls('JerryHolbert', 'jerryholbert'),
cls('JimBentonCartoons', 'jim-benton-cartoons'), cls('JimBentonCartoons', 'jim-benton-cartoons'),
cls('JimMorin', 'jimmorin'), cls('JimMorin', 'jimmorin'),
cls('JimsJournal', 'jimsjournal'), cls('JimsJournal', 'jimsjournal'),
@ -257,15 +260,14 @@ class GoComics(_ParserScraper):
cls('JoeyAlisonSayersComics', 'joey-alison-sayers-comics'), cls('JoeyAlisonSayersComics', 'joey-alison-sayers-comics'),
cls('JohnDeering', 'johndeering'), cls('JohnDeering', 'johndeering'),
cls('JumpStart', 'jumpstart'), cls('JumpStart', 'jumpstart'),
cls('JunkDrawer', 'junk-drawer'),
cls('JustoYFranco', 'justo-y-franco', 'es'), cls('JustoYFranco', 'justo-y-franco', 'es'),
cls('JustSayUncle', 'just-say-uncle'), cls('JustSayUncle', 'just-say-uncle'),
cls('KenCatalino', 'kencatalino'), cls('KenCatalino', 'kencatalino'),
cls('KevinKallaugher', 'kevinkallaugher'), cls('KevinKallaugher', 'kal'),
cls('KevinNecessaryEditorialCartoons', 'kevin-necessary-editorial-cartoons'),
cls('KidBeowulf', 'kid-beowulf'), cls('KidBeowulf', 'kid-beowulf'),
cls('KidSpot', 'kidspot'),
cls('KidTown', 'kidtown'),
cls('KitchenCapers', 'kitchen-capers'), cls('KitchenCapers', 'kitchen-capers'),
cls('KitNCarlyle', 'kitncarlyle'),
cls('Kliban', 'kliban'), cls('Kliban', 'kliban'),
cls('KlibansCats', 'klibans-cats'), cls('KlibansCats', 'klibans-cats'),
cls('LaCucaracha', 'lacucaracha'), cls('LaCucaracha', 'lacucaracha'),
@ -275,9 +277,11 @@ class GoComics(_ParserScraper):
cls('LardsWorldPeaceTips', 'lards-world-peace-tips'), cls('LardsWorldPeaceTips', 'lards-world-peace-tips'),
cls('LasHermanasStone', 'stonesoup_espanol', 'es'), cls('LasHermanasStone', 'stonesoup_espanol', 'es'),
cls('LastKiss', 'lastkiss'), cls('LastKiss', 'lastkiss'),
cls('LaughingRedheadComics', 'laughing-redhead-comics'),
cls('LayLines', 'lay-lines'), cls('LayLines', 'lay-lines'),
cls('LearnToSpeakCat', 'learn-to-speak-cat'), cls('LearnToSpeakCat', 'learn-to-speak-cat'),
cls('LibertyMeadows', 'libertymeadows'), cls('LibertyMeadows', 'libertymeadows'),
cls('LifeOnEarth', 'life-on-earth'),
cls('LilAbner', 'lil-abner'), cls('LilAbner', 'lil-abner'),
cls('Lio', 'lio'), cls('Lio', 'lio'),
cls('LioEnEspanol', 'lioespanol', 'es'), cls('LioEnEspanol', 'lioespanol', 'es'),
@ -285,20 +289,21 @@ class GoComics(_ParserScraper):
cls('LittleDogLost', 'littledoglost'), cls('LittleDogLost', 'littledoglost'),
cls('LittleFriedChickenAndSushi', 'little-fried-chicken-and-sushi'), cls('LittleFriedChickenAndSushi', 'little-fried-chicken-and-sushi'),
cls('LittleNemo', 'little-nemo'), cls('LittleNemo', 'little-nemo'),
cls('LizClimoCartoons', 'liz-climo-cartoons'),
cls('Lola', 'lola'), cls('Lola', 'lola'),
cls('LolaEnEspanol', 'lola-en-espanol', 'es'), cls('LolaEnEspanol', 'lola-en-espanol', 'es'),
cls('LongStoryShort', 'long-story-short'),
cls('LooksGoodOnPaper', 'looks-good-on-paper'), cls('LooksGoodOnPaper', 'looks-good-on-paper'),
cls('LooseParts', 'looseparts'), cls('LooseParts', 'looseparts'),
cls('LosOsorios', 'los-osorios', 'es'), cls('LosOsorios', 'los-osorios', 'es'),
cls('LostSheep', 'lostsheep'), cls('LostSheep', 'lostsheep'),
cls('LostSideOfSuburbia', 'lostsideofsuburbia'),
cls('Luann', 'luann'), cls('Luann', 'luann'),
cls('LuannAgainn', 'luann-againn'), cls('LuannAgainn', 'luann-againn'),
cls('LuannEnEspanol', 'luannspanish', 'es'), cls('LuannEnEspanol', 'luannspanish', 'es'),
cls('LuckyCow', 'luckycow'), cls('LuckyCow', 'luckycow'),
cls('LugNuts', 'lug-nuts'), cls('LugNuts', 'lug-nuts'),
cls('Lunarbaboon', 'lunarbaboon'), cls('Lunarbaboon', 'lunarbaboon'),
cls('MagicInAMinute', 'magicinaminute'), cls('M2Bulls', 'm2bulls'),
cls('Magnificatz', 'magnificatz'), cls('Magnificatz', 'magnificatz'),
cls('Maintaining', 'maintaining'), cls('Maintaining', 'maintaining'),
cls('MakingIt', 'making-it'), cls('MakingIt', 'making-it'),
@ -308,15 +313,15 @@ class GoComics(_ParserScraper):
cls('MattBors', 'matt-bors'), cls('MattBors', 'matt-bors'),
cls('MattDavies', 'mattdavies'), cls('MattDavies', 'mattdavies'),
cls('MattWuerker', 'mattwuerker'), cls('MattWuerker', 'mattwuerker'),
cls('MazeToonsPuzzle', 'mazetoons-puzzle'),
cls('MediumLarge', 'medium-large'), cls('MediumLarge', 'medium-large'),
cls('MegClassics', 'meg-classics'), cls('MessycowComics', 'messy-cow'),
cls('MichaelAndrew', 'michael-andrew'), cls('MexikidStories', 'mexikid-stories'),
cls('MichaelRamirez', 'michaelramirez'), cls('MichaelRamirez', 'michaelramirez'),
cls('Microcosm', 'microcosm'),
cls('MikeDuJour', 'mike-du-jour'), cls('MikeDuJour', 'mike-du-jour'),
cls('MikeLester', 'mike-lester'), cls('MikeLester', 'mike-lester'),
cls('MikeLuckovich', 'mikeluckovich'), cls('MikeLuckovich', 'mikeluckovich'),
cls('MissPeach', 'miss-peach'),
cls('Mo', 'mo'),
cls('ModeratelyConfused', 'moderately-confused'), cls('ModeratelyConfused', 'moderately-confused'),
cls('Momma', 'momma'), cls('Momma', 'momma'),
cls('MomsCancer', 'moms-cancer'), cls('MomsCancer', 'moms-cancer'),
@ -327,6 +332,7 @@ class GoComics(_ParserScraper):
cls('MustardAndBoloney', 'mustard-and-boloney'), cls('MustardAndBoloney', 'mustard-and-boloney'),
cls('MuttAndJeff', 'muttandjeff'), cls('MuttAndJeff', 'muttandjeff'),
cls('MyCageNewAndOld', 'mycage'), cls('MyCageNewAndOld', 'mycage'),
cls('MyDadIsDracula', 'my-dad-is-dracula'),
cls('MythTickle', 'mythtickle'), cls('MythTickle', 'mythtickle'),
cls('Nancy', 'nancy'), cls('Nancy', 'nancy'),
cls('NancyClassics', 'nancy-classics'), cls('NancyClassics', 'nancy-classics'),
@ -348,18 +354,17 @@ class GoComics(_ParserScraper):
cls('OneBigHappy', 'onebighappy'), cls('OneBigHappy', 'onebighappy'),
cls('OrdinaryBill', 'ordinary-bill'), cls('OrdinaryBill', 'ordinary-bill'),
cls('OriginsOfTheSundayComics', 'origins-of-the-sunday-comics'), cls('OriginsOfTheSundayComics', 'origins-of-the-sunday-comics'),
cls('OurSuperAdventure', 'our-super-adventure'),
cls('Outland', 'outland'),
cls('OutOfTheGenePoolReRuns', 'outofthegenepool'), cls('OutOfTheGenePoolReRuns', 'outofthegenepool'),
cls('Overboard', 'overboard'), cls('Overboard', 'overboard'),
cls('OverboardEnEspanol', 'overboardespanol', 'es'), cls('OverboardEnEspanol', 'overboardespanol', 'es'),
cls('OverTheHedge', 'overthehedge'), cls('OverTheHedge', 'overthehedge'),
cls('Owlturd', 'owlturd'),
cls('OzyAndMillie', 'ozy-and-millie'), cls('OzyAndMillie', 'ozy-and-millie'),
cls('PatOliphant', 'patoliphant'), cls('PatOliphant', 'patoliphant'),
cls('PaulSzep', 'paulszep'),
cls('PCAndPixel', 'pcandpixel'), cls('PCAndPixel', 'pcandpixel'),
cls('Peanuts', 'peanuts'), cls('Peanuts', 'peanuts'),
cls('PeanutsBegins', 'peanuts-begins'), cls('PeanutsBegins', 'peanuts-begins'),
cls('PeanutsEnEspanol', 'peanuts-espanol', 'es'),
cls('PearlsBeforeSwine', 'pearlsbeforeswine'), cls('PearlsBeforeSwine', 'pearlsbeforeswine'),
cls('Periquita', 'periquita', 'es'), cls('Periquita', 'periquita', 'es'),
cls('PerlasParaLosCerdos', 'perlas-para-los-cerdos', 'es'), cls('PerlasParaLosCerdos', 'perlas-para-los-cerdos', 'es'),
@ -369,9 +374,8 @@ class GoComics(_ParserScraper):
cls('Pibgorn', 'pibgorn'), cls('Pibgorn', 'pibgorn'),
cls('PibgornSketches', 'pibgornsketches'), cls('PibgornSketches', 'pibgornsketches'),
cls('Pickles', 'pickles'), cls('Pickles', 'pickles'),
cls('PicturesInBoxes', 'pictures-in-boxes'),
cls('PieComic', 'pie-comic'),
cls('Pinkerton', 'pinkerton'), cls('Pinkerton', 'pinkerton'),
cls('PirateMike', 'pirate-mike'),
cls('PleaseListenToMe', 'please-listen-to-me'), cls('PleaseListenToMe', 'please-listen-to-me'),
cls('Pluggers', 'pluggers'), cls('Pluggers', 'pluggers'),
cls('PoochCafe', 'poochcafe'), cls('PoochCafe', 'poochcafe'),
@ -390,15 +394,15 @@ class GoComics(_ParserScraper):
cls('RealLifeAdventures', 'reallifeadventures'), cls('RealLifeAdventures', 'reallifeadventures'),
cls('RebeccaHendin', 'rebecca-hendin'), cls('RebeccaHendin', 'rebecca-hendin'),
cls('RedAndRover', 'redandrover'), cls('RedAndRover', 'redandrover'),
cls('ReplyAll', 'replyall'), cls('RedMeat', 'redmeat'),
cls('ReplyAllLite', 'reply-all-lite'),
cls('RichardsPoorAlmanac', 'richards-poor-almanac'), cls('RichardsPoorAlmanac', 'richards-poor-almanac'),
cls('RipHaywire', 'riphaywire'), cls('RipHaywire', 'riphaywire'),
cls('RipleysAunqueUstedNoLoCrea', 'ripleys-en-espanol', 'es'),
cls('RipleysBelieveItOrNot', 'ripleysbelieveitornot'), cls('RipleysBelieveItOrNot', 'ripleysbelieveitornot'),
cls('RipleysBelieveItOrNotSpanish', 'ripleys-en-espanol', 'es'),
cls('RobbieAndBobby', 'robbie-and-bobby'), cls('RobbieAndBobby', 'robbie-and-bobby'),
cls('RobertAriail', 'robert-ariail'), cls('RobertAriail', 'robert-ariail'),
cls('RobRogers', 'robrogers'), cls('RobRogers', 'robrogers'),
cls('Rosebuds', 'rosebuds'),
cls('RoseIsRose', 'roseisrose'), cls('RoseIsRose', 'roseisrose'),
cls('Rubes', 'rubes'), cls('Rubes', 'rubes'),
cls('RudyPark', 'rudypark'), cls('RudyPark', 'rudypark'),
@ -409,16 +413,17 @@ class GoComics(_ParserScraper):
cls('ScenesFromAMultiverse', 'scenes-from-a-multiverse'), cls('ScenesFromAMultiverse', 'scenes-from-a-multiverse'),
cls('ScottStantis', 'scottstantis'), cls('ScottStantis', 'scottstantis'),
cls('Sheldon', 'sheldon'), cls('Sheldon', 'sheldon'),
cls('ShenComix', 'shen-comix'),
cls('ShirleyAndSonClassics', 'shirley-and-son-classics'), cls('ShirleyAndSonClassics', 'shirley-and-son-classics'),
cls('Shoe', 'shoe'), cls('Shoe', 'shoe'),
cls('Shoecabbage', 'shoecabbage'), cls('Shoecabbage', 'shoecabbage'),
cls('Shortcuts', 'shortcuts'),
cls('ShutterbugFollies', 'shutterbug-follies'), cls('ShutterbugFollies', 'shutterbug-follies'),
cls('SigneWilkinson', 'signewilkinson'), cls('SigneWilkinson', 'signewilkinson'),
cls('SketchsharkComics', 'sketchshark-comics'), cls('SketchsharkComics', 'sketchshark-comics'),
cls('SkinHorse', 'skinhorse'), cls('SkinHorse', 'skinhorse'),
cls('Skippy', 'skippy'), cls('Skippy', 'skippy'),
cls('SmallPotatoes', 'small-potatoes'), cls('SmallPotatoes', 'small-potatoes'),
cls('SnoopyEnEspanol', 'peanuts-espanol', 'es'),
cls('Snowflakes', 'snowflakes'), cls('Snowflakes', 'snowflakes'),
cls('SnowSez', 'snow-sez'), cls('SnowSez', 'snow-sez'),
cls('Speechless', 'speechless'), cls('Speechless', 'speechless'),
@ -437,6 +442,7 @@ class GoComics(_ParserScraper):
cls('SunnyStreet', 'sunny-street'), cls('SunnyStreet', 'sunny-street'),
cls('SunshineState', 'sunshine-state'), cls('SunshineState', 'sunshine-state'),
cls('SuperFunPakComix', 'super-fun-pak-comix'), cls('SuperFunPakComix', 'super-fun-pak-comix'),
cls('SwanEaters', 'swan-eaters'),
cls('SweetAndSourPork', 'sweet-and-sour-pork'), cls('SweetAndSourPork', 'sweet-and-sour-pork'),
cls('Sylvia', 'sylvia'), cls('Sylvia', 'sylvia'),
cls('TankMcNamara', 'tankmcnamara'), cls('TankMcNamara', 'tankmcnamara'),
@ -444,25 +450,22 @@ class GoComics(_ParserScraper):
cls('TarzanEnEspanol', 'tarzan-en-espanol', 'es'), cls('TarzanEnEspanol', 'tarzan-en-espanol', 'es'),
cls('TedRall', 'ted-rall'), cls('TedRall', 'ted-rall'),
cls('TenCats', 'ten-cats'), cls('TenCats', 'ten-cats'),
cls('TextsFromMittens', 'texts-from-mittens'),
cls('Thatababy', 'thatababy'), cls('Thatababy', 'thatababy'),
cls('ThatIsPriceless', 'that-is-priceless'), cls('ThatIsPriceless', 'that-is-priceless'),
cls('ThatNewCarlSmell', 'that-new-carl-smell'), cls('ThatNewCarlSmell', 'that-new-carl-smell'),
cls('ThatsLife', 'thats-life'),
cls('TheAcademiaWaltz', 'academiawaltz'), cls('TheAcademiaWaltz', 'academiawaltz'),
cls('TheAdventuresOfBusinessCat', 'the-adventures-of-business-cat'), cls('TheAdventuresOfBusinessCat', 'the-adventures-of-business-cat'),
cls('TheArgyleSweater', 'theargylesweater'), cls('TheArgyleSweater', 'theargylesweater'),
cls('TheAwkwardYeti', 'the-awkward-yeti'), cls('TheAwkwardYeti', 'the-awkward-yeti'),
cls('TheBarn', 'thebarn'), cls('TheBarn', 'thebarn'),
cls('TheBentPinky', 'the-bent-pinky'), cls('TheBentPinky', 'the-bent-pinky'),
cls('TheBestMedicineCartoon', 'the-best-medicine'),
cls('TheBigPicture', 'thebigpicture'), cls('TheBigPicture', 'thebigpicture'),
cls('TheBoondocks', 'boondocks'), cls('TheBoondocks', 'boondocks'),
cls('TheBornLoser', 'the-born-loser'), cls('TheBornLoser', 'the-born-loser'),
cls('TheBuckets', 'thebuckets'), cls('TheBuckets', 'thebuckets'),
cls('TheCity', 'thecity'), cls('TheCity', 'thecity'),
cls('TheComicStripThatHasAFinaleEveryDay', 'the-comic-strip-that-has-a-finale-every-day'), 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('TheDailyDrawing', 'the-daily-drawing'),
cls('TheDinetteSet', 'dinetteset'), cls('TheDinetteSet', 'dinetteset'),
cls('TheDoozies', 'thedoozies'), cls('TheDoozies', 'thedoozies'),
@ -470,31 +473,32 @@ class GoComics(_ParserScraper):
cls('TheElderberries', 'theelderberries'), cls('TheElderberries', 'theelderberries'),
cls('TheFlyingMcCoys', 'theflyingmccoys'), cls('TheFlyingMcCoys', 'theflyingmccoys'),
cls('TheFuscoBrothers', 'thefuscobrothers'), cls('TheFuscoBrothers', 'thefuscobrothers'),
cls('TheGentlemansArmchair', 'the-gentlemans-armchair'),
cls('TheGrizzwells', 'thegrizzwells'), cls('TheGrizzwells', 'thegrizzwells'),
cls('TheHumbleStumble', 'humble-stumble'), cls('TheHumbleStumble', 'humble-stumble'),
cls('TheKChronicles', 'thekchronicles'), cls('TheKChronicles', 'thekchronicles'),
cls('TheKnightLife', 'theknightlife'), cls('TheKnightLife', 'theknightlife'),
cls('TheLastMechanicalMonster', 'the-last-mechanical-monster'),
cls('TheLeftyBoscoPictureShow', 'leftyboscopictureshow'), cls('TheLeftyBoscoPictureShow', 'leftyboscopictureshow'),
cls('TheLostBear', 'the-lost-bear'),
cls('TheMartianConfederacy', 'the-martian-confederacy'), cls('TheMartianConfederacy', 'the-martian-confederacy'),
cls('TheMeaningOfLila', 'meaningoflila'), cls('TheMeaningOfLila', 'meaningoflila'),
cls('TheMiddleAge', 'the-middle-age'),
cls('TheMiddletons', 'themiddletons'), cls('TheMiddletons', 'themiddletons'),
cls('TheNorm40', 'the-norm-4-0'), cls('TheNorm40', 'the-norm-4-0'),
cls('TheNormClassics', 'thenorm'), cls('TheNormClassics', 'thenorm'),
cls('TheOtherCoast', 'theothercoast'), cls('TheOtherCoast', 'theothercoast'),
cls('TheOtherEnd', 'the-other-end'), cls('TheOtherEnd', 'the-other-end'),
cls('TheQuixoteSyndrome', 'the-quixote-syndrome'), cls('TheQuixoteSyndrome', 'the-quixote-syndrome'),
cls('TheSunshineClub', 'the-sunshine-club'),
cls('TheUpsideDownWorldOfGustaveVerbeek', 'upside-down-world-of-gustave-verbeek'), cls('TheUpsideDownWorldOfGustaveVerbeek', 'upside-down-world-of-gustave-verbeek'),
cls('TheWanderingMelon', 'the-wandering-melon'), cls('TheWanderingMelon', 'the-wandering-melon'),
cls('TheWizardOfIdSpanish', 'wizardofidespanol', 'es'), cls('TheWizardOfIdSpanish', 'wizardofidespanol', 'es'),
cls('TheWorriedWell', 'the-worried-well'), cls('TheWorriedWell', 'the-worried-well'),
cls('think', 'think'), cls('think', 'think'),
cls('ThinLines', 'thinlines'), cls('ThinLines', 'thinlines'),
cls('TimCampbell', 'tim-campbell'),
cls('TimEagan', 'tim-eagan'), cls('TimEagan', 'tim-eagan'),
cls('TinySepuku', 'tinysepuku'), cls('TinySepuku', 'tinysepuku'),
cls('TOBY', 'toby'), cls('TOBY', 'toby'),
cls('TodaysSzep', 'todays-szep'),
cls('TomTheDancingBug', 'tomthedancingbug'), cls('TomTheDancingBug', 'tomthedancingbug'),
cls('TomToles', 'tomtoles'), cls('TomToles', 'tomtoles'),
cls('TooMuchCoffeeMan', 'toomuchcoffeeman'), cls('TooMuchCoffeeMan', 'toomuchcoffeeman'),
@ -504,10 +508,9 @@ class GoComics(_ParserScraper):
cls('TruthFacts', 'truth-facts'), cls('TruthFacts', 'truth-facts'),
cls('Tutelandia', 'tutelandia', 'es'), cls('Tutelandia', 'tutelandia', 'es'),
cls('TwoPartyOpera', 'two-party-opera'), cls('TwoPartyOpera', 'two-party-opera'),
cls('UncleArtsFunland', 'uncleartsfunland'), cls('UnderpantsAndOverbites', 'underpants-and-overbites'),
cls('UnderstandingChaos', 'understanding-chaos'), cls('UnderstandingChaos', 'understanding-chaos'),
cls('UnstrangePhenomena', 'unstrange-phenomena'), cls('UnstrangePhenomena', 'unstrange-phenomena'),
cls('USAcres', 'us-acres'),
cls('ViewsAfrica', 'viewsafrica'), cls('ViewsAfrica', 'viewsafrica'),
cls('ViewsAmerica', 'viewsamerica'), cls('ViewsAmerica', 'viewsamerica'),
cls('ViewsAsia', 'viewsasia'), cls('ViewsAsia', 'viewsasia'),
@ -521,8 +524,11 @@ class GoComics(_ParserScraper):
cls('WaltHandelsman', 'walthandelsman'), cls('WaltHandelsman', 'walthandelsman'),
cls('Warped', 'warped'), cls('Warped', 'warped'),
cls('WatchYourHead', 'watchyourhead'), cls('WatchYourHead', 'watchyourhead'),
cls('Wawawiwa', 'wawawiwa'),
cls('WaynoVision', 'waynovision'), cls('WaynoVision', 'waynovision'),
cls('WebcomicName', 'webcomic-name'),
cls('WeePals', 'weepals'), cls('WeePals', 'weepals'),
cls('WhyattCartoons', 'whyatt-cartoons'),
cls('Widdershins', 'widdershins'), cls('Widdershins', 'widdershins'),
cls('WideOpen', 'wide-open'), cls('WideOpen', 'wide-open'),
cls('WinLoseDrew', 'drewlitton'), cls('WinLoseDrew', 'drewlitton'),
@ -532,11 +538,11 @@ class GoComics(_ParserScraper):
cls('Wondermark', 'wondermark'), cls('Wondermark', 'wondermark'),
cls('WorkingDaze', 'working-daze'), cls('WorkingDaze', 'working-daze'),
cls('WorkingItOut', 'workingitout'), cls('WorkingItOut', 'workingitout'),
cls('WorldOfWonder', 'world-of-wonder'),
cls('WrongHands', 'wrong-hands'), cls('WrongHands', 'wrong-hands'),
cls('WTDuck', 'wtduck'), cls('WTDuck', 'wtduck'),
cls('WuMo', 'wumo'), cls('WuMo', 'wumo'),
cls('WumoEnEspanol', 'wumoespanol', 'es'), cls('WumoEnEspanol', 'wumoespanol', 'es'),
cls('Yaffle', 'yaffle'),
cls('YesImHotInThis', 'yesimhotinthis'), cls('YesImHotInThis', 'yesimhotinthis'),
cls('ZackHill', 'zackhill'), cls('ZackHill', 'zackhill'),
cls('ZenPencils', 'zen-pencils'), cls('ZenPencils', 'zen-pencils'),

View file

@ -359,7 +359,6 @@ class Removed(Scraper):
cls('GoComics/Putz'), cls('GoComics/Putz'),
cls('GoComics/QuestionsForKids'), cls('GoComics/QuestionsForKids'),
cls('GoComics/RandomActsofNancy'), cls('GoComics/RandomActsofNancy'),
cls('GoComics/RedMeat'),
cls('GoComics/RicigsToonTrivia'), cls('GoComics/RicigsToonTrivia'),
cls('GoComics/RogueSymmetry'), cls('GoComics/RogueSymmetry'),
cls('GoComics/Sabine'), cls('GoComics/Sabine'),
@ -609,7 +608,51 @@ class Removed(Scraper):
cls('WotNow'), cls('WotNow'),
# Removed in 3.0 # Removed in 3.0
cls('GoComics/2CowsAndAChicken'),
cls('GoComics/Bewley'),
cls('GoComics/Biographic'),
cls('GoComics/CapsulasMedicas'),
cls('GoComics/ClearBlueWater'),
cls('GoComics/Committed'),
cls('GoComics/DorrisMcComics'),
cls('GoComics/DragonGirl'),
cls('GoComics/DudeAndDude'),
cls('GoComics/EricTheCircle'),
cls('GoComics/FacesOfTheNewsByKerryWaghorn'),
cls('GoComics/FortKnox'),
cls('GoComics/GarfieldMinusGarfield'),
cls('GoComics/Gaturro'),
cls('GoComics/Graffiti'),
cls('GoComics/HaikuEwe'),
cls('GoComics/HealthCapsules'),
cls('GoComics/JerryHolbert'),
cls('GoComics/KidSpot'),
cls('GoComics/KidTown'),
cls('GoComics/KitNCarlyle'),
cls('GoComics/LostSideOfSuburbia'),
cls('GoComics/MagicInAMinute'),
cls('GoComics/MazeToonsPuzzle'),
cls('GoComics/MegClassics'),
cls('GoComics/MichaelAndrew'),
cls('GoComics/Microcosm'),
cls('GoComics/PaulSzep'),
cls('GoComics/PicturesInBoxes'),
cls('GoComics/PieComic'),
cls('GoComics/ReplyAll'),
cls('GoComics/ReplyAllLite'),
cls('GoComics/Shortcuts'),
cls('GoComics/ThatsLife'),
cls('GoComics/TheBestMedicineCartoon'),
cls('GoComics/TheConjurers'),
cls('GoComics/TheCreeps'),
cls('GoComics/TheGentlemansArmchair'),
cls('GoComics/TheLostBear'),
cls('GoComics/TheSunshineClub'),
cls('GoComics/UncleArtsFunland'),
cls('GoComics/USAcres'),
cls('GoComics/WorldOfWonder'),
cls('StuffNoOneToldMe'), cls('StuffNoOneToldMe'),
) )
@ -659,7 +702,6 @@ class Renamed(Scraper):
cls('GoComics/Anecdote', 'ComicSherpa/Anecdote'), cls('GoComics/Anecdote', 'ComicSherpa/Anecdote'),
cls('GoComics/AppleCreekComics', 'ComicSherpa/AppleCreekComics'), cls('GoComics/AppleCreekComics', 'ComicSherpa/AppleCreekComics'),
cls('GoComics/BarkingCrayon', 'ComicFury/BarkingCrayon'), cls('GoComics/BarkingCrayon', 'ComicFury/BarkingCrayon'),
cls('GoComics/BatchRejection', 'ComicSherpa/BatchRejection'),
cls('GoComics/Bazoobee', 'ComicSherpa/Bazoobee'), cls('GoComics/Bazoobee', 'ComicSherpa/Bazoobee'),
cls('GoComics/Bluebonnets', 'ComicSherpa/Bluebonnets'), cls('GoComics/Bluebonnets', 'ComicSherpa/Bluebonnets'),
cls('GoComics/BlueSkiesToons', 'ComicSherpa/BlueSkiesToons'), cls('GoComics/BlueSkiesToons', 'ComicSherpa/BlueSkiesToons'),
@ -697,7 +739,6 @@ class Renamed(Scraper):
cls('GoComics/ONIONAndPEA', 'ComicSherpa/ONIONAndPEA'), cls('GoComics/ONIONAndPEA', 'ComicSherpa/ONIONAndPEA'),
cls('GoComics/PaddedCell', 'ComicSherpa/PaddedCell'), cls('GoComics/PaddedCell', 'ComicSherpa/PaddedCell'),
cls('GoComics/Peeples', 'ComicSherpa/Peeples'), cls('GoComics/Peeples', 'ComicSherpa/Peeples'),
cls('GoComics/PirateMike', 'ComicSherpa/PirateMike'),
cls('GoComics/PoliceLimit', 'ComicSherpa/PoliceLimit'), cls('GoComics/PoliceLimit', 'ComicSherpa/PoliceLimit'),
cls('GoComics/RonWarren', 'ComicSherpa/RonWarren'), cls('GoComics/RonWarren', 'ComicSherpa/RonWarren'),
cls('GoComics/SignGarden', 'ComicSherpa/SignGarden'), cls('GoComics/SignGarden', 'ComicSherpa/SignGarden'),
@ -755,6 +796,11 @@ class Renamed(Scraper):
# Renamed in 3.0 # Renamed in 3.0
cls('CrapIDrewOnMyLunchBreak', 'WebToons/CrapIDrewOnMyLunchBreak'), cls('CrapIDrewOnMyLunchBreak', 'WebToons/CrapIDrewOnMyLunchBreak'),
cls('GoComics/BloomCounty2017', 'GoComics/BloomCounty2019'),
cls('GoComics/Cathy', 'GoComics/CathyClassics'),
cls('GoComics/Owlturd', 'GoComics/ShenComix'),
cls('GoComics/PeanutsEnEspanol', 'GoComics/SnoopyEnEspanol'),
cls('GoComics/RipleysBelieveItOrNotSpanish', 'GoComics/RipleysAunqueUstedNoLoCrea'),
cls('SmackJeeves/BlackTapestries', 'ComicFury/BlackTapestries'), cls('SmackJeeves/BlackTapestries', 'ComicFury/BlackTapestries'),
cls('SmackJeeves/FurryExperience', 'ComicFury/FurryExperience'), cls('SmackJeeves/FurryExperience', 'ComicFury/FurryExperience'),
cls('SmackJeeves/GrowingTroubles', 'ComicFury/GrowingTroubles'), cls('SmackJeeves/GrowingTroubles', 'ComicFury/GrowingTroubles'),

View file

@ -23,7 +23,7 @@ class GoComicsUpdater(ComicListUpdater):
data = self.get_url(url, expand=False) data = self.get_url(url, expand=False)
for comiclink in data.cssselect(outercss): for comiclink in data.cssselect(outercss):
link = comiclink.attrib['href'].split('/')[1] link = comiclink.attrib['href'].split('/')[1].strip()
name = comiclink.cssselect('h4')[0].text name = comiclink.cssselect('h4')[0].text
self.add_comic(name, (link, lang)) self.add_comic(name, (link, lang))

View file

@ -185,9 +185,17 @@ def asciify(name):
return re.sub("[^0-9a-zA-Z_]", "", name) return re.sub("[^0-9a-zA-Z_]", "", name)
TRANS = str.maketrans({
'&': 'And',
'@': 'At',
'ñ': 'n',
'á': 'a',
})
def format_name(text): def format_name(text):
"""Format a comic name.""" """Format a comic name."""
name = html.unescape(text) name = html.unescape(text)
name = "".join(capfirst(x) for x in name.split(" ")) name = "".join(capfirst(x) for x in name.split(" "))
name = asciify(name.replace(u'&', u'And').replace(u'@', u'At').replace('ñ', 'n')) name = asciify(name.translate(TRANS))
return name return name