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,71 @@
from manga_py.provider import Provider
from .helpers.std import Std
class MangaOnlineCom(Provider, Std):
__local_storage = None
def __init_storage(self):
if not self.__local_storage:
self.__local_storage = {}
def get_chapter_index(self) -> str:
self.__init_storage()
idx_reg = r'/\d+.+-(\d+).+?-(\d+).*?html'
idx = self.re.search(idx_reg, self.chapter).groups()
if not idx:
idx_reg = r'/\d+.+-(\d+).+?html'
idx = (self.re.search(idx_reg, self.chapter).group(1), 0)
return '{:0>3}-{:0>3}'.format(*idx)
def get_main_content(self):
return ['0']
def get_manga_name(self) -> str:
self.__init_storage()
if not self.__local_storage.get('chapters', False):
self.__local_storage['chapters'] = self.get_chapters()
if len(self.__local_storage['chapters']):
return self.re.search(r'/manga/(.+)/.+\.html', self.__local_storage['chapters'][0]).group(1)
raise AttributeError()
def _get_chapters_cmanga(self):
s = '#dle-content > div > a[href*="/manga/"]'
return self.html_fromstring(self.get_url(), s)[::-1]
def _get_chapters_manga(self):
s = '.fullstory_main select.selectmanga option'
items = self.html_fromstring(self.get_url(), s)
return [i.get('value') for i in items[::-1]]
def get_chapters(self):
self.__init_storage()
if self.re.search('/cmanga/', self.get_url()):
return self._get_chapters_cmanga()
if self.re.search(r'/manga/[^/]+/\d+-', self.get_url()):
return self._get_chapters_manga()
return []
@staticmethod
def _get_pages_count(parser):
_len = len(parser.cssselect('#pages_all a'))
return _len + 1 if _len else 0
def get_files(self):
chapter = self.chapter
parser = self.html_fromstring(chapter, '.main_body', 0)
pages = self._get_pages_count(parser)
images = []
idx = self.re.search(r'/manga/[^/]+/(\d+)', chapter).group(1)
for n in range(pages):
url = '{}/engine/ajax/sof_fullstory.php?id={}&page={}'.format(self.domain, idx, n + 1)
parser = self.html_fromstring(url)[0]
images += self._images_helper(parser, 'img')
return images
def book_meta(self) -> dict:
# todo meta
pass
main = MangaOnlineCom