49 lines
1.3 KiB
Python
49 lines
1.3 KiB
Python
from manga_py.provider import Provider
|
|
from .helpers.std import Std, Http2
|
|
|
|
|
|
# Archive downloading example. Without images
|
|
class MangaOnlineBiz(Provider, Std):
|
|
chapter_url = ''
|
|
_idx = 0
|
|
|
|
def get_chapter_index(self) -> str:
|
|
url = self._storage['chapters'][self._idx]
|
|
idx = self.re.search(r'/download/[^/]+/.+?_(\d+)_(\d+)', url).groups()
|
|
return '{}-{}'.format(*idx)
|
|
|
|
def get_main_content(self):
|
|
return self._get_content('{}/{}.html')
|
|
|
|
def get_manga_name(self) -> str:
|
|
return self._get_name(r'\.biz/([^/]+)(?:/|\.html)')
|
|
|
|
def _after_download(self, idx, _path):
|
|
self._idx = idx + 1
|
|
|
|
def loop_chapters(self):
|
|
http2 = Http2(self)
|
|
http2.download_archives(self._storage['chapters'])
|
|
http2.after_download = self._after_download
|
|
|
|
def get_chapters(self):
|
|
s, c = r'MangaChapter\((.+)\);', self.content
|
|
items = self.json.loads(self.re.search(s, c).group(1))
|
|
return [i.get('downloadUrl') for i in items]
|
|
|
|
def get_files(self):
|
|
return []
|
|
|
|
def get_cover(self):
|
|
return self._cover_from_content('.item > .image > img')
|
|
|
|
def book_meta(self) -> dict:
|
|
# todo meta
|
|
pass
|
|
|
|
def chapter_for_json(self):
|
|
return self.chapter_url
|
|
|
|
|
|
main = MangaOnlineBiz
|