56 lines
1.7 KiB
Python
56 lines
1.7 KiB
Python
from manga_py.provider import Provider
|
|
from .helpers.std import Std
|
|
|
|
|
|
class MangaChanMe(Provider, Std):
|
|
_full_name_selector = r'/(?:online|manga|related)/(\d+-.+\.html)'
|
|
_idx_selector = r'/(?:online|manga|related)/(\d+)-'
|
|
|
|
def get_chapter_index(self) -> str:
|
|
name = self.chapter
|
|
idx = self.re.search(r'_v(\d+)_ch(\d+)', name).groups()
|
|
return '{}-{}'.format(*idx)
|
|
|
|
def get_main_content(self):
|
|
pass
|
|
|
|
def _online_(self, url):
|
|
if self.re.search(r'/online/\d+', url):
|
|
content = self.http_get(url)
|
|
url = self.re.search(r'content_id.+?(/manga/.+\.html)', content).group(1)
|
|
return url
|
|
|
|
def get_manga_name(self) -> str:
|
|
_name_selector = r'/(?:online|manga|related)/\d+-(.+)\.html'
|
|
url = self._online_(self.get_url())
|
|
return self.re.search(_name_selector, url).group(1)
|
|
|
|
def get_chapters(self):
|
|
url = self._online_(self.get_url())
|
|
url = '{}/manga/{}'.format(
|
|
self.domain,
|
|
self.re.search(self._full_name_selector, url).group(1)
|
|
)
|
|
return self.html_fromstring(url, '.table_cha .manga a')
|
|
|
|
def get_files(self):
|
|
content = self.http_get(self.chapter)
|
|
items = self.re.search(r'"?fullimg"?\s?:\s?(\[.+\])', content).group(1)
|
|
images = self.json.loads(items.replace('",]', '"]')) # patch
|
|
return images
|
|
|
|
def get_cover(self):
|
|
selector = r'\.me/[^/]+/(\d+-.+\.html)'
|
|
url = self._get_name(selector)
|
|
url = '{}/manga/{}'.format(self.domain, url)
|
|
img = self._elements('#cover', self.http_get(url))
|
|
if img and len(img):
|
|
return img[0].get('src')
|
|
|
|
def book_meta(self) -> dict:
|
|
# todo meta
|
|
pass
|
|
|
|
|
|
main = MangaChanMe
|