fix(api): Remove unnecessary newlines from Text

This commit is contained in:
TheOnlyWayUp
2024-12-07 09:31:00 +00:00
parent 7b521e492a
commit 96d367da27
2 changed files with 14 additions and 2 deletions
+12
View File
@@ -565,3 +565,15 @@ class PDFGenerator:
self.file.seek(0) self.file.seek(0)
return self 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)
+2 -2
View File
@@ -10,7 +10,6 @@ from aiohttp import ClientResponseError
from fastapi import FastAPI, Request from fastapi import FastAPI, Request
from fastapi.responses import FileResponse, HTMLResponse, StreamingResponse from fastapi.responses import FileResponse, HTMLResponse, StreamingResponse
from fastapi.staticfiles import StaticFiles from fastapi.staticfiles import StaticFiles
from ebooklib import epub
from create_book import ( from create_book import (
EPUBGenerator, EPUBGenerator,
PDFGenerator, PDFGenerator,
@@ -21,6 +20,7 @@ from create_book import (
fetch_cookies, fetch_cookies,
WattpadError, WattpadError,
StoryNotFoundError, StoryNotFoundError,
clean_part_text,
slugify, slugify,
logger, logger,
) )
@@ -167,7 +167,7 @@ async def handle_download(
cover_data = await fetch_cover(metadata["cover"].replace("-256-", "-512-")) cover_data = await fetch_cover(metadata["cover"].replace("-256-", "-512-"))
part_contents = [ part_contents = [
f"<h1>{part['title']}</h1>" f"<h1>{part['title']}</h1>"
+ (await fetch_part_content(part["id"], cookies=cookies)) + (clean_part_text(await fetch_part_content(part["id"], cookies=cookies)))
for part in metadata["parts"] for part in metadata["parts"]
] ]