Music Assistant 2.0 (#509)
authorMarcel van der Veldt <m.vanderveldt@outlook.com>
Wed, 8 Mar 2023 20:34:44 +0000 (21:34 +0100)
committerGitHub <noreply@github.com>
Wed, 8 Mar 2023 20:34:44 +0000 (21:34 +0100)
commitb061cc934ed9815ba3118ff9e9836c43d320d15a
tree1234d37d0ed8b3e7063f48b8f0284b02b5d2c402
parentc1e2086a1e0468defce243a7836b71410f030ad3
Music Assistant 2.0 (#509)

The entire code base is rewritten/refactored for a 2.0 release

even more pluggable providers, for easy extension
allow to run fully standalone
introduce a websocket api and basic CLI
prepare python client
lots of bugfixes
225 files changed:
.github/workflows/publish-to-pypi.yml
.github/workflows/test.yml
.pre-commit-config.yaml
.vscode/launch.json [new file with mode: 0644]
.vscode/settings.json
MANIFEST.in [deleted file]
examples/full.py [deleted file]
examples/simple.py [deleted file]
music_assistant/__init__.py
music_assistant/__main__.py [new file with mode: 0644]
music_assistant/client/__init__.py [new file with mode: 0644]
music_assistant/common/__init__.py [new file with mode: 0644]
music_assistant/common/helpers/__init__.py [new file with mode: 0644]
music_assistant/common/helpers/datetime.py [new file with mode: 0644]
music_assistant/common/helpers/json.py [new file with mode: 0644]
music_assistant/common/helpers/uri.py [new file with mode: 0644]
music_assistant/common/helpers/util.py [new file with mode: 0755]
music_assistant/common/models/__init__.py [new file with mode: 0644]
music_assistant/common/models/api.py [new file with mode: 0644]
music_assistant/common/models/config_entries.py [new file with mode: 0644]
music_assistant/common/models/enums.py [new file with mode: 0644]
music_assistant/common/models/errors.py [new file with mode: 0644]
music_assistant/common/models/event.py [new file with mode: 0644]
music_assistant/common/models/media_items.py [new file with mode: 0755]
music_assistant/common/models/player.py [new file with mode: 0644]
music_assistant/common/models/player_queue.py [new file with mode: 0644]
music_assistant/common/models/provider.py [new file with mode: 0644]
music_assistant/common/models/queue_item.py [new file with mode: 0644]
music_assistant/constants.py
music_assistant/controllers/__init__.py [deleted file]
music_assistant/controllers/cache.py [deleted file]
music_assistant/controllers/database.py [deleted file]
music_assistant/controllers/media/__init__.py [deleted file]
music_assistant/controllers/media/albums.py [deleted file]
music_assistant/controllers/media/artists.py [deleted file]
music_assistant/controllers/media/base.py [deleted file]
music_assistant/controllers/media/playlists.py [deleted file]
music_assistant/controllers/media/radio.py [deleted file]
music_assistant/controllers/media/tracks.py [deleted file]
music_assistant/controllers/metadata/__init__.py [deleted file]
music_assistant/controllers/metadata/audiodb.py [deleted file]
music_assistant/controllers/metadata/fanarttv.py [deleted file]
music_assistant/controllers/metadata/metadata.py [deleted file]
music_assistant/controllers/metadata/musicbrainz.py [deleted file]
music_assistant/controllers/music.py [deleted file]
music_assistant/controllers/players.py [deleted file]
music_assistant/controllers/streams.py [deleted file]
music_assistant/helpers/__init__.py [deleted file]
music_assistant/helpers/app_vars.py [deleted file]
music_assistant/helpers/audio.py [deleted file]
music_assistant/helpers/compare.py [deleted file]
music_assistant/helpers/datetime.py [deleted file]
music_assistant/helpers/images.py [deleted file]
music_assistant/helpers/json.py [deleted file]
music_assistant/helpers/playlists.py [deleted file]
music_assistant/helpers/process.py [deleted file]
music_assistant/helpers/resources/announce.mp3 [deleted file]
music_assistant/helpers/resources/silence.mp3 [deleted file]
music_assistant/helpers/tags.py [deleted file]
music_assistant/helpers/uri.py [deleted file]
music_assistant/helpers/util.py [deleted file]
music_assistant/mass.py [deleted file]
music_assistant/models/__init__.py [deleted file]
music_assistant/models/background_job.py [deleted file]
music_assistant/models/config.py [deleted file]
music_assistant/models/enums.py [deleted file]
music_assistant/models/errors.py [deleted file]
music_assistant/models/event.py [deleted file]
music_assistant/models/media_items.py [deleted file]
music_assistant/models/music_provider.py [deleted file]
music_assistant/models/player.py [deleted file]
music_assistant/models/player_queue.py [deleted file]
music_assistant/models/queue_item.py [deleted file]
music_assistant/models/queue_settings.py [deleted file]
music_assistant/music_providers/__init__.py [deleted file]
music_assistant/music_providers/filesystem/__init__.py [deleted file]
music_assistant/music_providers/filesystem/base.py [deleted file]
music_assistant/music_providers/filesystem/helpers.py [deleted file]
music_assistant/music_providers/filesystem/local.py [deleted file]
music_assistant/music_providers/filesystem/smb.py [deleted file]
music_assistant/music_providers/qobuz/__init__.py [deleted file]
music_assistant/music_providers/qobuz/qobuz.py [deleted file]
music_assistant/music_providers/spotify/__init__.py [deleted file]
music_assistant/music_providers/spotify/librespot/freebsd/librespot [deleted file]
music_assistant/music_providers/spotify/librespot/linux/librespot-aarch64 [deleted file]
music_assistant/music_providers/spotify/librespot/linux/librespot-arm [deleted file]
music_assistant/music_providers/spotify/librespot/linux/librespot-armhf [deleted file]
music_assistant/music_providers/spotify/librespot/linux/librespot-armv7 [deleted file]
music_assistant/music_providers/spotify/librespot/linux/librespot-x86_64 [deleted file]
music_assistant/music_providers/spotify/librespot/osx/librespot [deleted file]
music_assistant/music_providers/spotify/librespot/windows/librespot.exe [deleted file]
music_assistant/music_providers/spotify/spotify.py [deleted file]
music_assistant/music_providers/tunein/__init__.py [deleted file]
music_assistant/music_providers/tunein/tunein.py [deleted file]
music_assistant/music_providers/url/__init__.py [deleted file]
music_assistant/music_providers/url/url.py [deleted file]
music_assistant/music_providers/ytmusic/__init__.py [deleted file]
music_assistant/music_providers/ytmusic/helpers.py [deleted file]
music_assistant/music_providers/ytmusic/ytmusic.py [deleted file]
music_assistant/py.typed [new file with mode: 0644]
music_assistant/server/__init__.py [new file with mode: 0644]
music_assistant/server/controllers/__init__.py [new file with mode: 0644]
music_assistant/server/controllers/cache.py [new file with mode: 0644]
music_assistant/server/controllers/config.py [new file with mode: 0644]
music_assistant/server/controllers/media/__init__.py [new file with mode: 0644]
music_assistant/server/controllers/media/albums.py [new file with mode: 0644]
music_assistant/server/controllers/media/artists.py [new file with mode: 0644]
music_assistant/server/controllers/media/base.py [new file with mode: 0644]
music_assistant/server/controllers/media/playlists.py [new file with mode: 0644]
music_assistant/server/controllers/media/radio.py [new file with mode: 0644]
music_assistant/server/controllers/media/tracks.py [new file with mode: 0644]
music_assistant/server/controllers/metadata.py [new file with mode: 0755]
music_assistant/server/controllers/music.py [new file with mode: 0755]
music_assistant/server/controllers/player_queues.py [new file with mode: 0755]
music_assistant/server/controllers/players.py [new file with mode: 0755]
music_assistant/server/controllers/streams.py [new file with mode: 0644]
music_assistant/server/helpers/__init__.py [new file with mode: 0644]
music_assistant/server/helpers/api.py [new file with mode: 0644]
music_assistant/server/helpers/app_vars.py [new file with mode: 0644]
music_assistant/server/helpers/audio.py [new file with mode: 0644]
music_assistant/server/helpers/compare.py [new file with mode: 0644]
music_assistant/server/helpers/database.py [new file with mode: 0755]
music_assistant/server/helpers/didl_lite.py [new file with mode: 0644]
music_assistant/server/helpers/images.py [new file with mode: 0644]
music_assistant/server/helpers/playlists.py [new file with mode: 0644]
music_assistant/server/helpers/process.py [new file with mode: 0644]
music_assistant/server/helpers/resources/announce.mp3 [new file with mode: 0644]
music_assistant/server/helpers/resources/silence.mp3 [new file with mode: 0644]
music_assistant/server/helpers/tags.py [new file with mode: 0644]
music_assistant/server/helpers/util.py [new file with mode: 0644]
music_assistant/server/models/__init__.py [new file with mode: 0644]
music_assistant/server/models/metadata_provider.py [new file with mode: 0644]
music_assistant/server/models/music_provider.py [new file with mode: 0644]
music_assistant/server/models/player_provider.py [new file with mode: 0644]
music_assistant/server/models/plugin.py [new file with mode: 0644]
music_assistant/server/models/provider.py [new file with mode: 0644]
music_assistant/server/providers/__init__.py [new file with mode: 0644]
music_assistant/server/providers/airplay/__init__.py [new file with mode: 0644]
music_assistant/server/providers/airplay/bin/libcrypto-1_1.dll [new file with mode: 0755]
music_assistant/server/providers/airplay/bin/libssl-1_1.dll [new file with mode: 0755]
music_assistant/server/providers/airplay/bin/squeeze2raop-freebsd-x86_64 [new file with mode: 0644]
music_assistant/server/providers/airplay/bin/squeeze2raop-freebsd-x86_64-static [new file with mode: 0644]
music_assistant/server/providers/airplay/bin/squeeze2raop-linux-aarch64 [new file with mode: 0644]
music_assistant/server/providers/airplay/bin/squeeze2raop-linux-aarch64-static [new file with mode: 0644]
music_assistant/server/providers/airplay/bin/squeeze2raop-linux-arm [new file with mode: 0644]
music_assistant/server/providers/airplay/bin/squeeze2raop-linux-arm-static [new file with mode: 0644]
music_assistant/server/providers/airplay/bin/squeeze2raop-linux-armv6 [new file with mode: 0644]
music_assistant/server/providers/airplay/bin/squeeze2raop-linux-armv6-static [new file with mode: 0644]
music_assistant/server/providers/airplay/bin/squeeze2raop-linux-mips [new file with mode: 0644]
music_assistant/server/providers/airplay/bin/squeeze2raop-linux-mips-static [new file with mode: 0644]
music_assistant/server/providers/airplay/bin/squeeze2raop-linux-powerpc [new file with mode: 0644]
music_assistant/server/providers/airplay/bin/squeeze2raop-linux-powerpc-static [new file with mode: 0644]
music_assistant/server/providers/airplay/bin/squeeze2raop-linux-sparc64 [new file with mode: 0644]
music_assistant/server/providers/airplay/bin/squeeze2raop-linux-sparc64-static [new file with mode: 0644]
music_assistant/server/providers/airplay/bin/squeeze2raop-linux-x86 [new file with mode: 0644]
music_assistant/server/providers/airplay/bin/squeeze2raop-linux-x86-static [new file with mode: 0644]
music_assistant/server/providers/airplay/bin/squeeze2raop-linux-x86_64 [new file with mode: 0644]
music_assistant/server/providers/airplay/bin/squeeze2raop-linux-x86_64-static [new file with mode: 0644]
music_assistant/server/providers/airplay/bin/squeeze2raop-macos [new file with mode: 0755]
music_assistant/server/providers/airplay/bin/squeeze2raop-macos-arm64 [new file with mode: 0755]
music_assistant/server/providers/airplay/bin/squeeze2raop-macos-arm64-static [new file with mode: 0755]
music_assistant/server/providers/airplay/bin/squeeze2raop-macos-static [new file with mode: 0755]
music_assistant/server/providers/airplay/bin/squeeze2raop-macos-x86_64 [new file with mode: 0755]
music_assistant/server/providers/airplay/bin/squeeze2raop-macos-x86_64-static [new file with mode: 0755]
music_assistant/server/providers/airplay/bin/squeeze2raop-solaris-x86_64 [new file with mode: 0644]
music_assistant/server/providers/airplay/bin/squeeze2raop-solaris-x86_64-static [new file with mode: 0644]
music_assistant/server/providers/airplay/bin/squeeze2raop-static.exe [new file with mode: 0755]
music_assistant/server/providers/airplay/bin/squeeze2raop.exe [new file with mode: 0755]
music_assistant/server/providers/airplay/manifest.json [new file with mode: 0644]
music_assistant/server/providers/chromecast/__init__.py [new file with mode: 0644]
music_assistant/server/providers/chromecast/helpers.py [new file with mode: 0644]
music_assistant/server/providers/chromecast/manifest.json [new file with mode: 0644]
music_assistant/server/providers/dlna/__init__.py [new file with mode: 0644]
music_assistant/server/providers/dlna/helpers.py [new file with mode: 0644]
music_assistant/server/providers/dlna/manifest.json [new file with mode: 0644]
music_assistant/server/providers/fanarttv/__init__.py [new file with mode: 0644]
music_assistant/server/providers/fanarttv/manifest.json [new file with mode: 0644]
music_assistant/server/providers/filesystem_local/__init__.py [new file with mode: 0644]
music_assistant/server/providers/filesystem_local/base.py [new file with mode: 0644]
music_assistant/server/providers/filesystem_local/helpers.py [new file with mode: 0644]
music_assistant/server/providers/filesystem_local/manifest.json [new file with mode: 0644]
music_assistant/server/providers/filesystem_smb/__init__.py [new file with mode: 0644]
music_assistant/server/providers/filesystem_smb/helpers.py [new file with mode: 0644]
music_assistant/server/providers/filesystem_smb/manifest.json [new file with mode: 0644]
music_assistant/server/providers/frontend/__init__.py [new file with mode: 0644]
music_assistant/server/providers/frontend/manifest.json [new file with mode: 0644]
music_assistant/server/providers/json_rpc/__init__.py [new file with mode: 0644]
music_assistant/server/providers/json_rpc/manifest.json [new file with mode: 0644]
music_assistant/server/providers/json_rpc/models.py [new file with mode: 0644]
music_assistant/server/providers/musicbrainz/__init__.py [new file with mode: 0644]
music_assistant/server/providers/musicbrainz/manifest.json [new file with mode: 0644]
music_assistant/server/providers/qobuz/__init__.py [new file with mode: 0644]
music_assistant/server/providers/qobuz/manifest.json [new file with mode: 0644]
music_assistant/server/providers/slimproto/__init__.py [new file with mode: 0644]
music_assistant/server/providers/slimproto/manifest.json [new file with mode: 0644]
music_assistant/server/providers/sonos/__init__.py [new file with mode: 0644]
music_assistant/server/providers/sonos/manifest.json [new file with mode: 0644]
music_assistant/server/providers/spotify/__init__.py [new file with mode: 0644]
music_assistant/server/providers/spotify/librespot/freebsd/librespot [new file with mode: 0755]
music_assistant/server/providers/spotify/librespot/linux/librespot-aarch64 [new file with mode: 0755]
music_assistant/server/providers/spotify/librespot/linux/librespot-arm [new file with mode: 0755]
music_assistant/server/providers/spotify/librespot/linux/librespot-armhf [new file with mode: 0755]
music_assistant/server/providers/spotify/librespot/linux/librespot-armv7 [new file with mode: 0755]
music_assistant/server/providers/spotify/librespot/linux/librespot-x86_64 [new file with mode: 0755]
music_assistant/server/providers/spotify/librespot/osx/librespot [new file with mode: 0755]
music_assistant/server/providers/spotify/librespot/windows/librespot.exe [new file with mode: 0755]
music_assistant/server/providers/spotify/manifest.json [new file with mode: 0644]
music_assistant/server/providers/theaudiodb/__init__.py [new file with mode: 0644]
music_assistant/server/providers/theaudiodb/manifest.json [new file with mode: 0644]
music_assistant/server/providers/tunein/__init__.py [new file with mode: 0644]
music_assistant/server/providers/tunein/manifest.json [new file with mode: 0644]
music_assistant/server/providers/url/__init__.py [new file with mode: 0644]
music_assistant/server/providers/url/manifest.json [new file with mode: 0644]
music_assistant/server/providers/ytmusic/__init__.py [new file with mode: 0644]
music_assistant/server/providers/ytmusic/helpers.py [new file with mode: 0644]
music_assistant/server/providers/ytmusic/manifest.json [new file with mode: 0644]
music_assistant/server/server.py [new file with mode: 0644]
pylintrc [deleted file]
pyproject.toml [new file with mode: 0644]
requirements.txt [deleted file]
requirements_dev.txt [deleted file]
setup.cfg [deleted file]
setup.py [deleted file]
tests/test_helpers.py
tests/test_tags.py