Webchanges

Latest version: v3.26.0

Safety actively analyzes 688931 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 7 of 9

3.6.1

Not secure
====================
2021-05-28

Reminder
--------
Older Python versions are supported for 3 years after being obsoleted by a new major release. As Python 3.7 was
released on 27 June 2018, the codebase will be streamlined by removing support for Python 3.6 on or after 27 June 2021.

Added
-----
* Clearer results messages for ``--delete-snapshot`` command line argument

Fixed
-----
* First run would fail when creating new ``config.yaml`` file. Thanks to `David <https://github.com/notDavid>`__ in
issue `10 <https://github.com/mborsetti/webchanges/issues/10>`__.
* Use same run duration precision in all reports

3.6

====================
2021-05-14

Added
-----
* Run a subset of jobs by adding their index number(s) as command line arguments. For example, run ``webchanges 2 3`` to
only run jobs 2 and 3 of your jobs list. Run ``webchanges --list`` to find the job numbers. Suggested by `Dan Brown
<https://github.com/dbro>`__ upstream `here <https://github.com/thp/urlwatch/pull/641>`__. API is experimental and
may change in the near future.
* Support for ``ftp://`` URLs to download a file from an ftp server

Fixed
-----
* Sequential job numbering (skip numbering empty jobs). Suggested by `Markus Weimar
<https://github.com/Markus00000>`__ in issue `#9 <https://github.com/mborsetti/webchanges/issues/9>`__.
* Readthedocs.io failed to build autodoc API documentation
* Error processing jobs with URL/URIs starting with ``file:///``

Internals
---------
* Improvements of errors and DeprecationWarnings during the processing of job directives and their inclusion in tests
* Additional testing adding 3 percentage points of coverage to 75%
* Temporary database being written during run is now in memory-first (handled by SQLite3) (speed improvement)
* Updated algorithm that assigns a job to a subclass based on directives found
* Migrated to using the `pathlib <https://docs.python.org/3/library/pathlib.html>`__ standard library

3.5.1

Not secure
====================
2021-05-06

Fixed
-----
* Crash in ``RuntimeError: dictionary changed size during iteration`` with custom headers; updated testing scenarios
* Autodoc not building API documentation

3.5

====================
2021-05-04

Added
-----
* New sub-directives to the ``strip`` filter:

