Files
mangaDownloader/manga-py-stable_1.x/manga_py/providers/shogakukan_tameshiyo_me.py
2019-12-14 22:33:14 -05:00

80 lines
2.1 KiB
Python

from manga_py.crypt import BaseLib
from manga_py.provider import Provider
from .helpers.std import Std
class ShogakukanTameshiyoMe(Provider, Std):
__local_storage = None
_site = 'https://shogakukan.tameshiyo.me'
img_url = '/imgDeliver?gcode='
def get_archive_name(self) -> str:
return 'archive'
def get_chapter_index(self) -> str:
return '0'
def get_main_content(self):
pass
def get_manga_name(self) -> str:
return self._get_name('/(\d+)')
def get_chapters(self):
return [b'']
def before_file_save(self, url, idx):
_url = self._site + self.img_url + self.__local_storage['code']
_url = self.http_post(_url, data={
'base64': '1',
'vsid': self.__local_storage['vsid'],
'trgCode': url,
}, headers={'Referer': self._site})
return _url
def save_file(self, idx=None, callback=None, url=None, in_arc_name=None):
if url is None:
_url = self.get_current_file()
else:
_url = url
_path, idx, _url = self._save_file_params_helper(_url, idx)
_path += '.jpg'
with open(_path, 'wb') as file:
file.write(BaseLib.base64decode(_url))
callable(callback) and callback()
self.after_file_save(_path, idx)
self._archive.add_file(_path, in_arc_name)
return _path
@property
def chapter_url(self):
url = self.chapter
if isinstance(url, bytes):
url = self.get_url()
return url
def get_files(self):
parser = self.html_fromstring(self.chapter_url)
self.__local_storage = {
'vsid': parser.cssselect('input[data-key="vsid"]')[0].get('value'),
'code': parser.cssselect('input[data-key="isbn1kan"]')[0].get('value'),
}
return [i.get('value') for i in parser.cssselect('input[data-key="imageCodes"]')]
def get_cover(self) -> str:
pass
def book_meta(self) -> dict:
# todo meta
pass
def chapter_for_json(self):
return self.get_url()
main = ShogakukanTameshiyoMe