Case-insensitive login, auto-matching after scan, per-library sources

- auth: username lookup is now case-insensitive via func.lower()
- scanner: trigger match_audiobook for each newly found item after scan
- matcher: read match_sources from library settings; refactored to loop
  over configured sources in priority order instead of hardcoded sequence
- schemas/routers: expose matchSources in LibraryOut API response
- Admin UI: pill-toggle for MusicBrainz/Open Library/Google Books per library

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Audiolib
2026-05-26 15:01:56 +02:00
parent b8984f0c2c
commit 6bb07ff873
6 changed files with 104 additions and 57 deletions

View File

@@ -39,6 +39,7 @@ class LibraryOut(BaseModel):
icon: str = "database"
media_type: str = "book"
provider: str = "google"
match_sources: list[str] = ["musicbrainz", "open_library", "google_books"]
settings: LibrarySettings = LibrarySettings()
created_at: int = 0 # ABS nutzt Unix-Timestamps in ms
last_update: int = 0