54 lines
1.7 KiB
Python
54 lines
1.7 KiB
Python
from manga_py.provider import Provider
|
|
from .helpers.std import Std
|
|
|
|
|
|
class GoodMangaNet(Provider, Std):
|
|
|
|
def get_chapter_index(self) -> str:
|
|
return self.re.search(r'/chapter/(\d+)', self.chapter).group(1)
|
|
|
|
def get_main_content(self):
|
|
url = self.get_url()
|
|
if ~url.find('/chapter/'):
|
|
url = self.html_fromstring(url, '#manga_head h3 > a', 0).get('href')
|
|
_id = self.re.search(r'net/(\d+/[^/]+)', url).group(1)
|
|
return self.http_get('{}/{}'.format(self.domain, _id))
|
|
|
|
def get_manga_name(self) -> str:
|
|
url = self.get_url()
|
|
reg = r'/([^/]+)/chapter/|net/\d+/([^/]+)'
|
|
groups = self.re.search(reg, url).groups()
|
|
return groups[0] if groups[0] else groups[1]
|
|
|
|
@staticmethod
|
|
def get_chapters_links(parser):
|
|
return [i.get('href') for i in parser.cssselect('#chapters li > a')]
|
|
|
|
def get_chapters(self):
|
|
selector = '#chapters li > a'
|
|
chapters = self._elements(selector)
|
|
pagination = self._elements('.pagination li > button[href]')
|
|
for i in pagination:
|
|
chapters += self._elements(selector, self.http_get(i.get('href')))
|
|
return chapters
|
|
|
|
def get_files(self):
|
|
img_selector = '#manga_viewer > a > img'
|
|
parser = self.html_fromstring(self.chapter)
|
|
images = self._images_helper(parser, img_selector)
|
|
pages = self._first_select_options(parser, '#asset_2 select.page_select', True)
|
|
for i in pages:
|
|
_parser = self.html_fromstring(i.get('value'))
|
|
images += self._images_helper(_parser, img_selector)
|
|
return images
|
|
|
|
def get_cover(self):
|
|
pass # TODO
|
|
|
|
def book_meta(self) -> dict:
|
|
# todo meta
|
|
pass
|
|
|
|
|
|
main = GoodMangaNet
|