51 lines
1.5 KiB
Python
51 lines
1.5 KiB
Python
from sys import stderr
|
|
|
|
from manga_py.provider import Provider
|
|
from .helpers.std import Std
|
|
|
|
|
|
class ComicoJp(Provider, Std):
|
|
|
|
def get_chapter_index(self) -> str:
|
|
idx = self.re.search(r'articleNo=(\d+)', self.chapter)
|
|
if idx:
|
|
return '{}-{}'.format(self.chapter_id, idx.group(1))
|
|
return str(self.chapter_id)
|
|
|
|
def get_main_content(self):
|
|
title_no = self.re.search(r'\.jp/.+titleNo=(\d+)', self.get_url())
|
|
if title_no:
|
|
content = self.http_post('{}/api/getArticleList.nhn'.format(self.domain), data={
|
|
'titleNo': title_no.group(1)
|
|
})
|
|
try:
|
|
return self.json.loads(content).get('result', {}).get('list', [])
|
|
except TypeError:
|
|
pass
|
|
return []
|
|
|
|
def get_manga_name(self):
|
|
content = self.http_get(self.get_url())
|
|
name = self.text_content(content, 'title')
|
|
return name[:name.rfind('|')].strip(' \n\t\r')
|
|
|
|
def get_chapters(self):
|
|
# TODO: see i['freeFlg'] Y = true, W = false #19
|
|
items = [i['articleDetailUrl'] for i in self.content if i['freeFlg'] == 'Y']
|
|
self.log('Free chapters count: %d' % len(items), file=stderr)
|
|
return items[::-1]
|
|
|
|
def get_files(self):
|
|
items = self.html_fromstring(self.chapter, '.comic-image._comicImage > img.comic-image__image')
|
|
return [i.get('src') for i in items]
|
|
|
|
def get_cover(self):
|
|
pass
|
|
|
|
def book_meta(self) -> dict:
|
|
# todo meta
|
|
pass
|
|
|
|
|
|
main = ComicoJp
|