diff options
| author | Joris Guyonvarch | 2025-12-28 15:23:45 +0100 |
|---|---|---|
| committer | Joris Guyonvarch | 2025-12-28 15:24:30 +0100 |
| commit | 9eb75ef6686446e7d229be1b1941af2392e41d93 (patch) | |
| tree | 1000c5c172290cf4d4b424669a14e11687cca573 /src/book_store.py | |
| parent | 3e2cabfe9bd4548b4993c6b822e84450230ea563 (diff) | |
Add checkbox to remove book sources
Diffstat (limited to 'src/book_store.py')
| -rw-r--r-- | src/book_store.py | 12 |
1 files changed, 9 insertions, 3 deletions
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) |
