diff --git a/src/api/src/main.py b/src/api/src/main.py index d49126c..2d98f63 100644 --- a/src/api/src/main.py +++ b/src/api/src/main.py @@ -1,6 +1,6 @@ from pathlib import Path -from fastapi import FastAPI -from fastapi.responses import FileResponse, StreamingResponse +from fastapi import FastAPI, HTTPException +from fastapi.responses import FileResponse, HTMLResponse, StreamingResponse from ebooklib import epub from create_book import retrieve_story, set_cover, set_metadata, add_chapters, slugify import tempfile @@ -22,7 +22,19 @@ async def download_book(story_id: int, download_images: bool = False): book = epub.EpubBook() # Metadata and Cover are updated - set_metadata(book, data) + try: + set_metadata(book, data) + except KeyError: + # raise HTTPException( + # status_code=404, + # detail='Story not found. Check the ID - Support is available on the Discord', + # ) + # return FileResponse(BUILD_PATH / "index.html", status_code=404) + return HTMLResponse( + status_code=404, + content='Story not found. Check the ID - Support is available on the Discord', + ) + await set_cover(book, data) # print("Metadata Downloaded") diff --git a/src/frontend/src/routes/+page.svelte b/src/frontend/src/routes/+page.svelte index e74ca87..1049cd5 100644 --- a/src/frontend/src/routes/+page.svelte +++ b/src/frontend/src/routes/+page.svelte @@ -50,7 +50,6 @@ class:btn-disabled={!story_id} data-umami-event="Download" href={`/download/${story_id}${download_images ? "?download_images=true" : ""}`} - download on:click={() => (after_download_page = true)}>Download