Update ComicFury modules.

This commit is contained in:
Tobias Gruetzmacher 2016-10-30 10:57:50 +01:00
parent a02660a7d3
commit 3b9f30affd
4 changed files with 50 additions and 8 deletions

View file

@ -9,16 +9,33 @@ import os
from ..scraper import _ParserScraper from ..scraper import _ParserScraper
from ..helpers import bounceStarter from ..helpers import bounceStarter
from .common import xpath_class
XPATH_LINK = ('//a[contains(concat(" ", @class, " "), " comicnavlink ") ' + XPATH_LINK = '//a[%s and contains(text(), "%s")]'
'and contains(text(),"%s")]') XPATH_IMG = '//a[%s][img[contains(@alt, "%s")]]'
class ComicFury(_ParserScraper): class ComicFury(_ParserScraper):
imageSearch = ('//img[@id="comicimage"]', imageSearch = ('//img[@id="comicimage"]',
'//div[@id="comicimagewrap"]//embed') '//div[@id="comicimagewrap"]//embed')
prevSearch = ('//a[@rel="prev"]', XPATH_LINK % "Previous") prevSearch = (
nextSearch = ('//a[@rel="next"]', XPATH_LINK % "Next") '//a[contains(@title, "previous")]', # 137
'//a[@rel="prev"]',
XPATH_LINK % (xpath_class("comicnavlink"), "Previous"),
# Art, ConsolersDLC, ShutUpDiarybyBarbaraHolm, etc.
'//p[%s]/a[2]' % xpath_class('prev'),
'//a[%s]' % xpath_class('prev'), # JaquieNovemberAndTheSpookiness
# TheTempleAtFiftyFathoms
XPATH_IMG % (xpath_class("comicnavlink"), 'Previous'))
nextSearch = (
'//a[contains(@title, "next")]', # 137
'//a[@rel="next"]',
XPATH_LINK % (xpath_class("comicnavlink"), "Next"),
# Art, ConsolersDLC, ShutUpDiarybyBarbaraHolm, etc.
'//p[%s]/a[1]' % xpath_class('next'),
'//a[%s]' % xpath_class('next'), # JaquieNovemberAndTheSpookiness
# TheTempleAtFiftyFathoms
XPATH_IMG % (xpath_class("comicnavlink"), 'Next'))
help = 'Index format: n' help = 'Index format: n'
starter = bounceStarter starter = bounceStarter
@ -56,6 +73,7 @@ class ComicFury(_ParserScraper):
cls('137', '137'), cls('137', '137'),
cls('20', 'two-over-zero'), cls('20', 'two-over-zero'),
cls('20QuidAmusements', 'twentyquidamusements'), cls('20QuidAmusements', 'twentyquidamusements'),
cls('2ItMakesNoCence', 'rtyuiop'),
cls('30', '30years'), cls('30', '30years'),
cls('30DaysOfCharacters', '30days'), cls('30DaysOfCharacters', '30days'),
cls('3DGlasses', '3dglasses'), cls('3DGlasses', '3dglasses'),
@ -63,6 +81,7 @@ class ComicFury(_ParserScraper):
cls('6ColorStories', '6colorstories'), cls('6ColorStories', '6colorstories'),
cls('6Tales', 'sixtales'), cls('6Tales', 'sixtales'),
cls('933Dollars', '933dollars'), cls('933Dollars', '933dollars'),
cls('_Thetest_', 'thetest'),
cls('ABAndCComic', 'abc'), cls('ABAndCComic', 'abc'),
cls('AbbyComics', 'abbycomics'), cls('AbbyComics', 'abbycomics'),
cls('ABrickishSpaceComic', 'abrickishspacecomic'), cls('ABrickishSpaceComic', 'abrickishspacecomic'),
@ -187,6 +206,7 @@ class ComicFury(_ParserScraper):
# BeyondTheOrdinary has a duplicate in SmackJeeves/BeyondTheOrdinary # BeyondTheOrdinary has a duplicate in SmackJeeves/BeyondTheOrdinary
cls('BibleBelt', 'biblebelt'), cls('BibleBelt', 'biblebelt'),
cls('BicycleBoy', 'bicycleboy'), cls('BicycleBoy', 'bicycleboy'),
cls('BigBookOfLameJokes', 'bigbook'),
cls('BilateralComics', 'bilateralcomics'), cls('BilateralComics', 'bilateralcomics'),
cls('BiMorphon', 'bimorphon'), cls('BiMorphon', 'bimorphon'),
cls('BionicleTales', 'bionicletales'), cls('BionicleTales', 'bionicletales'),
@ -217,6 +237,7 @@ class ComicFury(_ParserScraper):
cls('Bulletproof', 'bulletproof'), cls('Bulletproof', 'bulletproof'),
cls('BunnyGoreJustice', 'bunny-gore-justice'), cls('BunnyGoreJustice', 'bunny-gore-justice'),
cls('BustySolar', 'bustysolar'), cls('BustySolar', 'bustysolar'),
cls('ButterflyAFortuitousTale', 'butterfly'),
cls('ButterflyEffect', 'thebutterflyeffect'), cls('ButterflyEffect', 'thebutterflyeffect'),
cls('BUXYAndDave', 'buxy'), cls('BUXYAndDave', 'buxy'),
cls('BuyingTime', 'buyingtime'), cls('BuyingTime', 'buyingtime'),
@ -279,6 +300,7 @@ class ComicFury(_ParserScraper):
cls('CopyPasteAndMrBenjy', 'copypasteandmrbenjy'), cls('CopyPasteAndMrBenjy', 'copypasteandmrbenjy'),
cls('Corpses', 'corpses'), cls('Corpses', 'corpses'),
# CosmicDash has a duplicate in SmackJeeves/CosmicDash # CosmicDash has a duplicate in SmackJeeves/CosmicDash
cls('Cosmos', 'planetcosmos'),
# CourageousManAdventures has a duplicate in GoComics/CourageousManAdventures # CourageousManAdventures has a duplicate in GoComics/CourageousManAdventures
cls('CowboysAndCrossovers', 'cowboysandcrossovers'), cls('CowboysAndCrossovers', 'cowboysandcrossovers'),
cls('Cowtoon', 'cowtoon'), cls('Cowtoon', 'cowtoon'),
@ -324,6 +346,7 @@ class ComicFury(_ParserScraper):
cls('DeathsLight', 'deathslight'), cls('DeathsLight', 'deathslight'),
cls('DeepBlue', 'deepblue'), cls('DeepBlue', 'deepblue'),
cls('DefineHero', 'definehero'), cls('DefineHero', 'definehero'),
cls('DELIA', 'delia'),
cls('DemasPokmonAdventure', 'nuzlocke-dema'), cls('DemasPokmonAdventure', 'nuzlocke-dema'),
# DEMENTED has a duplicate in SmackJeeves/DEMENTED # DEMENTED has a duplicate in SmackJeeves/DEMENTED
# DemonEater has a duplicate in SmackJeeves/DemonEater # DemonEater has a duplicate in SmackJeeves/DemonEater
@ -377,6 +400,7 @@ class ComicFury(_ParserScraper):
cls('ElementsOfEve', 'elementsofeve'), cls('ElementsOfEve', 'elementsofeve'),
cls('Elf', 'elf-comic'), cls('Elf', 'elf-comic'),
cls('Elsewhere', 'elsewhere'), cls('Elsewhere', 'elsewhere'),
cls('ElzeronChronicles', 'elzeronchronicles'),
cls('EmpiresOfSteam', 'empiresofsteam'), cls('EmpiresOfSteam', 'empiresofsteam'),
cls('Energize', 'energize'), cls('Energize', 'energize'),
cls('enoZone', 'xenozone'), cls('enoZone', 'xenozone'),
@ -438,6 +462,7 @@ class ComicFury(_ParserScraper):
cls('GenjiGami', 'genjigami'), cls('GenjiGami', 'genjigami'),
cls('Ghelis', 'ghelis'), cls('Ghelis', 'ghelis'),
cls('GhostGirlsClubZero', 'ghostgirlsclubzero'), cls('GhostGirlsClubZero', 'ghostgirlsclubzero'),
cls('GhostSyndrome', 'ghostsyndrome'),
cls('GiantQueenSakura', 'giantqueensakura'), cls('GiantQueenSakura', 'giantqueensakura'),
cls('GillimurphyStories', 'gillimurphy'), cls('GillimurphyStories', 'gillimurphy'),
cls('GillimurphyStoriesorig', 'gillimurphy-orig'), cls('GillimurphyStoriesorig', 'gillimurphy-orig'),
@ -506,15 +531,18 @@ class ComicFury(_ParserScraper):
cls('HyperactiveComics', 'hyperactivecomics'), cls('HyperactiveComics', 'hyperactivecomics'),
cls('ICryWhileYouSleep', 'icrywhileusleep'), cls('ICryWhileYouSleep', 'icrywhileusleep'),
cls('IDGet', 'idget'), cls('IDGet', 'idget'),
cls('IFSU', 'ifsused'),
cls('IgnitionZero', 'ignitionzero'), cls('IgnitionZero', 'ignitionzero'),
cls('IHaveNeverActuallySeenACat', 'ihaveneveractuallyseenacat'), cls('IHaveNeverActuallySeenACat', 'ihaveneveractuallyseenacat'),
cls('IlusionOfTime', 'illusionoftime'), cls('IlusionOfTime', 'illusionoftime'),
cls('Immigrant', 'immigrant'), cls('Immigrant', 'immigrant'),
cls('ImNotYourFriend', 'imnotyourfriend'),
cls('Imp', 'imp'), cls('Imp', 'imp'),
cls('ImperialEntanglements', 'imperialentanglements'), cls('ImperialEntanglements', 'imperialentanglements'),
cls('Imperium', 'imperium'), cls('Imperium', 'imperium'),
cls('IMPERIVM', 'imperivmgalactica'), cls('IMPERIVM', 'imperivmgalactica'),
cls('Impisha', 'impisha'), cls('Impisha', 'impisha'),
cls('InBloodOfColour', 'inbloodofcolour'),
cls('Indexmancave', 'indexmancave'), cls('Indexmancave', 'indexmancave'),
cls('InfraCityTheComic', 'infracity'), cls('InfraCityTheComic', 'infracity'),
cls('InkLaRue', 'inkalarue'), cls('InkLaRue', 'inkalarue'),
@ -527,7 +555,6 @@ class ComicFury(_ParserScraper):
cls('InternetSuperbuddies', 'isb'), cls('InternetSuperbuddies', 'isb'),
cls('Invicta', 'invicta'), cls('Invicta', 'invicta'),
cls('IsaacAndFriends', 'isaacandfriends'), cls('IsaacAndFriends', 'isaacandfriends'),
cls('IsItOurBones', 'iiob'),
cls('IslandOfTheMoths', 'moths'), cls('IslandOfTheMoths', 'moths'),
cls('Isonacia', 'isonacia'), cls('Isonacia', 'isonacia'),
cls('ItsComplicated', 'itscomplicated'), cls('ItsComplicated', 'itscomplicated'),
@ -746,7 +773,6 @@ class ComicFury(_ParserScraper):
cls('OnePageComicCollection', 'onepagecomiccollection'), cls('OnePageComicCollection', 'onepagecomiccollection'),
cls('OnePieceGrandLine3Point5', 'grandline3point5'), cls('OnePieceGrandLine3Point5', 'grandline3point5'),
cls('OneSided', 'one-sided'), cls('OneSided', 'one-sided'),
cls('OopsComicAdventure', 'oopscomicadventure'),
cls('OrbFragmentSlim', 'orbfragment'), cls('OrbFragmentSlim', 'orbfragment'),
cls('OrbFragmentSlimMangaSeries', 'orb-manga'), cls('OrbFragmentSlimMangaSeries', 'orb-manga'),
cls('OrganizedMess', 'organizedmess'), cls('OrganizedMess', 'organizedmess'),
@ -771,6 +797,7 @@ class ComicFury(_ParserScraper):
cls('Pegwarmers', 'pegwarmers'), cls('Pegwarmers', 'pegwarmers'),
cls('PenguinCapers', 'penguin-capers'), cls('PenguinCapers', 'penguin-capers'),
cls('PerceivablyHuman', 'perceivablyhuman'), cls('PerceivablyHuman', 'perceivablyhuman'),
cls('PerilousEndeavor', 'perilousendeavor'),
cls('PersonaForTheWin', 'personaftw'), cls('PersonaForTheWin', 'personaftw'),
cls('Perspectives', 'perspectives'), cls('Perspectives', 'perspectives'),
cls('PhantomsTrail', 'phantomstrail'), cls('PhantomsTrail', 'phantomstrail'),
@ -825,7 +852,6 @@ class ComicFury(_ParserScraper):
cls('ReiketsuouNoKimi', 'rnk'), cls('ReiketsuouNoKimi', 'rnk'),
cls('Remedy', 'remedy'), cls('Remedy', 'remedy'),
cls('RememberBedlam', 'bedlam'), cls('RememberBedlam', 'bedlam'),
cls('RemsSketchbook', 'rem-sketchbook'),
cls('RequiemsGate', 'requiemsgate'), cls('RequiemsGate', 'requiemsgate'),
cls('ReSetArt', 'resetfanarts'), cls('ReSetArt', 'resetfanarts'),
cls('ResidentWeirdo', 'residentweirdo'), cls('ResidentWeirdo', 'residentweirdo'),
@ -861,6 +887,7 @@ class ComicFury(_ParserScraper):
cls('Seed', 'seed'), cls('Seed', 'seed'),
cls('SeeYourFeels', 'seeyourfeels'), cls('SeeYourFeels', 'seeyourfeels'),
cls('SenatorSurprise', 'senatorsurprise'), cls('SenatorSurprise', 'senatorsurprise'),
cls('Sentiments', 'sentiments'),
cls('SerengettiDreams', 'serengetti'), cls('SerengettiDreams', 'serengetti'),
cls('SeriousEngineering', 'seriousengineering'), cls('SeriousEngineering', 'seriousengineering'),
cls('SerpamiaFlare', 'serpamiaflare'), cls('SerpamiaFlare', 'serpamiaflare'),
@ -928,6 +955,7 @@ class ComicFury(_ParserScraper):
cls('SundaySmash', 'sundaysmash'), cls('SundaySmash', 'sundaysmash'),
cls('Sunray', 'sunray'), cls('Sunray', 'sunray'),
cls('SuperChibiGirl', 'superchibigirl'), cls('SuperChibiGirl', 'superchibigirl'),
cls('SuperGalaxyKnightsDeluxeR', 'sgkdr'),
cls('SuperheroTales', 'superherobeingsuper'), cls('SuperheroTales', 'superherobeingsuper'),
# SupermassiveBlackHoleA has a duplicate in SmackJeeves/SupermassiveBlackHoleA # SupermassiveBlackHoleA has a duplicate in SmackJeeves/SupermassiveBlackHoleA
cls('SuperShashi', 'supershashi'), cls('SuperShashi', 'supershashi'),
@ -944,6 +972,7 @@ class ComicFury(_ParserScraper):
cls('TalesOfTheGalli', 'totg-mirror'), cls('TalesOfTheGalli', 'totg-mirror'),
cls('TamTeamAdventures', 'tamteam'), cls('TamTeamAdventures', 'tamteam'),
cls('TangledMessTheGirlyNerdyTerriblyStrangeJournalComi', 'tangledmess'), cls('TangledMessTheGirlyNerdyTerriblyStrangeJournalComi', 'tangledmess'),
cls('TangledRiver', 'tangled-river'),
cls('Tardaasa', 'tardaasa'), cls('Tardaasa', 'tardaasa'),
cls('TBA', 'tba'), cls('TBA', 'tba'),
cls('TBAold', 'tba-old'), cls('TBAold', 'tba-old'),
@ -969,6 +998,7 @@ class ComicFury(_ParserScraper):
cls('TheBlackPrincess', 'theblackprincess'), cls('TheBlackPrincess', 'theblackprincess'),
cls('THEBOOKOFLIES', 'bookofliescomic'), cls('THEBOOKOFLIES', 'bookofliescomic'),
cls('TheBookOfThree', 'thebookofthree'), cls('TheBookOfThree', 'thebookofthree'),
cls('TheChanterelleAndMayLife', 'chanterelleandmay'),
cls('TheChroniclesOfBuckyONeill', 'buckyoneill'), cls('TheChroniclesOfBuckyONeill', 'buckyoneill'),
cls('TheChroniclesOfDrew', 'thechroniclesofdrew'), cls('TheChroniclesOfDrew', 'thechroniclesofdrew'),
cls('TheChroniclesOfLillian', 'chroniclesoflillian'), cls('TheChroniclesOfLillian', 'chroniclesoflillian'),
@ -976,6 +1006,7 @@ class ComicFury(_ParserScraper):
cls('TheCompozerz', 'compozerz'), cls('TheCompozerz', 'compozerz'),
cls('TheContinentals', 'continentals'), cls('TheContinentals', 'continentals'),
cls('TheCrepusculars', 'crepusculars'), cls('TheCrepusculars', 'crepusculars'),
cls('TheCrumpletonExperiments', 'thecrumpletonexperiments'),
cls('TheDailyDoodle', 'tdd'), cls('TheDailyDoodle', 'tdd'),
# TheDemonicAdventuresOfAngelWitchPita has a duplicate in SmackJeeves/TheDemonicAdventuresofAngelWitchPita # TheDemonicAdventuresOfAngelWitchPita has a duplicate in SmackJeeves/TheDemonicAdventuresofAngelWitchPita
cls('TheDevilsHorn', 'thedevilshorn'), cls('TheDevilsHorn', 'thedevilshorn'),
@ -1012,6 +1043,7 @@ class ComicFury(_ParserScraper):
cls('TheKeepOnTheBorderlands', 'thekeepontheborderlands'), cls('TheKeepOnTheBorderlands', 'thekeepontheborderlands'),
cls('TheLamp', 'thelamp'), cls('TheLamp', 'thelamp'),
cls('TheLastHope', 'tlhcomic'), cls('TheLastHope', 'tlhcomic'),
cls('TheLawOfPurple', 'lawofpurple'),
cls('TheLeagueOfExtraordinaryRoleplayers', 'lxgrpg'), cls('TheLeagueOfExtraordinaryRoleplayers', 'lxgrpg'),
cls('TheLeapfrogTeam', 'leapfrogteam'), cls('TheLeapfrogTeam', 'leapfrogteam'),
cls('TheLegendaryPixelCrew', 'thelegendarypixelcrew'), cls('TheLegendaryPixelCrew', 'thelegendarypixelcrew'),
@ -1061,11 +1093,11 @@ class ComicFury(_ParserScraper):
cls('TheStoryOfSaliria', 'saliria'), cls('TheStoryOfSaliria', 'saliria'),
cls('TheSupernaturalsEpisode4', 'thesupernaturals4'), cls('TheSupernaturalsEpisode4', 'thesupernaturals4'),
cls('TheSurface', 'thesurface'), cls('TheSurface', 'thesurface'),
cls('TheTempleAtFiftyFathoms', 'the-temple-at-fifty-fathoms'),
cls('TheTenTailorsOfWestonCourt', 'tentailors'), cls('TheTenTailorsOfWestonCourt', 'tentailors'),
cls('TheTrialsOfMannack', 'mannack'), cls('TheTrialsOfMannack', 'mannack'),
cls('TheUnclean', 'theunclean'), cls('TheUnclean', 'theunclean'),
cls('TheUnthinkableHybrid', 'theunthinkablehybrid'), cls('TheUnthinkableHybrid', 'theunthinkablehybrid'),
cls('TheWallachianLibrary', 'the-wallachian-library'),
cls('TheWayOfTheMetagamer', 'wayofthemetagamer'), cls('TheWayOfTheMetagamer', 'wayofthemetagamer'),
cls('TheWellkeeper', 'thewellkeeper'), cls('TheWellkeeper', 'thewellkeeper'),
cls('TheWesternGang', 'thewesterngang'), cls('TheWesternGang', 'thewesterngang'),
@ -1108,6 +1140,7 @@ class ComicFury(_ParserScraper):
cls('Transmission', 'transmission'), cls('Transmission', 'transmission'),
# TransUman has a duplicate in SmackJeeves/TransUMan # TransUman has a duplicate in SmackJeeves/TransUMan
cls('TransUmanSUbterran', 'sub-terran'), cls('TransUmanSUbterran', 'sub-terran'),
cls('Traveler', 'clioyorokobi'),
cls('TreeScratches', 'treescratches'), cls('TreeScratches', 'treescratches'),
cls('Treeville', 'treeville'), cls('Treeville', 'treeville'),
cls('TriforceOfPower', 'triforceofpower'), cls('TriforceOfPower', 'triforceofpower'),
@ -1198,6 +1231,7 @@ class ComicFury(_ParserScraper):
cls('ZebraGirl', 'zebragirl'), cls('ZebraGirl', 'zebragirl'),
cls('Zelfia', 'zelfia'), cls('Zelfia', 'zelfia'),
cls('ZeroEffortFantasy', 'zeroeffort'), cls('ZeroEffortFantasy', 'zeroeffort'),
cls('ZombieZoup', 'zombiezoup'),
cls('ZwergElf', 'zwergelf', 'de'), cls('ZwergElf', 'zwergelf', 'de'),
# END AUTOUPDATE # END AUTOUPDATE
) )

