feat: implement MusicBrainz API endpoints, filtering, and normalization
- Add GetArtistReleaseGroups method with pagination support - Implement status filtering (exclude Bootleg/Promotion/Pseudo-Release) - Implement type filtering (include Album/Single/EP/Compilation) - Add per-artist type filtering hooks (ArtistTypeFilter) for Web UI - Add NormalizeString and NormalizeArtistName for fuzzy matching prep - Add ReleaseGroup.ToExternalRelease conversion method - Write comprehensive table-driven tests for filtering logic - Write tests for normalization functions (18 cases) - Write tests for GetArtistReleaseGroups (success, pagination, empty, errors) - All tests pass (47 total across project), go vet clean
This commit is contained in:
@@ -65,14 +65,14 @@ Implement a MusicBrainz API provider with strict 1 request/second rate limiting,
|
||||
- [x] run tests - must pass before next task
|
||||
|
||||
### Task 3: Implement MusicBrainz API endpoints and filtering
|
||||
- [ ] implement GetArtistReleaseGroups(artistMBID string) method
|
||||
- [ ] apply filters: exclude Bootleg/Promotion/Pseudo-Release status
|
||||
- [ ] apply type filters: include Album/Single/EP/Compilation only
|
||||
- [ ] implement per-artist type filtering hooks (placeholder for Web UI integration)
|
||||
- [ ] normalize artist names and titles (remove special characters, years, brackets)
|
||||
- [ ] write tests for filtering logic (table-driven test cases)
|
||||
- [ ] write tests for normalization functions
|
||||
- [ ] run tests - must pass before next task
|
||||
- [x] implement GetArtistReleaseGroups(artistMBID string) method
|
||||
- [x] apply filters: exclude Bootleg/Promotion/Pseudo-Release status
|
||||
- [x] apply type filters: include Album/Single/EP/Compilation only
|
||||
- [x] implement per-artist type filtering hooks (placeholder for Web UI integration)
|
||||
- [x] normalize artist names and titles (remove special characters, years, brackets)
|
||||
- [x] write tests for filtering logic (table-driven test cases)
|
||||
- [x] write tests for normalization functions
|
||||
- [x] run tests - must pass before next task
|
||||
|
||||
### Task 4: Implement database integration and sync orchestration
|
||||
- [ ] create `internal/musicbrainz/sync.go` with SyncArtistDiscography function
|
||||
|
||||
Reference in New Issue
Block a user