Added
- Added 'wait_until' option to browser jobs to configure how long
the headless browser will wait for pages to load.
- Jobs now have an optional `treat_new_as_changed` (default `false`)
key that can be set, and will treat newly-found pages as changed,
and display a diff from the empty string (useful for `diff_tool`
or `diff_filter` with side effects)
- New reporters: `discord`, `mattermost`
- New key `user_visible_url` for URL jobs that can be used to show
a different URL in reports (useful if the watched URL is a REST API
endpoint, but the report should link to the corresponding web page)
- The Markdown reporter now supports limiting the report length via the
`max_length` parameter of the `submit` method. The length limiting logic is
smart in the sense that it will try trimming the details first, followed by
omitting them completely, followed by omitting the summary. If a part of the
report is omitted, a note about this is added to the report. (PR572, by
Denis Kasak)
Changed
- Diff output is now generated more uniformly, independent of whether
the input data has a trailing newline or not; if this behavior is not
intended, use an external `diff_tool` (PR550, by Adam Goldsmith)
- The `--test-diff-filter` output now properly reports timestamps from
the history entry instead of the current date and time (Fixes 573)
- Unique GUIDs for jobs are now enforced at load time, append "1",
"2", ... to the URLs to make them unique if you have multiple
different jobs that share the same request URL (Fixes 586)
- When a config, urls file or hooks file does not exist and should be
edited or inited, its parent folders will be created (previously
only the urlwatch configuration folder was created; Fixes 594)
- Auto-matched filters now always get `None` supplied as subfilter;
any custom filters must accept a `subfilter` parameter after the
existing `data` parameter
- Drop support for Python 3.5
Fixed
- Make imports thread-safe: This might increase startup times a bit,
as dependencies are imported on bootup instead of when first used.
Importing in Python is not (yet) thread-safe, so we cannot import
new modules from the worker threads reliably (Fixes 559, 601)
- The Matrix reporter was improved in several ways (PR572, by Denis Kasak):
- The maximum length of the report was increase from 4096 to 16384.
- The report length limiting is now implemented via the new length limiting
functionality of the Markdown reporter. Previously, the report was simply
trimmed at the end which could break the diff blocks and make them render
incorrectly.
- The diff code blocks are now tagged as diffs which will allow the diffs to
be syntax highlighted as such. This doesn't yet work in Element, pending on
the resolution of trentm/python-markdown2370.