mborsetti / webchanges

webchanges anonymously checks web content (including images) and commands for changes, delivering instant notifications and AI-powered summaries to your favorite platform.
https://pypi.org/project/webchanges/
Other
37 stars 6 forks source link
ai change-detection monitoring-tool notification web

.. role:: underline :class: underline .. role:: additions :class: additions .. role:: deletions :class: deletions

====================== webchanges |downloads|

webchanges checks web content including images, and notifies you via email (or one of many other supported services <https://webchanges.readthedocs.io/en/stable/introduction.html#reporters-list>__) if a change is detected. webchanges can also check the output of local commands. The notification includes a detail of what has changed ("diff"), with an optional summary generated by AI (BETA).

webchanges anonymously alerts you of web changes.

Requirements

webchanges requires |support|.

You should use the latest version of Python <https://www.python.org/downloads/>__ if possible, but older Python versions are supported for 3 years after being obsoleted by a new major release (3.x). For each major release, only the latest bug and security fix version (3.x.y) is supported.

For Generative AI summaries (BETA), you need a free API Key from Google Cloud AI Studio <https://aistudio.google.com/app/apikey> (see here <https://webchanges.readthedocs.io/en/stable/differs.html#ai-google>).

Installation

Install webchanges |pypi_version| |format| |status| |security| with:

.. code-block:: bash

pip install webchanges

Running in Docker

webchanges can be run in a Docker <https://www.docker.com/> container; please see here <https://github.com/yubiuser/webchanges-docker> for one such implementation.

Documentation |readthedocs|

The documentation is hosted on Read the Docs <https://webchanges.readthedocs.io/>__.

Quick Start

Initialize

. Run the following command to create the default config.yaml (configuration) and jobs.yaml (jobs) files and

open an editor to add your jobs <https://webchanges.readthedocs.io/en/stable/jobs.html>__:

.. code-block:: bash

  webchanges --edit

. Run the following command to change the default `configuration

https://webchanges.readthedocs.io/en/stable/configuration.html__, e.g. to receive change notifications ("reports https://webchanges.readthedocs.io/en/stable/reporters.html__") byemail https://webchanges.readthedocs.io/en/stable/reporters.html#smtp`__ and/or one of many other methods:

.. code-block:: bash

  webchanges --edit-config

Run

To check the sources in your jobs and report on (e.g. display or via email) any changes found from the previous execution, just run:

.. code-block:: bash

webchanges

webchanges does not include a scheduler. We recommend using a system scheduler to automatically run it periodically:

Code

|coveralls| |issues|

The code and issues tracker are hosted on GitHub <https://github.com/mborsetti/webchanges>__.

Contributing

We welcome any contribution no matter how small, both as pull requests or issue reports <https://github.com/mborsetti/webchanges/issues>__.

More information for code and documentation contributors is here <https://webchanges.readthedocs.io/en/stable/contributing.html>, and our wishlist is here <https://github.com/mborsetti/webchanges/blob/main/WISHLIST.md>.

License

|license|

Released under the MIT License <https://opensource.org/licenses/MIT> but redistributing modified source code from urlwatch 2.21 <https://github.com/thp/urlwatch/tree/346b25914b0418342ffe2fb0529bed702fddc01f> dated 30 July 2020 licensed under a BSD 3-Clause License <https://raw.githubusercontent.com/thp/urlwatch/346b25914b0418342ffe2fb0529bed702fddc01f/COPYING>. See the complete license here <https://github.com/mborsetti/webchanges/blob/main/LICENSE>.

Compatibility with and improvements from urlwatch

This project is based on code from urlwatch 2.21 <https://github.com/thp/urlwatch/tree/346b25914b0418342ffe2fb0529bed702fddc01f> dated 30 July 2020. You can easily upgrade to webchanges from the current version of urlwatch using the same job and configuration files (see here <https://webchanges.readthedocs.io/en/stable/migration.html>) and benefit from many improvements, including:

Example enhancements to HTML reporting:

.. image:: https://raw.githubusercontent.com/mborsetti/webchanges/main/docs/html_diff_filters_example_1.png :width: 504

|

.. image:: https://raw.githubusercontent.com/mborsetti/webchanges/main/docs/html_diff_filters_example_3.png :width: 504

.. |support| image:: https://img.shields.io/pypi/pyversions/webchanges.svg :target: https://www.python.org/downloads/ :alt: Supported Python versions .. |pypi_version| image:: https://img.shields.io/pypi/v/webchanges.svg?label= :target: https://pypi.org/project/webchanges/ :alt: PyPI version .. |format| image:: https://img.shields.io/pypi/format/webchanges.svg :target: https://pypi.org/project/webchanges/ :alt: Kit format .. |downloads| image:: https://static.pepy.tech/badge/webchanges :target: https://www.pepy.tech/project/webchanges :alt: PyPI downloads .. |license| image:: https://img.shields.io/pypi/l/webchanges.svg :target: https://pypi.org/project/webchanges/ :alt: License at https://pypi.org/project/webchanges/ .. |issues| image:: https://img.shields.io/github/issues-raw/mborsetti/webchanges :target: https://github.com/mborsetti/webchanges/issues :alt: Issues at https://github.com/mborsetti/webchanges/issues .. |readthedocs| image:: https://img.shields.io/readthedocs/webchanges/stable.svg?label= :target: https://webchanges.readthedocs.io/ :alt: Documentation status .. |CI| image:: https://github.com/mborsetti/webchanges/actions/workflows/ci-cd.yaml/badge.svg?event=push :target: https://github.com/mborsetti/webchanges/actions :alt: CI testing status .. |coveralls| image:: https://coveralls.io/repos/github/mborsetti/webchanges/badge.svg?branch=main :target: https://coveralls.io/github/mborsetti/webchanges?branch=main :alt: Code coverage by Coveralls .. |status| image:: https://img.shields.io/pypi/status/webchanges.svg :target: https://pypi.org/project/webchanges/ :alt: Package stability .. |security| image:: https://img.shields.io/badge/security-bandit-yellow.svg :target: https://github.com/PyCQA/bandit :alt: Security Status