swingmusic
swingmusic copied to clipboard
[Feature] Album Artists browsing and article-aware sorting
Album Artists browsing and article-aware sorting
- Add AlbumArtistStore for cleaner artist browsing separate from track artists
- Implement article-aware sorting utility that removes articles (The, A, An, etc.) for sorting
- Support multiple language articles (English, Spanish, French, German, Italian, Portuguese, Dutch)
- Add /api/albumartist/* endpoints for album artist operations
- Extend /api/getall/ to support 'albumartists' itemtype
- Update artist name sorting to use article-stripped keys while preserving display names
- Add library statistics endpoint including album artist counts
Features:
- 'The B-52's' now sorts under 'B' instead of 'T'
- Album Artists shows primary artists without featured/collaboration clutter
- Fully backward compatible with existing functionality
- No database schema changes required - builds from existing track metadata
API endpoints added:
- GET /api/albumartist/{hash} - Get album artist details
- GET /api/albumartist/{hash}/albums - Get albums by album artist
- GET /api/albumartist/{hash}/tracks - Get tracks by album artist
- GET /api/albumartist/search - Search album artists
- GET /api/albumartist/stats - Album artist statistics
- GET /api/getall/albumartists - Browse all album artists
- GET /api/getall/stats - Library statistics"
What kind of change does this PR introduce? (check at least one)
- [ ] Bugfix
- [ ] Feature
- [ ] Code style update
- [ ] Refactor
- [ ] Build-related changes
- [ ] Other, please describe:
The PR fulfills these requirements:
- [ ] When resolving a specific issue, it's referenced in the PR's title (e.g.
fix #xxx[,#xxx], where "xxx" is the issue number)
If adding a new feature, the PR's description includes:
- [ ] A convincing reason for adding this feature (it's best to open a suggestion issue first and wait for approval before working on it)
Other information:
Hello @Sc00tz , Thank you for your support.
While looking through your commits I detected some commends like # Added this line
Could you please explain, why you added these comments?
I do not seem to fully understand what information the comment provide.
Thanks you