Update workflows/publish_pypi.yml
[manga-dl.git] / manga_py / providers / goodmanga_net.py
blob82182f138c7851637e469ef778202ef9744db280
1 from manga_py.provider import Provider
2 from .helpers.std import Std
5 class GoodMangaNet(Provider, Std):
7 def get_chapter_index(self) -> str:
8 return self.re.search(r'/chapter/(\d+)', self.chapter).group(1)
10 def get_content(self):
11 url = self.get_url()
12 if ~url.find('/chapter/'):
13 url = self.html_fromstring(url, '#manga_head h3 > a', 0).get('href')
14 _id = self.re.search(r'net/(\d+/[^/]+)', url).group(1)
15 return self.http_get('{}/{}'.format(self.domain, _id))
17 def get_manga_name(self) -> str:
18 url = self.get_url()
19 reg = r'/([^/]+)/chapter/|net/\d+/([^/]+)'
20 groups = self.re.search(reg, url).groups()
21 return groups[0] if groups[0] else groups[1]
23 @staticmethod
24 def get_chapters_links(parser):
25 return [i.get('href') for i in parser.cssselect('#chapters li > a')]
27 def get_chapters(self):
28 selector = '#chapters li > a'
29 chapters = self._elements(selector)
30 pagination = self._elements('.pagination li > button[href]')
31 for i in pagination:
32 chapters += self._elements(selector, self.http_get(i.get('href')))
33 return chapters
35 def get_files(self):
36 img_selector = '#manga_viewer > a > img'
37 parser = self.html_fromstring(self.chapter)
38 images = self._images_helper(parser, img_selector)
39 pages = self._first_select_options(parser, '#asset_2 select.page_select', True)
40 for i in pages:
41 _parser = self.html_fromstring(i.get('value'))
42 images += self._images_helper(_parser, img_selector)
43 return images
45 def get_cover(self):
46 pass # TODO
48 def book_meta(self) -> dict:
49 # todo meta
50 pass
53 main = GoodMangaNet