Merge pull request #330634 from r-ryantm/auto-update/circumflex
[NixPkgs.git] / pkgs / servers / web-apps / changedetection-io / default.nix
blob55d27b196362c45858e23584c157683071c0843c
1 { lib
2 , fetchFromGitHub
3 , python3
4 }:
6 python3.pkgs.buildPythonApplication rec {
7   pname = "changedetection-io";
8   version = "0.45.24";
9   format = "setuptools";
11   src = fetchFromGitHub {
12     owner = "dgtlmoon";
13     repo = "changedetection.io";
14     rev = "refs/tags/${version}";
15     hash = "sha256-VltrcTbX95agV9JGV2KYGeZ6iUlgzrOsjShsUpiGfes=";
16   };
18   postPatch = ''
19     substituteInPlace requirements.txt \
20       --replace "apprise~=1.8.0" "apprise" \
21       --replace "cryptography~=3.4" "cryptography" \
22       --replace "dnspython==2.6.1" "dnspython" \
23       --replace "pytest ~=7.2" "" \
24       --replace "pytest-flask ~=1.2" "" \
25       --replace "selenium~=4.14.0" "selenium" \
26       --replace "werkzeug~=3.0" "werkzeug"
27   '';
29   propagatedBuildInputs = with python3.pkgs; [
30     apprise
31     beautifulsoup4
32     brotli
33     chardet
34     cryptography
35     dnspython
36     eventlet
37     feedgen
38     flask
39     flask-compress
40     flask-cors
41     flask-expects-json
42     flask-login
43     flask-paginate
44     flask-restful
45     flask-wtf
46     greenlet
47     inscriptis
48     jinja2
49     jinja2-time
50     jsonpath-ng
51     jq
52     loguru
53     lxml
54     paho-mqtt
55     playwright
56     pyee
57     pyppeteer
58     pytz
59     requests
60     selenium
61     setuptools
62     timeago
63     urllib3
64     validators
65     werkzeug
66     wtforms
67   ] ++ requests.optional-dependencies.socks;
69   # tests can currently not be run in one pytest invocation and without docker
70   doCheck = false;
72   nativeCheckInputs = with python3.pkgs; [
73     pytest-flask
74     pytestCheckHook
75   ];
77   meta = with lib; {
78     description = "Self-hosted free open source website change detection tracking, monitoring and notification service";
79     homepage = "https://github.com/dgtlmoon/changedetection.io";
80     changelog = "https://github.com/dgtlmoon/changedetection.io/releases/tag/${version}";
81     license = licenses.asl20;
82     maintainers = with maintainers; [ mikaelfangel ];
83     mainProgram = "changedetection.io";
84   };