Files
nix-config/modules/overlays/changedetection.io/default.nix
2021-08-17 09:30:32 -04:00

127 lines
3.6 KiB
Nix

{ lib, fetchFromGitHub, python3, substituteAll }:
let
py = python3.override {
packageOverrides = self: super: {
jsonpath-ng = super.buildPythonPackage rec {
pname = "jsonpath-ng";
doCheck = false;
propagatedBuildInputs = with py.pkgs; [ decorator ply six wtforms ];
version = "1.5.3";
src = super.fetchPypi {
inherit version pname;
sha256 = "sha256-onOxgqgsElbaq4ajE7k3BZJhtcX4xPo/w4uIKzRN1Wc=";
};
};
timeago = super.buildPythonPackage rec {
pname = "timeago";
version = "1.0.15";
src = super.fetchPypi {
inherit version pname;
sha256 = "sha256-z85CDYKJKvayQ50Pae6z6Ha77dq2Zww8iOv3Z2QHv0w=";
};
};
flask = super.buildPythonPackage rec {
pname = "Flask";
version = "1.1.4";
propagatedBuildInputs = with py.pkgs; [ click jinja2 itsdangerous werkzeug ];
src = super.fetchPypi {
inherit version pname;
sha256 = "sha256-D762GA04OpGG0NbtlU4AQq2fGODo3giLK0GdUmkn0ZY=";
};
};
click = super.buildPythonPackage rec {
pname = "click";
version = "7.1.2";
src = super.fetchPypi {
inherit version pname;
sha256 = "sha256-0rUlXHxjSbwb0eWeCM0SrLvWPOZJ8liHVXg6qU37axo=";
};
};
jinja2 = super.buildPythonPackage rec {
pname = "Jinja2";
version = "2.11.3";
propagatedBuildInputs = with py.pkgs; [ markupsafe ];
src = super.fetchPypi {
inherit version pname;
sha256 = "sha256-ptWEM94K6AA0fKsfowQ867q+i6qdKeZo8cdoy4ejM8Y=";
};
};
itsdangerous = super.buildPythonPackage rec {
pname = "itsdangerous";
version = "1.1.0";
propagatedBuildInputs = with py.pkgs; [ markupsafe ];
src = super.fetchPypi {
inherit version pname;
sha256 = "sha256-MhsDPQfypBNtPsdi6snxahDM1g9TwMka+QIXrOe6Hxk=";
};
};
werkzeug = super.buildPythonPackage rec {
pname = "Werkzeug";
version = "1.0.1";
doCheck = false;
propagatedBuildInputs = with py.pkgs; [ markupsafe ];
src = super.fetchPypi {
inherit version pname;
sha256 = "sha256-bICx5a02ZSkOo5MguR4b4eDV9gZSuWSjBwIW3oPS5Hw=";
};
};
inscriptis = super.buildPythonPackage rec {
pname = "inscriptis";
version = "1.2";
propagatedBuildInputs = with py.pkgs; [ lxml requests ];
src = super.fetchPypi {
inherit version pname;
sha256 = "sha256-B2lFW/YwzCVdR8lwV9VGEW9HRfIii8u48Sy0wK+XeWY=";
};
};
};
};
in
with py.pkgs;
buildPythonApplication rec {
pname = "changedetection.io";
version = "0.39";
src = fetchFromGitHub {
owner = "dgtlmoon";
repo = "changedetection.io";
rev = "a11b6daa2e24933d0a3b9548a02d57c96ed0c09e";
hash = "sha256-IdPlYa0lBI9xr+ywHuQ3OgNGvvKUIZf/wZ0ITbt2TyM=";
};
postPatch = ''
substituteInPlace requirements.txt \
--replace "chardet==2.3.0" "chardet" \
--replace "selenium ~= 3.141" "selenium"
'';
propagatedBuildInputs = with py.pkgs; [
apprise
beautifulsoup4
chardet
eventlet
feedgen
flask
flask_login
inscriptis
jsonpath-ng
pytest
pytest-flask
pytz
requests
selenium
timeago
urllib3
validators
];
meta = with lib; {
description =
"changedetection.io - The best and simplest self-hosted website change detection monitoring service";
homepage = "https://github.com/dgtlmoon/changedetection.io";
license = licenses.asl20;
platforms = platforms.unix;
};
}