Clean up lost comics
This commit is contained in:
parent
6719c6ac25
commit
202e47af50
10 changed files with 10 additions and 112 deletions
|
@ -117,13 +117,6 @@ class CatAndGirl(_ParserScraper):
|
||||||
prevSearch = '//a[d:class("pager--prev")]'
|
prevSearch = '//a[d:class("pager--prev")]'
|
||||||
|
|
||||||
|
|
||||||
class CatenaCafe(WordPressScraper):
|
|
||||||
name = 'CatenaManor/CatenaCafe'
|
|
||||||
url = 'https://catenamanor.com/'
|
|
||||||
stripUrl = url + 'comic/%s/'
|
|
||||||
firstStripUrl = stripUrl % 'reboot-book1cover-small'
|
|
||||||
|
|
||||||
|
|
||||||
class CatenaManor(_ParserScraper):
|
class CatenaManor(_ParserScraper):
|
||||||
baseUrl = ('https://web.archive.org/web/20141027141116/'
|
baseUrl = ('https://web.archive.org/web/20141027141116/'
|
||||||
'http://catenamanor.com/')
|
'http://catenamanor.com/')
|
||||||
|
|
|
@ -20,24 +20,6 @@ class FalconTwin(_BasicScraper):
|
||||||
help = 'Index format: nnn'
|
help = 'Index format: nnn'
|
||||||
|
|
||||||
|
|
||||||
class FalseStart(_ParserScraper):
|
|
||||||
baseUrl = 'https://boneitisindustries.com/'
|
|
||||||
url = baseUrl + 'comics/false-start/'
|
|
||||||
stripUrl = baseUrl + 'comic/%s/'
|
|
||||||
firstStripUrl = stripUrl % 'false-start-chapter-zero-page-1'
|
|
||||||
imageSearch = '//div[@id="content"]//img[d:class("size-full")]'
|
|
||||||
prevSearch = '//a[./span[d:class("ticon-chevron-left")]]'
|
|
||||||
adult = True
|
|
||||||
|
|
||||||
def starter(self):
|
|
||||||
archivePage = self.getPage(self.url)
|
|
||||||
self.archive = archivePage.xpath('//div[contains(@class, "vcex-portfolio-grid")]//a/@href')
|
|
||||||
return self.archive[-1]
|
|
||||||
|
|
||||||
def getPrevUrl(self, url, data):
|
|
||||||
return self.archive[self.archive.index(url) - 1]
|
|
||||||
|
|
||||||
|
|
||||||
class Faneurysm(WordPressNaviIn):
|
class Faneurysm(WordPressNaviIn):
|
||||||
url = 'http://hijinksensue.com/comic/think-only-tree/'
|
url = 'http://hijinksensue.com/comic/think-only-tree/'
|
||||||
firstStripUrl = 'http://hijinksensue.com/comic/captains-prerogative/'
|
firstStripUrl = 'http://hijinksensue.com/comic/captains-prerogative/'
|
||||||
|
|
|
@ -59,16 +59,6 @@ class GeeksNextDoor(_ParserScraper):
|
||||||
help = 'Index format: yyyy-mm-dd'
|
help = 'Index format: yyyy-mm-dd'
|
||||||
|
|
||||||
|
|
||||||
class Ginpu(WordPressNavi):
|
|
||||||
url = 'https://www.ginpu.us/'
|
|
||||||
stripUrl = url + 'comic/%s/'
|
|
||||||
firstStripUrl = stripUrl % 'filler-2'
|
|
||||||
|
|
||||||
def namer(self, imageUrl, pageUrl):
|
|
||||||
filename = imageUrl.rsplit('/', 3)
|
|
||||||
return '%s-%s_%s' % (filename[1], filename[2], filename[3])
|
|
||||||
|
|
||||||
|
|
||||||
class GirlGenius(_BasicScraper):
|
class GirlGenius(_BasicScraper):
|
||||||
baseUrl = 'http://www.girlgeniusonline.com/'
|
baseUrl = 'http://www.girlgeniusonline.com/'
|
||||||
rurl = escape(baseUrl)
|
rurl = escape(baseUrl)
|
||||||
|
|
|
@ -63,7 +63,6 @@ class KemonoCafe(ParserScraper):
|
||||||
cls('LasLindas', 'laslindas', 'll0001', adult=True),
|
cls('LasLindas', 'laslindas', 'll0001', adult=True),
|
||||||
cls('Paprika', 'paprika', 'page000'),
|
cls('Paprika', 'paprika', 'page000'),
|
||||||
cls('PracticeMakesPerfect', 'pmp', 'title-001'),
|
cls('PracticeMakesPerfect', 'pmp', 'title-001'),
|
||||||
cls('PrincessBunny', 'princessbunny', 'pg001'),
|
|
||||||
cls('Rascals', 'rascals', 'rascals-pg-0', adult=True),
|
cls('Rascals', 'rascals', 'rascals-pg-0', adult=True),
|
||||||
cls('TheEyeOfRamalach', 'theeye', 'theeye-page01'),
|
cls('TheEyeOfRamalach', 'theeye', 'theeye-page01'),
|
||||||
cls('TinaOfTheSouth', 'tots', 'tos-01-01'),
|
cls('TinaOfTheSouth', 'tots', 'tos-01-01'),
|
||||||
|
|
|
@ -112,7 +112,6 @@ class MangaDex(ParserScraper):
|
||||||
cls('HowToOpenATriangularRiceball', '6ebd90ce-d5e8-49c0-a4bc-e02e0f8ecb93'),
|
cls('HowToOpenATriangularRiceball', '6ebd90ce-d5e8-49c0-a4bc-e02e0f8ecb93'),
|
||||||
cls('HunterXHunter', 'db692d58-4b13-4174-ae8c-30c515c0689c'),
|
cls('HunterXHunter', 'db692d58-4b13-4174-ae8c-30c515c0689c'),
|
||||||
cls('IchaichasuruToOkaneGaWaichauFutariNoHanashi', '8eaaec7d-7aa7-490e-8d52-5a3d0a28e78b'),
|
cls('IchaichasuruToOkaneGaWaichauFutariNoHanashi', '8eaaec7d-7aa7-490e-8d52-5a3d0a28e78b'),
|
||||||
cls('ImTheMaxLevelNewbie', 'a253e13a-2b41-4f7d-915e-1e31a3f5d31d'),
|
|
||||||
cls('InterspeciesReviewers', '1b2fddf9-1385-4f3c-b37a-cf86a9428b1a'),
|
cls('InterspeciesReviewers', '1b2fddf9-1385-4f3c-b37a-cf86a9428b1a'),
|
||||||
cls('JahySamaWaKujikenai', '2f4e5f5b-d930-4266-8c8a-c4cf9a81e51f'),
|
cls('JahySamaWaKujikenai', '2f4e5f5b-d930-4266-8c8a-c4cf9a81e51f'),
|
||||||
cls('JingaiNoYomeToIchaIchaSuru', '809d2493-df3c-4e72-a57e-3e0026cae9fb'),
|
cls('JingaiNoYomeToIchaIchaSuru', '809d2493-df3c-4e72-a57e-3e0026cae9fb'),
|
||||||
|
|
|
@ -604,6 +604,7 @@ class Removed(Scraper):
|
||||||
cls('WotNow'),
|
cls('WotNow'),
|
||||||
|
|
||||||
# Removed in 3.0
|
# Removed in 3.0
|
||||||
|
cls('CatenaManor/CatenaCafe'),
|
||||||
cls('ComicFury/AdventuresOftheGreatCaptainMaggieandCrew'),
|
cls('ComicFury/AdventuresOftheGreatCaptainMaggieandCrew'),
|
||||||
cls('ComicFury/AWAKENING'),
|
cls('ComicFury/AWAKENING'),
|
||||||
cls('ComicFury/Beebleville'),
|
cls('ComicFury/Beebleville'),
|
||||||
|
@ -832,6 +833,8 @@ class Removed(Scraper):
|
||||||
cls('ComicsKingdom/Redeye'),
|
cls('ComicsKingdom/Redeye'),
|
||||||
cls('ComicsKingdom/RedeyeSundays'),
|
cls('ComicsKingdom/RedeyeSundays'),
|
||||||
cls('CrapIDrewOnMyLunchBreak'),
|
cls('CrapIDrewOnMyLunchBreak'),
|
||||||
|
cls('FalseStart'),
|
||||||
|
cls('Ginpu'),
|
||||||
cls('GoComics/060'),
|
cls('GoComics/060'),
|
||||||
cls('GoComics/2CowsAndAChicken'),
|
cls('GoComics/2CowsAndAChicken'),
|
||||||
cls('GoComics/ABitSketch'),
|
cls('GoComics/ABitSketch'),
|
||||||
|
@ -992,9 +995,11 @@ class Removed(Scraper):
|
||||||
cls('GoComics/Wrobbertcartoons'),
|
cls('GoComics/Wrobbertcartoons'),
|
||||||
cls('GoComics/Zootopia'),
|
cls('GoComics/Zootopia'),
|
||||||
cls('JustAnotherEscape'),
|
cls('JustAnotherEscape'),
|
||||||
|
cls('KemonoCafe/PrincessBunny'),
|
||||||
cls('Laiyu', 'brk'),
|
cls('Laiyu', 'brk'),
|
||||||
cls('MangaDex/DrStone', 'legal'),
|
cls('MangaDex/DrStone', 'legal'),
|
||||||
cls('MangaDex/HeavensDesignTeam', 'legal'),
|
cls('MangaDex/HeavensDesignTeam', 'legal'),
|
||||||
|
cls('MangaDex/ImTheMaxLevelNewbie', 'legal'),
|
||||||
cls('MangaDex/SPYxFAMILY', 'legal'),
|
cls('MangaDex/SPYxFAMILY', 'legal'),
|
||||||
cls('Ryugou'),
|
cls('Ryugou'),
|
||||||
cls('SeelPeel'),
|
cls('SeelPeel'),
|
||||||
|
@ -1568,16 +1573,21 @@ class Removed(Scraper):
|
||||||
cls('SnafuComics/Tin'),
|
cls('SnafuComics/Tin'),
|
||||||
cls('SnafuComics/Titan'),
|
cls('SnafuComics/Titan'),
|
||||||
cls('StudioKhimera/Eorah', 'mov'),
|
cls('StudioKhimera/Eorah', 'mov'),
|
||||||
|
cls('StudioKhimera/Mousechevious'),
|
||||||
cls('StuffNoOneToldMe'),
|
cls('StuffNoOneToldMe'),
|
||||||
cls('TaleOfTenThousand'),
|
cls('TaleOfTenThousand'),
|
||||||
|
cls('TalesAndTactics'),
|
||||||
cls('TheCyantianChronicles/CookieCaper'),
|
cls('TheCyantianChronicles/CookieCaper'),
|
||||||
cls('TheCyantianChronicles/Pawprints'),
|
cls('TheCyantianChronicles/Pawprints'),
|
||||||
|
cls('VampireHunterBoyfriends'),
|
||||||
cls('VGCats/Adventure'),
|
cls('VGCats/Adventure'),
|
||||||
cls('VGCats/Super'),
|
cls('VGCats/Super'),
|
||||||
cls('VictimsOfTheSystem'),
|
cls('VictimsOfTheSystem'),
|
||||||
cls('WebDesignerCOTW'),
|
cls('WebDesignerCOTW'),
|
||||||
cls('WebToons/Adamsville'),
|
cls('WebToons/Adamsville'),
|
||||||
cls('WebToons/CrapIDrewOnMyLunchBreak'),
|
cls('WebToons/CrapIDrewOnMyLunchBreak'),
|
||||||
|
cls('WebToons/CrystalVirus'),
|
||||||
|
cls('WebToons/OVERPOWERED'),
|
||||||
cls('WintersLight'),
|
cls('WintersLight'),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -1,47 +0,0 @@
|
||||||
# SPDX-License-Identifier: MIT
|
|
||||||
# Copyright (C) 2019-2022 Tobias Gruetzmacher
|
|
||||||
# Copyright (C) 2019-2020 Daniel Ring
|
|
||||||
from ..scraper import ParserScraper
|
|
||||||
from .common import WordPressScraper
|
|
||||||
|
|
||||||
|
|
||||||
class StudioKhimera(ParserScraper):
|
|
||||||
imageSearch = '//figure[@class="gallery-item"]//img/@data-src'
|
|
||||||
prevSearch = '//a[@rel="prev"]'
|
|
||||||
|
|
||||||
def __init__(self, name, sub, last=None, adult=False, fixNames=False):
|
|
||||||
super().__init__('StudioKhimera/' + name)
|
|
||||||
|
|
||||||
self.baseUrl = 'https://%s.studiokhimera.com/' % sub
|
|
||||||
self.stripUrl = self.baseUrl + '%s/'
|
|
||||||
self.url = self.baseUrl + 'category/comicChapter/?latest'
|
|
||||||
|
|
||||||
self.multipleImagesPerStrip = True
|
|
||||||
|
|
||||||
if last:
|
|
||||||
self.last = True
|
|
||||||
self.url = self.stripUrl % last
|
|
||||||
self.endOfLife = True
|
|
||||||
|
|
||||||
if adult:
|
|
||||||
self.adult = True
|
|
||||||
|
|
||||||
def starter(self):
|
|
||||||
# Retrieve list of chapter links
|
|
||||||
chapterPage = self.getPage(self.baseUrl + 'archive/')
|
|
||||||
self.chapters = chapterPage.xpath('//main//a/@href')
|
|
||||||
self.firstStripUrl = self.chapters[0]
|
|
||||||
return self.chapters[-1]
|
|
||||||
|
|
||||||
def getPrevUrl(self, url, data):
|
|
||||||
# Select previous chapter from list
|
|
||||||
index = [i for i, ch in enumerate(self.chapters) if ch == url][0]
|
|
||||||
if index == 0:
|
|
||||||
return None
|
|
||||||
return self.chapters[index - 1]
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def getmodules(cls):
|
|
||||||
return (
|
|
||||||
cls('Mousechievous', 'mousechievous'),
|
|
||||||
)
|
|
|
@ -16,14 +16,6 @@ from .common import (ComicControlScraper, WordPressScraper, WordPressSpliced,
|
||||||
WordPressNavi, WordPressWebcomic)
|
WordPressNavi, WordPressWebcomic)
|
||||||
|
|
||||||
|
|
||||||
class TailsAndTactics(_ParserScraper):
|
|
||||||
url = 'http://tailsandtactics.com/comic/'
|
|
||||||
stripUrl = url + '%s/'
|
|
||||||
firstStripUrl = stripUrl % '1'
|
|
||||||
imageSearch = '//div[@class="comic-image"]/img'
|
|
||||||
prevSearch = '//a[text()=" Back"]'
|
|
||||||
|
|
||||||
|
|
||||||
class TekMage(WordPressNavi):
|
class TekMage(WordPressNavi):
|
||||||
url = 'https://tekmagecomic.com/'
|
url = 'https://tekmagecomic.com/'
|
||||||
stripUrl = url + 'comic/%s/'
|
stripUrl = url + 'comic/%s/'
|
||||||
|
|
|
@ -7,24 +7,6 @@ from ..scraper import ParserScraper, _ParserScraper
|
||||||
from ..helpers import bounceStarter, indirectStarter
|
from ..helpers import bounceStarter, indirectStarter
|
||||||
|
|
||||||
|
|
||||||
class VampireHunterBoyfriends(_ParserScraper):
|
|
||||||
baseUrl = 'https://boneitisindustries.com/'
|
|
||||||
url = baseUrl + 'comics/vampire-hunter-boyfriends/'
|
|
||||||
stripUrl = baseUrl + 'comic/%s/'
|
|
||||||
firstStripUrl = stripUrl % 'vampire-hunter-boyfriends-chapter-1-cover'
|
|
||||||
imageSearch = '//div[@id="content"]//img[d:class("size-full")]'
|
|
||||||
prevSearch = '//a[./span[d:class("ticon-chevron-left")]]'
|
|
||||||
adult = True
|
|
||||||
|
|
||||||
def starter(self):
|
|
||||||
archivePage = self.getPage(self.url)
|
|
||||||
self.archive = archivePage.xpath('//div[contains(@class, "vcex-portfolio-grid")]//a/@href')
|
|
||||||
return self.archive[-1]
|
|
||||||
|
|
||||||
def getPrevUrl(self, url, data):
|
|
||||||
return self.archive[self.archive.index(url) - 1]
|
|
||||||
|
|
||||||
|
|
||||||
class Vexxarr(_ParserScraper):
|
class Vexxarr(_ParserScraper):
|
||||||
baseUrl = 'http://www.vexxarr.com/'
|
baseUrl = 'http://www.vexxarr.com/'
|
||||||
url = baseUrl + 'Index.php'
|
url = baseUrl + 'Index.php'
|
||||||
|
|
|
@ -122,7 +122,6 @@ class WebToons(ParserScraper):
|
||||||
cls('CodeAdam', 'action/code-adam', 1657),
|
cls('CodeAdam', 'action/code-adam', 1657),
|
||||||
cls('CookingComically', 'tiptoon/cooking-comically', 622),
|
cls('CookingComically', 'tiptoon/cooking-comically', 622),
|
||||||
cls('Crumbs', 'romance/crumbs', 1648),
|
cls('Crumbs', 'romance/crumbs', 1648),
|
||||||
cls('CrystalVirus', 'challenge/crystal-virus', 347038),
|
|
||||||
cls('CrystalVirusOtherStory', 'challenge/crystal-virus-other-story', 837028),
|
cls('CrystalVirusOtherStory', 'challenge/crystal-virus-other-story', 837028),
|
||||||
cls('CupidsArrows', 'romance/cupids-arrows', 1538),
|
cls('CupidsArrows', 'romance/cupids-arrows', 1538),
|
||||||
cls('CursedPrincessClub', 'comedy/cursed-princess-club', 1537),
|
cls('CursedPrincessClub', 'comedy/cursed-princess-club', 1537),
|
||||||
|
@ -311,7 +310,6 @@ class WebToons(ParserScraper):
|
||||||
cls('OmniscientReader', 'action/omniscient-reader', 2154),
|
cls('OmniscientReader', 'action/omniscient-reader', 2154),
|
||||||
cls('ORANGEMARMALADE', 'romance/orange-marmalade', 97),
|
cls('ORANGEMARMALADE', 'romance/orange-marmalade', 97),
|
||||||
cls('Outrage', 'super-hero/outrage', 1450),
|
cls('Outrage', 'super-hero/outrage', 1450),
|
||||||
cls('OVERPOWERED', 'challenge/overpowered', 85292),
|
|
||||||
cls('PacificRimAmara', 'sf/pacific-rim-amara', 1327),
|
cls('PacificRimAmara', 'sf/pacific-rim-amara', 1327),
|
||||||
cls('PandorasBlogs', 'challenge/pandoras-blogs', 532007),
|
cls('PandorasBlogs', 'challenge/pandoras-blogs', 532007),
|
||||||
cls('PaperRoses', 'challenge/paper-roses', 39736),
|
cls('PaperRoses', 'challenge/paper-roses', 39736),
|
||||||
|
|
Loading…
Reference in a new issue