diff --git a/pkgs/by-name/mo/monophony/package.nix b/pkgs/by-name/mo/monophony/package.nix new file mode 100644 index 000000000000..eecbbca3b3f2 --- /dev/null +++ b/pkgs/by-name/mo/monophony/package.nix @@ -0,0 +1,71 @@ +{ lib +, fetchFromGitLab +, python3Packages +, wrapGAppsHook4 +, gst_all_1 +, gobject-introspection +, yt-dlp +, libadwaita +, libsoup_3 +, glib-networking +}: +python3Packages.buildPythonApplication rec { + pname = "monophony"; + version = "2.3.1"; + format = "other"; + + sourceRoot = "source/source"; + src = fetchFromGitLab { + owner = "zehkira"; + repo = "monophony"; + rev = "v${version}"; + hash = "sha256-dpRTHsujaIwzgr+qY5LC9xtXz40g3akdpEiHuxiilZM="; + }; + + pythonPath = with python3Packages; [ + mpris-server + pygobject3 + ytmusicapi + ]; + + nativeBuildInputs = [ + python3Packages.nuitka + gobject-introspection + wrapGAppsHook4 + ]; + + buildInputs = + [ + libadwaita + # needed for gstreamer https + libsoup_3 + glib-networking + ] + ++ (with gst_all_1; [ + gst-plugins-base + gst-plugins-good + gstreamer + ]); + + installFlags = [ "prefix=$(out)" ]; + + preFixup = '' + buildPythonPath "$pythonPath" + gappsWrapperArgs+=( + --prefix PYTHONPATH : "$program_PYTHONPATH" + --prefix PATH : "${lib.makeBinPath [yt-dlp]}" + # needed for gstreamer https + --prefix LD_LIBRARY_PATH : "${libsoup_3.out}/lib" + ) + ''; + + meta = with lib; { + homepage = "https://gitlab.com/zehkira/monophony"; + description = "Linux app for streaming music from YouTube"; + longDescription = "Monophony is a free and open source Linux app for streaming music from YouTube. It has no ads and does not require an account."; + license = licenses.agpl3Plus; + mainProgram = "monophony"; + platforms = platforms.linux; + maintainers = with maintainers; [ quadradical ]; + }; +} diff --git a/pkgs/development/python-modules/mpris-server/default.nix b/pkgs/development/python-modules/mpris-server/default.nix new file mode 100644 index 000000000000..783fc6aab959 --- /dev/null +++ b/pkgs/development/python-modules/mpris-server/default.nix @@ -0,0 +1,41 @@ +{ lib +, buildPythonPackage +, fetchPypi +, emoji +, pydbus +, pygobject3 +, unidecode +, setuptools +}: +buildPythonPackage rec { + pname = "mpris-server"; + version = "0.4.2"; + pyproject = true; + + src = fetchPypi { + pname = "mpris_server"; + inherit version; + hash = "sha256-p3nM80fOMtRmeKvOXuX40Fu9xH8gPgYyneXbUS678fE="; + }; + + nativeBuildInputs = [ setuptools ]; + + propagatedBuildInputs = [ + emoji + pydbus + pygobject3 + unidecode + ]; + + pythonImportsCheck = [ "mpris_server" ]; + + # upstream has no tests + doCheck = false; + + meta = with lib; { + description = "Publish a MediaPlayer2 MPRIS device to D-Bus"; + homepage = "https://pypi.org/project/mpris-server/"; + license = licenses.agpl3Only; + maintainers = with maintainers; [ quadradical ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 2293e7c1643b..9aef5995c72f 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -7039,6 +7039,8 @@ self: super: with self; { mpmath = callPackage ../development/python-modules/mpmath { }; + mpris-server = callPackage ../development/python-modules/mpris-server { }; + mpv = callPackage ../development/python-modules/mpv { inherit (pkgs) mpv; };