Files
mangaDownloader/manga-py-stable_1.x/manga_py/providers/mangabb_co.py
2019-12-14 22:33:14 -05:00

66 lines
1.9 KiB
Python

from manga_py.provider import Provider
from .helpers.std import Std
class MangabbCo(Provider, Std):
def get_chapter_index(self) -> str:
chapter = self.chapter
idx = chapter.rfind('/chapter-')
return chapter[1 + idx:]
def get_main_content(self):
return self._get_content('{}/manga/{}')
def get_manga_name(self) -> str:
return self._get_name(r'\.co/(?:manga/)?([^/]+)')
def get_chapters(self):
content = self.document_fromstring(self.content, '#chapters a')
if not content:
return []
selector = '#asset_1 select.chapter_select > option'
result = self.html_fromstring(content, selector)
return [i.get('value') for i in result[::-1]]
@staticmethod
def __get_img(parser):
return parser.cssselect('#manga_viewer > a > img')[0].get('src')
@staticmethod
def _img_lifehack1(img, pages_list, images):
n = 1
for i in pages_list:
n += 1
images.append('{}{}{}'.format(img[0], n, img[1]))
def _img_lifehack2(self, pages_list, images):
for page in pages_list:
parser = self.html_fromstring(page)
images.append(self.__get_img(parser))
def get_files(self):
parser = self.html_fromstring(self.chapter, '#body', 0)
result = parser.cssselect('#asset_2 select.page_select option + option')
pages_list = [i.get('value') for i in result]
_first_image = self.__get_img(parser)
images = [_first_image]
img = self.re.search(r'(.+/)\d(\.\w+)', _first_image)
if img: # livehack
self._img_lifehack1(img.groups(), pages_list, images)
else:
self._img_lifehack2(pages_list, images)
return images
def get_cover(self):
return self._cover_from_content('#series_image')
def book_meta(self) -> dict:
# todo meta
pass
main = MangabbCo