View file

@ -101,6 +101,10 @@ class OnTheFastrack(_BasicScraper):
return "%s.gif" % name.title() return "%s.gif" % name.title()
class OopsComicAdventure(_WordPressScraper):
url = 'http://oopscomicadventure.com/'
class Optipess(_WordPressScraper): class Optipess(_WordPressScraper):
url = 'http://www.optipess.com/' url = 'http://www.optipess.com/'
firstStripUrl = url + '2008/12/01/jason-friend-of-the-butterflies/' firstStripUrl = url + '2008/12/01/jason-friend-of-the-butterflies/'

View file

@ -363,6 +363,7 @@ class Renamed(Scraper):
cls('ComicFury/Elektroanthology', 'ComicFury/ElektrosComicAnthology'), cls('ComicFury/Elektroanthology', 'ComicFury/ElektrosComicAnthology'),
cls('ComicFury/ICanSeeYourFeels', 'ComicFury/SeeYourFeels'), cls('ComicFury/ICanSeeYourFeels', 'ComicFury/SeeYourFeels'),
cls('ComicFury/MAGISAupdatesMonWedFri', 'ComicFury/MAGISAPARASAYOupdatesMonFri'), cls('ComicFury/MAGISAupdatesMonWedFri', 'ComicFury/MAGISAPARASAYOupdatesMonFri'),
cls('ComicFury/OopsComicAdventure', 'OopsComicAdventure'),
cls('ComicFury/ThomasAndZachary', 'ComicFury/ThomasAndZacharyArchives'), cls('ComicFury/ThomasAndZachary', 'ComicFury/ThomasAndZacharyArchives'),
cls('ComicGenesis/TheLounge', 'KeenSpot/TheLounge'), cls('ComicGenesis/TheLounge', 'KeenSpot/TheLounge'),
cls('Creators/ArchieinSpanish', 'Creators/ArchieSpanish'), cls('Creators/ArchieinSpanish', 'Creators/ArchieSpanish'),

View file

@ -127,6 +127,9 @@ class ComicFuryUpdater(ComicListUpdater):
"Schizmatic", "Schizmatic",
"WakeTheSleepers", "WakeTheSleepers",
"WeightOfEternity", "WeightOfEternity",
# moved
"OopsComicAdventure",
) )
def handle_url(self, url): def handle_url(self, url):