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.
56 lines
2.2 KiB
Python
56 lines
2.2 KiB
Python
# SPDX-License-Identifier: MIT
|
|
# Copyright (C) 2019-2020 Tobias Gruetzmacher
|
|
# Copyright (C) 2019-2020 Daniel Ring
|
|
from ..scraper import _ParserScraper
|
|
from ..helpers import indirectStarter
|
|
|
|
|
|
class Derideal(_ParserScraper):
|
|
baseUrl = 'https://www.derideal.com/'
|
|
imageSearch = '//img[contains(@class, "comic-page")]'
|
|
prevSearch = '//a[i[contains(@class, "fa-angle-left")]]'
|
|
latestSearch = '//a[i[contains(@class, "fa-angle-double-right")]]'
|
|
starter = indirectStarter
|
|
|
|
def __init__(self, name, sub, first, last=None):
|
|
if name == 'Derideal':
|
|
super(Derideal, self).__init__(name)
|
|
else:
|
|
super(Derideal, self).__init__('Derideal/' + name)
|
|
|
|
self.url = self.baseUrl + sub
|
|
self.stripUrl = self.url + '/%s/'
|
|
self.firstStripUrl = self.stripUrl % first
|
|
self.startUrl = self.firstStripUrl
|
|
|
|
if last:
|
|
self.endOfLife = True
|
|
|
|
def starter(self):
|
|
indexPage = self.getPage(self.url)
|
|
self.chapters = indexPage.xpath('//a[contains(text(), "Read this episode")]/@href')
|
|
self.currentChapter = len(self.chapters)
|
|
return indirectStarter(self)
|
|
|
|
def namer(self, imageUrl, pageUrl):
|
|
filename = pageUrl.rstrip('/').rsplit('/', 1)[-1]
|
|
filename = filename.replace('espanol-escape-25', 'escape-26')
|
|
filename = filename.replace('espanol-w-a-l-l-y', 'w-a-l-l-y')
|
|
filename = filename.replace('hogar-prision', 'home-prison')
|
|
filename = filename.replace('strip', 'pe').replace('purpurina-effect', 'pe')
|
|
filename = filename.replace('sector-de-seguridad', 'security-sector')
|
|
filename = 'ch' + str(self.currentChapter) + '-' + filename
|
|
if pageUrl in self.chapters:
|
|
self.currentChapter -= 1
|
|
return filename
|
|
|
|
@classmethod
|
|
def getmodules(cls):
|
|
return (
|
|
cls('Derideal', 'derideal', 'cover-prime'),
|
|
cls('Legacy', 'derideal-legacy', 'the-dream-cover', last='derideal-is-on-hiatus'),
|
|
cls('LRE', 'RLE', 'the-leyend-of-the-rose-cover'),
|
|
cls('ProjectPrime', 'project-prime', 'custus-part-i-cover'),
|
|
cls('PurpurinaEffect', 'purpurina-effect', 'purpurina-effect-cover'),
|
|
cls('TheVoid', 'the-void', 'the-void-cover')
|
|
)
|