music-assistant-server
Branch:dev-lidarr-plugin
Commit Details
Add Zvuk Music provider (#3090)
* Add zvuk_music provider scaffold (manifest, constants, icons) Co-Authored-By: Claude Opus 4.5 <[email protected]> * Add Zvuk Music API client wrapper Co-Authored-By: Claude Opus 4.5 <[email protected]> * Add Zvuk Music model parsers Co-Authored-By: Claude Opus 4.5 <[email protected]> * Add ZvukMusicProvider implementation Co-Authored-By: Claude Opus 4.5 <[email protected]> * Update zvuk_music icons to official 2024 logo Co-Authored-By: Claude Opus 4.5 <[email protected]> * Add Zvuk Music provider integration tests Co-Authored-By: Claude Opus 4.5 <[email protected]> * Replace Zvuk Music integration tests with unit tests Remove integration tests that required real API tokens and a running MA server. Add comprehensive unit tests for parsers using mock objects, covering all parser functions (parse_artist, parse_album, parse_track, parse_playlist) with various scenarios. Co-Authored-By: Claude Opus 4.5 <[email protected]> * Address PR #3090 review: decorator, duration, allow_seek - Refactor API error handling into @handle_zvuk_errors(not_found_return=...) decorator (api_client.py) - Add duration from get_track() and allow_seek=True in get_stream_details (provider.py) Co-authored-by: Cursor <[email protected]> * docs(zvuk): clarify why get_track is needed for duration in get_stream_details Co-authored-by: Cursor <[email protected]> --------- Co-authored-by: Михаил Невский <[email protected]> Co-authored-by: Claude Opus 4.5 <[email protected]> Co-authored-by: Marcel van der Veldt <[email protected]> Co-authored-by: Cursor <[email protected]>
Author
Mikhail Nevskiy<[email protected]>
February 10, 2026 at 07:01 AM UTC
Committer
GitHub<[email protected]>
February 10, 2026 at 07:01 AM UTC
536additions
0deletions
11files changed
Parent commits
Changes
11 files
+536-0
Changed Files (11)
music_assistant/providers/zvuk_music/
tests/providers/zvuk_music/
music_assistant/providers/zvuk_music/__init__.py
music_assistant/providers/zvuk_music/api_client.py
music_assistant/providers/zvuk_music/constants.py
music_assistant/providers/zvuk_music/icon.svg
music_assistant/providers/zvuk_music/icon_monochrome.svg
music_assistant/providers/zvuk_music/manifest.json
music_assistant/providers/zvuk_music/parsers.py
music_assistant/providers/zvuk_music/provider.py
requirements_all.txt
tests/providers/zvuk_music/__init__.py
tests/providers/zvuk_music/test_parsers.py
+536