54 lines
1.5 KiB
Python
54 lines
1.5 KiB
Python
from manga_py.provider import Provider
|
|
from .helpers.std import Std
|
|
|
|
|
|
class MangaOnlineComBr(Provider, Std):
|
|
|
|
def get_chapter_index(self) -> str:
|
|
selector = r'\.br/[^/]+/[^/]+/([^/]+)'
|
|
return self.re.search(selector, self.chapter).group(1)
|
|
|
|
def get_main_content(self):
|
|
return self._get_content('{}/{}/')
|
|
|
|
def get_manga_name(self) -> str:
|
|
return self._get_name(r'\.br/([^/]+)')
|
|
|
|
def get_chapters(self):
|
|
return self._elements('#volumes-capitulos span > a')
|
|
|
|
@staticmethod
|
|
def _get_pages_count(parser):
|
|
pages = parser.cssselect('select.pagina-capitulo')
|
|
if pages:
|
|
return len(pages[0].cssselect('option + option'))
|
|
return 0
|
|
|
|
def get_files(self):
|
|
img_selector = '#imgPadraoVisualizacao img'
|
|
url = '{}/capitulo.php?act=getImg&anime={}&capitulo={}&src={}&view=1'
|
|
params = (
|
|
self.domain,
|
|
self.manga_name,
|
|
self.get_chapter_index()
|
|
)
|
|
parser = self.html_fromstring(url.format(*params, 1))
|
|
images = self._images_helper(parser, img_selector)
|
|
pages = self._get_pages_count(parser)
|
|
if pages:
|
|
for i in range(int(pages / 2)):
|
|
parser = self.html_fromstring(url.format(*params, ((i + 1) * 2 + 1)))
|
|
images += self._images_helper(parser, img_selector)
|
|
|
|
return images
|
|
|
|
def get_cover(self) -> str:
|
|
return self._cover_from_content('.image > img')
|
|
|
|
def book_meta(self) -> dict:
|
|
# todo meta
|
|
pass
|
|
|
|
|
|
main = MangaOnlineComBr
|