53 lines
1.4 KiB
Python
53 lines
1.4 KiB
Python
from manga_py.provider import Provider
|
|
from .helpers.std import Std
|
|
|
|
|
|
class SiberOwlCom(Provider, Std):
|
|
_main_fmt = '{}/mangas/{}/'
|
|
n = None
|
|
|
|
def get_chapter_index(self) -> str:
|
|
re = self.re.compile(r'/mangas/[^/]+/([^/]+)')
|
|
return re.search(self.chapter).group(1).replace('.', '-')
|
|
|
|
def get_main_content(self):
|
|
return self._get_content(self._main_fmt)
|
|
|
|
def get_manga_name(self) -> str:
|
|
return self._get_name(r'/mangas/([^/]+)')
|
|
|
|
def get_chapters(self):
|
|
re = self.re.compile(r'chapString\s*=\s*"(.+)";')
|
|
elements = self.document_fromstring(
|
|
re.search(self.content).group(1),
|
|
'a'
|
|
)
|
|
return ['{}/mangas/{}/{}'.format(
|
|
self.domain,
|
|
self.manga_name,
|
|
i.get('href')
|
|
) for i in elements]
|
|
|
|
def get_files(self):
|
|
content = self.http_get(self.chapter)
|
|
re = self.re.search(r'imageUrls\s*=\s*(\[.*\])', content)
|
|
items = re.group(1)
|
|
if not items:
|
|
return []
|
|
items = self.json.loads(self.re.sub(r'(.+)",\]', r'\1"]', items))
|
|
return ['{}{}'.format(self.domain, i) for i in items]
|
|
|
|
def get_cover(self) -> str:
|
|
re = self.re.compile(r'imageUrl\s*=\s*"(.+)";')
|
|
return '{}{}'.format(
|
|
self.domain,
|
|
re.search(self.content).group(1)
|
|
)
|
|
|
|
def book_meta(self) -> dict:
|
|
# todo meta
|
|
pass
|
|
|
|
|
|
main = SiberOwlCom
|