diff --git a/derivations/cyberdrop-dl/default.nix b/derivations/cyberdrop-dl/default.nix index 0b545e88..d3b150b4 100644 --- a/derivations/cyberdrop-dl/default.nix +++ b/derivations/cyberdrop-dl/default.nix @@ -1,8 +1,60 @@ -{ lib, pkgs }: +{ stdenv, lib, pkgs }: let inherit (pkgs.python310Packages) buildPythonPackage buildPythonApplication fetchPypi; + # Too old in nixpkgs + my-aiofiles = buildPythonPackage rec { + version = "22.1.0"; + pname = "aiofiles"; + + src = fetchPypi { + inherit version pname; + sha256 = "9107f1ca0b2a5553987a94a3c9959fe5b491fdf731389aa5b7b1bd0733e32de6"; + }; + + propagatedBuildInputs = with pkgs.python310Packages; [ ]; + doCheck = false; + }; + + # Too old in nixpkgs + my-aiohttp = buildPythonPackage rec { + version = "3.8.3"; + pname = "aiohttp"; + + src = fetchPypi { + inherit version pname; + sha256 = "3828fb41b7203176b82fe5d699e0d845435f2374750a44b480ea6b930f6be269"; + }; + + propagatedBuildInputs = with pkgs.python310Packages; [ + aiosignal + async-timeout + asynctest + attrs + charset-normalizer + frozenlist + multidict + typing-extensions + yarl + ]; + doCheck = false; + }; + + # Too old in nixpkgs + my-certifi = buildPythonPackage rec { + version = "2022.9.24"; + pname = "certifi"; + + src = fetchPypi { + inherit version pname; + sha256 = "0d9c601124e5a6ba9712dbc60d9c53c21e34f5f641fe83002317394311bdce14"; + }; + + propagatedBuildInputs = with pkgs.python310Packages; [ ]; + doCheck = false; + }; + # This package is not in nixpkgs gofile-client = buildPythonPackage rec { version = "1.0.1"; @@ -17,31 +69,85 @@ let doCheck = false; }; + # This package is not in nixpkgs + myjdapi = buildPythonPackage rec { + version = "1.1.6"; + pname = "myjdapi"; + + src = fetchPypi { + inherit version pname; + sha256 = "252a9c6eee001d67bb000ceb8fdf99729c06cf46ff18a00fc89468672388de1e"; + }; + + propagatedBuildInputs = with pkgs.python310Packages; [ requests pycryptodome ]; + doCheck = false; + }; + + # TODO: When new version is in nixpkgs update this derivation + # Too old in nixpkgs + # my-setuptools = buildPythonPackage rec { + # version = "65.5.0"; + # pname = "setuptools"; + + # src = fetchPypi { + # inherit version pname; + # sha256 = "512e5536220e38146176efb833d4a62aa726b7bbff82cfbc8ba9eaa3996e0b17"; + # }; + + # # From https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/development/python-modules/setuptools/default.nix#L75 + # # nativeBuildInputs = [ + # # bootstrapped-pip + # # (pipInstallHook.override{pip=null;}) + # # (setuptoolsBuildHook.override{setuptools=null; wheel=null;}) + # # ]; + + # # preBuild = lib.optionalString (!stdenv.hostPlatform.isWindows) '' + # # export SETUPTOOLS_INSTALL_WINDOWS_SPECIFIC_FILES=0 + # # ''; + + # pipInstallFlags = [ "--ignore-installed" ]; + + # # Adds setuptools to nativeBuildInputs causing infinite recursion. + # # catchConflicts = false; + + # propagatedBuildInputs = with pkgs.python310Packages; [ ]; + # doCheck = false; + # }; + + in buildPythonApplication rec { - version = "2.30.7"; + version = "3.4.14"; pname = "cyberdrop-dl"; src = fetchPypi { inherit version pname; - sha256 = "ee6804e8f11aa4e3868996c39af95e18e69c9708f81ea04872f0cde148af1ba6"; + sha256 = "bdf1e21452571a74bf4448d32b158b8600381f210696dd60d16fc83213793559"; }; propagatedBuildInputs = with pkgs.python310Packages; [ - aiofiles - aiohttp + my-aiofiles + my-aiohttp beautifulsoup4 - certifi + my-certifi colorama gofile-client + myjdapi + pyyaml + # Needed in the latest versions, don't know how to make it work right now... + # my-setuptools tqdm yarl ]; doCheck = false; + # Otherwise duplicates are found in closure (certifi), don't know why this happens + # TODO: Investigate duplicates + catchConflicts = false; + meta = with lib; { homepage = "https://github.com/Jules-WinnfieldX/CyberDropDownloader"; description = "Bulk downloader for multiple file hosts"; license = licenses.gpl3Only; }; -} \ No newline at end of file +}