Added manga-py source

This commit is contained in:
2019-12-14 22:33:14 -05:00
parent 9a4dd4b09b
commit 45067caea6
420 changed files with 18054 additions and 0 deletions

View File

@@ -0,0 +1,94 @@
import random
from manga_py.crypt import ManhuaGuiComCrypt
from manga_py.provider import Provider
from .helpers.std import Std
class ManhuaGuiCom(Provider, Std):
servers = [
'i.hamreus.com:8080',
'us.hamreus.com:8080',
'dx.hamreus.com:8080',
'eu.hamreus.com:8080',
'lt.hamreus.com:8080',
]
def _get_ch_idx(self):
chapter = self.chapter
return self.re.search(r'/comic/[^/]+/(\d+)', chapter.get('href')).group(1)
def get_archive_name(self) -> str:
return super().get_archive_name() + '-' + self._get_ch_idx()
def get_chapter_index(self) -> str:
chapter = self.chapter
span = chapter.cssselect('span')
idx = self._get_ch_idx()
if span:
span = span[0].text_content()
i = self.re.search(r'(\d+)', span).group(1)
return '{}-{}'.format(i, idx)
return '0-{}'.format(idx)
def get_main_content(self):
_ = self._get_name(r'/comic/(\d+)')
return self.http_get('{}/comic/{}/'.format(self.domain, _))
def get_manga_name(self) -> str:
url = self.get_url()
selector = 'h1'
if self.re.search(r'/comic/\d+/\d+\.html', url):
selector = 'h1 > a'
return self.html_fromstring(url, selector, 0).text_content()
def get_chapters(self):
parser = self.document_fromstring(self.content)
chapters = parser.cssselect('.chapter-list li > a')
if not len(chapters):
code = parser.cssselect('#__VIEWSTATE')[0].get('value')
manhuagui = ManhuaGuiComCrypt()
js = manhuagui.decrypt('LZString.decompressFromBase64("' + code + '")', '<a></a>')
chapters = self.document_fromstring(js, '.chapter-list li > a')
return chapters
def parse_files_data(self, data):
images = []
md5 = data.get('sl', {}).get('md5', '')
cid = data.get('cid', '')
for i in data.get('files', []):
prior = 3
ln = len(self.servers)
server = int(random.random() * (ln + prior))
server = 0 if server < prior else server - prior
images.append('http://{}{}{}?cid={}&md5={}'.format(
self.servers[server],
data.get('path', ''),
i, cid, md5
))
return images
def get_files(self):
url = self.chapter
self._storage['referer'] = url
content = self.http_get(url)
js = self.re.search(r'\](\(function\(.+\))\s?<', content)
if not js:
return []
manhuagui = ManhuaGuiComCrypt()
data = manhuagui.decrypt(js.group(1), '')
data = self.re.search(r'\(({.+})\)', data)
if not data:
return []
data = self.json.loads(data.group(1))
return self.parse_files_data(data)
def get_cover(self):
return self._cover_from_content('.hcover img')
def book_meta(self) -> dict:
# todo meta
pass
main = ManhuaGuiCom