diff --git a/main.py b/main.py index 9635482..0c5dae4 100644 --- a/main.py +++ b/main.py @@ -1,8 +1,10 @@ import re +import secrets import tempfile from pathlib import Path -from requests import HTTPError, request +from ebooklib import epub # type: ignore +from requests import HTTPError, auth, request def parse_issuu_url(url: str) -> tuple[str, str]: @@ -66,6 +68,67 @@ def download_pages(page_urls: list[str], working_dir: Path) -> list[Path]: return page_paths +def generate_epub( + pages: list[Path], output_file: Path, title: str, author: str +) -> None: + """generate epub file.""" + book = epub.EpubBook() + book.set_identifier(secrets.token_urlsafe(10)) + book.set_title(title=title) + book.set_language("de") + book.add_author(author=author) + + chapters = [] + + for i, page in enumerate(pages, start=1): + page_title = f"Page {i}" + + image_item = epub.EpubImage() + image_item.file_name = page.as_posix() + image_item.media_type = "image/png" + book.add_item(image_item) + + chapter = epub.EpubHtml( + title=page_title, file_name=f"page_{i}.xhtml", lang="de" + ) + + chapter.content = f""" + +
+