Unverified Commit 4bdb997e authored by Pavel Sobolev's avatar Pavel Sobolev
Browse files

streamrip: init at 2.0.5

parent e2e25d84
Loading
Loading
Loading
Loading
+77 −0
Original line number Diff line number Diff line
{ lib
, python3Packages
, fetchFromGitHub

, ffmpeg
}:

python3Packages.buildPythonApplication rec {
  pname = "streamrip";
  version = "2.0.5";
  pyproject = true;

  src = fetchFromGitHub {
    owner = "nathom";
    repo = "streamrip";
    rev = "v${version}";
    hash = "sha256-KwMt89lOPGt6nX7ywliG/iAJ1WnG0CRPwhAVlPR85q0=";
  };

  patches = [
    ./patches/ensure-the-default-config-file-is-writable.patch
  ];

  nativeBuildInputs = with python3Packages; [
    poetry-core
  ];

  propagatedBuildInputs = with python3Packages; [
    aiodns
    aiofiles
    aiohttp
    aiolimiter
    appdirs
    cleo
    click-help-colors
    deezer-py
    m3u8
    mutagen
    pathvalidate
    pillow
    pycryptodomex
    pytest-asyncio
    pytest-mock
    rich
    simple-term-menu
    tomlkit
    tqdm
  ];

  nativeCheckInputs = with python3Packages; [
    pytestCheckHook
  ];

  prePatch = ''
    sed -i 's#aiofiles = ".*"#aiofiles = "*"#' pyproject.toml
    sed -i 's#deezer-py = ".*"#deezer-py = "*"#' pyproject.toml
    sed -i 's#m3u8 = ".*"#m3u8 = "*"#' pyproject.toml
    sed -i 's#pathvalidate = ".*"#pathvalidate = "*"#' pyproject.toml
    sed -i 's#Pillow = ".*"#Pillow = "*"#' pyproject.toml
    sed -i 's#pytest-asyncio = ".*"#pytest-asyncio = "*"#' pyproject.toml
    sed -i 's#tomlkit = ".*"#tomlkit = "*"#' pyproject.toml

    sed -i 's#"ffmpeg"#"${lib.getBin ffmpeg}/bin/ffmpeg"#g' streamrip/client/downloadable.py
  '';

  preCheck = ''
    export HOME=$(mktemp -d)
  '';

  meta = with lib; {
    description = "A scriptable music downloader for Qobuz, Tidal, SoundCloud, and Deezer";
    homepage = "https://github.com/nathom/streamrip";
    license = licenses.gpl3Only;
    maintainers = with maintainers; [ paveloom ];
    mainProgram = "rip";
  };
}
+26 −0
Original line number Diff line number Diff line
From 18efb9b5c8e562b169425f6ba79977e52e8b91b9 Mon Sep 17 00:00:00 2001
From: Pavel Sobolev <paveloomm@gmail.com>
Date: Sat, 13 Jan 2024 12:49:45 +0000
Subject: [PATCH] Ensure the default config file is writable.

---
 streamrip/config.py | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/streamrip/config.py b/streamrip/config.py
index 7ee2f57..88a5fef 100644
--- a/streamrip/config.py
+++ b/streamrip/config.py
@@ -378,6 +378,9 @@ def set_user_defaults(path: str, /):
     """Update the TOML file at the path with user-specific default values."""
     shutil.copy(BLANK_CONFIG_PATH, path)

+    # Ensure the default config file is writable
+    os.chmod(path, 0o644)
+
     with open(path) as f:
         toml = parse(f.read())
     toml["downloads"]["folder"] = DEFAULT_DOWNLOADS_FOLDER  # type: ignore
--
2.42.0