79 lines
2.2 KiB
Python
79 lines
2.2 KiB
Python
from random import randrange
|
|
|
|
from manga_py.provider import Provider
|
|
from .helpers.std import Std
|
|
|
|
|
|
class ManhuaTaiCom(Provider, Std):
|
|
servers = [
|
|
'http://mhpic.mh51.com',
|
|
'http://mhpic.manhualang.com',
|
|
'http://mhpic.jumanhua.com',
|
|
'http://mhpic.yyhao.com',
|
|
]
|
|
|
|
def get_archive_name(self) -> str:
|
|
idx = self.get_chapter_index()
|
|
return self.normal_arc_name({'vol': [
|
|
self.chapter_id, idx
|
|
]})
|
|
|
|
def get_chapter_index(self) -> str:
|
|
ch = self.chapter
|
|
return self.re.search(r'/([^/]+)\.html', ch).group(1)
|
|
|
|
def get_main_content(self):
|
|
return self._get_content('{}/{}/')
|
|
|
|
def get_manga_name(self) -> str:
|
|
return self._get_name(r'\.com/([^/]+)')
|
|
|
|
def get_chapters(self):
|
|
topics = self._elements('[id^=topic]')
|
|
items = []
|
|
for i in topics[::-1]:
|
|
items += i.cssselect('a')
|
|
return items
|
|
|
|
@staticmethod
|
|
def _decode_img_path(page_id, img_path):
|
|
result = ''
|
|
pid = int(page_id) % 10
|
|
for i in img_path:
|
|
result += chr(ord(i) - pid)
|
|
return result
|
|
|
|
def get_server(self):
|
|
idx = randrange(0, len(self.servers))
|
|
return self.servers[idx]
|
|
|
|
def get_files(self):
|
|
content = self.http_get(self.chapter)
|
|
pageid = self.re.search(r'pageid:\s*(\d+)', content).group(1)
|
|
imgpath = self.re.search(r'imgpath:\s*[\'"](.+?)[\'"]', content).group(1)
|
|
startimg = self.re.search(r'startimg:\s*(\d+)', content).group(1)
|
|
totalimg = self.re.search(r'totalimg:\s*(\d+)', content).group(1)
|
|
comic_size = self.re.search(r'comic_size:\s*[\'"](.+?)[\'"]', content).group(1)
|
|
|
|
imgpath = self._decode_img_path(pageid, imgpath)
|
|
|
|
items = []
|
|
for i in range(int(startimg), int(totalimg) + 1):
|
|
items.append('{}/comic/{}{}.jpg{}'.format(
|
|
self.get_server(),
|
|
imgpath,
|
|
i,
|
|
comic_size
|
|
))
|
|
return items
|
|
|
|
def get_cover(self) -> str:
|
|
return self._cover_from_content('.comic-cover > img')
|
|
|
|
def book_meta(self) -> dict:
|
|
# todo meta
|
|
pass
|
|
|
|
|
|
main = ManhuaTaiCom
|