music-assistant-server

Branch:dev-lidarr-plugin

Commit Details

Feat/genres-v2-implementation (#3164)

* feat(genres): Core genre system

* feat(genres): add background scanner for metadata.genres

* refactor(genres): add genres to base

* test(genres): add test suite

* fix(genres): eixsting genres are not recreated at migration

* feat(genres): guard against infinite loops in scanner

* fix(genres): remove duplicate, improve tests

* fix(genres): limit genre tracks return

* refactor(genres): use logger rather than print

* refactor(genres): use asyncio.gather rather than sequential calls

* refactor(genres): various fixes after review comments

* refactor(genres): randomize selection, use asyncio gether

* refactor(genres): remove alias object

* fix(genres): fix n:n relationship, safeguard comparisons

* refactor(genres): address review comments

* fix(genres): fix issues after rebase

* test(genres): add missing param to library sync tests
Forgejo

Author

Jozef Kruszynski<[email protected]>
February 20, 2026 at 05:04 PM UTC

Committer

February 20, 2026 at 05:04 PM UTC
503additions
16deletions
17files changed

Parent commits

Changes

17 files
+503-16

Changed Files (17)

music_assistant/
music_assistant/controllers/media/
music_assistant/controllers/
music_assistant/helpers/resources/
music_assistant/models/
music_assistant/providers/test/
tests/core/
tests/
music_assistant/constants.py
+5-3
music_assistant/controllers/media/albums.py
+2
music_assistant/controllers/media/artists.py
+2
music_assistant/controllers/media/audiobooks.py
+3
music_assistant/controllers/media/base.py
+35-2
music_assistant/controllers/media/genres.py
music_assistant/controllers/media/podcasts.py
+3
music_assistant/controllers/media/tracks.py
+3
music_assistant/controllers/music.py
+253
music_assistant/controllers/player_queues.py
+49
music_assistant/helpers/resources/genre_mapping.json
music_assistant/models/music_provider.py
+94
music_assistant/providers/test/__init__.py
+50-11
pyproject.toml
tests/core/test_genre_helpers.py
tests/core/test_genres.py
tests/test_library_sync.py
+4