diff --git a/changedetectionio/templates/edit.html b/changedetectionio/templates/edit.html index cc1810342..83eaf2a9d 100644 --- a/changedetectionio/templates/edit.html +++ b/changedetectionio/templates/edit.html @@ -1,673 +1,396 @@ -{% extends 'base.html' %} {% block content %} {% from '_helpers.jinja' import -render_field, render_checkbox_field, render_button %} {% from -'_common_fields.jinja' import render_common_settings_form %} - +{% extends 'base.html' %} +{% block content %} +{% from '_helpers.jinja' import render_field, render_checkbox_field, render_button %} +{% from '_common_fields.jinja' import render_common_settings_form %} + - - - - + + + + {% if playwright_enabled %} - + {% endif %}
-
- -
-
-
- - -
-
-
- {{ render_field(form.url, placeholder="https://...", required=true, - class="m-d") }} - Some sites use JavaScript to create the content, for this you - should - use the Chrome/WebDriver Fetcher
- You can use variables in the URL, perfect for inserting the - current date and other logic, - help and examples here
-
-
- {{ render_field(form.title, class="m-d") }} -
-
- {{ render_field(form.tag) }} - Organisational tag/group name used in the main listing page -
-
- {{ render_field(form.time_between_check, class="time-check-widget") - }} {% if has_empty_checktime %} - Currently using the - default global settings, change to another value if you want to be specific. - {% else %} - Set to blank to use the - default global settings. +
+
-
- {{ render_checkbox_field(form.extract_title_as_title) }} -
-
- {{ render_checkbox_field(form.filter_failure_notification_send) }} - - Sends a notification when the filter can no longer be seen on the - page, good for knowing when the page changed and your filter will - not work anymore. - -
-
-
+
  • Visual Filter Selector
  • +
  • Filters & Triggers
  • +
  • Notifications
  • + +
    -
    -
    - {{ render_field(form.fetch_backend, class="fetch-backend") }} - -

    - Use the Basic method (default) where your watched - site doesn't need Javascript to render. -

    -

    - The Chrome/Javascript method requires a network - connection to a running WebDriver+Chrome server, set by the ENV - var 'WEBDRIVER_URL'. -

    - Tip: - Connect using BrightData Proxies, find out more here. -
    -
    - {% if form.proxy %} -
    - {{ render_field(form.proxy, class="fetch-backend-proxy") }} - - Choose a proxy for this watch - -
    - {% endif %} -
    - {{ render_checkbox_field(form.ignore_status_codes) }} -
    -
    -
    - {{ render_field(form.webdriver_delay) }} -
    - If you're having trouble waiting for the page to be fully - rendered (text missing etc), try increasing the 'wait' time - here. -
    - This will wait n seconds before extracting the text. {% if - using_global_webdriver_wait %}
    Using the current global default settings - {% endif %} +
    + + + +
    +
    +
    + {{ render_field(form.url, placeholder="https://...", required=true, class="m-d") }} + Some sites use JavaScript to create the content, for this you should use the Chrome/WebDriver Fetcher
    + You can use variables in the URL, perfect for inserting the current date and other logic, help and examples here
    +
    +
    + {{ render_field(form.title, class="m-d") }} +
    +
    + {{ render_field(form.tag) }} + Organisational tag/group name used in the main listing page +
    +
    + {{ render_field(form.time_between_check, class="time-check-widget") }} + {% if has_empty_checktime %} + Currently using the default global settings, change to another value if you want to be specific. + {% else %} + Set to blank to use the default global settings. + {% endif %} +
    +
    + {{ render_checkbox_field(form.extract_title_as_title) }} +
    +
    + {{ render_checkbox_field(form.filter_failure_notification_send) }} + + Sends a notification when the filter can no longer be seen on the page, good for knowing when the page changed and your filter will not work anymore. + +
    +
    -
    -
    - {{ render_field(form.webdriver_js_execute_code) }} -
    - Run this code before performing change detection, handy for - filling in fields and other actions - More help and examples here + +
    +
    + {{ render_field(form.fetch_backend, class="fetch-backend") }} + +

    Use the Basic method (default) where your watched site doesn't need Javascript to render.

    +

    The Chrome/Javascript method requires a network connection to a running WebDriver+Chrome server, set by the ENV var 'WEBDRIVER_URL'.

    + Tip: Connect using BrightData Proxies, find out more here. +
    +
    + {% if form.proxy %} +
    + {{ render_field(form.proxy, class="fetch-backend-proxy") }} + + Choose a proxy for this watch + +
    + {% endif %} +
    + {{ render_checkbox_field(form.ignore_status_codes) }} +
    +
    +
    + {{ render_field(form.webdriver_delay) }} +
    + If you're having trouble waiting for the page to be fully rendered (text missing etc), try increasing the 'wait' time here. +
    + This will wait n seconds before extracting the text. + {% if using_global_webdriver_wait %} +
    Using the current global default settings + {% endif %} +
    +
    +
    + {{ render_field(form.webdriver_js_execute_code) }} +
    + Run this code before performing change detection, handy for filling in fields and other actions More help and examples here +
    +
    +
    +
    + {% if not playwright_enabled %} +
    + Request override is currently only used by the Basic fast Plaintext/HTTP Client method. +
    + {% endif %} +
    + {{ render_field(form.method) }} +
    +
    +{{ render_field(form.headers, rows=5, placeholder="Example +Cookie: foobar +User-Agent: wonderbra 1.0") }} +
    +
    + {{ render_field(form.body, rows=5, placeholder="Example +{ + \"name\":\"John\", + \"age\":30, + \"car\":null +}") }} +
    +
    -
    -
    -
    - {% if not playwright_enabled %} -
    - Request override is currently only used by the - Basic fast Plaintext/HTTP Client method. -
    - {% endif %} -
    - {{ render_field(form.method) }} -
    -
    - {{ render_field(form.headers, rows=5, placeholder="Example -Cookie: foobar User-Agent: wonderbra 1.0") }} -
    -
    - {{ render_field(form.body, rows=5, placeholder="Example - {\"name\":\"John\", \"age\":30, \"car\":null }") }} -
    -
    -
    - {% if playwright_enabled %} -
    - -
    -
    - - - + + - -
    -
    -
    - - -

    Click here to Start

    - Please allow 10-15 seconds for the browser to connect. -
    - -
    - - -
    -
    -
    - Loading - - (?) - - {{ render_field(form.browser_steps) }} -
    -
    -
    -
    -
    - {% endif %} + +
    -
    -
    -
    - {{ render_checkbox_field(form.notification_muted) }} -
    - {% if is_html_webdriver %} -
    - {{ render_checkbox_field(form.notification_screenshot) }} - - Use with caution! This will easily fill up your - email storage quota or flood other storages. - -
    - {% endif %} -
    - {% if has_default_notification_urls %} -
    - Look out! - There are - system-wide notification URLs enabled, this form will override notification settings for this watch - only ‐ an empty Notification URL list here will still send - notifications. +
    + +
    + + +

    Click here to Start

    + Please allow 10-15 seconds for the browser to connect. +
    + +
    + + +
    +
    +
    + Loading (?) + {{ render_field(form.browser_steps) }} +
    +
    +
    +
    {% endif %} - Use system defaults - {{ render_common_settings_form(form, emailprefix, - settings_application) }} -
    - -
    +
    +
    +
    + {{ render_checkbox_field(form.notification_muted) }} +
    + {% if is_html_webdriver %} +
    + {{ render_checkbox_field(form.notification_screenshot) }} + + Use with caution! This will easily fill up your email storage quota or flood other storages. + +
    + {% endif %} +
    + {% if has_default_notification_urls %} +
    + Look out! + There are system-wide notification URLs enabled, this form will override notification settings for this watch only ‐ an empty Notification URL list here will still send notifications. +
    + {% endif %} + Use system defaults -
    -
    - Pro-tips:
    -
      -
    • - Use the preview page to see your filters and triggers highlighted. -
    • -
    • - Some sites use JavaScript to create the content, for this you - should - use the Chrome/WebDriver Fetcher -
    • -
    -
    -
    -
    - {{ render_checkbox_field(form.check_unique_lines) }} - Good for websites that just move the content around, and you want - to know when NEW content is added, compares new lines against all - history for this watch. -
    -
    -
    - {% set field = render_field(form.include_filters, rows=5, - placeholder="#example -xpath://body/div/span[contains(@class, 'example-class')]", class="m-d") %} {{ field }} {% if '/text()' in - field %} - Note!: //text() function does not work where the <element> - contains <![CDATA[]]>
    - {% endif %} - One rule per line, any rules that matches will be used.
    -
      -
    • - CSS - Limit text to this CSS rule, only text matching this CSS - rule is included. -
    • -
    • - JSON - Limit text to this JSON rule, using either - JSONPath - or - jq (if - installed). -
        -
      • - JSONPath: Prefix with json:, use - json:$ to force re-formatting if required, - test your JSONPath here. -
      • - {% if jq_support %} -
      • - jq: Prefix with jq: and - test your jq here. Using - jq - allows for complex filtering and processing of JSON data - with built-in functions, regex, filtering, and more. See - examples and documentation - here. -
      • - {% else %} -
      • jq support not installed
      • - {% endif %} -
      -
    • -
    • - XPath - Limit text to this XPath rule, simply start with a - forward-slash, -
        -
      • - Example: //*[contains(@class, 'sametext')] or - xpath://*[contains(@class, 'sametext')], - test your XPath here -
      • -
      • - Example: Get all titles from an RSS feed - //title/text() -
      • -
      -
    • -
    - Please be sure that you thoroughly understand how to write CSS, - JSONPath, XPath{% if jq_support %}, or jq selector{%endif%} rules - before filing an issue on GitHub! - here for more CSS selector help.
    -
    -
    -
    - {{ render_field(form.subtractive_selectors, rows=5, - placeholder="header footer nav .stockticker") }} - -
      -
    • - Remove HTML element(s) by CSS selector before text conversion. -
    • -
    • - Add multiple elements or CSS selectors per line to ignore - multiple parts of the HTML. -
    • -
    -
    -
    -
    - {{ render_field(form.ignore_text, rows=5, placeholder="Some text to ignore in a line /some.regex\d{2}/ for case-INsensitive regex ") }} - -
      -
    • - Each line processed separately, any line matching will be - ignored (removed before creating the checksum) -
    • -
    • - Regular Expression support, wrap the entire line in forward - slash /regex/ -
    • -
    • - Changing this will affect the comparison checksum which may - trigger an alert -
    • -
    • Use the preview/show current tab to see ignores
    • -
    -
    -
    -
    -
    - {{ render_field(form.trigger_text, rows=5, placeholder="Some text to wait for in a line /some.regex\d{2}/ for case-INsensitive regex ") - }} - -
      -
    • - Text to wait for before triggering a change/notification, all - text and regex are tested case-insensitive. -
    • -
    • - Trigger text is processed from the result-text that comes out - of any CSS/JSON Filters for this watch -
    • -
    • - Each line is processed separately (think of each line as "OR") -
    • -
    • - Note: Wrap in forward slash / to use regex example: - /foo\d/ -
    • -
    -
    -
    -
    -
    -
    - {{ render_field(form.text_should_not_be_present, rows=5, - placeholder="For example: - -Out of stock + {{ render_common_settings_form(form, emailprefix, settings_application) }} +
    +
    +
    + +
    +
    + Pro-tips:
    +
      +
    • + Use the preview page to see your filters and triggers highlighted. +
    • +
    • + Some sites use JavaScript to create the content, for this you should use the Chrome/WebDriver Fetcher +
    • +
    +
    +
    +
    + {{ render_checkbox_field(form.check_unique_lines) }} + Good for websites that just move the content around, and you want to know when NEW content is added, compares new lines against all history for this watch. +
    +
    +
    + {% set field = render_field(form.include_filters, + rows=5, + placeholder="#example +xpath://body/div/span[contains(@class, 'example-class')]", + class="m-d") + %} + {{ field }} + {% if '/text()' in field %} + Note!: //text() function does not work where the <element> contains <![CDATA[]]>
    + {% endif %} + One rule per line, any rules that matches will be used.
    +
      +
    • CSS - Limit text to this CSS rule, only text matching this CSS rule is included.
    • +
    • JSON - Limit text to this JSON rule, using either JSONPath or jq (if installed). +
        +
      • JSONPath: Prefix with json:, use json:$ to force re-formatting if required, test your JSONPath here.
      • + {% if jq_support %} +
      • jq: Prefix with jq: and test your jq here. Using jq allows for complex filtering and processing of JSON data with built-in functions, regex, filtering, and more. See examples and documentation here.
      • + {% else %} +
      • jq support not installed
      • + {% endif %} +
      +
    • +
    • XPath - Limit text to this XPath rule, simply start with a forward-slash, +
        +
      • Example: //*[contains(@class, 'sametext')] or xpath://*[contains(@class, 'sametext')], test your XPath here
      • +
      • Example: Get all titles from an RSS feed //title/text()
      • +
      +
    • +
    + Please be sure that you thoroughly understand how to write CSS, JSONPath, XPath{% if jq_support %}, or jq selector{%endif%} rules before filing an issue on GitHub! here for more CSS selector help.
    +
    +
    +
    + {{ render_field(form.subtractive_selectors, rows=5, placeholder="header +footer +nav +.stockticker") }} + +
      +
    • Remove HTML element(s) by CSS selector before text conversion.
    • +
    • Add multiple elements or CSS selectors per line to ignore multiple parts of the HTML.
    • +
    +
    +
    +
    + {{ render_field(form.ignore_text, rows=5, placeholder="Some text to ignore in a line +/some.regex\d{2}/ for case-INsensitive regex + ") }} + +
      +
    • Each line processed separately, any line matching will be ignored (removed before creating the checksum)
    • +
    • Regular Expression support, wrap the entire line in forward slash /regex/
    • +
    • Changing this will affect the comparison checksum which may trigger an alert
    • +
    • Use the preview/show current tab to see ignores
    • +
    +
    + +
    +
    +
    + {{ render_field(form.trigger_text, rows=5, placeholder="Some text to wait for in a line +/some.regex\d{2}/ for case-INsensitive regex + ") }} + +
      +
    • Text to wait for before triggering a change/notification, all text and regex are tested case-insensitive.
    • +
    • Trigger text is processed from the result-text that comes out of any CSS/JSON Filters for this watch
    • +
    • Each line is processed separately (think of each line as "OR")
    • +
    • Note: Wrap in forward slash / to use regex example: /foo\d/
    • +
    +
    +
    +
    +
    +
    + {{ render_field(form.text_should_not_be_present, rows=5, placeholder="For example: Out of stock Sold out Not in stock Unavailable") }} - -
      -
    • - Block change-detection while this text is on the page, all - text and regex are tested case-insensitive, good for - waiting for when a product is available again -
    • -
    • - Block text is processed from the result-text that comes out of - any CSS/JSON Filters for this watch -
    • -
    • - All lines here must not exist (think of each line as "OR") -
    • -
    • - Note: Wrap in forward slash / to use regex example: - /foo\d/ -
    • -
    -
    -
    -
    -
    -
    - {{ render_field(form.extract_text, rows=5, placeholder="\d+ online") - }} - -
      -
    • - Extracts text in the final output (line by line) after other - filters using regular expressions; -
        -
      • - Regular expression ‐ example - /reports.+?2022/i -
      • -
      • - Use //(?aiLmsux)) type flags (more - information here)
        -
      • -
      • - Keyword example ‐ example Out of stock -
      • -
      • - Use groups to extract just that text ‐ example - /reports.+?(\d+)/i returns a list of years - only -
      • -
      -
    • -
    • One line per regular-expression/ string match
    • -
    -
    -
    -
    -
    - -
    - - -
    -
    - {% if visualselector_enabled %} - - The Visual Selector tool lets you select the text elements - that will be used for the change detection ‐ after the - Browser Steps has completed.

    -
    - -
    - Clear selection - One moment, fetching screenshot and element information.. + +
      +
    • Block change-detection while this text is on the page, all text and regex are tested case-insensitive, good for waiting for when a product is available again
    • +
    • Block text is processed from the result-text that comes out of any CSS/JSON Filters for this watch
    • +
    • All lines here must not exist (think of each line as "OR")
    • +
    • Note: Wrap in forward slash / to use regex example: /foo\d/
    • +
    +
    +
    +
    +
    +
    + {{ render_field(form.extract_text, rows=5, placeholder="\d+ online") }} + +
      +
    • Extracts text in the final output (line by line) after other filters using regular expressions; +
        +
      • Regular expression ‐ example /reports.+?2022/i
      • +
      • Use //(?aiLmsux)) type flags (more information here)
      • +
      • Keyword example ‐ example Out of stock
      • +
      • Use groups to extract just that text ‐ example /reports.+?(\d+)/i returns a list of years only
      • +
      +
    • +
    • One line per regular-expression/ string match
    • +
    +
    +
    +
    - -
    - Currently: Loading... -
    - {% else %} - -

    - Sorry, this functionality only works with Playwright/Chrome - enabled watches. -

    -

    - Enable the Playwright Chrome fetcher, or alternatively try our - very affordable subscription based service. -

    -

    - This is because Selenium/WebDriver can not extract full page - screenshots reliably. -

    -
    - {% endif %} -
    -
    -
    -
    -
    - {{ render_button(form.save_button) }} - Delete - Clear History - Create Copy -
    -
    - - +
    + + +
    +
    + {% if visualselector_enabled %} + + The Visual Selector tool lets you select the text elements that will be used for the change detection ‐ after the Browser Steps has completed.

    +
    + +
    + Clear selection + One moment, fetching screenshot and element information.. +
    + +
    Currently: Loading...
    + {% else %} + +

    Sorry, this functionality only works with Playwright/Chrome enabled watches.

    +

    Enable the Playwright Chrome fetcher, or alternatively try our very affordable subscription based service.

    +

    This is because Selenium/WebDriver can not extract full page screenshots reliably.

    +
    + {% endif %} +
    +
    +
    + +
    +
    + {{ render_button(form.save_button) }} + Delete + Clear History + Create Copy +
    +
    + + {% endblock %} diff --git a/changedetectionio/templates/settings.html b/changedetectionio/templates/settings.html index a3c24bc2d..c912105e8 100644 --- a/changedetectionio/templates/settings.html +++ b/changedetectionio/templates/settings.html @@ -1,290 +1,186 @@ -{% extends 'base.html' %} {% block content %} {% from '_helpers.jinja' import -render_field, render_checkbox_field, render_button %} {% from -'_common_fields.jinja' import render_common_settings_form %} +{% extends 'base.html' %} + +{% block content %} +{% from '_helpers.jinja' import render_field, render_checkbox_field, render_button %} +{% from '_common_fields.jinja' import render_common_settings_form %} - - + + - +
    -
    - -
    -
    -
    - -
    -
    -
    - {{ render_field(form.requests.form.time_between_check, - class="time-check-widget") }} - Default time for all watches, when the watch does not have a - specific time setting. -
    -
    - {{ render_field(form.requests.form.jitter_seconds, - class="jitter_seconds") }} - Example - 3 seconds random jitter could trigger up to 3 seconds - earlier or up to 3 seconds later -
    -
    - {{ - render_field(form.application.form.filter_failure_notification_threshold_attempts, - class="filter_failure_notification_threshold_attempts") }} - After this many consecutive times that the CSS/xPath filter is - missing, send a notification -
    - Set to 0 to disable -
    -
    -
    - {% if not hide_remove_pass %} {% if current_user.is_authenticated %} - {{ render_button(form.application.form.removepassword_button) }} {% - else %} {{ render_field(form.application.form.password) }} - Password protection for your changedetection.io - application. - {% endif %} {% else %} - Password is locked. - {% endif %} -
    + +
    + + +
    +
    +
    + {{ render_field(form.requests.form.time_between_check, class="time-check-widget") }} + Default time for all watches, when the watch does not have a specific time setting. +
    +
    + {{ render_field(form.requests.form.jitter_seconds, class="jitter_seconds") }} + Example - 3 seconds random jitter could trigger up to 3 seconds earlier or up to 3 seconds later +
    +
    + {{ render_field(form.application.form.filter_failure_notification_threshold_attempts, class="filter_failure_notification_threshold_attempts") }} + After this many consecutive times that the CSS/xPath filter is missing, send a notification +
    + Set to 0 to disable +
    +
    +
    + {% if not hide_remove_pass %} + {% if current_user.is_authenticated %} + {{ render_button(form.application.form.removepassword_button) }} + {% else %} + {{ render_field(form.application.form.password) }} + Password protection for your changedetection.io application. + {% endif %} + {% else %} + Password is locked. + {% endif %} +
    -
    - {{ render_field(form.application.form.base_url, - placeholder="http://yoursite.com:5000/", class="m-d") }} - - Base URL used for the {base_url} token in - notifications and RSS links.
    Default value is the ENV var - 'BASE_URL' (Currently - "{{settings_application['current_base_url']}}"), - read more here. -
    -
    +
    + {{ render_field(form.application.form.base_url, placeholder="http://yoursite.com:5000/", + class="m-d") }} + + Base URL used for the {base_url} token in notifications and RSS links.
    Default value is the ENV var 'BASE_URL' (Currently "{{settings_application['current_base_url']}}"), + read more here. +
    +
    -
    - {{ - render_checkbox_field(form.application.form.extract_title_as_title) - }} - Note: This will automatically apply to all existing - watches. -
    -
    - {{ - render_checkbox_field(form.application.form.empty_pages_are_a_change) - }} - When a page contains HTML, but no renderable text appears (empty - page), is this considered a change? -
    - {% if form.requests.proxy %} -
    - {{ render_field(form.requests.form.proxy, - class="fetch-backend-proxy") }} - - Choose a default proxy for all watches - -
    - {% endif %} -
    -
    +
    + {{ render_checkbox_field(form.application.form.extract_title_as_title) }} + Note: This will automatically apply to all existing watches. +
    +
    + {{ render_checkbox_field(form.application.form.empty_pages_are_a_change) }} + When a page contains HTML, but no renderable text appears (empty page), is this considered a change? +
    + {% if form.requests.proxy %} +
    + {{ render_field(form.requests.form.proxy, class="fetch-backend-proxy") }} + + Choose a default proxy for all watches + +
    + {% endif %} +
    +
    -
    -
    -
    - {{ render_common_settings_form(form.application.form, emailprefix, - settings_application) }} -
    -
    -
    +
    +
    +
    + {{ render_common_settings_form(form.application.form, emailprefix, settings_application) }} +
    +
    +
    -
    -
    - {{ render_field(form.application.form.fetch_backend, - class="fetch-backend") }} - -

    - Use the Basic method (default) where your watched - sites don't need Javascript to render. -

    -

    - The Chrome/Javascript method requires a network - connection to a running WebDriver+Chrome server, set by the ENV - var 'WEBDRIVER_URL'. -

    -
    -
    - Tip: - Connect using BrightData Proxies, find out more here. -
    -
    -
    - If you're having trouble waiting for the page to be fully - rendered (text missing etc), try increasing the 'wait' time - here. -
    - This will wait n seconds before extracting the text. -
    -
    - {{ render_field(form.application.form.webdriver_delay) }} -
    -
    -
    +
    +
    + {{ render_field(form.application.form.fetch_backend, class="fetch-backend") }} + +

    Use the Basic method (default) where your watched sites don't need Javascript to render.

    +

    The Chrome/Javascript method requires a network connection to a running WebDriver+Chrome server, set by the ENV var 'WEBDRIVER_URL'.

    +
    +
    + Tip: Connect using BrightData Proxies, find out more here. +
    +
    +
    + If you're having trouble waiting for the page to be fully rendered (text missing etc), try increasing the 'wait' time here. +
    + This will wait n seconds before extracting the text. +
    +
    + {{ render_field(form.application.form.webdriver_delay) }} +
    +
    +
    -
    -
    - {{ render_checkbox_field(form.application.form.ignore_whitespace) }} - Ignore whitespace, tabs and new-lines/line-feeds when considering - if a change was detected.
    - Note: Changing this will change the status of your existing - watches, possibly trigger alerts etc. -
    -
    -
    - {{ - render_checkbox_field(form.application.form.render_anchor_tag_content) - }} - Render anchor tag content, default disabled, when enabled renders - links as (link text)[https://somesite.com] -
    - Note: Changing this could affect the content of your existing - watches, possibly trigger alerts etc. -
    -
    -
    - {{ render_field(form.application.form.global_subtractive_selectors, - rows=5, placeholder="header +
    + +
    + {{ render_checkbox_field(form.application.form.ignore_whitespace) }} + Ignore whitespace, tabs and new-lines/line-feeds when considering if a change was detected.
    + Note: Changing this will change the status of your existing watches, possibly trigger alerts etc. +
    +
    +
    + {{ render_checkbox_field(form.application.form.render_anchor_tag_content) }} + Render anchor tag content, default disabled, when enabled renders links as (link text)[https://somesite.com] +
    + Note: Changing this could affect the content of your existing watches, possibly trigger alerts etc. +
    +
    +
    + {{ render_field(form.application.form.global_subtractive_selectors, rows=5, placeholder="header footer nav .stockticker") }} - -
      -
    • - Remove HTML element(s) by CSS selector before text conversion. -
    • -
    • - Add multiple elements or CSS selectors per line to ignore - multiple parts of the HTML. -
    • -
    -
    -
    -
    - {{ render_field(form.application.form.global_ignore_text, rows=5, - placeholder="Some text to ignore in a line /some.regex\d{2}/ for - case-INsensitive regex ") }} - Note: This is applied globally in addition to the per-watch - rules.
    - -
      -
    • - Note: This is applied globally in addition to the per-watch - rules. -
    • -
    • - Each line processed separately, any line matching will be - ignored (removed before creating the checksum) -
    • -
    • - Regular Expression support, wrap the entire line in forward - slash /regex/ -
    • -
    • - Changing this will affect the comparison checksum which may - trigger an alert -
    • -
    • Use the preview/show current tab to see ignores
    • -
    -
    -
    -
    + +
      +
    • Remove HTML element(s) by CSS selector before text conversion.
    • +
    • Add multiple elements or CSS selectors per line to ignore multiple parts of the HTML.
    • +
    +
    +
    +
    + {{ render_field(form.application.form.global_ignore_text, rows=5, placeholder="Some text to ignore in a line +/some.regex\d{2}/ for case-INsensitive regex + ") }} + Note: This is applied globally in addition to the per-watch rules.
    + +
      +
    • Note: This is applied globally in addition to the per-watch rules.
    • +
    • Each line processed separately, any line matching will be ignored (removed before creating the checksum)
    • +
    • Regular Expression support, wrap the entire line in forward slash /regex/
    • +
    • Changing this will affect the comparison checksum which may trigger an alert
    • +
    • Use the preview/show current tab to see ignores
    • +
    +
    +
    +
    -
    -

    - Drive your changedetection.io via API, More about - API access here -

    +
    -
    - {{ - render_checkbox_field(form.application.form.api_access_token_enabled) - }} -
    - Restrict API access limit by using x-api-key header -
    -
    -
    -
    API Key {{api_key}} - -
    -
    -
    +

    Drive your changedetection.io via API, More about API access here

    -
    -
    - {{ render_button(form.save_button) }} - Back - Clear Snapshot History -
    -
    - -
    +
    + {{ render_checkbox_field(form.application.form.api_access_token_enabled) }} +
    Restrict API access limit by using x-api-key header

    +

    API Key {{api_key}} + +
    +
    +
    + +
    +
    + {{ render_button(form.save_button) }} + Back + Clear Snapshot History +
    + +
    + +
    {% endblock %}