From 3503a2bedef48f4ea609cb0f88afe8991a262b18 Mon Sep 17 00:00:00 2001 From: Techwolf Date: Fri, 12 Jul 2019 22:35:14 -0700 Subject: [PATCH] Add site engine for RHJunior and migrate existing comics --- dosagelib/plugins/old.py | 3 +++ dosagelib/plugins/q.py | 8 -------- dosagelib/plugins/rhjunior.py | 33 +++++++++++++++++++++++++++++++++ dosagelib/plugins/t.py | 17 ----------------- 4 files changed, 36 insertions(+), 25 deletions(-) create mode 100644 dosagelib/plugins/rhjunior.py diff --git a/dosagelib/plugins/old.py b/dosagelib/plugins/old.py index 57645bed9..6fab03154 100644 --- a/dosagelib/plugins/old.py +++ b/dosagelib/plugins/old.py @@ -731,6 +731,7 @@ class Renamed(Scraper): cls('OnTheFasttrack', 'ComicsKingdom/OnTheFastrack'), cls('PetiteSymphony/Djandora', 'ComicsBreak/Djandora'), cls('PetiteSymphony/Generation17', 'ComicsBreak/Generation17'), + cls('QuentynQuinnSpaceRanger', 'RHJunior/QuentynQuinnSpaceRanger'), cls('ShermansLagoon', 'ComicsKingdom/ShermansLagoon'), cls('SmackJeeves/CityFolk', 'ComicFury/CityFolk'), cls('SmackJeeves/DoomsdayMyDear', 'DoomsdayMyDear'), @@ -740,6 +741,8 @@ class Renamed(Scraper): cls('SmackJeeves/Magience', 'ComicFury/Magience'), cls('SmackJeeves/RiversideExtras', 'RiversideExtras'), cls('SmackJeeves/StarTrip', 'StarTrip'), + cls('TalesOfTheQuestor', 'RHJunior/TalesOfTheQuestor'), + cls('TheProbabilityBomb', 'RHJunior/TheProbabilityBomb'), cls('TracyAndTristan', 'ComicFury/TracyAndTristan'), cls('UnlikeMinerva', 'NamirDeiter/UnlikeMinerva'), cls('Wulffmorgenthaler', 'WuMo'), diff --git a/dosagelib/plugins/q.py b/dosagelib/plugins/q.py index 1959a203e..7c636b479 100644 --- a/dosagelib/plugins/q.py +++ b/dosagelib/plugins/q.py @@ -17,14 +17,6 @@ class QuantumVibe(_ParserScraper): prevSearch = '//a[./img[contains(@src, "nav/prevstrip")]]' -class QuentynQuinnSpaceRanger(_ParserScraper): - stripUrl = 'http://www.rhjunior.com/%s/' - firstStripUrl = stripUrl % 'quentyn-quinn-space-ranger-0001' - url = stripUrl % 'comics/quentyn-quinn-space-ranger' - imageSearch = '//div[contains(@class, "entry-content")]//img' - prevSearch = ('//a[@rel="prev"]', '//a[@title="Quentyn Quinn, Space Ranger"]') - - class QuestionableContent(_ParserScraper): url = 'http://www.questionablecontent.net/' stripUrl = url + 'view.php?comic=%s' diff --git a/dosagelib/plugins/rhjunior.py b/dosagelib/plugins/rhjunior.py new file mode 100644 index 000000000..1ca84c6e6 --- /dev/null +++ b/dosagelib/plugins/rhjunior.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2019-2020 Tobias Gruetzmacher + +from __future__ import absolute_import, division, print_function + +from ..scraper import _ParserScraper + + +class RHJunior(_ParserScraper): + stripUrl = 'http://www.rhjunior.com/%s/' + imageSearch = '//div[contains(@class, "entry-content")]//img' + multipleImagesPerStrip = True + + def __init__(self, name, sub, prev, first, last=None): + super(RHJunior, self).__init__('RHJunior/' + name) + self.prevSearch = ('//a[@rel="prev"]', '//a[@title="' + prev + '"]') + self.url = self.stripUrl % ('comics/' + sub) + self.firstStripUrl = self.stripUrl % (sub + '-' + first) + + if last: + self.url = self.stripUrl % (sub + '-' + last) + self.endOfLife = True + + @classmethod + def getmodules(cls): + return ( + cls('GoblinHollow', 'goblin-hollow', '', '0001', last='7'), + cls('NipAndTuck', 'nip-and-tuck', 'Nip and Tuck', '0000'), + cls('QuentynQuinnSpaceRanger', 'quentyn-quinn-space-ranger', 'Quentyn Quinn, Space Ranger', '0001'), + cls('TalesOfTheQuestor', 'tales-of-the-questor', 'Tales of the Questor', 'cover'), + cls('TheJournalOfEnniasLongscript', 'the-journal-of-ennias-longscript', '', '0001', last='0111'), + cls('TheProbabilityBomb', 'the-probability-bomb', 'the Probability Bomb', 'kickstarter') + ) diff --git a/dosagelib/plugins/t.py b/dosagelib/plugins/t.py index 4463aca3c..915f4d169 100644 --- a/dosagelib/plugins/t.py +++ b/dosagelib/plugins/t.py @@ -25,14 +25,6 @@ class TailsAndTactics(_ParserScraper): prevSearch = '//a[text()=" Back"]' -class TalesOfTheQuestor(_ParserScraper): - stripUrl = 'http://www.rhjunior.com/%s/' - firstStripUrl = stripUrl % 'tales-of-the-questor-cover' - url = stripUrl % 'comics/tales-of-the-questor' - imageSearch = '//div[contains(@class, "entry-content")]//img' - prevSearch = ('//a[@rel="prev"]', '//a[@title="Tales of the Questor"]') - - class Tamberlane(_ParserScraper): baseUrl = 'https://www.tamberlanecomic.com/' url = baseUrl + 'latest/' @@ -163,15 +155,6 @@ class TheOrderOfTheStick(_BasicScraper): return page_url.rsplit('/', 1)[-1][:-5] -class TheProbabilityBomb(_ParserScraper): - stripUrl = 'http://www.rhjunior.com/%s/' - firstStripUrl = stripUrl % 'the-probability-bomb' - url = stripUrl % 'comics/the-probability-bomb' - imageSearch = '//div[contains(@class, "entry-content")]//img' - prevSearch = ('//a[@rel="prev"]', '//a[contains(@title, "Probability Bomb")]') - multipleImagesPerStrip = True - - class TheRockCocks(_BasicScraper): url = 'http://rockcocks.slipshine.net/' rurl = escape(url)