about summary refs log tree commit diff
path: root/pkgs/by-name/mu/music-assistant
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/mu/music-assistant')
-rw-r--r--pkgs/by-name/mu/music-assistant/ffmpeg.patch32
-rw-r--r--pkgs/by-name/mu/music-assistant/frontend.nix4
-rw-r--r--pkgs/by-name/mu/music-assistant/package.nix10
-rw-r--r--pkgs/by-name/mu/music-assistant/providers.nix32
-rwxr-xr-xpkgs/by-name/mu/music-assistant/update-providers.py2
5 files changed, 45 insertions, 35 deletions
diff --git a/pkgs/by-name/mu/music-assistant/ffmpeg.patch b/pkgs/by-name/mu/music-assistant/ffmpeg.patch
index cb815203aa75..e0356bd4189b 100644
--- a/pkgs/by-name/mu/music-assistant/ffmpeg.patch
+++ b/pkgs/by-name/mu/music-assistant/ffmpeg.patch
@@ -1,8 +1,8 @@
 diff --git a/music_assistant/server/helpers/audio.py b/music_assistant/server/helpers/audio.py
-index 6b7b5c8e..ec3b92d7 100644
+index 80310604..0a72bcfc 100644
 --- a/music_assistant/server/helpers/audio.py
 +++ b/music_assistant/server/helpers/audio.py
