Update workflows/publish_pypi.yml
[manga-dl.git] / manga_py / providers / gomanga_co.py
blob64465993b7458dd637d4fd2bdabc13cb0ab00dbd
1 from manga_py.provider import Provider
2 from .helpers.std import Std
5 class GoMangaCo(Provider, Std):
6 _name_re = r'/reader/[^/]+/([^/?]+)'
7 _content_str = '{}/reader/series/{}/'
8 _chapters_selector = '.list .element .title a'
9 _chapter_re = r'/rea\w+/[^/]+/[^/]+/(?:[^/]+/)?(\d+/\d+(?:/\d+)?)'
11 _go_chapter_content = ''
13 def get_chapter_index(self) -> str:
14 group = self.re.search(self._chapter_re, self.chapter).group(1)
15 return group.replace('/', '-')
17 def get_content(self):
18 return self._get_content(self._content_str)
20 def get_manga_name(self) -> str:
21 return self._get_name(self._name_re)
23 def get_chapters(self):
24 return self._elements(self._chapters_selector)
26 def _get_json_selector(self, content):
27 idx = self.re.search(r'page_width\s=\sparseInt\((\w+)\[', content).group(1)
28 return r'var\s{}\s*=\s*(\[.+\])'.format(idx)
30 def get_files(self):
31 self._go_chapter_content = self.http_get(self.chapter)
32 selector = self._get_json_selector(self._go_chapter_content)
33 items = self.json.loads(self.re.search(selector, self._go_chapter_content).group(1))
34 return [i.get('url') for i in items]
36 def get_cover(self) -> str:
37 return self._cover_from_content('.cover img')
39 def prepare_cookies(self):
40 url = self.get_url()
41 data = {'adult': 'true'}
42 if self._use_flare_solver:
43 self.http_post(url, data=data)
44 else:
45 self.__normal_cookies(url, data)
47 def __normal_cookies(self, url, data):
48 try:
49 response = self.http().requests(method='post', data=data, url=url)
50 cookies = response.cookies.items()
51 for i in cookies:
52 self._storage['cookies'][i[0]] = i[1]
53 except Exception:
54 pass
57 main = GoMangaCo