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