68 lines
1.9 KiB
Python
68 lines
1.9 KiB
Python
from manga_py.provider import Provider
|
|
from .helpers import eight_muses_com
|
|
from .helpers.std import Std
|
|
|
|
|
|
class EightMusesCom(Provider, Std):
|
|
_chapters = None
|
|
chapter_selector = '.gallery a.c-tile[href^="/comics/"]'
|
|
helper = None
|
|
_images_path = 'image/fl'
|
|
|
|
def get_chapter_index(self) -> str:
|
|
re = self.re.compile(r'/(?:album|picture)/([^/]+/[^/]+(?:/[^/]+)?)')
|
|
ch = self.chapter
|
|
if isinstance(ch, list) and len(ch) > 0:
|
|
ch = ch[0]
|
|
if isinstance(ch, dict):
|
|
ch = ch.get('href')
|
|
idx = re.search(ch).group(1)
|
|
return '-'.join(idx.split('/'))
|
|
|
|
def get_main_content(self):
|
|
return self.http_get(self.get_url())
|
|
|
|
def get_manga_name(self) -> str:
|
|
return self._get_name('/album/([^/]+)')
|
|
|
|
def get_chapters(self):
|
|
chapters = self._elements(self.chapter_selector)
|
|
return self.helper.chapters(chapters)
|
|
|
|
def _parse_images(self, images) -> list:
|
|
return ['{}/{}/{}'.format(
|
|
self.domain,
|
|
self._images_path,
|
|
i.get('value')
|
|
) for i in images if i.get('value')]
|
|
|
|
@staticmethod
|
|
def _sort(items: dict) -> list:
|
|
items = [items[i] for i in sorted(items, key=lambda x: int(x)) if len(items[i]) > 5]
|
|
return list(set(items))
|
|
|
|
def get_files(self):
|
|
images = {}
|
|
_n = self.http().normalize_uri
|
|
for n, i in enumerate(self.chapter):
|
|
if n % 4 < 2:
|
|
img = self.html_fromstring(_n(i.get('href')), '#imageName,#imageNextName')
|
|
images[str(n)] = img[0]
|
|
images[str(n + 2)] = img[1]
|
|
return self._parse_images(self._sort(images))
|
|
|
|
def get_cover(self) -> str:
|
|
pass
|
|
|
|
def prepare_cookies(self):
|
|
self._chapters = []
|
|
self._base_cookies()
|
|
self.helper = eight_muses_com.EightMusesCom(self)
|
|
|
|
def book_meta(self) -> dict:
|
|
# todo meta
|
|
pass
|
|
|
|
|
|
main = EightMusesCom
|