def get_manga_info(self): url = self.request.get('url') s = sites.get_site(url) html = s.fetch_manga_seed_page(url).content info = s.manga_info(html) result = json.dumps(info) self.response.write(result)
def put(self): # body: json object of 1 chapter: {url:..., name:...} in_payload = self.request.body chapter = json.loads(in_payload) # Call appropriate site instance s = sites.get_site(chapter['url']) # Path to target dropbox folder path = chapter['name'] # Pages urls and file names html = s.fetch_manga_seed_page(chapter['url']).content pages = s.chapter_pages(html) # Transfer pages to dropbox dropbox_rpcs = [] for page in pages: resp = s.fetch_page_image(page['url']) if resp.status_code != 200: # If request failed, append it to the end to try again later pages.append(page) else: file_path = path + '/' + page['filename'] page_content = resp.content dropbox_rpcs.append(dbx.upload(file_path, page_content, self.dbx_token)) # Wait for all rpcs to finish for rpc, name, content in dropbox_rpcs: resp = rpc.get_result() # Retry later if request failed if resp.status_code != 200: dropbox_rpcs.append(dbx.upload(name, content, self.dbx_token)) self.response.write(len(dropbox_rpcs))
def test_get_site(self): obj = sites.get_site(kissurl) self.assertIsInstance(obj, sites.kissmanga.Kissmanga) obj = sites.get_site('http://nerdyweekly.com/blah') self.assertIsNone(obj)