50 lines
1.5 KiB
Python
50 lines
1.5 KiB
Python
from manga_py.provider import Provider
|
|
from .helpers.std import Std
|
|
|
|
|
|
class MerakiScansCom(Provider, Std):
|
|
_content_url = '{}/manga/{}/'
|
|
|
|
def get_chapter_index(self) -> str:
|
|
re = self.re.compile(r'/manga/[^/]+/(\d+(?:\.\d+)?)')
|
|
idx = re.search(self.chapter).group(1)
|
|
return idx.replace('.', '-')
|
|
|
|
def _home_url(self):
|
|
return self._content_url.format(self.domain, self.manga_name)
|
|
|
|
def get_main_content(self):
|
|
return self.http_get(self._home_url())
|
|
|
|
def get_manga_name(self) -> str:
|
|
return self._get_name('com/manga/([^/]+)')
|
|
|
|
def get_chapters(self):
|
|
selector = '.clickable-chapter'
|
|
items = self._elements(selector)
|
|
return [i.get('data-href') for i in items]
|
|
|
|
def get_files(self):
|
|
content = self.http_get(self.chapter)
|
|
slug = self.re.search(r'manga_slug\s*=\s*[\'"](.+)[\'"]', content).group(1)
|
|
chapter = self.re.search(r'viewschapter\s*=\s*[\'"](.+)[\'"]', content).group(1)
|
|
images = self.re.search(r'images\s*=\s*(\[.+\])', content).group(1).replace('\'', '"')
|
|
images = self.json.loads(images)
|
|
|
|
# SRC RULE: "/manga/" + manga_slug + "/" + currentChapter + "/" + images[pageNum - 1];
|
|
|
|
return ['{}/manga/{}/{}/{}'.format(self.domain, slug, chapter, i) for i in images]
|
|
|
|
def get_cover(self) -> str:
|
|
return self._cover_from_content('#cover_img')
|
|
|
|
def book_meta(self) -> dict:
|
|
# todo meta
|
|
pass
|
|
|
|
def prepare_cookies(self):
|
|
self.http().cookies['reading_type'] = 'long'
|
|
|
|
|
|
main = MerakiScansCom
|