53 lines
1.8 KiB
Python
53 lines
1.8 KiB
Python
from manga_py.provider import Provider
|
|
from .helpers.std import Std
|
|
|
|
|
|
class MangaLifeUs(Provider, Std):
|
|
img_selector = '.image-container .CurImage'
|
|
|
|
def get_chapter_index(self) -> str:
|
|
selector = r'-chapter-(\d+).+-index-(\d+)'
|
|
chapter = self.re.search(selector, self.chapter)
|
|
if chapter is None: # http://mangalife.us/manga/Ubau-Mono-Ubawareru-Mono #51
|
|
selector = r'-chapter-(\d+(?:\.\d+)?)'
|
|
chapter = self.re.search(selector, self.chapter).group(1).split('.')
|
|
return '-'.join(chapter)
|
|
return '{}-{}'.format(
|
|
1 if chapter[1] is None else chapter[1], # todo: maybe 0 ?
|
|
chapter[0]
|
|
)
|
|
|
|
def get_main_content(self):
|
|
return self._get_content('{}/manga/{}')
|
|
|
|
def get_manga_name(self) -> str:
|
|
uri = self.get_url()
|
|
test = uri.find('.us/read-online/') > 0
|
|
if test:
|
|
uri = self.html_fromstring(uri, 'a.list-link', 0).get('href')
|
|
return self.re.search(r'(?:\.us)?/manga/([^/]+)', uri).group(1)
|
|
|
|
def get_chapters(self):
|
|
return self._elements('.chapter-list a.list-group-item')
|
|
|
|
def get_files(self):
|
|
url = self.chapter
|
|
parser = self.html_fromstring(url, '.mainWrapper', 0)
|
|
pages = parser.cssselect('select.PageSelect')[0].cssselect('option + option')
|
|
images = self._images_helper(parser, self.img_selector)
|
|
for page in pages:
|
|
page_url = self.re.sub(r'(.+page-)\d+(.+)', r'\1{}\2', url)
|
|
parser = self.html_fromstring(page_url.format(page.get('value')))
|
|
images += self._images_helper(parser, self.img_selector)
|
|
return images
|
|
|
|
def get_cover(self) -> str:
|
|
return self._cover_from_content('.leftImage img')
|
|
|
|
def book_meta(self) -> dict:
|
|
# todo meta
|
|
pass
|
|
|
|
|
|
main = MangaLifeUs
|