* ``chars``: Set of characters to be removed (default: whitespace)
* ``side``: One-sided removal, either ``left`` (leading characters) or ``right`` (trailing characters)
* ``splitlines``: Whether to apply the filter on each line of text (true/false) (default: ``false``, i.e. apply to
the entire data)
* ``--delete-snapshot`` command line argument: Removes the latest saved snapshot of a job from the database; useful
if a change in a website (e.g. layout) requires modifying filters as invalid snapshot can be deleted and
**webchanges** rerun to create a truthful diff
* ``--log-level`` command line argument to control the amount of logging displayed by the ``-v`` argument
* ``ignore_connection_errors``, ``ignore_timeout_errors``, ``ignore_too_many_redirects`` and ``ignore_http_error_codes``
directives now work with ``url`` jobs having ``use_browser: true`` (i.e. using *Pyppeteer* when running in Python
3.7 or higher

Changed
-------
* Diff-filter ``additions_only`` will no longer report additions that consist exclusively of added empty lines
(issue `6 <https://github.com/mborsetti/webchanges/issues/6>`__, contributed by `Fedora7
<https://github.com/Fedora7>`__)
* Diff-filter ``deletions_only`` will no longer report deletions that consist exclusively of deleted empty lines
* The job's index number is included in error messages for clarity
* ``--smtp-password`` now checks that the credentials work with the SMTP server (i.e. logs in)

Fixed
-----
* First run after install was not creating new files correctly (inherited from *urlwatch*); now **webchanges** creates
the default directory, config and/or jobs files if not found when running (issue `8
<https://github.com/mborsetti/webchanges/issues/8>`__, contributed by `rtfgvb01 <https://github.com/rtfgvb01>`__)
* ``test-diff`` command line argument was showing historical diffs in wrong order; now showing most recent first
* An error is now raised when a ``url`` job with ``use_browser: true`` returns no data due to an HTTP error (e.g.
proxy_authentication_required)
* Jobs were included in email subject line even if there was nothing to report after filtering with ``additions_only``
or ``deletions_only``
* ``hexdump`` filter now correctly formats lines with less than 16 bytes
* ``sha1sum`` and ``hexdump`` filters now accept data that is bytes (not just text)
* An error is now raised when a legacy ``minidb`` database is found but cannot be converted because the ``minidb``
package is not installed
* Removed extra unneeded file from being installed
* Wrong ETag was being captured when a URL redirection took place

Internals
---------
* ``url`` jobs using ``use_browser: true`` (i.e. using *Pyppeteer*) now capture and save the ETag
* Snapshot timestamps are more accurate (reflect when the job was launched)
* Each job now has a run-specific unique index_number, which is assigned sequentially when loading jobs, to use in
errors and logs for clarity
* Improvements in the function chunking text into numbered lines, which used by certain reporters (e.g. Telegram)
* More tests, increasing code coverage by an additional 7 percentage points to 72% (although keyring testing had to be
dropped due to issues with GitHub Actions)
* Additional cleanup of code and documentation

Known issues
------------
* ``url`` jobs with ``use_browser: true`` (i.e. using *Pyppeteer*) will at times display the below error message in
stdout (terminal console). This does not affect **webchanges** as all data is downloaded, and hopefully it will be
fixed in the future (see `Pyppeteer issue 225 <https://github.com/pyppeteer/pyppeteer/issues/225>`__):

``future: <Future finished exception=NetworkError('Protocol error Target.sendMessageToTarget: Target closed.')>``
``pyppeteer.errors.NetworkError: Protocol error Target.sendMessageToTarget: Target closed.``
``Future exception was never retrieved``

3.4.1

Not secure
====================
2021-04-17

Internals
---------
* Temporary database (``sqlite3`` database engine) is copied to permanent one exclusively using SQL code instead of
partially using a Python loop

Known issues
------------
* ``url`` jobs with ``use_browser: true`` (i.e. using *Pyppeteer*) will at times display the below error message in
stdout (terminal console). This does not affect **webchanges** as all data is downloaded, and hopefully it will be
fixed in the future (see `Pyppeteer issue 225 <https://github.com/pyppeteer/pyppeteer/issues/225>`__):

``future: <Future finished exception=NetworkError('Protocol error Target.sendMessageToTarget: Target closed.')>``
``pyppeteer.errors.NetworkError: Protocol error Target.sendMessageToTarget: Target closed.``
``Future exception was never retrieved``

3.4

====================
2021-04-12

⚠ Breaking Changes
------------------
* Fixed the database from growing unbounded to infinity. Fix only works when running in Python 3.7 or higher and using
the new, default, ``sqlite3`` database engine. In this scenario only the latest 4 snapshots are kept, and older ones
are purged after every run; the number is selectable with the new ``--max-snapshots`` command line argument. To keep
the existing grow-to-infinity behavior, run **webchanges** with ``--max-snapshots 0``.

Added
-----
* ``--max-snapshots`` command line argument sets the number of snapshots to keep stored in the database; defaults to
4. If set to 0 an unlimited number of snapshots will be kept. Only applies to Python 3.7 or higher and only works if
the default ``sqlite3`` database is being used.
* ``no_redirects`` job directive (for ``url`` jobs) to disable GET/OPTIONS/POST/PUT/PATCH/DELETE/HEAD redirection
(true/false). Suggested by `snowman <https://github.com/snowman>`__ upstream `here
<https://github.com/thp/urlwatch/issues/635>`__.
* Reporter ``prowl`` for the `Prowl <https://prowlapp.com>`__ push notification client for iOS (only). Contributed
by `nitz <https://github.com/nitz>`__ upstream in PR `633 <https://github.com/thp/urlwatch/pull/633>`__.
* Filter ``jq`` to parse, transform, and extract ASCII JSON data. Contributed by `robgmills
<https://github.com/robgmills>`__ upstream in PR `626 <https://github.com/thp/urlwatch/pull/626>`__.
* Filter ``pretty-xml`` as an alternative to ``format-xml`` (backwards-compatible with *urlwatch* 2.28)
* Alert user when the jobs file contains unrecognized directives (e.g. typo)

Changed
--------
* Job name is truncated to 60 characters when derived from the title of a page (no directive ``name`` is found in a
``url`` job)
* ``--test-diff`` command line argument displays all saved snapshots (no longer limited to 10)

Fixed
-----
* Diff (change) data is no longer lost if **webchanges** is interrupted mid-execution or encounters an error in
reporting: the permanent database is updated only at the very end (after reports are dispatched)
* ``use_browser: false`` was not being interpreted correctly
* Jobs file (e.g. ``jobs.yaml``) is now loaded only once per run

Internals
---------
* Database ``sqlite3`` engine now saves new snapshots to a temporary database, which is copied over to the permanent one
at execution end (i.e. database.close())
* Upgraded SMTP email message internals to use Python's `email.message.EmailMessage
<https://docs.python.org/3/library/email.message.html#email.message.EmailMessage>`__ instead of ``email.mime``
(obsolete)
* Pre-commit documentation linting using ``doc8``
* Added logging to ``sqlite3`` database engine
* Additional testing increasing overall code coverage by an additional 4 percentage points to 65%
* Renamed legacy module browser.py to jobs_browser.py for clarity
* Renamed class JobsYaml to YamlJobsStorage for consistency and clarity

Known issues
------------
* ``url`` jobs with ``use_browser: true`` (i.e. using *Pyppeteer*) will at times display the below error message in
stdout (terminal console). This does not affect **webchanges** as all data is downloaded, and hopefully it will be
fixed in the future (see `Pyppeteer issue 225 <https://github.com/pyppeteer/pyppeteer/issues/225>`__):

``future: <Future finished exception=NetworkError('Protocol error Target.sendMessageToTarget: Target closed.')>``
``pyppeteer.errors.NetworkError: Protocol error Target.sendMessageToTarget: Target closed.``
``Future exception was never retrieved``

Page 7 of 9

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.