Added manga-py source
This commit is contained in:
87
manga-py-stable_1.x/manga_py/providers/tumangaonline_com.py
Normal file
87
manga-py-stable_1.x/manga_py/providers/tumangaonline_com.py
Normal file
@@ -0,0 +1,87 @@
|
||||
from manga_py.provider import Provider
|
||||
from .helpers.std import Std
|
||||
|
||||
|
||||
class TuMangaOnlineCom(Provider, Std):
|
||||
|
||||
def get_archive_name(self) -> str:
|
||||
return self.normal_arc_name(self.chapter)
|
||||
|
||||
def get_chapter_index(self) -> str:
|
||||
return '{}-{}'.format(*self.chapter)
|
||||
|
||||
def get_main_content(self):
|
||||
url = '{}/api/v1/mangas/{}'.format(self.domain, self._get_id())
|
||||
data = self.http_get(url=url, headers=self._get_headers())
|
||||
return self.json.loads(data)
|
||||
|
||||
def get_manga_name(self) -> str:
|
||||
url = self.get_url()
|
||||
re = r'/mangas/\d+/([^/]+)'
|
||||
if ~url.find('/lector/'):
|
||||
re = '/lector/([^/]+)'
|
||||
return self.re.search(re, url).group(1)
|
||||
|
||||
@staticmethod
|
||||
def _get_subidas(items, n):
|
||||
return [(n, i.get('idScan')) for i in items.get('subidas', [])]
|
||||
|
||||
def get_chapters(self):
|
||||
url = '{}/api/v1/mangas/{}/capitulos?page=1&tomo=-1'
|
||||
idx = self._get_id()
|
||||
|
||||
url = url.format(self.domain, idx)
|
||||
data = self.http_get(url=url, headers=self._get_headers())
|
||||
items = self.json.loads(data).get('data', [])
|
||||
|
||||
pages = []
|
||||
for i in items:
|
||||
n = i.get('numCapitulo')
|
||||
pages += self._get_subidas(i, n)
|
||||
return pages
|
||||
|
||||
def _get_id(self):
|
||||
url = self.get_url()
|
||||
re = r'/mangas/(\d+)'
|
||||
if ~url.find('/lector/'):
|
||||
re = r'/lector/[^/]+/(\d+)'
|
||||
return self.re.search(re, url).group(1)
|
||||
|
||||
@staticmethod
|
||||
def _get_headers():
|
||||
return {'Cache-mode': 'no-cache', 'X-Requested-With': 'XMLHttpRequest'}
|
||||
|
||||
def prepare_cookies(self):
|
||||
self._base_cookies()
|
||||
|
||||
def _chapter_url(self):
|
||||
idx = self._get_id()
|
||||
domain = self.domain
|
||||
url = '{}/api/v1/imagenes?idManga={}&idScanlation={}&numeroCapitulo={}&visto=true'
|
||||
ch = self.chapter
|
||||
return url.format(domain, idx, *ch)
|
||||
|
||||
def get_files(self):
|
||||
idx = self._get_id()
|
||||
ch = self.chapter
|
||||
data = self.http_get(url=self._chapter_url(), headers=self._get_headers())
|
||||
|
||||
items = self.json.loads(self.json.loads(data).get('imagenes', '[]'))
|
||||
url = 'https://img1.tumangaonline.com/subidas/{}/{}/{}/{}'
|
||||
|
||||
return [url.format(idx, *ch, i) for i in items]
|
||||
|
||||
def get_cover(self) -> str:
|
||||
url = self.domain, self.content.get('imageUrl', None)
|
||||
if url:
|
||||
return '{}/{}'.format(self.domain, url)
|
||||
|
||||
def book_meta(self) -> dict:
|
||||
# todo meta
|
||||
pass
|
||||
|
||||
def chapter_for_json(self):
|
||||
return self._chapter_url()
|
||||
|
||||
|
||||
main = TuMangaOnlineCom
|
||||
Reference in New Issue
Block a user