diff --git a/src/api/src/create_book.py b/src/api/src/create_book.py index f186a93..a871bda 100644 --- a/src/api/src/create_book.py +++ b/src/api/src/create_book.py @@ -565,3 +565,15 @@ class PDFGenerator: self.file.seek(0) return self + + +def clean_part_text(text: str): + """Remove unnecessary newlines from Text""" + soup = BeautifulSoup(text) + + for br in soup.find_all("br"): + # Check if no content after br + if not br.next_sibling or br.next_sibling.name in ["br", None]: + br.decompose() + + return str(soup) diff --git a/src/api/src/main.py b/src/api/src/main.py index a9fc1cd..fec5dd5 100644 --- a/src/api/src/main.py +++ b/src/api/src/main.py @@ -10,7 +10,6 @@ from aiohttp import ClientResponseError from fastapi import FastAPI, Request from fastapi.responses import FileResponse, HTMLResponse, StreamingResponse from fastapi.staticfiles import StaticFiles -from ebooklib import epub from create_book import ( EPUBGenerator, PDFGenerator, @@ -21,6 +20,7 @@ from create_book import ( fetch_cookies, WattpadError, StoryNotFoundError, + clean_part_text, slugify, logger, ) @@ -167,7 +167,7 @@ async def handle_download( cover_data = await fetch_cover(metadata["cover"].replace("-256-", "-512-")) part_contents = [ f"