Installation via pip (#186)
Builder for https://pypi.org/project/changedetection.io/pull/184/head 0.39
@ -0,0 +1,4 @@
|
|||||||
|
recursive-include changedetectionio/templates *
|
||||||
|
recursive-include changedetectionio/static *
|
||||||
|
include changedetection.py
|
||||||
|
global-exclude *.pyc
|
@ -0,0 +1,71 @@
|
|||||||
|
# changedetection.io
|
||||||
|
![changedetection.io](https://github.com/dgtlmoon/changedetection.io/actions/workflows/test-only.yml/badge.svg?branch=master)
|
||||||
|
<a href="https://hub.docker.com/r/dgtlmoon/changedetection.io" target="_blank" title="Change detection docker hub">
|
||||||
|
<img src="https://img.shields.io/docker/pulls/dgtlmoon/changedetection.io" alt="Docker Pulls"/>
|
||||||
|
</a>
|
||||||
|
<a href="https://hub.docker.com/r/dgtlmoon/changedetection.io" target="_blank" title="Change detection docker hub">
|
||||||
|
<img src="https://img.shields.io/github/v/release/dgtlmoon/changedetection.io" alt="Change detection latest tag version"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
## Self-hosted open source change monitoring of web pages.
|
||||||
|
|
||||||
|
_Know when web pages change! Stay ontop of new information!_
|
||||||
|
|
||||||
|
Live your data-life *pro-actively* instead of *re-actively*, do not rely on manipulative social media for consuming important information.
|
||||||
|
|
||||||
|
|
||||||
|
<img src="https://raw.githubusercontent.com/dgtlmoon/changedetection.io/master/screenshot.png" style="max-width:100%;" alt="Self-hosted web page change monitoring" title="Self-hosted web page change monitoring" />
|
||||||
|
|
||||||
|
#### Example use cases
|
||||||
|
|
||||||
|
Know when ...
|
||||||
|
|
||||||
|
- Government department updates (changes are often only on their websites)
|
||||||
|
- Local government news (changes are often only on their websites)
|
||||||
|
- New software releases, security advisories when you're not on their mailing list.
|
||||||
|
- Festivals with changes
|
||||||
|
- Realestate listing changes
|
||||||
|
- COVID related news from government websites
|
||||||
|
- Detect and monitor changes in JSON API responses
|
||||||
|
- API monitoring and alerting
|
||||||
|
|
||||||
|
**Get monitoring now!**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ pip3 install changedetection.io
|
||||||
|
```
|
||||||
|
|
||||||
|
Specify a target for the *datastore path* with `-d` (required) and a *listening port* with `-p` (defaults to `5000`)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ changedetection.io -d /path/to/empty/data/dir -p 5000
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
Then visit http://127.0.0.1:5000 , You should now be able to access the UI.
|
||||||
|
|
||||||
|
### Features
|
||||||
|
- Website monitoring
|
||||||
|
- Change detection of content and analyses
|
||||||
|
- Filters on change (Select by CSS or JSON)
|
||||||
|
- Triggers (Wait for text, wait for regex)
|
||||||
|
- Notification support
|
||||||
|
- JSON API Monitoring
|
||||||
|
- Parse JSON embedded in HTML
|
||||||
|
- (Reverse) Proxy support
|
||||||
|
- Javascript support via WebDriver
|
||||||
|
- RaspberriPi (arm v6/v7/64 support)
|
||||||
|
|
||||||
|
See https://github.com/dgtlmoon/changedetection.io for more information.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Support us
|
||||||
|
|
||||||
|
Do you use changedetection.io to make money? does it save you time or money? Does it make your life easier? less stressful? Remember, we write this software when we should be doing actual paid work, we have to buy food and pay rent just like you.
|
||||||
|
|
||||||
|
Please support us, even small amounts help a LOT.
|
||||||
|
|
||||||
|
BTC `1PLFN327GyUarpJd7nVe7Reqg9qHx5frNn`
|
||||||
|
|
||||||
|
<img src="https://raw.githubusercontent.com/dgtlmoon/changedetection.io/master/btc-support.png" style="max-width:50%;" alt="Support us!" />
|
@ -1,5 +1,5 @@
|
|||||||
import time
|
import time
|
||||||
from backend import content_fetcher
|
from changedetectionio import content_fetcher
|
||||||
import hashlib
|
import hashlib
|
||||||
from inscriptis import get_text
|
from inscriptis import get_text
|
||||||
import urllib3
|
import urllib3
|
Before Width: | Height: | Size: 569 B After Width: | Height: | Size: 569 B |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 43 KiB |
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
@ -1,8 +1,8 @@
|
|||||||
#!/usr/bin/python3
|
#!/usr/bin/python3
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
from backend import changedetection_app
|
from changedetectionio import changedetection_app
|
||||||
from backend import store
|
from changedetectionio import store
|
||||||
import os
|
import os
|
||||||
|
|
||||||
# https://github.com/pallets/flask/blob/1.1.2/examples/tutorial/tests/test_auth.py
|
# https://github.com/pallets/flask/blob/1.1.2/examples/tutorial/tests/test_auth.py
|
@ -0,0 +1,2 @@
|
|||||||
|
pytest ~=6.2
|
||||||
|
pytest-flask ~=1.2
|
@ -0,0 +1,72 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
import codecs
|
||||||
|
import os.path
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
|
||||||
|
from setuptools import setup, find_packages
|
||||||
|
|
||||||
|
here = os.path.abspath(os.path.dirname(__file__))
|
||||||
|
|
||||||
|
|
||||||
|
def read(*parts):
|
||||||
|
return codecs.open(os.path.join(here, *parts), 'r').read()
|
||||||
|
|
||||||
|
|
||||||
|
def find_version(*file_paths):
|
||||||
|
version_file = read(*file_paths)
|
||||||
|
version_match = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]",
|
||||||
|
version_file, re.M)
|
||||||
|
if version_match:
|
||||||
|
return version_match.group(1)
|
||||||
|
raise RuntimeError("Unable to find version string.")
|
||||||
|
|
||||||
|
|
||||||
|
install_requires = open('requirements.txt').readlines()
|
||||||
|
|
||||||
|
setup(
|
||||||
|
name='changedetection.io',
|
||||||
|
version=find_version("changedetectionio", "__init__.py"),
|
||||||
|
description='Website change detection and monitoring service',
|
||||||
|
long_description=open('README-pip.md').read(),
|
||||||
|
long_description_content_type='text/markdown',
|
||||||
|
keywords='website change monitor for changes notification change detection '
|
||||||
|
'alerts tracking website tracker change alert website and monitoring',
|
||||||
|
zip_safe=False,
|
||||||
|
entry_points={"console_scripts": ["changedetection.io=changedetection:main"]},
|
||||||
|
author='dgtlmoon',
|
||||||
|
url='https://changedetection.io',
|
||||||
|
scripts=['changedetection.py'],
|
||||||
|
packages=['changedetectionio'],
|
||||||
|
include_package_data=True,
|
||||||
|
install_requires=install_requires,
|
||||||
|
license="Apache License 2.0",
|
||||||
|
python_requires=">= 3.6",
|
||||||
|
classifiers=['Intended Audience :: Customer Service',
|
||||||
|
'Intended Audience :: Developers',
|
||||||
|
'Intended Audience :: Education',
|
||||||
|
'Intended Audience :: End Users/Desktop',
|
||||||
|
'Intended Audience :: Financial and Insurance Industry',
|
||||||
|
'Intended Audience :: Healthcare Industry',
|
||||||
|
'Intended Audience :: Information Technology',
|
||||||
|
'Intended Audience :: Legal Industry',
|
||||||
|
'Intended Audience :: Manufacturing',
|
||||||
|
'Intended Audience :: Other Audience',
|
||||||
|
'Intended Audience :: Religion',
|
||||||
|
'Intended Audience :: Science/Research',
|
||||||
|
'Intended Audience :: System Administrators',
|
||||||
|
'Intended Audience :: Telecommunications Industry',
|
||||||
|
'Topic :: Education',
|
||||||
|
'Topic :: Internet',
|
||||||
|
'Topic :: Internet :: WWW/HTTP :: Indexing/Search',
|
||||||
|
'Topic :: Internet :: WWW/HTTP :: Site Management',
|
||||||
|
'Topic :: Internet :: WWW/HTTP :: Site Management :: Link Checking',
|
||||||
|
'Topic :: Internet :: WWW/HTTP :: Browsers',
|
||||||
|
'Topic :: Internet :: WWW/HTTP :: Dynamic Content',
|
||||||
|
'Topic :: Office/Business',
|
||||||
|
'Topic :: Other/Nonlisted Topic',
|
||||||
|
'Topic :: Scientific/Engineering :: Information Analysis',
|
||||||
|
'Topic :: Text Processing :: Markup :: HTML',
|
||||||
|
'Topic :: Utilities'
|
||||||
|
],
|
||||||
|
)
|