blob: ded015bb62734682cd0c39c686c398f5bb003ef4 (
plain) (
blame)
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
|
import hircine.enums as enums
from hircine.scraper import ScrapeWarning
from hircine.scraper.types import (
Artist,
Circle,
Date,
Language,
Title,
)
from hircine.scraper.utils import parse_dict
class DynastyScansHandler:
source = "dynastyscans"
def scrape(self, data):
parsers = {
"date": Date.from_iso,
"lang": self.parse_language,
"author": Artist,
"group": Circle,
}
yield from parse_dict(parsers, data)
if manga := data.get("manga"):
title = manga
if chapter := data.get("chapter"):
title = title + f" Ch. {chapter}"
if subtitle := data.get("title"):
title = title + f": {subtitle}"
yield Title(title)
def parse_language(self, input):
try:
return Language(value=enums.Language[input.upper()])
except (KeyError, ValueError) as e:
raise ScrapeWarning(f"Could not parse language: '{input}'") from e
|