Beispiel #1
0
    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)
Beispiel #2
0
    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))
Beispiel #3
0
    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)