From fb4788414bd665bf7e5988a2325da5cbf000ccd2 Mon Sep 17 00:00:00 2001 From: Tobias Gruetzmacher Date: Mon, 6 Jun 2022 01:45:30 +0200 Subject: [PATCH] Add some WebToons comics --- dosagelib/plugins/old.py | 2 ++ dosagelib/plugins/webtoons.py | 33 ++++++++++++++++++++++----------- 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/dosagelib/plugins/old.py b/dosagelib/plugins/old.py index 4c973e271..00463a836 100644 --- a/dosagelib/plugins/old.py +++ b/dosagelib/plugins/old.py @@ -1575,6 +1575,8 @@ class Removed(Scraper): cls('VGCats/Super'), cls('VictimsOfTheSystem'), cls('WebDesignerCOTW'), + cls('WebToons/Adamsville'), + cls('WebToons/CrapIDrewOnMyLunchBreak'), cls('WintersLight'), ) diff --git a/dosagelib/plugins/webtoons.py b/dosagelib/plugins/webtoons.py index ed6e85a39..56358e273 100644 --- a/dosagelib/plugins/webtoons.py +++ b/dosagelib/plugins/webtoons.py @@ -9,12 +9,12 @@ class WebToons(_ParserScraper): prevSearch = '//a[contains(@class, "_prevEpisode")]' multipleImagesPerStrip = True - def __init__(self, name, url, titlenum): - super(WebToons, self).__init__('WebToons/' + name) + def __init__(self, name: str, path: str, titlenum: int): + super().__init__('WebToons/' + name) baseUrl = 'https://www.webtoons.com/en/' - self.url = baseUrl + url + '/episode/viewer?title_no=' + str(titlenum) - self.listUrl = baseUrl + url + '/list?title_no=' + str(titlenum) + self.url = baseUrl + path + '/episode/viewer?title_no=' + str(titlenum) + self.listUrl = baseUrl + path + '/list?title_no=' + str(titlenum) self.stripUrl = self.url + '&episode_no=%s' self.firstStripUrl = self.stripUrl % '1' @@ -31,7 +31,7 @@ class WebToons(_ParserScraper): def fetchUrls(self, url, data, urlSearch): # Save link order for position-based filenames - self.imageUrls = super(WebToons, self).fetchUrls(url, data, urlSearch) + self.imageUrls = super().fetchUrls(url, data, urlSearch) # Update firstStripUrl with the correct episode title if url.rsplit('=', 1)[-1] == '1': self.firstStripUrl = url @@ -57,7 +57,6 @@ class WebToons(_ParserScraper): cls('ABudgiesLife', 'slice-of-life/its-a-budgies-life', 985), cls('Acception', 'drama/acception', 1513), cls('Acursian', 'supernatural/acursian', 1452), - cls('Adamsville', 'horror/adamsville', 502), cls('AdventuresOfGod', 'comedy/adventures-of-god', 853), cls('AerialMagic', 'fantasy/aerial-magic', 1358), cls('AgeMatters', 'romance/age-matters', 1364), @@ -67,6 +66,7 @@ class WebToons(_ParserScraper): cls('AllThatWeHopeToBe', 'slice-of-life/all-that-we-hope-to-be', 470), cls('AllThatYouAre', 'drama/all-that-you-are', 403), cls('AlwaysHuman', 'romance/always-human', 557), + cls('AMPED', 'challenge/amped', 532009), cls('Annarasumanara', 'drama/annarasumanara', 77), cls('Anthronauts', 'challenge/anthronauts', 358917), cls('AphroditeIX', 'sf/aphroditeix', 1451), @@ -106,11 +106,11 @@ class WebToons(_ParserScraper): cls('CastleSwimmer', 'fantasy/castle-swimmer', 1499), cls('Catharsis', 'fantasy/catharsis', 396), cls('CatLoafAdventures', 'slice-of-life/cat-loaf-adventures', 1381), + cls('CChansACatgirl', 'challenge/c-chans-a-catgirl', 263430), cls('CheeseInTheTrap', 'drama/cheese-in-the-trap', 99), cls('CherryBlossoms', 'romance/cherry-blossoms', 1005), cls('Chiller', 'thriller/chiller', 536), cls('ChocoLatte', 'romance/choco-latte', 1691), - cls('CChansACatgirl', 'challenge/c-chans-a-catgirl', 263430), cls('CityOfBlank', 'sf/city-of-blank', 1895), cls('CityOfWalls', 'drama/city-of-wall', 505), cls('CityVamps', 'challenge/city-vamps-', 119224), @@ -118,7 +118,6 @@ class WebToons(_ParserScraper): cls('ClusterFudge', 'slice-of-life/cluster-fudge', 355), cls('CodeAdam', 'action/code-adam', 1657), cls('CookingComically', 'tiptoon/cooking-comically', 622), - cls('CrapIDrewOnMyLunchBreak', 'challenge/crap-i-drew-on-my-lunch-break', 124756), cls('Crumbs', 'romance/crumbs', 1648), cls('CrystalVirus', 'challenge/crystal-virus', 347038), cls('CupidsArrows', 'romance/cupids-arrows', 1538), @@ -127,6 +126,7 @@ class WebToons(_ParserScraper): cls('Cyberforce', 'super-hero/cyberforce', 531), cls('CykoKO', 'super-hero/cyko-ko', 560), cls('Darbi', 'action/darbi', 1098), + cls('Darchon', 'challenge/darchon', 532053), cls('DatingWithATail', 'romance/dating-with-a-tail', 1263), cls('Davinchibi', 'fantasy/davinchibi', 1190), cls('DaYomanvilleGang', 'drama/da-yomanville-gang', 1578), @@ -148,6 +148,7 @@ class WebToons(_ParserScraper): cls('DragnarokDescendants', 'fantasy/dragnarok-descendants', 1433), cls('DrawnToYou', 'challenge/drawn-to-you', 172022), cls('DrFrost', 'drama/dr-frost', 371), + cls('DuelIdentity', 'challenge/duel-identity', 532064), cls('DungeonMinis', 'challenge/dungeonminis', 64132), cls('Dustinteractive', 'comedy/dustinteractive', 907), cls('DutyAfterSchool', 'sf/duty-after-school', 370), @@ -167,6 +168,7 @@ class WebToons(_ParserScraper): cls('Faust', 'supernatural/faust', 522), cls('FINALITY', 'mystery/finality', 1457), cls('Firebrand', 'supernatural/firebrand', 877), + cls('FirstDefense', 'challenge/first-defense', 532072), cls('FisheyePlacebo', 'challenge/fisheye-placebo', 101841), cls('Flow', 'fantasy/flow', 101), cls('FluffyBoyfriend', 'supernatural/fluffy-boyfriend', 1164), @@ -222,11 +224,12 @@ class WebToons(_ParserScraper): cls('JustForKicks', 'slice-of-life/just-for-kicks', 1152), cls('JustFriends', 'challenge/just-friends', 190722), cls('JustPancakes', 'comedy/just-pancakes', 1651), + cls('Katrina', 'challenge/katrina', 532106), cls('KidsAreAllRight', 'drama/kids-are-all-right', 283), cls('Killstagram', 'thriller/killstagram', 1971), - cls('KissItGoodbye', 'challenge/kiss-it-goodbye', 443703), cls('KindOfConfidential', 'romance/kind-of-confidential', 663), cls('KindOfLove', 'slice-of-life/kind-of-love', 1850), + cls('KissItGoodbye', 'challenge/kiss-it-goodbye', 443703), cls('KnightRun', 'sf/knight-run', 67), cls('Kubera', 'fantasy/kubera', 83), cls('LalinsCurse', 'supernatural/lalins-curse', 1601), @@ -257,6 +260,7 @@ class WebToons(_ParserScraper): cls('Magical12thGraders', 'super-hero/magical-12th-graders', 90), cls('Magician', 'fantasy/magician', 70), cls('MagicSodaPop', 'fantasy/magic-soda-pop', 1947), + cls('Magika', 'challenge/magika', 532116), cls('MarryMe', 'romance/marry-me', 1951), cls('MatchmakerHero', 'sf/matchmaker-hero', 1569), cls('MelvinasTherapy', 'horror/melvinas-therapy', 1021), @@ -269,12 +273,13 @@ class WebToons(_ParserScraper): cls('MidnightRhapsody', 'slice-of-life/midnight-rhapsody', 116), cls('MidnightRhapsodySeason2', 'slice-of-life/midnight-rhapsody-season2', 365), cls('MissAbbottAndTheDoctor', 'romance/miss-abbott-and-the-doctor', 707), + cls('MonsterIsle', 'challenge/monster-isle', 531999), cls('MOONBEARD', 'comedy/moon-beard', 471), cls('MoonYou', 'supernatural/moonyou', 1340), cls('Murrz', 'slice-of-life/murrz', 1281), cls('Muted', 'supernatural/muted', 1566), - cls('MyBoo', 'supernatural/my-boo', 1185), cls('MyAssassinGirlfriend', 'challenge/my-assassin-girlfriend', 249007), + cls('MyBoo', 'supernatural/my-boo', 1185), cls('MyDearColdBloodedKing', 'romance/my-dear-cold-blooded-king', 961), cls('MyDeepestSecret', 'thriller/my-deepest-secret', 1580), cls('MyDictatorBoyfriend', 'comedy/my-dictator-boyfriend', 1391), @@ -302,6 +307,8 @@ class WebToons(_ParserScraper): cls('Outrage', 'super-hero/outrage', 1450), cls('OVERPOWERED', 'challenge/overpowered', 85292), cls('PacificRimAmara', 'sf/pacific-rim-amara', 1327), + cls('PandorasBlogs', 'challenge/pandoras-blogs', 532007), + cls('PaperRoses', 'challenge/paper-roses', 39736), cls('PenguinLovesMev', 'slice-of-life/penguin-loves-mev', 86), cls('Petrichor', 'challenge/petrichor', 100835), cls('PhantomParadise', 'fantasy/phantom-paradise', 1250), @@ -312,8 +319,8 @@ class WebToons(_ParserScraper): cls('Polidiocy', 'comedy/polidiocy', 676), cls('Pound', 'action/pound', 1496), cls('PowerBallad', 'super-hero/power-ballad', 987), - cls('PurpleHyacinth', 'mystery/purple-hyacinth', 1621), cls('Punderworld', 'challenge/punderworld', 312584), + cls('PurpleHyacinth', 'mystery/purple-hyacinth', 1621), cls('RandomChat', 'drama/random-chat', 1669), cls('RANDOMPHILIA', 'comedy/randomphilia', 386), cls('Rebirth', 'sf/rebirth', 1412), @@ -331,6 +338,7 @@ class WebToons(_ParserScraper): cls('ScorchingRomance', 'romance/scorching-romance', 1662), cls('Seed', 'sf/seed', 1480), cls('SHADOW', 'super-hero/shadow', 281), + cls('ShadowChildren', 'challenge/shadow-children', 532144), cls('ShadowPirates', 'action/shadow-pirates', 1455), cls('Shard', 'supernatural/shard', 960), cls('Shiloh', 'thriller/shiloh', 1649), @@ -431,10 +439,13 @@ class WebToons(_ParserScraper): cls('WarCry', 'super-hero/war-cry', 1247), cls('WarningLabel', 'romance/warning-label', 1051), cls('Watermelon', 'fantasy/watermelon', 1435), + cls('WaywardLegends', 'challenge/wayward-legends', 533029), + cls('WaywardSons', 'challenge/wayward-sons', 533024), cls('WeakHero', 'action/weakhero', 1726), cls('WEBTOONGREENLiGHT', 'action/webtoon-greenlight', 1988), cls('WestwoodVibrato', 'drama/westwood-vibrato', 537), cls('WhereTangentsMeet', 'romance/where-tangents-meet', 421), + cls('WhiteWidow', 'challenge/white-widow', 529691), cls('WindBreaker', 'sports/wind-breaker', 372), cls('WinterMoon', 'fantasy/winter-moon', 1093), cls('WinterWoods', 'drama/winter-woods', 344),