File: derideal.py

package info (click to toggle)
dosage 3.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,400 kB
  • sloc: python: 12,703; sh: 55; makefile: 6
file content (49 lines) | stat: -rw-r--r-- 1,913 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# SPDX-License-Identifier: MIT
# SPDX-FileCopyrightText: © 2019 Tobias Gruetzmacher
# SPDX-FileCopyrightText: © 2019 Daniel Ring
import itertools

from ..scraper import ParserScraper
from ..helpers import indirectStarter, joinPathPartsNamer


class Derideal(ParserScraper):
    baseUrl = 'https://derideal.com/'
    imageSearch = '//img[d:class("comic-page") or d:class("comic-pag")]'
    prevSearch = '//a[text()="<"]'
    starter = indirectStarter
    namer = joinPathPartsNamer(imageparts=range(-3, 0))

    def __init__(self, name, lang, sub, first, eol=False, multi=False):
        if lang == 'en':
            base = 'Derideal'
            lateststr = 'Read latest update'
        else:
            base = 'DeridealSpanish'
            sub = f'{lang}/{sub}'
            lateststr = 'Leer última actualización'

        if not name:
            super().__init__(base)
        else:
            super().__init__(f'{base}/{name}')

        self.url = f'{self.baseUrl}{sub}'
        self.firstStripUrl = f'{self.url}/{first}/'
        self.latestSearch = f'//a[contains(text(), "{lateststr}")]'
        self.lang = lang
        self.endOfLife = eol
        self.multipleImagesPerStrip = multi

    @classmethod
    def getmodules(cls):
        return itertools.chain.from_iterable((
            cls('', lang, 'derideal', 'chimeras-cover'),
            cls('Legacy', lang, 'derideal-legacy', 'the-dream-cover', eol=True),
            cls('LostMemories', lang, 'lost-memories', 'lost-memories-pixi', multi=True),
            cls('Nova', lang, 'nova', 'xen-prelude-cover'),
            cls('ProjectPrime', lang, 'project-prime', 'custus-part-i-cover'),
            cls('PurpurinaEffect', lang, 'purpurina-effect', 'purpurina-effect-cover'),
            cls('RLE', lang, 'RLE', 'the-leyend-of-the-rose-cover'),
            cls('TheVoid', lang, 'the-void', 'the-void-cover'),
        ) for lang in ('en', 'es'))