WIP: WAITING FOR NIXPKS UPDATE
All checks were successful
ci/woodpecker/push/check Pipeline was successful

This commit is contained in:
Bruno BELANYI 2023-12-24 22:58:18 +01:00
parent f04829038a
commit efb0a1fae6
5 changed files with 241 additions and 0 deletions

View file

@ -0,0 +1,18 @@
diff --git a/src/pyload/core/__init__.py b/src/pyload/core/__init__.py
index 4324fc700..5d915a85e 100644
--- a/src/pyload/core/__init__.py
+++ b/src/pyload/core/__init__.py
@@ -128,6 +128,13 @@ class Core:
else:
self._debug = max(0, int(debug))
+ # Allow setting any option declaratively, for the NixOS module
+ for env, value in os.environ.items():
+ if not env.startswith("PYLOAD__"):
+ continue
+ section, opt = env.removeprefix("PYLOAD__").lower().split("__")
+ self.config.set(section, opt, value)
+
# If no argument set, read storage dir from config file,
# otherwise save setting to config dir
if storagedir is None:

View file

@ -0,0 +1,15 @@
diff --git a/src/pyload/core/__init__.py b/src/pyload/core/__init__.py
index 4324fc700..f7fcd66ec 100644
--- a/src/pyload/core/__init__.py
+++ b/src/pyload/core/__init__.py
@@ -46,8 +46,8 @@ class Exit(Exception):
# improve external scripts
class Core:
LOCALE_DOMAIN = APPID
- DEFAULT_USERNAME = APPID
- DEFAULT_PASSWORD = APPID
+ DEFAULT_USERNAME = os.getenv("PYLOAD_DEFAULT_USERNAME", APPID)
+ DEFAULT_PASSWORD = os.getenv("PYLOAD_DEFAULT_PASSWORD", APPID)
DEFAULT_DATADIR = os.path.join(
os.getenv("APPDATA") or USERHOMEDIR, "pyLoad" if os.name == "nt" else ".pyload"
)

View file

@ -0,0 +1,4 @@
self: _super:
{
pyload-ng = self.callPackage ./package.nix { };
}

View file

@ -0,0 +1,60 @@
{ lib, fetchPypi, python3 }:
python3.pkgs.buildPythonApplication rec {
version = "0.5.0b3.dev75";
pname = "pyload-ng";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-1lPIKkZESonDaVCnac0iUu/gCqXVDBhNZrk5S0eC6F0=";
};
patches = [
# Makes it possible to change the default username/password in the module
./declarative-default-user.patch
./declarative-config.patch
];
postPatch = ''
# relax version bounds
sed -i 's/\([A-z0-9]*\)~=.*$/\1/' setup.cfg
# not sure what Flask-Session2 is but flask-session works just fine
sed -i '/Flask-Session2/d' setup.cfg
'';
propagatedBuildInputs = with python3.pkgs; [
bitmath
certifi
cheroot
cryptography
filetype
flask
flask-babel
flask-caching
flask-compress
flask-session
flask-themes2
js2py
pycurl
semver
setuptools
];
passthru.optional-dependencies = {
plugins = with python3.pkgs; [
beautifulsoup4 # for some plugins
colorlog # colorful console logging
pillow # for some CAPTCHA plugin
send2trash # send some files to trash instead of deleting them
slixmpp # XMPP plugin
];
};
meta = with lib; {
description = "Free and open-source download manager with support for 1-click-hosting sites";
homepage = "https://github.com/pyload/pyload";
license = licenses.agpl3Plus;
maintainers = with maintainers; [ ruby0b ];
};
}