-@@ -214,7 +214,7 @@ async def crossfade_pcm_parts(
+@@ -74,7 +74,7 @@ async def crossfade_pcm_parts(
          await outfile.write(fade_out_part)
      args = [
          # generic args
@@ -11,16 +11,16 @@ index 6b7b5c8e..ec3b92d7 100644
          "-hide_banner",
          "-loglevel",
          "quiet",
-@@ -277,7 +277,7 @@ async def strip_silence(
+@@ -135,7 +135,7 @@ async def strip_silence(
+     reverse: bool = False,
  ) -> bytes:
      """Strip silence from begin or end of pcm audio using ffmpeg."""
-     fmt = ContentType.from_bit_depth(bit_depth)
 -    args = ["ffmpeg", "-hide_banner", "-loglevel", "quiet"]
 +    args = ["@ffmpeg@", "-hide_banner", "-loglevel", "quiet"]
      args += [
          "-acodec",
-         fmt.name.lower(),
-@@ -824,7 +824,7 @@ async def get_ffmpeg_stream(
+         pcm_format.content_type.name.lower(),
+@@ -812,7 +812,7 @@ async def get_file_stream(
  async def check_audio_support() -> tuple[bool, bool, str]:
      """Check if ffmpeg is present (with/without libsoxr support)."""
      # check for FFmpeg presence
@@ -29,7 +29,7 @@ index 6b7b5c8e..ec3b92d7 100644
      ffmpeg_present = returncode == 0 and "FFmpeg" in output.decode()
  
      # use globals as in-memory cache
-@@ -878,7 +878,7 @@ async def get_silence(
+@@ -866,7 +866,7 @@ async def get_silence(
          return
      # use ffmpeg for all other encodings
      args = [
@@ -38,7 +38,11 @@ index 6b7b5c8e..ec3b92d7 100644
          "-hide_banner",
          "-loglevel",
          "quiet",
-@@ -972,7 +972,7 @@ def get_ffmpeg_args(
+diff --git a/music_assistant/server/helpers/ffmpeg.py b/music_assistant/server/helpers/ffmpeg.py
+index 0aaa9dcf..88cd9cdb 100644
+--- a/music_assistant/server/helpers/ffmpeg.py
++++ b/music_assistant/server/helpers/ffmpeg.py
+@@ -200,7 +200,7 @@ def get_ffmpeg_args(
  
      # generic args
      generic_args = [
@@ -48,21 +52,21 @@ index 6b7b5c8e..ec3b92d7 100644
          "-loglevel",
          loglevel,
 diff --git a/music_assistant/server/helpers/tags.py b/music_assistant/server/helpers/tags.py
-index d17b55f6..b7b56c04 100644
+index c60ea526..162c4ab7 100644
 --- a/music_assistant/server/helpers/tags.py
 +++ b/music_assistant/server/helpers/tags.py
-@@ -380,7 +380,7 @@ async def parse_tags(
-     file_path = input_file if isinstance(input_file, str) else "-"
- 
+@@ -401,7 +401,7 @@ async def parse_tags(input_file: str, file_size: int | None = None) -> AudioTags
+     Input_file may be a (local) filename or URL accessible by ffmpeg.
+     """
      args = (
 -        "ffprobe",
 +        "@ffprobe@",
          "-hide_banner",
          "-loglevel",
          "fatal",
-@@ -471,7 +471,7 @@ async def get_embedded_image(input_file: str | AsyncGenerator[bytes, None]) -> b
+@@ -462,7 +462,7 @@ async def get_embedded_image(input_file: str) -> bytes | None:
+     Input_file may be a (local) filename or URL accessible by ffmpeg.
      """
-     file_path = input_file if isinstance(input_file, str) else "-"
      args = (
 -        "ffmpeg",
 +        "@ffmpeg@",
diff --git a/pkgs/by-name/mu/music-assistant/frontend.nix b/pkgs/by-name/mu/music-assistant/frontend.nix
index 8bfd8d2da10e..f01e7f4bba41 100644
--- a/pkgs/by-name/mu/music-assistant/frontend.nix
+++ b/pkgs/by-name/mu/music-assistant/frontend.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "music-assistant-frontend";
-  version = "2.8.12";
+  version = "2.8.13";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-QqjryLHEpsdcZkIu/QmrQ0t9u4PysnE7FTXsIWBz7tk=";
+    hash = "sha256-bbNIYVFASAdeF1c+Nrcb92wMEBhrCMI8NdQvYhGvbLI=";
   };
 
   postPatch = ''
diff --git a/pkgs/by-name/mu/music-assistant/package.nix b/pkgs/by-name/mu/music-assistant/package.nix
index 3435e3e5b916..65f46c184a42 100644
--- a/pkgs/by-name/mu/music-assistant/package.nix
+++ b/pkgs/by-name/mu/music-assistant/package.nix
@@ -24,14 +24,14 @@ in
 
 python.pkgs.buildPythonApplication rec {
   pname = "music-assistant";
-  version = "2.2.3";
+  version = "2.2.7";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "music-assistant";
     repo = "server";
     rev = "refs/tags/${version}";
-    hash = "sha256-7PIyo3srKwftakDiaxvZjrzo/1I9LGUwG+QGfIU5pRA=";
+    hash = "sha256-GMjeNX8C027F+Wl/HfluWap9pDOeQwlM9qOs0Sp5tTI=";
   };
 
   patches = [
@@ -91,9 +91,15 @@ python.pkgs.buildPythonApplication rec {
     pytest-cov-stub
     pytestCheckHook
     syrupy
+    pytest-timeout
   ]
   ++ lib.flatten (lib.attrValues optional-dependencies);
 
+  pytestFlagsArray = [
+    # blocks in setup
+    "--deselect=tests/server/providers/jellyfin/test_init.py::test_initial_sync"
+  ];
+
   pythonImportsCheck = [ "music_assistant" ];
 
   passthru = {
diff --git a/pkgs/by-name/mu/music-assistant/providers.nix b/pkgs/by-name/mu/music-assistant/providers.nix
index 18a2d175c50c..d085e4f1e89e 100644
--- a/pkgs/by-name/mu/music-assistant/providers.nix
+++ b/pkgs/by-name/mu/music-assistant/providers.nix
@@ -1,13 +1,13 @@
 # Do not edit manually, run ./update-providers.py
 
 {
-  version = "2.2.3";
+  version = "2.2.6";
   providers = {
-    airplay = [
+    airplay = ps: [
     ];
-    apple_music = [
+    apple_music = ps: [
     ]; # missing pywidevine
-    builtin = [
+    builtin = ps: [
     ];
     chromecast = ps: with ps; [
       pychromecast
@@ -18,11 +18,11 @@
     dlna = ps: with ps; [
       async-upnp-client
     ];
-    fanarttv = [
+    fanarttv = ps: [
     ];
-    filesystem_local = [
+    filesystem_local = ps: [
     ];
-    filesystem_smb = [
+    filesystem_smb = ps: [
     ];
     fully_kiosk = ps: with ps; [
       python-fullykiosk
@@ -30,12 +30,12 @@
     hass = ps: with ps; [
       hass-client
     ];
-    hass_players = [
+    hass_players = ps: [
     ];
     jellyfin = ps: with ps; [
       aiojellyfin
     ];
-    musicbrainz = [
+    musicbrainz = ps: [
     ];
     opensubsonic = ps: with ps; [
       py-opensonic
@@ -43,7 +43,7 @@
     plex = ps: with ps; [
       plexapi
     ];
-    qobuz = [
+    qobuz = ps: [
     ];
     radiobrowser = ps: with ps; [
       radios
@@ -60,23 +60,23 @@
       soco
       sonos-websocket
     ];
-    soundcloud = [
+    soundcloud = ps: [
     ]; # missing soundcloudpy
     spotify = ps: with ps; [
       pkce
     ];
-    template_player_provider = [
+    template_player_provider = ps: [
     ];
-    test = [
+    test = ps: [
     ];
-    theaudiodb = [
+    theaudiodb = ps: [
     ];
     tidal = ps: with ps; [
       tidalapi
     ];
-    tunein = [
+    tunein = ps: [
     ];
-    ugp = [
+    ugp = ps: [
     ];
     ytmusic = ps: with ps; [
       yt-dlp
diff --git a/pkgs/by-name/mu/music-assistant/update-providers.py b/pkgs/by-name/mu/music-assistant/update-providers.py
index ca5d0c52b40d..cb2683120b14 100755
--- a/pkgs/by-name/mu/music-assistant/update-providers.py
+++ b/pkgs/by-name/mu/music-assistant/update-providers.py
@@ -24,7 +24,7 @@ TEMPLATE = """# Do not edit manually, run ./update-providers.py
   version = "{{ version }}";
   providers = {
 {%- for provider in providers | sort(attribute='domain') %}
-    {{ provider.domain }} = {% if provider.available %}ps: with ps; {% endif %}[
+    {{ provider.domain }} = {% if provider.available %}ps: with ps;{% else %}ps:{% endif %} [
 {%- for requirement in provider.available | sort %}
       {{ requirement }}
 {%- endfor %}