aboutsummaryrefslogtreecommitdiff
path: root/src/book_transfer.py
diff options
context:
space:
mode:
authorJoris Guyonvarch2026-01-16 19:02:53 +0100
committerJoris Guyonvarch2026-01-16 19:02:53 +0100
commitf2656765a27a38b1a9e5602c3430dde1cbc361f1 (patch)
treea103135f5155e5132bf5366a3fdee5c93575a9d4 /src/book_transfer.py
parentef6087b36a4726663a1c475952dc0898ab7d0abd (diff)
Transfer book by book instead of all books
Diffstat (limited to 'src/book_transfer.py')
-rw-r--r--src/book_transfer.py28
1 files changed, 13 insertions, 15 deletions
diff --git a/src/book_transfer.py b/src/book_transfer.py
index 3bda52f..073fa9c 100644
--- a/src/book_transfer.py
+++ b/src/book_transfer.py
@@ -12,13 +12,13 @@ import src.str_format as str_format
class BookTransfer(Gtk.Window):
- def __init__(self, parent_window, ereader, book_id, data, paths):
+ def __init__(self, parent_window, ereader, book_id, data, path):
Gtk.Window.__init__(self)
self._ereader = ereader
self._book_id = book_id
self._data = data
- self._paths = paths
+ self._path = path
utils.configure_dialog(self, parent_window, data['title'], width=None, height=None, allow_escape=False)
@@ -26,9 +26,8 @@ class BookTransfer(Gtk.Window):
self.set_child(self._box)
utils.set_margin(self._box, 20)
- for path in paths:
- basename = os.path.basename(path)
- self._box.append(utils.label(basename))
+ basename = os.path.basename(path)
+ self._box.append(utils.label(basename))
self._spinner = Gtk.Spinner()
self._spinner.start()
@@ -43,24 +42,23 @@ class BookTransfer(Gtk.Window):
self._box.append(utils.label('✔'))
def _transfer_books_daemon(self):
- for path in self._paths:
- self._transfer_book(path)
+ self._transfer_book()
GLib.idle_add(self._complete_animation)
- def _transfer_book(self, path):
- dest = self._dest_name(path)
- if path.suffix in ['.mobi', '.azw3']:
+ def _transfer_book(self):
+ dest = self._dest_name()
+ if self._path.suffix in ['.mobi', '.azw3']:
# Copy
os.makedirs(os.path.dirname(dest), exist_ok=True)
- shutil.copyfile(path, dest)
+ shutil.copyfile(self._path, dest)
else:
# Convert
os.makedirs(os.path.dirname(dest), exist_ok=True)
- subprocess.run(['ebook-convert', path, dest])
+ subprocess.run(['ebook-convert', self._path, dest])
- def _dest_name(self, path):
+ def _dest_name(self):
safe_author = str_format.safe_path(self._data['authors'][0]) if len(self._data['authors']) > 0 else self._book_id
safe_title = str_format.safe_path(self._data['title'])
- basename_no_ext = str_format.safe_path(os.path.splitext(os.path.basename(path))[0])
- ext = path.suffix if path.suffix in ['.mobi', '.azw3'] else '.mobi'
+ basename_no_ext = str_format.safe_path(os.path.splitext(os.path.basename(self._path))[0])
+ ext = self._path.suffix if self._path.suffix in ['.mobi', '.azw3'] else '.mobi'
return f'{self._ereader}/{safe_author}-{safe_title}-{basename_no_ext}{ext}'