aboutsummaryrefslogtreecommitdiff
path: root/app/ui/runview.py
diff options
context:
space:
mode:
authorhistoria <historiavg@proton.me>2026-08-31 19:45:57 -0400
committerhistoria <historiavg@proton.me>2026-08-31 19:45:57 -0400
commit10e72d4960e865acf5346ab8cf518ed5844fe45c (patch)
treeadf8c10386b9da6280c247f1fed137ef1a514157 /app/ui/runview.py
parent4bd0282da65db9f118ef5250582ab67079fad538 (diff)
downloadtts-audiobook-generator-10e72d4960e865acf5346ab8cf518ed5844fe45c.tar.gz
feat: generate a book with all installed models to compare
Diffstat (limited to 'app/ui/runview.py')
-rw-r--r--app/ui/runview.py28
1 files changed, 17 insertions, 11 deletions
diff --git a/app/ui/runview.py b/app/ui/runview.py
index 19a8f64..759fcfb 100644
--- a/app/ui/runview.py
+++ b/app/ui/runview.py
@@ -155,11 +155,11 @@ class RunView(ScreenView):
self.server = "starting"
self.server_message = ""
self.log_tail: List[str] = []
- self.book: Optional[tuple] = None # (index, total, name)
+ self.book: Optional[tuple] = None # (index, total, name, model)
self.chapter: Optional[tuple] = None # (index, total)
self.chunk_done = 0
self.chunk_total = 0
- self.book_results: List[tuple] = [] # (name, ok)
+ self.book_results: List[tuple] = [] # (name, ok, files, error, model)
self.error_message = ""
self.started_server = False # cancelled/cancelling/finished_at: base
self.boot_started: Optional[float] = None
@@ -211,7 +211,7 @@ class RunView(ScreenView):
elif kind == "book":
self.phase = "convert"
self.book = (event.get("index"), event.get("total"),
- event.get("name") or "")
+ event.get("name") or "", event.get("model"))
self.chapter = None
self.chunk_done = 0
self.chunk_total = 0
@@ -239,11 +239,12 @@ class RunView(ScreenView):
self.book_results.append((event.get("name") or "?",
bool(event.get("ok")),
list(event.get("files") or []),
- ""))
+ "", event.get("model")))
elif kind == "book_failed":
self.book_results.append((event.get("name") or "?", False,
list(event.get("files") or []),
- event.get("error") or "conversion failed"))
+ event.get("error") or "conversion failed",
+ event.get("model")))
self.error_message = self.error_message or \
(event.get("error") or "conversion failed")
elif kind == "done":
@@ -486,9 +487,10 @@ class RunView(ScreenView):
lines = ["Audiobook generation finished",
f"Output directory: {AUDIOBOOKS_FOLDER}"]
ok_count = 0
- for name, ok, files, error in self.book_results:
+ for name, ok, files, error, model in self.book_results:
ok_count += 1 if ok else 0
- lines.append(f"{'[OK]' if ok else '[FAIL]'} {name}"
+ label = f"{name} — {model}" if model else name
+ lines.append(f"{'[OK]' if ok else '[FAIL]'} {label}"
+ (f": {', '.join(files)}" if files else ""))
if not ok and error:
lines.append(f" {error}")
@@ -583,10 +585,13 @@ class RunView(ScreenView):
def _draw_progress(self, scr, theme, y, inner_x, label_w, value_x,
value_w, width) -> int:
"""The live panel: book, chapter, chunk bar, elapsed, message."""
- # Book line
+ # Book line ("— model" appended while an "All" run generates with
+ # a specific model, e.g. "1/6 dune.epub — qwen3_tts_..._q8_0")
if self.book is not None:
- index, total, name = self.book
+ index, total, name, model = self.book
book_text = f"{index}/{total} {name}"
+ if model:
+ book_text += f" — {model}"
else:
book_text = "waiting..." if self.phase == "convert" else "-"
_text(scr, theme, y, inner_x, "Book".ljust(label_w), theme["dim"])
@@ -660,10 +665,11 @@ class RunView(ScreenView):
_text(scr, theme, y, value_x, _fit(result, value_w),
theme.get(kind, theme["body"]))
y += 1
- for name, ok, _files, _error in self.book_results[:5]:
+ for name, ok, _files, _error, model in self.book_results[:5]:
mark = "[OK] " if ok else "[FAIL]"
+ label = f"{name} — {model}" if model else name
_text(scr, theme, y, value_x,
- _fit(f"{mark} {name}", value_w),
+ _fit(f"{mark} {label}", value_w),
theme["ok"] if ok else theme["err"])
y += 1
if len(self.book_results) > 5: