feat(metadata): implement single-track metadata editor API (§A7/§1H)
Docker Build & Publish / Prune old image versions (push) Has been cancelled
Docker Build & Publish / build (push) Has been cancelled
Docker Build & Publish / push (push) Has been cancelled

Adds inline AcoustID match-finding (multiple ranked candidates via
lookup_all) and PUT /tracks/{id}/metadata for manual edits, resolving
artist/album and setting metadata_status=manual. Extends TrackOut with
genre/year/track_number.
This commit is contained in:
Senko-san
2026-06-13 14:34:43 +03:00
parent 73d7da440f
commit 63c7d05eca
14 changed files with 438 additions and 16 deletions
+5
View File
@@ -38,6 +38,7 @@ def _track(*, metadata_status: str = "pending", title: str = "raw-stem") -> Trac
duration_seconds=None,
genre=None,
year=None,
track_number=None,
metadata_status=metadata_status,
metadata_error=None,
enriched_at=None,
@@ -165,6 +166,10 @@ class FakeAcoustId:
self.calls += 1
return self._match
async def lookup_all(self, fingerprint: Fingerprint) -> list[RecordingMatch]:
self.calls += 1
return [self._match] if self._match is not None else []
def _service(
*,