From 9eb75ef6686446e7d229be1b1941af2392e41d93 Mon Sep 17 00:00:00 2001 From: Joris Guyonvarch Date: Sun, 28 Dec 2025 15:23:45 +0100 Subject: Add checkbox to remove book sources --- src/book_store.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'src/book_store.py') diff --git a/src/book_store.py b/src/book_store.py index ece5415..71455bd 100644 --- a/src/book_store.py +++ b/src/book_store.py @@ -11,7 +11,7 @@ import src.book_files as book_files logger = logging.getLogger(__name__) -def store(library, conn, data, cover, books, book = None): +def store(library, conn, data, cover, books, book, remove_book_sources): book_id = book['id'] if book else nanoid.generate() directory = f'{library}/{book_id}' @@ -21,8 +21,8 @@ def store(library, conn, data, cover, books, book = None): save_cover(cover, directory) if book: - update_books(directory, books) if not already_exist(directory, books) or has_delete(library, book_id, books): + update_books(directory, books, remove_book_sources) else: create_books(directory, books) @@ -56,7 +56,7 @@ def has_delete(library, book_id, books): return True return False -def update_books(directory, books): +def update_books(directory, books, remove_book_sources): try: tmp_dir = f'{directory}/tmp' os.makedirs(tmp_dir, exist_ok=True) @@ -79,6 +79,12 @@ def update_books(directory, books): dest = f'{directory}/{name}{ext}' logger.info('Copying %s to %s', src, dest) shutil.copyfile(src, dest) + # Remove sources outside of book dir + if remove_book_sources: + for path in books.keys(): + if os.path.dirname(path) != directory: + logger.info('Removing source: %s', path) + pathlib.Path.unlink(path) finally: # Remove tmp shutil.rmtree(f'{directory}/tmp', ignore_errors=True) -- cgit v1.2.3