From 396a5260113cd661a12b4bd0b6120db7cc5f1db1 Mon Sep 17 00:00:00 2001 From: Techwolf Date: Tue, 10 Nov 2020 01:31:21 -0800 Subject: [PATCH 01/40] Add MangaDex/MyTinySenpaiFromWork --- dosagelib/plugins/mangadex.py | 1 + 1 file changed, 1 insertion(+) diff --git a/dosagelib/plugins/mangadex.py b/dosagelib/plugins/mangadex.py index 37ad6615a..7a39259dd 100644 --- a/dosagelib/plugins/mangadex.py +++ b/dosagelib/plugins/mangadex.py @@ -84,6 +84,7 @@ class MangaDex(_ParserScraper): cls('Lv2KaraCheatDattaMotoYuushaKouhoNoMattariIsekaiLife', 33797), cls('MaouNoOreGaDoreiElfWoYomeNiShitandaGaDouMederebaIi', 25495), cls('ModernMoGal', 30308), + cls('MyTinySenpaiFromWork', 43610), cls('OMaidensinYourSavageSeason', 22030), cls('OokamiShounenWaKyouMoUsoOKasaneru', 14569), cls('OokamiToKoshinryou', 1168), From a6a8c327c6a6df27e0848e7be0f8ab3158bdc88c Mon Sep 17 00:00:00 2001 From: Techwolf Date: Thu, 12 Nov 2020 22:30:55 -0800 Subject: [PATCH 02/40] Add WebToons/DatingWithATail --- dosagelib/plugins/webtoons.py | 1 + 1 file changed, 1 insertion(+) diff --git a/dosagelib/plugins/webtoons.py b/dosagelib/plugins/webtoons.py index b1abcfca9..0fb0f786c 100644 --- a/dosagelib/plugins/webtoons.py +++ b/dosagelib/plugins/webtoons.py @@ -122,6 +122,7 @@ class WebToons(_ParserScraper): cls('Cyberforce', 'super-hero/cyberforce', 531), cls('CykoKO', 'super-hero/cyko-ko', 560), cls('Darbi', 'action/darbi', 1098), + cls('DatingWithATail', 'romance/dating-with-a-tail', 1263), cls('Davinchibi', 'fantasy/davinchibi', 1190), cls('DaYomanvilleGang', 'drama/da-yomanville-gang', 1578), cls('DaysOfHana', 'drama/days-of-hana', 1246), From 93c9548fab74dc18fee26120b753df571f4dcd52 Mon Sep 17 00:00:00 2001 From: Techwolf Date: Tue, 17 Nov 2020 00:51:08 -0800 Subject: [PATCH 03/40] Add WebToons/Petrichor --- dosagelib/plugins/webtoons.py | 1 + 1 file changed, 1 insertion(+) diff --git a/dosagelib/plugins/webtoons.py b/dosagelib/plugins/webtoons.py index 0fb0f786c..6a53a3e36 100644 --- a/dosagelib/plugins/webtoons.py +++ b/dosagelib/plugins/webtoons.py @@ -291,6 +291,7 @@ class WebToons(_ParserScraper): cls('OVERPOWERED', 'challenge/overpowered', 85292), cls('PacificRimAmara', 'sf/pacific-rim-amara', 1327), cls('PenguinLovesMev', 'slice-of-life/penguin-loves-mev', 86), + cls('Petrichor', 'challenge/petrichor', 100835), cls('PhantomParadise', 'fantasy/phantom-paradise', 1250), cls('Pigminted', 'slice-of-life/pigminted', 482), cls('PinchPoint', 'challenge/pinch-point-reborn', 334640), From 90c23149ad8a7b8f2bb27f9315b7324738cc6471 Mon Sep 17 00:00:00 2001 From: Techwolf Date: Tue, 1 Dec 2020 23:40:18 -0800 Subject: [PATCH 04/40] Fix QuantumVibe --- dosagelib/plugins/q.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dosagelib/plugins/q.py b/dosagelib/plugins/q.py index 9e553e463..999bb6f79 100644 --- a/dosagelib/plugins/q.py +++ b/dosagelib/plugins/q.py @@ -11,7 +11,7 @@ class QuantumVibe(_ParserScraper): stripUrl = url + 'strip?page=%s' firstStripUrl = stripUrl % '1' imageSearch = '//img[contains(@src, "disppageV3?story=qv")]' - prevSearch = '//a[./img[contains(@src, "nav/prevstrip")]]' + prevSearch = '//a[./img[@alt="Previous Strip"]]' class QuestionableContent(_ParserScraper): From e96ff4b64ee68ed60f17c155ae713e1488cb6722 Mon Sep 17 00:00:00 2001 From: Techwolf Date: Tue, 1 Dec 2020 23:43:44 -0800 Subject: [PATCH 05/40] Mark PowerNap as endOfLife --- dosagelib/plugins/p.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/dosagelib/plugins/p.py b/dosagelib/plugins/p.py index 53fad7afe..4f6fbce8a 100644 --- a/dosagelib/plugins/p.py +++ b/dosagelib/plugins/p.py @@ -248,11 +248,12 @@ class PoppyOPossum(_WordPressScraper): class PowerNap(_ParserScraper): - url = 'http://www.powernapcomic.com/' + url = 'https://www.powernapcomic.com/powernap/' stripUrl = url + 'd/%s.html' firstStripUrl = stripUrl % '20110617' - imageSearch = '//img[contains(@src, "/pnap")]' + imageSearch = '//center/img' prevSearch = '//a[./img[contains(@src, "previous")]]' + endOfLife = True def imageUrlModifier(self, url, data): return url.replace('\n', '').strip() From dda1474ed00f7b519756c830fc9f8ff6a77bae78 Mon Sep 17 00:00:00 2001 From: Techwolf Date: Tue, 8 Dec 2020 01:39:31 -0800 Subject: [PATCH 06/40] Add MangaDex/BokuNoKokoroNoYabaiYatsu --- dosagelib/plugins/mangadex.py | 1 + 1 file changed, 1 insertion(+) diff --git a/dosagelib/plugins/mangadex.py b/dosagelib/plugins/mangadex.py index 7a39259dd..d862684d0 100644 --- a/dosagelib/plugins/mangadex.py +++ b/dosagelib/plugins/mangadex.py @@ -71,6 +71,7 @@ class MangaDex(_ParserScraper): return ( cls('AttackonTitan', 429), cls('Beastars', 20523), + cls('BokuNoKokoroNoYabaiYatsu', 23811), cls('DeliciousinDungeon', 13871), cls('DragonDrive', 5165), cls('HangingOutWithAGamerGirl', 42490), From 4d7fc0b9f0bf601bc600ba174f5ba85ed5f39f0c Mon Sep 17 00:00:00 2001 From: Techwolf Date: Sat, 12 Dec 2020 01:48:25 -0800 Subject: [PATCH 07/40] Add MangaDex/FuguushokuKajishiDakedoSaikyouDesu --- dosagelib/plugins/mangadex.py | 1 + 1 file changed, 1 insertion(+) diff --git a/dosagelib/plugins/mangadex.py b/dosagelib/plugins/mangadex.py index d862684d0..b44e9f790 100644 --- a/dosagelib/plugins/mangadex.py +++ b/dosagelib/plugins/mangadex.py @@ -74,6 +74,7 @@ class MangaDex(_ParserScraper): cls('BokuNoKokoroNoYabaiYatsu', 23811), cls('DeliciousinDungeon', 13871), cls('DragonDrive', 5165), + cls('FuguushokuKajishiDakedoSaikyouDesu', 56319), cls('HangingOutWithAGamerGirl', 42490), cls('HoriMiya', 6770), cls('HowToOpenATriangularRiceball', 19305), From 5655b18374eb32a274f7838be37a4f45241a2b8c Mon Sep 17 00:00:00 2001 From: Techwolf Date: Sun, 13 Dec 2020 23:51:13 -0800 Subject: [PATCH 08/40] Add WebToons/CrystalVirus --- dosagelib/plugins/webtoons.py | 1 + 1 file changed, 1 insertion(+) diff --git a/dosagelib/plugins/webtoons.py b/dosagelib/plugins/webtoons.py index 6a53a3e36..b2ca54fc7 100644 --- a/dosagelib/plugins/webtoons.py +++ b/dosagelib/plugins/webtoons.py @@ -116,6 +116,7 @@ class WebToons(_ParserScraper): 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), cls('CursedPrincessClub', 'comedy/cursed-princess-club', 1537), cls('Cyberbunk', 'sf/cyberbunk', 466), From bd93dc1d78f26458c75cece77de9e22619e9dd11 Mon Sep 17 00:00:00 2001 From: Techwolf Date: Sun, 27 Dec 2020 16:13:35 -0800 Subject: [PATCH 09/40] Add MangaDex/PashiriNaBokuToKoisuruBanchouSan --- dosagelib/plugins/mangadex.py | 1 + 1 file changed, 1 insertion(+) diff --git a/dosagelib/plugins/mangadex.py b/dosagelib/plugins/mangadex.py index b44e9f790..5ad0a2850 100644 --- a/dosagelib/plugins/mangadex.py +++ b/dosagelib/plugins/mangadex.py @@ -92,6 +92,7 @@ class MangaDex(_ParserScraper): cls('OokamiToKoshinryou', 1168), cls('OtomeYoukaiZakuro', 4533), cls('OversimplifiedSCP', 32834), + cls('PashiriNaBokuToKoisuruBanchouSan', 25862), cls('PleaseDontBullyMeNagatoro', 22631), cls('PleaseDontBullyMeNagatoroComicAnthology', 31004), cls('PleaseTellMeGalkochan', 12702), From 8579f2136c9d8a22b5de1a0d968779f485933d5c Mon Sep 17 00:00:00 2001 From: Techwolf Date: Tue, 5 Jan 2021 02:03:56 -0800 Subject: [PATCH 10/40] Add WebToons/LoveMeKnot --- dosagelib/plugins/webtoons.py | 1 + 1 file changed, 1 insertion(+) diff --git a/dosagelib/plugins/webtoons.py b/dosagelib/plugins/webtoons.py index b2ca54fc7..6031903e8 100644 --- a/dosagelib/plugins/webtoons.py +++ b/dosagelib/plugins/webtoons.py @@ -239,6 +239,7 @@ class WebToons(_ParserScraper): cls('Lorna', 'slice-of-life/lorna', 1284), cls('LostInTranslation', 'drama/lost-in-translation', 1882), cls('LoveAdviceFromTheGreatDukeOfHell', 'comedy/love-advice', 1498), + cls('LoveMeKnot', 'romance/love-me-knot', 2224), cls('Lozolz', 'tiptoon/lozolz', 1268), cls('LUFF', 'romance/luff', 1489), cls('Luggage', 'fantasy/luggage', 1642), From 258f147bdfeae9ace6aac127aa757f18aa89f8c2 Mon Sep 17 00:00:00 2001 From: Techwolf Date: Fri, 8 Jan 2021 00:16:47 -0800 Subject: [PATCH 11/40] Add WebToons/BladesOfFurry --- dosagelib/plugins/webtoons.py | 1 + 1 file changed, 1 insertion(+) diff --git a/dosagelib/plugins/webtoons.py b/dosagelib/plugins/webtoons.py index 6031903e8..bce04b1a8 100644 --- a/dosagelib/plugins/webtoons.py +++ b/dosagelib/plugins/webtoons.py @@ -87,6 +87,7 @@ class WebToons(_ParserScraper): cls('BehindTheGIFs', 'comedy/behind-the-gifs', 658), cls('BigJo', 'romance/big-jo', 854), cls('BiteMe', 'thriller/bite-me', 1019), + cls('BladesOfFurry', 'romance/blades-of-furry', 2383), cls('Blessed', 'drama/blessed', 1193), cls('BloodInk', 'action/blood-ink', 1490), cls('BloodlessWars', 'sf/bloodless-wars', 1622), From f4a537038ab16415db91efb9d9a78a5e1e6b380c Mon Sep 17 00:00:00 2001 From: Techwolf Date: Wed, 13 Jan 2021 22:38:46 -0800 Subject: [PATCH 12/40] Fix ComicFury/MayTheRainCome --- dosagelib/plugins/comicfury.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dosagelib/plugins/comicfury.py b/dosagelib/plugins/comicfury.py index bcb40e981..105cd724f 100644 --- a/dosagelib/plugins/comicfury.py +++ b/dosagelib/plugins/comicfury.py @@ -49,7 +49,7 @@ class ComicFury(_ParserScraper): help = 'Index format: n' starter = bounceStarter - def __init__(self, name, sub, lang=None, adult=False): + def __init__(self, name, sub, lang=None, adult=False, endOfLife=False): super(ComicFury, self).__init__('ComicFury/' + name) self.prefix = name self.url = 'http://%s.webcomic.ws/comics/' % sub @@ -59,6 +59,8 @@ class ComicFury(_ParserScraper): self.lang = lang if adult: self.adult = adult + if endOfLife: + self.endOfLife = endOfLife def namer(self, image_url, page_url): parts = page_url.split('/') @@ -638,6 +640,7 @@ class ComicFury(_ParserScraper): cls('MaxFuture', 'maxfuture'), cls('MAYBELOVE', 'emmacomics'), cls('MayonakaDensha', 'mayonakadensha'), + cls('MayTheRainCome', 'maytheraincome', endOfLife=True), cls('MegaMaidenVSTheChopChopPrincess', 'megamaiden'), cls('MeganKearneysBeautyAndTheBeast', 'batb'), cls('MelancholyGoRound', 'melancholygoround'), From d024427e83f9e603c2fe661d83427a6328d9e6c1 Mon Sep 17 00:00:00 2001 From: Techwolf Date: Sat, 16 Jan 2021 01:24:38 -0800 Subject: [PATCH 13/40] Add WebToons/CityVamps --- dosagelib/plugins/webtoons.py | 1 + 1 file changed, 1 insertion(+) diff --git a/dosagelib/plugins/webtoons.py b/dosagelib/plugins/webtoons.py index bce04b1a8..81d91e5ad 100644 --- a/dosagelib/plugins/webtoons.py +++ b/dosagelib/plugins/webtoons.py @@ -112,6 +112,7 @@ class WebToons(_ParserScraper): cls('ChocoLatte', 'romance/choco-latte', 1691), cls('CityOfBlank', 'sf/city-of-blank', 1895), cls('CityOfWalls', 'drama/city-of-wall', 505), + cls('CityVamps', 'challenge/city-vamps-', 119224), cls('ClusterFudge', 'slice-of-life/cluster-fudge', 355), cls('CodeAdam', 'action/code-adam', 1657), cls('CookingComically', 'tiptoon/cooking-comically', 622), From bedda970cc257942c1f3cba3f556cad1eeb3b0ad Mon Sep 17 00:00:00 2001 From: Techwolf Date: Sat, 16 Jan 2021 16:27:35 -0800 Subject: [PATCH 14/40] Add MangaDex/SenpaiGaUzaiKouhaiNoHanashi --- dosagelib/plugins/mangadex.py | 1 + 1 file changed, 1 insertion(+) diff --git a/dosagelib/plugins/mangadex.py b/dosagelib/plugins/mangadex.py index 5ad0a2850..fed4a6bdf 100644 --- a/dosagelib/plugins/mangadex.py +++ b/dosagelib/plugins/mangadex.py @@ -97,6 +97,7 @@ class MangaDex(_ParserScraper): cls('PleaseDontBullyMeNagatoroComicAnthology', 31004), cls('PleaseTellMeGalkochan', 12702), cls('SaekiSanWaNemutteru', 28834), + cls('SenpaiGaUzaiKouhaiNoHanashi', 23825), cls('SewayakiKitsuneNoSenkoSan', 22723), cls('SousouNoFrieren', 48045), cls('SwordArtOnline', 1360), From 4ccb66684f5405602a467d0a5b8aea4e184c117b Mon Sep 17 00:00:00 2001 From: Techwolf Date: Sun, 17 Jan 2021 20:24:22 -0800 Subject: [PATCH 15/40] Add MangaDex/TamenDeGushi --- dosagelib/plugins/mangadex.py | 1 + 1 file changed, 1 insertion(+) diff --git a/dosagelib/plugins/mangadex.py b/dosagelib/plugins/mangadex.py index fed4a6bdf..8c07f8dd0 100644 --- a/dosagelib/plugins/mangadex.py +++ b/dosagelib/plugins/mangadex.py @@ -102,6 +102,7 @@ class MangaDex(_ParserScraper): cls('SousouNoFrieren', 48045), cls('SwordArtOnline', 1360), cls('SwordArtOnlineProgressive', 9604), + cls('TamenDeGushi', 13939), cls('TheWolfAndRedRidingHood', 31079), cls('TomoChanWaOnnanoko', 15722), cls('TonikakuKawaii', 23439), From 13c612c26e973ab1c7274389faf8d95b9051c717 Mon Sep 17 00:00:00 2001 From: Techwolf Date: Wed, 20 Jan 2021 20:19:59 -0800 Subject: [PATCH 16/40] Fix Bethellium and Moonlace --- dosagelib/plugins/b.py | 19 +++---------------- dosagelib/plugins/m.py | 18 ++++-------------- 2 files changed, 7 insertions(+), 30 deletions(-) diff --git a/dosagelib/plugins/b.py b/dosagelib/plugins/b.py index ea932d5a8..ee218f9c0 100644 --- a/dosagelib/plugins/b.py +++ b/dosagelib/plugins/b.py @@ -99,22 +99,9 @@ class Beetlebum(_BasicScraper): class Bethellium(_WPWebcomic): - stripUrl = 'http://dbcomics.darkblueworkshop.com/bethellium/%s/' - firstStripUrl = stripUrl % 'chapter-1/cover' - url = firstStripUrl - latestSearch = '//main' + _WPWebcomic.latestSearch - starter = indirectStarter - - def getPrevUrl(self, url, data): - prevUrl = super(Bethellium, self).getPrevUrl(url, data) - return prevUrl.replace('%webcomic2_storyline%', 'chapter-2-the-hemlocks-scar') - - def namer(self, imageUrl, pageUrl): - # Prepend chapter title to page filenames - chapter = pageUrl.rstrip('/').rsplit('/', 3)[-2] - chapter = chapter.replace('chapter-1', 'chapter-1-the-magic-city') - page = imageUrl.rsplit('/', 1)[-1] - return chapter + '_' + page + url = 'https://bethellium.darkbluecomics.com/' + stripUrl = url + 'comic/%s/' + firstStripUrl = stripUrl % 'cover' class BetterDays(_ParserScraper): diff --git a/dosagelib/plugins/m.py b/dosagelib/plugins/m.py index 99f9d37e4..83dbb37ce 100644 --- a/dosagelib/plugins/m.py +++ b/dosagelib/plugins/m.py @@ -179,26 +179,16 @@ class MonsieurLeChien(_BasicScraper): class Moonlace(_WPWebcomic): - stripUrl = 'http://dbcomics.darkblueworkshop.com/moonlace/%s/' - firstStripUrl = stripUrl % 'prologue/page-1' - url = firstStripUrl - latestSearch = '//main' + _WPWebcomic.latestSearch + url = 'https://moonlace.darkbluecomics.com/' + stripUrl = url + 'comic/%s/' + firstStripUrl = stripUrl % 'page-0-1' adult = True def starter(self): # Set age-gate cookie - self.session.cookies.set('age_gate', '1', domain='darkblueworkshop.com') + self.session.cookies.set('age_gate', '1', domain='moonlace.darkblueworkshop.com') return indirectStarter(self) - def namer(self, imageUrl, pageUrl): - # Prepend chapter title to page filenames - chapter = pageUrl.rstrip('/').rsplit('/', 3)[-2] - chapter = chapter.replace('prologue', 'chapter-0-prologue') - chapter = chapter.replace('chapter-1', 'chapter-1-heritage') - chapter = chapter.replace('chapter2', 'chapter-2') - page = imageUrl.rsplit('/', 1)[-1] - return chapter + '_' + page - class Moonsticks(_ParserScraper): url = "http://moonsticks.org/" From 0fc196eb3e2472fb26c4688e43db86907e1805f5 Mon Sep 17 00:00:00 2001 From: Techwolf Date: Thu, 21 Jan 2021 00:56:18 -0800 Subject: [PATCH 17/40] Fix MangaDex endOfLife check --- dosagelib/plugins/mangadex.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/dosagelib/plugins/mangadex.py b/dosagelib/plugins/mangadex.py index 8c07f8dd0..3e85b7010 100644 --- a/dosagelib/plugins/mangadex.py +++ b/dosagelib/plugins/mangadex.py @@ -25,7 +25,9 @@ class MangaDex(_ParserScraper): mangaData = manga.json() # Determine if manga is complete and/or adult if mangaData['manga']['last_chapter'] != '0': - self.endOfLife = True + for ch in mangaData['chapter']: + if mangaData['chapter'][ch]['chapter'] == mangaData['manga']['last_chapter']: + self.endOfLife = True if mangaData['manga']['hentai'] != '0': self.adult = True # Prepare chapter list From 1a690bdeaf84efd616c814d1f85cbd38bb560867 Mon Sep 17 00:00:00 2001 From: Techwolf Date: Sun, 24 Jan 2021 23:24:30 -0800 Subject: [PATCH 18/40] Fix NineToNine, SwordsAndSausages, and CollegeCatastrophe --- dosagelib/plugins/c.py | 2 +- dosagelib/plugins/n.py | 2 +- dosagelib/plugins/s.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dosagelib/plugins/c.py b/dosagelib/plugins/c.py index fc2acada4..da064e3c3 100644 --- a/dosagelib/plugins/c.py +++ b/dosagelib/plugins/c.py @@ -286,7 +286,7 @@ class CollegeCatastrophe(_ParserScraper): stripUrl = url + '/%s' firstStripUrl = stripUrl % '2000-11-10' imageSearch = '//img[@class="comic-image"]' - prevSearch = '//a[span[contains(text(),"Previous")]]' + prevSearch = '//a[./span[contains(text(), "Previous")]]' endOfLife = True multipleImagesPerStrip = True diff --git a/dosagelib/plugins/n.py b/dosagelib/plugins/n.py index 509f09fb3..2fb7f4009 100644 --- a/dosagelib/plugins/n.py +++ b/dosagelib/plugins/n.py @@ -153,7 +153,7 @@ class NineToNine(_ParserScraper): stripUrl = url + '/%s' firstStripUrl = stripUrl % '2014-01-01' imageSearch = '//img[@class="comic-image"]' - prevSearch = '//a[@class="prev"]' + prevSearch = '//a[./span[contains(text(), "Previous")]]' multipleImagesPerStrip = True diff --git a/dosagelib/plugins/s.py b/dosagelib/plugins/s.py index 25966a6e4..eefc27a9e 100644 --- a/dosagelib/plugins/s.py +++ b/dosagelib/plugins/s.py @@ -702,5 +702,5 @@ class SwordsAndSausages(_ParserScraper): stripUrl = url + '/%s' firstStripUrl = stripUrl % '1-1' imageSearch = '//img[@class="comic-image"]' - prevSearch = '//a[@class="prev"]' + prevSearch = '//a[./span[contains(text(), "Previous")]]' multipleImagesPerStrip = True From fb8450e93a40ddc348a4e63a4fd8d320d29a3656 Mon Sep 17 00:00:00 2001 From: Techwolf Date: Tue, 26 Jan 2021 19:11:58 -0800 Subject: [PATCH 19/40] Add FalseStart --- dosagelib/plugins/f.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/dosagelib/plugins/f.py b/dosagelib/plugins/f.py index 90ab9c248..a3a61cc5e 100644 --- a/dosagelib/plugins/f.py +++ b/dosagelib/plugins/f.py @@ -20,6 +20,15 @@ class FalconTwin(_BasicScraper): help = 'Index format: nnn' +class FalseStart(_ParserScraper): + url = 'https://boneitiscomics.com/falsestart.php' + stripUrl = url + '?pg=%s' + firstStripUrl = stripUrl % '1' + imageSearch = '//div[@class="page"]//img' + prevSearch = '//a[@id="prev"]' + adult = True + + class Faneurysm(_WPNaviIn): url = 'http://hijinksensue.com/comic/think-only-tree/' firstStripUrl = 'http://hijinksensue.com/comic/captains-prerogative/' From d6bc0502a7b09349d20061912511c164bb3ed803 Mon Sep 17 00:00:00 2001 From: Techwolf Date: Tue, 26 Jan 2021 19:12:09 -0800 Subject: [PATCH 20/40] Add VampireHunterBoyfriends --- dosagelib/plugins/v.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/dosagelib/plugins/v.py b/dosagelib/plugins/v.py index 07df644b4..d375a7ee0 100644 --- a/dosagelib/plugins/v.py +++ b/dosagelib/plugins/v.py @@ -7,6 +7,15 @@ from ..scraper import _ParserScraper from ..helpers import bounceStarter, indirectStarter +class VampireHunterBoyfriends(_ParserScraper): + url = 'https://boneitiscomics.com/vhb.php' + stripUrl = url + '?pg=%s' + firstStripUrl = stripUrl % '1' + imageSearch = '//div[@class="page"]//img' + prevSearch = '//a[@id="prev"]' + adult = True + + class Vexxarr(_ParserScraper): baseUrl = 'http://www.vexxarr.com/' url = baseUrl + 'Index.php' From 5339eec876551cf25d4cc297d67792428ac79a8b Mon Sep 17 00:00:00 2001 From: Techwolf Date: Wed, 27 Jan 2021 18:05:32 -0800 Subject: [PATCH 21/40] Fix Supercell --- dosagelib/plugins/s.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dosagelib/plugins/s.py b/dosagelib/plugins/s.py index eefc27a9e..4668c5ef6 100644 --- a/dosagelib/plugins/s.py +++ b/dosagelib/plugins/s.py @@ -672,7 +672,7 @@ class Supercell(_ParserScraper): url = 'https://www.supercellcomic.com/' stripUrl = url + 'pages/%s.html' firstStripUrl = stripUrl % '0001' - imageSearch = '//div[@class="comicpage"]//img' + imageSearch = '//img[@class="comicStretch"]' prevSearch = '//div[@class="comicnav"]/a[./img[contains(@src, "comnav_02")]]' From 5d384f311ee596b2372f53aeab2dff692a02acaa Mon Sep 17 00:00:00 2001 From: Techwolf Date: Thu, 28 Jan 2021 18:14:08 -0800 Subject: [PATCH 22/40] Add Recursion --- dosagelib/plugins/r.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/dosagelib/plugins/r.py b/dosagelib/plugins/r.py index 349af0f2b..0041b5237 100644 --- a/dosagelib/plugins/r.py +++ b/dosagelib/plugins/r.py @@ -78,6 +78,23 @@ class RealmOfAtland(_BasicScraper): help = 'Index format: nnn' +class Recursion(_ParserScraper): + url = 'https://recursioncomic.com/' + stripUrl = url + '%s' + firstStripUrl = stripUrl % '0001' + imageSearch = '//div[@class="content"]//img' + prevSearch = '//link[@rel="prev"]' + + def namer(self, imageUrl, pageUrl): + # Fix inconsistent filenames + filename = imageUrl.rsplit('/', 1)[-1] + filename = filename.replace('0bf62e92-2c98-4fb2-8ed7-4584980beb17', 'page0005') + filename = filename.replace('76112837-c5cd-4df7-8c53-3ed5c25194cf', 'page0003') + filename = filename.replace('ed271080-6b1b-4d7a-8509-b2d8a15da805', 'page0002') + filename = filename.replace('7b194ef7-ac77-4b5c-aed0-826901d13d04', 'page0001') + return filename + + class RedMeat(_ParserScraper): url = 'http://www.redmeat.com/max-cannon/FreshMeat' imageSearch = '//div[@class="comicStrip"]//img' From c532f80bcd97c2921b3ede6415001212396c9abb Mon Sep 17 00:00:00 2001 From: Techwolf Date: Thu, 28 Jan 2021 23:46:46 -0800 Subject: [PATCH 23/40] Fix ByTheBook --- dosagelib/plugins/b.py | 7 +++++++ dosagelib/plugins/old.py | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/dosagelib/plugins/b.py b/dosagelib/plugins/b.py index ee218f9c0..26439137d 100644 --- a/dosagelib/plugins/b.py +++ b/dosagelib/plugins/b.py @@ -336,3 +336,10 @@ class ButterSafe(_ParserScraper): imageSearch = '//div[@id="comic"]/img' prevSearch = '//a[@rel="prev"]' help = 'Index format: yyyy/mm/dd/stripname' + + +class ByTheBook(_WordPressScraper): + url = 'http://www.btbcomic.com/' + stripUrl = url + 'comic/%s/' + firstStripUrl = stripUrl % 'chapter-1-page-0' + adult = True diff --git a/dosagelib/plugins/old.py b/dosagelib/plugins/old.py index a682ed0b8..495b0be46 100644 --- a/dosagelib/plugins/old.py +++ b/dosagelib/plugins/old.py @@ -775,7 +775,6 @@ class Removed(Scraper): cls('SmackJeeves/BoogeyDancingMonkeyPot'), cls('SmackJeeves/BreachOfAgency'), cls('SmackJeeves/Burn'), - cls('SmackJeeves/ByTheBook'), cls('SmackJeeves/CafeSuada'), cls('SmackJeeves/Cambion'), cls('SmackJeeves/CaptiveSoul'), @@ -1424,6 +1423,7 @@ class Renamed(Scraper): cls('GoComics/WebcomicName', 'WebcomicName'), cls('Shivae/BlackRose', 'BlackRose'), cls('SmackJeeves/BlackTapestries', 'ComicFury/BlackTapestries'), + cls('SmackJeeves/ByTheBook', 'ByTheBook'), cls('SmackJeeves/FurryExperience', 'ComicFury/FurryExperience'), cls('SmackJeeves/GrowingTroubles', 'ComicFury/GrowingTroubles'), cls('SmackJeeves/TheRealmOfKaerwyn', 'ComicFury/TheRealmOfKaerwyn'), From 73ac10dc849775bc1f1be7bbc30cd87a0ab0edfd Mon Sep 17 00:00:00 2001 From: Techwolf Date: Sat, 30 Jan 2021 01:58:16 -0800 Subject: [PATCH 24/40] Fix LazJonesAndTheMayfieldRegulators --- dosagelib/plugins/l.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/dosagelib/plugins/l.py b/dosagelib/plugins/l.py index 2dc0579b0..75f4558cd 100644 --- a/dosagelib/plugins/l.py +++ b/dosagelib/plugins/l.py @@ -46,10 +46,16 @@ class LazJonesAndTheMayfieldRegulators(_ParserScraper): class LazJonesAndTheMayfieldRegulatorsSideStories(LazJonesAndTheMayfieldRegulators): name = 'LazJonesAndTheMayfieldRegulators/SideStories' baseUrl = 'https://www.lazjones.com/' - url = baseUrl + 'sidestories' + url = baseUrl + 'comics' stripUrl = baseUrl + 'comic/%s' firstStripUrl = stripUrl % 'journal01' + def getPrevUrl(self, url, data): + # Fix broken navigation links + if url == self.url and data.xpath(self.prevSearch + '/@href')[0] == self.stripUrl % 'summer00': + return self.stripUrl % 'summer21' + return super(LazJonesAndTheMayfieldRegulators, self).getPrevUrl(url, data) + class LeastICouldDo(_ParserScraper): url = 'https://leasticoulddo.com/' From 555d418ee37538094888743b55c2106843a23dc3 Mon Sep 17 00:00:00 2001 From: Techwolf Date: Wed, 20 Jan 2021 23:53:38 -0800 Subject: [PATCH 25/40] Fix ShivaeStudios comics --- dosagelib/plugins/common.py | 2 +- dosagelib/plugins/old.py | 4 ++-- dosagelib/plugins/shivaestudios.py | 26 ++++++++++++++++++-------- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/dosagelib/plugins/common.py b/dosagelib/plugins/common.py index 88892cb7c..27d9caf30 100644 --- a/dosagelib/plugins/common.py +++ b/dosagelib/plugins/common.py @@ -19,7 +19,7 @@ class _WordPressScraper(_ParserScraper): class _WordPressSpliced(_ParserScraper): - imageSearch = '//div[@id="spliced-comic"]//img' + imageSearch = '//div[@id="one-comic-option"]//img' prevSearch = '//a[d:class("previous-comic")]' diff --git a/dosagelib/plugins/old.py b/dosagelib/plugins/old.py index 495b0be46..19be7e8c5 100644 --- a/dosagelib/plugins/old.py +++ b/dosagelib/plugins/old.py @@ -630,8 +630,6 @@ class Removed(Scraper): cls('ComicFury/TheUnthinkableHybrid'), cls('ComicFury/TwentyFourSeven'), cls('ComicFury/TwentyFourSevenFans'), - cls('TheCyantianChronicles/CookieCaper'), - cls('TheCyantianChronicles/Pawprints'), cls('GoComics/2CowsAndAChicken'), cls('GoComics/AskAPortlySyndicatePerson'), cls('GoComics/Bewley'), @@ -1270,6 +1268,8 @@ class Removed(Scraper): cls('Shivae/Extras'), cls('SnafuComics/Titan'), cls('StuffNoOneToldMe'), + cls('TheCyantianChronicles/CookieCaper'), + cls('TheCyantianChronicles/Pawprints'), cls('VictimsOfTheSystem'), cls('WebDesignerCOTW'), ) diff --git a/dosagelib/plugins/shivaestudios.py b/dosagelib/plugins/shivaestudios.py index 641787289..4d28ca44d 100644 --- a/dosagelib/plugins/shivaestudios.py +++ b/dosagelib/plugins/shivaestudios.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: MIT # Copyright (C) 2019-2021 Tobias Gruetzmacher -# Copyright (C) 2019-2020 Daniel Ring +# Copyright (C) 2019-2021 Daniel Ring from .common import _WordPressSpliced @@ -21,6 +21,12 @@ class AlienDice(_WordPressSpliced): stripUrl = url + 'comic/%s/' firstStripUrl = stripUrl % '05162001' + def getPrevUrl(self, url, data): + # Fix broken navigation + if url == self.stripUrl % 'day-29-part-2-page-3-4': + return self.stripUrl % 'day-29-part-2-page-3-2' + return super(AlienDice, self).getPrevUrl(url, data) + def namer(self, imageUrl, pageUrl): # Fix inconsistent filename return imageUrl.rsplit('/', 1)[-1].replace('20010831', '2001-08-31') @@ -28,12 +34,16 @@ class AlienDice(_WordPressSpliced): class AlienDiceLegacy(_WordPressSpliced): name = 'AlienDice/Legacy' - url = 'https://aliendice.com/chapter/legacy/' - stripUrl = url + 'page/%s/' - firstStripUrl = stripUrl % '45' - prevSearch = '//div[d:class("nav-previous")]/a' + baseUrl = 'https://aliendice.com/' + url = baseUrl + 'series/legacy/' + stripUrl = baseUrl + 'comic/%s/' + firstStripUrl = stripUrl % 'legacy-1' endOfLife = True + def isfirststrip(self, url): + # Strip series identifier + return super(AlienDiceLegacy, self).isfirststrip(url.rsplit('?', 1)[0]) + class BlackRose(_WordPressSpliced): url = 'https://www.blackrose.monster/' @@ -60,9 +70,9 @@ class TheCyantianChronicles(_WithSid): cls('CesileesDiary', 'cesilees-diary', '12062001-2', 16726, eol=True), cls('Darius', 'darius', '03102010', 14353, eol=True), cls('DracoVulpes', 'draco-vulpes', 'draco-vulpes', 13788), - cls('GenoworksSaga', 'genoworks-saga', '07012004', 13794, eol=True), + cls('GenoworksSaga', 'genoworks-saga', '07012004', 13794), cls('GralenCraggHall', 'kiet', '07152002', 13798, eol=True), - cls('Kiet', 'kiet-2', 'kiet-c01', 14351, eol=True), + cls('Kiet', 'kiet-2', 'kiet-c01', 14351), cls('NoAngel', 'no-angel', '08112001', 16644, eol=True), cls('RandomRamblings', 'gallery', 'cookie-war', 13801), cls('SinkOrSwim', 'sink-or-swim', '05112001', 13796, eol=True), @@ -77,7 +87,7 @@ class Shivae(_WordPressSpliced): class ShivaeComics(_WithSid): - baseUrl = 'https://shivae.net/index.php/' + baseUrl = 'https://shivae.net/' def __init__(self, name, path, first, sid, eol=False): super().__init__('Shivae/' + name, sid) From fe0f86de9526df658b50e5249d065f7c5506a3e9 Mon Sep 17 00:00:00 2001 From: Techwolf Date: Tue, 2 Feb 2021 01:52:22 -0800 Subject: [PATCH 26/40] Add DungeonsAndDenizens --- dosagelib/plugins/d.py | 8 ++++++++ dosagelib/plugins/old.py | 1 - 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/dosagelib/plugins/d.py b/dosagelib/plugins/d.py index 000f9aec0..bf49824be 100644 --- a/dosagelib/plugins/d.py +++ b/dosagelib/plugins/d.py @@ -365,6 +365,14 @@ class Drowtales(_ParserScraper): help = 'Index format: number' +class DungeonsAndDenizens(_WPNavi): + url = ('https://web.archive.org/web/20160308001834/' + 'http://dungeond.com/') + stripUrl = url + '%s/' + firstStripUrl = stripUrl % '2005/08/23/08232005' + endOfLife = True + + class DumbingOfAge(_WPNavi): url = 'http://www.dumbingofage.com/' stripUrl = url + '%s/' diff --git a/dosagelib/plugins/old.py b/dosagelib/plugins/old.py index 19be7e8c5..384650802 100644 --- a/dosagelib/plugins/old.py +++ b/dosagelib/plugins/old.py @@ -214,7 +214,6 @@ class Removed(Scraper): cls('DamnLol'), cls('DeathToTheExtremist'), cls('DoctorCat', 'brk'), - cls('DungeonsAndDenizens'), cls('EerieCuties'), cls('Ellerbisms'), cls('Eriadan'), From 55808bd921a87d07e958596ee5c2f25eb72eb2ae Mon Sep 17 00:00:00 2001 From: Techwolf Date: Tue, 2 Feb 2021 01:55:04 -0800 Subject: [PATCH 27/40] Add MarryMe --- dosagelib/plugins/m.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/dosagelib/plugins/m.py b/dosagelib/plugins/m.py index 83dbb37ce..1fbfb89cd 100644 --- a/dosagelib/plugins/m.py +++ b/dosagelib/plugins/m.py @@ -84,6 +84,15 @@ class MarriedToTheSea(_ParserScraper): return '%s-%s' % (date, filename) +class MarryMe(_ParserScraper): + url = 'http://marryme.keenspot.com/' + stripUrl = url + 'd/%s.html' + firstStripUrl = stripUrl % '20120730' + imageSearch = '//img[@class="ksc"]' + prevSearch = '//a[@rel="prev"]' + endOfLife = True + + class MaxOveracts(_ParserScraper): url = 'http://occasionalcomics.com/' stripUrl = url + '%s/' From 3b50c5738f4ee481dc6209e914437668b80d4c84 Mon Sep 17 00:00:00 2001 From: Techwolf Date: Fri, 5 Feb 2021 01:39:24 -0800 Subject: [PATCH 28/40] Add WebToons/SpellsFromHell --- dosagelib/plugins/webtoons.py | 1 + 1 file changed, 1 insertion(+) diff --git a/dosagelib/plugins/webtoons.py b/dosagelib/plugins/webtoons.py index 81d91e5ad..afe94b3ea 100644 --- a/dosagelib/plugins/webtoons.py +++ b/dosagelib/plugins/webtoons.py @@ -341,6 +341,7 @@ class WebToons(_ParserScraper): cls('SoulOnHold', 'supernatural/soul-on-hold', 1701), cls('SpaceBoy', 'sf/space-boy', 400), cls('SpaceVixen', 'challenge/space-vixen-deep-space-k9', 207049), + cls('SpellsFromHell', 'fantasy/spells-from-hell', 2431), cls('SpiritFingers', 'drama/spirit-fingers', 1577), cls('Spirits', 'fantasy/spirits-re', 1348), cls('StalkerXStalker', 'challenge/stalker-x-stalker', 245662), From 2381d7d004933a64d4a29603a057d4d64c38aeed Mon Sep 17 00:00:00 2001 From: Techwolf Date: Wed, 10 Feb 2021 18:14:26 -0800 Subject: [PATCH 29/40] Add WebToons/CChansACatgirl --- dosagelib/plugins/webtoons.py | 1 + 1 file changed, 1 insertion(+) diff --git a/dosagelib/plugins/webtoons.py b/dosagelib/plugins/webtoons.py index afe94b3ea..778a1b78c 100644 --- a/dosagelib/plugins/webtoons.py +++ b/dosagelib/plugins/webtoons.py @@ -110,6 +110,7 @@ class WebToons(_ParserScraper): 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), From 707fb1cbf8fafe72488075b39ea67c6d71a7b3fc Mon Sep 17 00:00:00 2001 From: Techwolf Date: Mon, 22 Feb 2021 01:16:06 -0800 Subject: [PATCH 30/40] Add WebToons/Phase --- dosagelib/plugins/webtoons.py | 1 + 1 file changed, 1 insertion(+) diff --git a/dosagelib/plugins/webtoons.py b/dosagelib/plugins/webtoons.py index 778a1b78c..9ae841904 100644 --- a/dosagelib/plugins/webtoons.py +++ b/dosagelib/plugins/webtoons.py @@ -298,6 +298,7 @@ class WebToons(_ParserScraper): cls('PenguinLovesMev', 'slice-of-life/penguin-loves-mev', 86), cls('Petrichor', 'challenge/petrichor', 100835), cls('PhantomParadise', 'fantasy/phantom-paradise', 1250), + cls('Phase', 'romance/phase', 2117), cls('Pigminted', 'slice-of-life/pigminted', 482), cls('PinchPoint', 'challenge/pinch-point-reborn', 334640), cls('Plum', 'sports/plum', 1605), From 119adcfbd35acae905782342e6b7e2fb3fb785b7 Mon Sep 17 00:00:00 2001 From: Techwolf Date: Mon, 22 Feb 2021 01:18:00 -0800 Subject: [PATCH 31/40] Add WebToons/MyDragonGirlfriend --- dosagelib/plugins/webtoons.py | 1 + 1 file changed, 1 insertion(+) diff --git a/dosagelib/plugins/webtoons.py b/dosagelib/plugins/webtoons.py index 9ae841904..a5456589b 100644 --- a/dosagelib/plugins/webtoons.py +++ b/dosagelib/plugins/webtoons.py @@ -272,6 +272,7 @@ class WebToons(_ParserScraper): cls('MyDearColdBloodedKing', 'romance/my-dear-cold-blooded-king', 961), cls('MyDeepestSecret', 'thriller/my-deepest-secret', 1580), cls('MyDictatorBoyfriend', 'comedy/my-dictator-boyfriend', 1391), + cls('MyDragonGirlfriend', 'challenge/my-dragon-girlfriend', 162918), cls('MyGiantNerdBoyfriend', 'slice-of-life/my-giant-nerd-boyfriend', 958), cls('MyKittyAndOldDog', 'slice-of-life/my-kitty-and-old-dog', 184), cls('MyNameIsBenny', 'slice-of-life/my-name-is-benny', 1279), From 348b2b7683323bfc86c64e76b16b70dddca5829b Mon Sep 17 00:00:00 2001 From: Techwolf Date: Mon, 22 Feb 2021 01:18:28 -0800 Subject: [PATCH 32/40] Add WebToons/Blackened --- dosagelib/plugins/webtoons.py | 1 + 1 file changed, 1 insertion(+) diff --git a/dosagelib/plugins/webtoons.py b/dosagelib/plugins/webtoons.py index a5456589b..2c7e81dd6 100644 --- a/dosagelib/plugins/webtoons.py +++ b/dosagelib/plugins/webtoons.py @@ -87,6 +87,7 @@ class WebToons(_ParserScraper): cls('BehindTheGIFs', 'comedy/behind-the-gifs', 658), cls('BigJo', 'romance/big-jo', 854), cls('BiteMe', 'thriller/bite-me', 1019), + cls('Blackened', 'challenge/blackened', 363805), cls('BladesOfFurry', 'romance/blades-of-furry', 2383), cls('Blessed', 'drama/blessed', 1193), cls('BloodInk', 'action/blood-ink', 1490), From 5ede74cf638525190c1ef18eafd950464c1711b9 Mon Sep 17 00:00:00 2001 From: Techwolf Date: Mon, 22 Feb 2021 01:19:22 -0800 Subject: [PATCH 33/40] Add WebToons/MyAssassinGirlfriend --- dosagelib/plugins/webtoons.py | 1 + 1 file changed, 1 insertion(+) diff --git a/dosagelib/plugins/webtoons.py b/dosagelib/plugins/webtoons.py index 2c7e81dd6..7462001e2 100644 --- a/dosagelib/plugins/webtoons.py +++ b/dosagelib/plugins/webtoons.py @@ -270,6 +270,7 @@ class WebToons(_ParserScraper): 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('MyDearColdBloodedKing', 'romance/my-dear-cold-blooded-king', 961), cls('MyDeepestSecret', 'thriller/my-deepest-secret', 1580), cls('MyDictatorBoyfriend', 'comedy/my-dictator-boyfriend', 1391), From c09f8c991b1f76f1cfeb7d06bd8df445ffc2b2f3 Mon Sep 17 00:00:00 2001 From: Techwolf Date: Mon, 22 Feb 2021 01:20:17 -0800 Subject: [PATCH 34/40] Add WebToons/YouveGottaBeKittenMe --- dosagelib/plugins/webtoons.py | 1 + 1 file changed, 1 insertion(+) diff --git a/dosagelib/plugins/webtoons.py b/dosagelib/plugins/webtoons.py index 7462001e2..c5d0da557 100644 --- a/dosagelib/plugins/webtoons.py +++ b/dosagelib/plugins/webtoons.py @@ -433,6 +433,7 @@ class WebToons(_ParserScraper): cls('XINK3R', 'super-hero/xinker', 541), cls('YourAdventure', 'comedy/your-adventure', 506), cls('YourLetter', 'drama/your-letter', 1540), + cls('YouveGottaBeKittenMe', 'challenge/youve-gotta-be-kitten-me', 383661), cls('YumisCells', 'slice-of-life/yumi-cell', 478), cls('YunaAndKawachan', 'drama/yuna-and-kawachan', 1840), cls('ZeroGame', 'fantasy/zero-game', 1704), From e0d4f7731e7b9c3c475a8ea0795aa48727cc62e6 Mon Sep 17 00:00:00 2001 From: Techwolf Date: Mon, 22 Feb 2021 01:22:57 -0800 Subject: [PATCH 35/40] Add WebToons/DrawnToYou --- dosagelib/plugins/webtoons.py | 1 + 1 file changed, 1 insertion(+) diff --git a/dosagelib/plugins/webtoons.py b/dosagelib/plugins/webtoons.py index c5d0da557..2c2aa2457 100644 --- a/dosagelib/plugins/webtoons.py +++ b/dosagelib/plugins/webtoons.py @@ -146,6 +146,7 @@ class WebToons(_ParserScraper): cls('DownToEarth', 'romance/down-to-earth', 1817), cls('Dragnarok', 'fantasy/dragnarok', 1018), cls('DragnarokDescendants', 'fantasy/dragnarok-descendants', 1433), + cls('DrawnToYou', 'challenge/drawn-to-you', 172022), cls('DrFrost', 'drama/dr-frost', 371), cls('DungeonMinis', 'challenge/dungeonminis', 64132), cls('Dustinteractive', 'comedy/dustinteractive', 907), From 54b82d91bfc6c81611b83e582292a01a621afda0 Mon Sep 17 00:00:00 2001 From: Techwolf Date: Mon, 22 Feb 2021 01:23:31 -0800 Subject: [PATCH 36/40] Add WebToons/JustFriends --- dosagelib/plugins/webtoons.py | 1 + 1 file changed, 1 insertion(+) diff --git a/dosagelib/plugins/webtoons.py b/dosagelib/plugins/webtoons.py index 2c2aa2457..d52e97d48 100644 --- a/dosagelib/plugins/webtoons.py +++ b/dosagelib/plugins/webtoons.py @@ -219,6 +219,7 @@ class WebToons(_ParserScraper): cls('JingleJungle', 'slice-of-life/jingle-jungle', 282), cls('JustAskYuli', 'slice-of-life/just-ask-yuli', 402), cls('JustForKicks', 'slice-of-life/just-for-kicks', 1152), + cls('JustFriends', 'challenge/just-friends', 190722), cls('JustPancakes', 'comedy/just-pancakes', 1651), cls('KidsAreAllRight', 'drama/kids-are-all-right', 283), cls('Killstagram', 'thriller/killstagram', 1971), From 436a61ae60877ea185be52c2cd48221e02d3d5d1 Mon Sep 17 00:00:00 2001 From: Techwolf Date: Mon, 22 Feb 2021 01:23:08 -0800 Subject: [PATCH 37/40] Add WebToons/FutureYou --- dosagelib/plugins/webtoons.py | 1 + 1 file changed, 1 insertion(+) diff --git a/dosagelib/plugins/webtoons.py b/dosagelib/plugins/webtoons.py index d52e97d48..afded9b37 100644 --- a/dosagelib/plugins/webtoons.py +++ b/dosagelib/plugins/webtoons.py @@ -174,6 +174,7 @@ class WebToons(_ParserScraper): cls('FourLeaf', 'fantasy/four-leaf', 1454), cls('FreakingRomance', 'romance/freaking-romance', 1467), cls('FridayForbiddenTales', 'thriller/friday', 388), + cls('FutureYou', 'challenge/future-you', 288439), cls('GameMasters', 'challenge/game-masters', 237252), cls('GenshinImpact', 'challenge/genshin-impact', 242646), cls('Gepetto', 'sf/gepetto', 81), From 03f6d2632b16d6443338a8c3c18d9ba7c909826a Mon Sep 17 00:00:00 2001 From: Techwolf Date: Mon, 22 Feb 2021 02:32:18 -0800 Subject: [PATCH 38/40] Add MangaDex/GanbareDoukiChan --- dosagelib/plugins/mangadex.py | 1 + 1 file changed, 1 insertion(+) diff --git a/dosagelib/plugins/mangadex.py b/dosagelib/plugins/mangadex.py index 3e85b7010..7f48d9e0e 100644 --- a/dosagelib/plugins/mangadex.py +++ b/dosagelib/plugins/mangadex.py @@ -77,6 +77,7 @@ class MangaDex(_ParserScraper): cls('DeliciousinDungeon', 13871), cls('DragonDrive', 5165), cls('FuguushokuKajishiDakedoSaikyouDesu', 56319), + cls('GanbareDoukiChan', 46585), cls('HangingOutWithAGamerGirl', 42490), cls('HoriMiya', 6770), cls('HowToOpenATriangularRiceball', 19305), From 1ebdea7aaebaa29ea62f3cfbadc76dea8e1b6d77 Mon Sep 17 00:00:00 2001 From: Techwolf Date: Fri, 12 Mar 2021 22:11:03 -0800 Subject: [PATCH 39/40] Fix SMBC --- dosagelib/plugins/s.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/dosagelib/plugins/s.py b/dosagelib/plugins/s.py index 4668c5ef6..e6e07e6b5 100644 --- a/dosagelib/plugins/s.py +++ b/dosagelib/plugins/s.py @@ -312,15 +312,21 @@ class SluggyFreelance(_ParserScraper): class SMBC(_ComicControlScraper): - url = 'http://www.smbc-comics.com/' - firstStripUrl = url + 'comic/2002-09-05' - multipleImagesPerStrip = True + url = 'https://www.smbc-comics.com/' + stripUrl = url + 'comic/%s' + firstStripUrl = stripUrl % '2002-09-05' imageSearch = ['//img[@id="cc-comic"]', '//div[@id="aftercomic"]/img'] textSearch = '//img[@id="cc-comic"]/@title' + multipleImagesPerStrip = True - def namer(self, image_url, page_url): - """Remove random noise from name.""" - return image_url.rsplit('-', 1)[-1] + def namer(self, imageUrl, pageUrl): + # Remove random noise from filename + filename = imageUrl.rsplit('/', 1)[-1] + if '-' in filename and len(filename.rsplit('-', 1)[-1]) > 12: + filename = filename.rsplit('-', 1)[-1] + elif len(filename) > 22 and filename[0] == '1': + filename = filename[10:] + return filename class SnowFlame(_WordPressScraper): From 0df3db7f5c252da20dfc932377634fbf47039a9a Mon Sep 17 00:00:00 2001 From: Techwolf Date: Tue, 16 Mar 2021 02:09:52 -0700 Subject: [PATCH 40/40] Add TaleOfTenThousand --- dosagelib/plugins/t.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/dosagelib/plugins/t.py b/dosagelib/plugins/t.py index ee055b689..0792f63e1 100644 --- a/dosagelib/plugins/t.py +++ b/dosagelib/plugins/t.py @@ -23,6 +23,14 @@ class TailsAndTactics(_ParserScraper): prevSearch = '//a[text()=" Back"]' +class TaleOfTenThousand(_ParserScraper): + url = 'http://www.t10k.club/' + stripUrl = url + 'comic/%s' + firstStripUrl = stripUrl % '1-01_00' + imageSearch = '//article[@id="comic"]//img' + prevSearch = '//a[d:class("prev")]' + + class TekMage(_WPNavi): url = 'https://tekmagecomic.com/' stripUrl = url + 'comic/%s/'