Added manga-py source
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
from manga_py.provider import Provider
|
||||
|
||||
|
||||
class AnimeXtremistCom:
|
||||
provider = None
|
||||
path = None
|
||||
|
||||
def __init__(self, provider: Provider):
|
||||
self.provider = provider
|
||||
self.path = provider.get_url()
|
||||
|
||||
@staticmethod
|
||||
def build_path(item):
|
||||
return item[0] + item[1]
|
||||
|
||||
@staticmethod
|
||||
def __sort(item, selector):
|
||||
_re = selector.search(item)
|
||||
if _re:
|
||||
return int(_re.group(1))
|
||||
return 0
|
||||
|
||||
def sort_items(self, items):
|
||||
r = self.provider.re.compile(r'.+?-(\d+)')
|
||||
return sorted(items, key=lambda i: self.__sort(i[0], r))
|
||||
|
||||
def sort_images(self, items):
|
||||
r = self.provider.re.compile(r'.+/.+-(\d+)[^/]*\.html')
|
||||
return sorted(items, key=lambda i: self.__sort(i, r))
|
||||
|
||||
def _chapters(self, url=None):
|
||||
a = 'li + li > a'
|
||||
if url:
|
||||
items = self.provider.html_fromstring(url, a)
|
||||
else:
|
||||
items = self.provider.document_fromstring(self.provider.content, a)
|
||||
return items
|
||||
|
||||
# http://animextremist.com/mangas-online/99love/
|
||||
def _chapters_with_dirs(self, items):
|
||||
result = []
|
||||
for i in items:
|
||||
href = i.get('href')
|
||||
url = '{}{}'.format(self.path, href)
|
||||
result += [(href, ['{}{}'.format(
|
||||
url,
|
||||
a.get('href')
|
||||
) for a in self._chapters(url)])]
|
||||
return result
|
||||
|
||||
@staticmethod
|
||||
def _rebuild_dict_to_tuple(_dict):
|
||||
result = []
|
||||
for i in _dict:
|
||||
result += [(i, [a for a in _dict[i]])]
|
||||
return result
|
||||
|
||||
# http://animextremist.com/mangas-online/onepiece-manga/
|
||||
def _chapters_without_dirs(self, items):
|
||||
result = {}
|
||||
r = self.provider.re.compile(r'(.+?-\d+)') # todo
|
||||
for i in items:
|
||||
href = i.get('href')
|
||||
key = self.provider.re.search(r, href).group(1)
|
||||
if result.get(key) is None:
|
||||
result[key] = []
|
||||
result[key].append('{}{}'.format(self.path, href))
|
||||
return self._rebuild_dict_to_tuple(result)
|
||||
|
||||
def get_chapters(self):
|
||||
items = self._chapters()
|
||||
if len(items) and items[0].get('href').find('.html') < 0:
|
||||
items = self._chapters_with_dirs(items)
|
||||
else:
|
||||
items = self._chapters_without_dirs(items)
|
||||
return self.sort_items(items)
|
||||
|
||||
def get_page_image(self, src, selector, attr='src') -> str:
|
||||
image = self.provider.html_fromstring(src, selector)
|
||||
if image and len(image):
|
||||
return image[0].get(attr)
|
||||
Reference in New Issue
Block a user