65 lines
2.1 KiB
Python
65 lines
2.1 KiB
Python
from manga_py.provider import Provider
|
|
from .helpers.std import Std
|
|
from sys import stderr
|
|
from manga_py.meta import __downloader_uri__
|
|
|
|
|
|
class TmoFansCom(Provider, Std):
|
|
def get_chapter_index(self) -> str:
|
|
try:
|
|
re = self.re.compile(r'Capítulo (\d+(?:\.\d+)?)')
|
|
return re.search(self.chapter[0]).group(1).replace('.', '-')
|
|
except IndexError as e:
|
|
self.log('\nNot found chapter index.\nURL: {}\nChapter: {}\nPlease, report this bug: {}{}\n'.format(
|
|
self.get_url(),
|
|
self.chapter[0],
|
|
__downloader_uri__, '/issues/new?template=bug_report.md'
|
|
), file=stderr)
|
|
|
|
raise e
|
|
|
|
def get_main_content(self):
|
|
return self.http_get(self.get_url())
|
|
|
|
def get_manga_name(self) -> str:
|
|
return self._get_name(r'/manga/\d+/([^/]+)')
|
|
|
|
def get_chapters(self):
|
|
raw_chapters = self._elements('.list-group .upload-link')
|
|
n = self.http().normalize_uri
|
|
re = self.re.compile(r'(.+/)')
|
|
chapters = []
|
|
for i in raw_chapters:
|
|
try:
|
|
text = i.cssselect('.btn-collapse')[0].text_content()
|
|
link = i.cssselect('.list-group .list-group-item .row a')[-1]
|
|
except IndexError:
|
|
self.log('Error extract chapter', file=stderr)
|
|
continue
|
|
request_url = n(link.get('href'))
|
|
response = self.http().requests(request_url, method='head')
|
|
url = n(re.search(response.headers['Location']).group(1))
|
|
chapters.append((
|
|
text,
|
|
url + 'cascade',
|
|
))
|
|
|
|
return chapters
|
|
|
|
def get_files(self):
|
|
url = self.chapter[1]
|
|
parser = self.html_fromstring(url)
|
|
return self._images_helper(parser, 'img.viewer-image')
|
|
|
|
def get_cover(self) -> str:
|
|
return self._cover_from_content('.book-thumbnail')
|
|
|
|
def prepare_cookies(self):
|
|
self.cf_protect(self.get_url())
|
|
|
|
def chapter_for_json(self) -> str:
|
|
return self.chapter[1]
|
|
|
|
|
|
main = TmoFansCom
|