27d28b8eef
The default encoding for source files is UTF-8 since Python 3, so we can drop all encoding headers. While we are at it, just replace them with SPDX headers.
89 lines
3.4 KiB
Python
89 lines
3.4 KiB
Python
# SPDX-License-Identifier: MIT
|
|
# Copyright (C) 2019-2020 Tobias Gruetzmacher
|
|
# Copyright (C) 2019-2020 Daniel Ring
|
|
from .common import _WordPressScraper
|
|
|
|
|
|
class TheCyantianChronicles(_WordPressScraper):
|
|
baseUrl = 'https://cyantian.net/'
|
|
stripUrl = baseUrl + 'comic/%s/'
|
|
|
|
def __init__(self, name, story, first, last=None, nav=None):
|
|
super(TheCyantianChronicles, self).__init__('TheCyantianChronicles/' + name)
|
|
|
|
self.url = self.baseUrl + 'story/' + story + '/'
|
|
self.firstStripUrl = self.stripUrl % first
|
|
|
|
self.nav = nav
|
|
|
|
if last:
|
|
self.url = self.stripUrl % last
|
|
self.endOfLife = True
|
|
|
|
def getPrevUrl(self, url, data):
|
|
# Missing/broken navigation links
|
|
url = url.rstrip('/').rsplit('/', 1)[-1]
|
|
if self.nav and url in self.nav:
|
|
return self.stripUrl % self.nav[url]
|
|
return super(TheCyantianChronicles, self).getPrevUrl(url, data)
|
|
|
|
@classmethod
|
|
def getmodules(cls):
|
|
return (
|
|
cls('Akaelae', 'akaelae', '05182003', last='01202010'),
|
|
cls('Artwork', 'artwork', '07162003', nav={'d-71': 'a-17'}),
|
|
cls('CampusSafari', 'ocs', '10012000', last='03282008'),
|
|
cls('CampusSafariReboot', 'campus-safari', 'campus-safari-chapter-0'),
|
|
cls('CesileesDiary', 'cdiary', '12062001-2', last='05312006'),
|
|
cls('CookieCaper', 'cookie-caper', 'cookie-war', last='2014-04-17'),
|
|
cls('Darius', 'dbook-01', '03102010', last='darius-end'),
|
|
cls('DracoVulpes', 'draco-vulpes', 'draco-vulpes'),
|
|
cls('GenoworksSaga', 'genoworks-saga', '07012004'),
|
|
cls('GralenCraggHall', 'gchall', '07152002', last='chapter-6-05', nav={'chapter-5': '02152005'}),
|
|
cls('Kiet', 'kiet', 'kiet-c01'),
|
|
cls('NoAngel', 'no-angel', '08112001', last='12142006'),
|
|
cls('Pawprints', 'pawprints', 'airboard-page-1', last='pawprints-sheana-10'),
|
|
cls('RandomRamblings', 'random-ramblings', 'darrik'),
|
|
cls('SinkOrSwim', 'sos', 'sink-or-swim', last='ricochete-and-seraphim')
|
|
)
|
|
|
|
|
|
class Shivae(_WordPressScraper):
|
|
url = 'https://shivae.com/'
|
|
stripUrl = url + 'gnip/%s/'
|
|
firstStripUrl = stripUrl % 'cler/09202001'
|
|
|
|
|
|
class ShivaeComics(_WordPressScraper):
|
|
baseUrl = 'https://shivae.net/'
|
|
|
|
def __init__(self, name, story, first, last=None, nav=None):
|
|
super(ShivaeComics, self).__init__('Shivae/' + name)
|
|
|
|
self.url = self.baseUrl + story + '/'
|
|
self.stripUrl = self.url + 'comic/%s/'
|
|
self.firstStripUrl = self.stripUrl % first
|
|
|
|
self.nav = nav
|
|
|
|
if last:
|
|
self.url = self.stripUrl % last
|
|
self.endOfLife = True
|
|
|
|
def getPrevUrl(self, url, data):
|
|
# Missing/broken navigation links
|
|
url = url.rstrip('/').rsplit('/', 1)[-1]
|
|
if self.nav and url in self.nav:
|
|
return self.stripUrl % self.nav[url]
|
|
return super(ShivaeComics, self).getPrevUrl(url, data)
|
|
|
|
@classmethod
|
|
def getmodules(cls):
|
|
return (
|
|
cls('BlackRose', 'blackrose', '11012004'),
|
|
cls('CafeAnime', 'cafeanime', '08172004', last='09192009'),
|
|
cls('Extras', 'extras', '01012012', nav={'12302012': '08152013'}),
|
|
cls('Pure', 'pure', '04082002', last='chapter-6-page-1'),
|
|
cls('SerinFairyHunter', 'serin', 'character-serin'),
|
|
cls('SivineBlades', 'sivine', '06302002', last='10242008')
|
|
)
|