From 26b9db89454f513a8d52964c94544547283b717c Mon Sep 17 00:00:00 2001 From: TheOnlyWayUp Date: Sat, 30 Nov 2024 21:10:17 +0000 Subject: [PATCH] fix(api): Remove unnecessary API Request, remove test script --- src/api/src/create_book.py | 10 ++++++---- src/api/src/main.py | 8 ++++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/api/src/create_book.py b/src/api/src/create_book.py index 40e4905..b6b487a 100644 --- a/src/api/src/create_book.py +++ b/src/api/src/create_book.py @@ -1,4 +1,4 @@ -from typing import Optional +from typing import Optional, Tuple import re import unicodedata import logging @@ -156,20 +156,22 @@ def slugify(value, allow_unicode=False) -> str: @backoff.on_exception(backoff.expo, ClientResponseError, max_time=15) -async def fetch_story_id(part_id: int, cookies: Optional[dict] = None) -> int: +async def fetch_story_id( + part_id: int, cookies: Optional[dict] = None +) -> Tuple[int, dict]: """Return a Story ID from a Part ID.""" with start_action(action_type="api_fetch_storyFromPart"): async with CachedSession( headers=headers, cache=None if cookies else cache ) as session: # Don't cache requests with Cookies. async with session.get( - f"https://www.wattpad.com/api/v3/story_parts/{part_id}?fields=groupId" + f"https://www.wattpad.com/api/v3/story_parts/{part_id}?fields=groupId,group(tags,id,title,createDate,modifyDate,language(name),description,completed,mature,url,isPaywalled,user(username),parts(id,title),cover)" ) as response: response.raise_for_status() body = await response.json() - return body["groupId"] + return body["groupId"], body["group"] @backoff.on_exception(backoff.expo, ClientResponseError, max_time=15) diff --git a/src/api/src/main.py b/src/api/src/main.py index e8f1c3b..a9f4c3b 100644 --- a/src/api/src/main.py +++ b/src/api/src/main.py @@ -141,14 +141,14 @@ async def handle_download( match mode: case DownloadMode.story: story_id = download_id + metadata = await retrieve_story(story_id, cookies) case DownloadMode.part: - story_id = await fetch_story_id(download_id, cookies) + story_id, metadata = await fetch_story_id(download_id, cookies) logger.error(f"Retrieved story id ({story_id=})") book = epub.EpubBook() - metadata = await retrieve_story(story_id, cookies) set_metadata(book, metadata) await set_cover(book, metadata) @@ -174,7 +174,7 @@ async def handle_download( BytesIO(book_data), media_type="application/epub+zip", headers={ - "Content-Disposition": f'attachment; filename="{slugify(metadata["title"])}_{story_id}_{"images" if download_images else ""}.epub"' # Thanks https://stackoverflow.com/a/72729058 + "Content-Disposition": f'attachment; filename="{slugify(metadata["title"])}_{story_id}{"_images" if download_images else ""}.epub"' # Thanks https://stackoverflow.com/a/72729058 }, ) @@ -185,4 +185,4 @@ app.mount("/", StaticFiles(directory=BUILD_PATH), "static") if __name__ == "__main__": import uvicorn - uvicorn.run("main:app", host="0.0.0.0", port=8086, workers=24) + uvicorn.run("main:app", host="0.0.0.0", port=80, workers=16)