49 lines
1.5 KiB
Python
49 lines
1.5 KiB
Python
from manga_py.provider import Provider
|
|
from .helpers.std import Std
|
|
|
|
|
|
class HeavenMangaBiz(Provider, Std):
|
|
|
|
def get_chapter_index(self) -> str:
|
|
try:
|
|
return self.re.search(r'-chap-(\d+(?:-\d+)?)', self.chapter).group(1)
|
|
except Exception as e:
|
|
if self.re.search(r'-chap$', self.chapter):
|
|
return '0'
|
|
raise e
|
|
|
|
def get_main_content(self):
|
|
return self._get_content('{}/{}/')
|
|
|
|
def get_manga_name(self) -> str:
|
|
s = self.domain[self.domain.rfind('.'):]
|
|
selector = r'\%s/([^/]+)'
|
|
if ~self.get_url().find('-chap-'):
|
|
selector += '-chap-'
|
|
return self._get_name(selector % s)
|
|
|
|
def get_chapters(self):
|
|
selector = '.chapters-wrapper h2.chap > a'
|
|
pages = self._elements('a.next.page-numbers')
|
|
items = self._elements(selector)
|
|
if pages:
|
|
pages = self.re.search(r'/page-(\d+)', pages[-1].get('href')).group(1)
|
|
for i in range(1, int(pages)):
|
|
url = '{}/{}/page-{}'.format(self.domain, self.manga_name, i + 1)
|
|
items += self._elements(selector, self.http_get(url))
|
|
return items
|
|
|
|
def get_files(self):
|
|
parser = self.html_fromstring(self.chapter)
|
|
return self._images_helper(parser, '.chapter-content img')
|
|
|
|
def get_cover(self) -> str:
|
|
return self._cover_from_content('.comic-info .thumb > img')
|
|
|
|
def book_meta(self) -> dict:
|
|
# todo meta
|
|
pass
|
|
|
|
|
|
main = HeavenMangaBiz
|