1 from manga_py
.provider
import Provider
2 from .helpers
.std
import Std
5 class MangaParkOrg(Provider
, Std
):
8 def get_chapter_index(self
) -> str:
9 return self
.chapter
[0].replace('.', '-')
11 def get_content(self
):
12 return self
.http_get(self
.__url
)
14 def get_manga_name(self
) -> str:
15 title
= self
.html_fromstring(self
.get_url(), 'h3 > a, h4 > a', 0)
16 self
.__url
= self
.normalize_uri(title
.get('href'))
17 return title
.text_content_full().strip()
19 def _print_variants(self
, variants
):
20 self
.log('Please, select lang. (empty for all langs)')
21 for n
, i
in enumerate(variants
):
22 lng
= i
.cssselect('.card-header a')[0].text_content_full()
23 self
.log('\n%d: ' % (n
+ 1) + lng
, end
='')
25 def _answer(self
, max_digit
):
27 answer
= self
.quest([], 'Answer (digit): ')
28 if len(answer
) > 0 and (int(answer
) > max_digit
or int(answer
) <= 0):
29 self
.log('Wrong answer! Try one more.')
33 def _auto_language(self
, variants
):
34 language
= self
.arg('language')
36 if language
is not None:
38 for n
, variant
in enumerate(variants
):
39 text
= variant
.cssselect('.flag + a.ml-1')[0].text_content_full() # type: str
41 if ~text
.find('[' + language
+ ']'):
46 def _auto_translator(self
, variants
):
47 translator
= self
.arg('translator')
49 if translator
is not None:
51 for n
, variant
in enumerate(variants
):
52 text
= variant
.cssselect('.flag + a.ml-1')[0].text_content_full() # type: str
55 if ~text
.find(translator
, lng
):
60 def _auto_rules(self
, variants
, default
):
61 auto_lang
= self
._auto
_language
(variants
)
62 auto_translator
= self
._auto
_translator
(variants
)
64 if auto_lang
is not None:
67 if auto_translator
is not None:
68 return auto_translator
71 self
._print
_variants
(variants
)
72 return self
._answer
(len(variants
))
76 def get_chapters(self
):
78 variants
= self
._elements
('div.card')
79 answer
= self
._auto
_rules
(variants
, '1')
81 if len(variants
) > 1 and not len(answer
):
82 parser
= self
.document_fromstring(self
.content
)
84 parser
= variants
[int(answer
) - 1]
86 items
= parser
.cssselect('.card-body i + a')
88 re
= self
.re
.compile(r
'[Cc]h\.(\d+(?:\.\d+)?)')
89 n
= self
.normalize_uri
91 text
= i
.text_content_full()
93 re
.search(text
).group(1),
99 re
= self
.re
.compile(r
'images\s*=\s*(\[.+\]);')
100 content
= self
.http_get(self
.chapter
[1])
101 items
= self
.json
.loads(re
.search(content
).group(1))
104 def get_cover(self
) -> str:
105 return self
._cover
_from
_content
('.order-0 > img')
107 def book_meta(self
) -> dict:
110 def chapter_for_json(self
) -> str:
111 return self
.chapter
[1]
113 def prepare_cookies(self
):
114 self
.http().cookies
['set'] = 'theme=1&h=1&img_load=4&img_zoom=5&img_tool=4&twin_m=0&twin_c=0&manga_a_warn=1&history=1&timezone=14'