Fix 6 bugs: shared stdin reader, CDDB multiline, type annotation, crash fixes

- ripper: replace per-call stdin daemon threads with a shared module-level
  reader (_stdin_queue + _read_line), preventing orphan threads from stealing
  stdin input after photo uploads; all 8 input() calls in interactive_rip
  now use _read_line()
- ripper: _stream_abcde return type annotation fixed (2-tuple → 3-tuple)
- ripper: disc retry rejection now breaks gracefully instead of raising
  unhandled RuntimeError that crashed the program
- ripper: int() on disc number input wrapped in try/except
- cddb: multi-line DTITLE/TTITLE values are now concatenated instead of
  only keeping the last line (per CDDB/xmcd protocol spec)
- cli: removed unreachable dead code block in apply command
- scanner_server: upload form auto-resets after 3s for repeated uploads
- tests: _scanner_patches() updated to mock _read_line alongside
  _input_or_scan (225 tests passing)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Dieter Schlüter 2026-02-19 19:03:06 +01:00
commit 8c25bc65be
5 changed files with 100 additions and 40 deletions

View file

@ -110,6 +110,13 @@ _UPLOAD_HTML = """\
if (data.status === 'ok') {
status.className = 'ok';
status.textContent = '\u2713 Erfolgreich hochgeladen! KI analysiert das Cover\u2026';
setTimeout(() => {
input.value = '';
preview.style.display = 'none';
btn.style.display = 'none';
btn.disabled = false;
status.style.display = 'none';
}, 3000);
} else {
throw new Error(data.message || 'Unbekannter Fehler');
}