Deprecated Features

As features are deprecated and cleaned up, they are documented here with steps to update your configuration for replacements.

networkidle0 and networkidle2 for wait_until in browser jobs (since 2.28)

Since version 2.28, execution of browser jobs uses Playwright instead of pyppetteer.

The previously-supported wait_until values of networkidle0 and networkidle2 are not supported anymore. Playwright supports the values load, domcontentloaded, networkidle (discouraged) or commit instead.

Existing settings of networkidle0 and networkidle2 will be mapped to networkidle, and a warning will be issued. To silence the warning and continue to use networkidle, specify wait_until: networkidle explicitly.

Filters without subfilters (since 2.22)

In older urlwatch versions, it was possible to write custom filters that do not take a subfilter as argument.

If you have written your own filter code like this:

class CustomFilter(filters.FilterBase):
    """My old custom filter"""

    __kind__ = 'foo'

    def filter(self, data):
        ...

You have to update your filter to take an optional subfilter argument (if the filter configuration does not have a subfilter defined, the value of subfilter will be None):

class CustomFilter(filters.FilterBase):
    """My new custom filter"""

    __kind__ = 'foo'

    def filter(self, data, subfilter):
        ...

string-based filter definitions (since 2.19)

With urlwatch 2.19, string-based filter lists are deprecated, because they are not as flexible as dict-based filter lists and had some problems (e.g. : and , are treated in a special way and cannot be used in subfilters easily). If you have a filter definition like this:

filter: css:body,html2text:re,strip

You can get the same results with a filter definition like this:

filter:
  - css:
      selector: body
  - html2text:
      method: re
  - strip

Since selector is the default subfilter for css, and method is the default subfilter for html2text, this can also be written as:

filter:
  - css: body
  - html2text: re
  - strip

If you just have a single filter such as:

filter: html2text

You can change this filter to dict-based using:

filter:
  - html2text

keyring setting in SMTP reporter configuration (since 2.18)

Since version 2.18, the SMTP reporter configuration now uses auth to decide if SMTP authentication should be done or not. Previously, this setting was called keyring. If you have an old configuration like this:

report:
  email:
    smtp:
      host: localhost
      keyring: false
      port: 25
      starttls: true
    subject: '{count} changes: {jobs}'

You can change the setting to this (replace keyring with auth):

report:
  email:
    smtp:
      host: localhost
      auth: false
      port: 25
      starttls: true
    subject: '{count} changes: {jobs}'