feat: upgrade archivio con auto-pick, audio preview, cancel-all (v1.9.4)

Tab Upgrade:
- Checkbox "Scelta automatica" per skippare il modal quando ci sono
  multi-match (usa bitrate DESC)
- Anteprima audio nel picker: play button sul source + ogni candidato
  via bridge read_audio_data_url (WKWebView blocca file://)
- Bottone "Annulla tutto" nel picker → interrompe l'intera coda
- Fix mtime: shutil.copy (non copy2) così il file upgradato ha
  data odierna nel Finder
- Fix stop audio → non triggera più toast di errore
- Modal picker più largo (620-780px) con footer wrap

Extra: campo release_date estratto anche in Beatport (publish_date)
e YouTube (upload_date) — completato scaffold sort colonna Data
This commit is contained in:
luciano committed 2026-08-02 12:56:19 +02:00
1 parent e10466d93b
commit e7fde842f2
8 files changed
+219 -13

No files matched your search

+5 -2
View File
@@ -188,7 +188,10 @@ def _copy_or_convert_to_mp3(
"""
try:
if src.suffix.lower() == ".mp3":
shutil.copy2(str(src), str(dst))
# shutil.copy (non copy2): mtime del target = ora, non quello
# del sorgente. Così è chiaro nel Finder che il file è stato
# aggiornato dall'upgrade.
shutil.copy(str(src), str(dst))
return dst.exists()
# Convert non-mp3 -> mp3 320k
ffmpeg_bin = find_ffmpeg() or "ffmpeg"
@@ -431,7 +434,7 @@ def upgrade_folder(
progress_callback(processed, total, filepath.name,
"resolve_wait", current_kbps, 0)
try:
choice = resolve_callback(filepath.name, cand_payload) or {}
choice = resolve_callback(str(filepath), cand_payload) or {}
except Exception:
choice = {}
action = (choice.get("action") or "").strip()