changedetectionio/templates/_common_fields.html
{% from '_helpers.html' import render_field %} {% macro show_token_placeholders(extra_notification_token_placeholder_info, suffix="", settings_application=None) %}
{{ _('Body for all notifications — You can use') }} Jinja2 {{ _('templating in the notification title, body and URL, and tokens from below.') }}
{{ _('Show token/placeholders') }}
| {{ _('Token') }} | {{ _('Description') }} |
|---|---|
{{ '{{base_url}}' }} | {{ _('The URL of the changedetection.io instance you are running.') }} |
{{ '{{watch_url}}' }} | {{ _('The URL being watched.') }} |
{{ '{{watch_uuid}}' }} | {{ _('The UUID of the watch.') }} |
{{ '{{watch_title}}' }} | {{ _('The page title of the watch, uses if not set, falls back to URL') }} |
{{ '{{watch_tag}}' }} | {{ _('The watch group / tag') }} |
{{ '{{preview_url}}' }} | {{ _('The URL of the preview page generated by changedetection.io.') }} |
{{ '{{change_datetime}}' }} | {{ _('Date/time of the change, accepts format=, change_datetime(format='%A')', default is '%Y-%m-%d %H:%M:%S %Z'') }} |
{{ '{{diff_url}}' }} | {{ _('The URL of the diff output for the watch.') }} |
{{ '{{diff}}' }} | {{ _('The diff output - only changes, additions, and removals') }} |
{{ _('All diff variants accept') }} lines=, context=, word_diff=, ignore_junk= {{ _('args, e.g.') }} {{ '{{diff(lines=10)}}' }}, {{ '{{diff_added(lines=5, context=2)}}' }} | |
{{ '{{diff_clean}}' }} | {{ _('The diff output - only changes, additions, and removals —') }} {{ _('Without (added) prefix or colors') }} |
{{ '{{diff_added}}' }} | {{ _('The diff output - only changes and additions') }} |
{{ '{{diff_added_clean}}' }} | {{ _('The diff output - only changes and additions —') }} {{ _('Without (added) prefix or colors') }} |
{{ '{{diff_removed}}' }} | {{ _('The diff output - only changes and removals') }} |
{{ '{{diff_removed_clean}}' }} | {{ _('The diff output - only changes and removals —') }} {{ _('Without (added) prefix or colors') }} |
{{ '{{diff_full}}' }} | {{ _('The diff output - full difference output') }} |
{{ '{{diff_full_clean}}' }} | {{ _('The diff output - full difference output —') }} {{ _('Without (added) prefix or colors') }} |
{{ '{{diff_patch}}' }} | {{ _('The diff output - patch in unified format') }} |
{{ '{{diff_changed_from}}' }} | {{ _('Only the changed words/values from the previous version — e.g. the old price. Best when a single value changes per line; multiple changed fragments are joined by newline.') }} |
{{ '{{diff_changed_to}}' }} | {{ _('Only the changed words/values from the new version — e.g. the new price. Best when a single value changes per line; multiple changed fragments are joined by newline.') }} |
{{ '{{current_snapshot}}' }} | {{ _('The current snapshot text contents value, useful when combined with JSON or CSS filters') }} |
{{ '{{triggered_text}}' }} | {{ _('Text that tripped the trigger from filters') }} |
| {% if settings_application and settings_application.get('llm', {}).get('model') %} | {{ '{{diff}}' }} {{ _('(upgraded)') }} |
{{ '{{raw_diff}}' }} | {{ _('Always the raw +/- diff, regardless of AI Change Summary setting.') }} |
{{ '{{llm_summary}}' }} | {{ _('The AI Change Summary text (same as the upgraded {{diff}} — explicit reference).') }} |
{{ '{{llm_intent}}' }} | {{ _('The AI Change Intent that was evaluated.') }} |
| {% endif %} {% if extra_notification_token_placeholder_info %} {% for token in extra_notification_token_placeholder_info %} | {{ '{{' }}{{ token[0] }}{{ '}}' }} |
| {% endfor %} {% endif %} | |
{{ _('Warning: Contents of') }} {{ '{{diff}}' }}, {{ '{{diff_removed}}' }}, {{ _('and') }} {{ '{{diff_added}}' }} {{ _('depend on how the difference algorithm perceives the change.') }} | |
| {{ _('For example, an addition or removal could be perceived as a change in some cases.') }} {{ _('More Here') }} |
{% endmacro %} {% macro render_common_settings_form(form, emailprefix, settings_application, extra_notification_token_placeholder_info) %} {{ render_field(form.notification_urls, rows=5, placeholder="Examples: Gitter - gitter://token/room Office365 - o365://TenantID:AccountEmail/ClientID/ClientSecret/TargetEmail AWS SNS - sns://AccessKeyID/AccessSecretKey/RegionName/+PhoneNo SMTPS - mailtos://user:[email protected]?to=[email protected]", class="notification-urls" ) }}
{{ _('Tip:') }} {{ _('Use AppRise Notification URLs for notification to just about any service!', url='https://github.com/caronc/apprise')|safe }} {{ _('Please read the notification services wiki here for important configuration notes')|safe }}.
{{ _('Show advanced help and tips') }}
discord:// {{ _('(or') }} https://discord.com/api/webhooks...)) {{ _('only supports a maximum') }} {{ _('2,000 characters') }} {{ _('of notification text, including the title.') }}tgram:// {{ _('bots can't send messages to other bots, so you should specify chat ID of non-bot user.') }}tgram:// {{ _('only supports very limited HTML and can fail when extra tags are sent,') }} {{ _('read more here') }} {{ _('(or use plaintext/markdown format)') }}gets://, posts://, puts://, deletes:// {{ _('for direct API calls (or omit the') }} "s" {{ _('for non-SSL ie') }} get://) {{ _('more help here') }}%(token)s placeholders listed below', token='{{token}}')|safe }}{{ _('Send test notification') }}
{% if emailprefix %} {{ _('Add email') }} {% endif %} {{ _('Notification debug logs') }}
{{ _('Processing..') }}
{{ render_field(form.notification_title, class="m-d notification-title", placeholder=settings_application['notification_title']) }} {{ _('Title for all notifications') }}
{{ render_field(form.notification_body , rows=5, class="notification-body", placeholder=settings_application['notification_body']) }} {{ show_token_placeholders(extra_notification_token_placeholder_info=extra_notification_token_placeholder_info, settings_application=settings_application) }}
{ "name": {{ '{{ watch_title|tojson }}' }} }gets://hook-website.com/test.php?title={{ '{{ watch_title|urlencode }}' }}{{ "{{ \"hello world 123\" | regex_replace('[0-9]+', 'no-more-numbers') }}" }}{{ render_field(form.notification_format , class="notification-format") }} {{ _('Format for all notifications') }}
{{ _('Discord does not render HTML — switch to') }} {{ _('Plain Text') }} {{ _('format to avoid') }} {{ _('and other HTML entities appearing literally in your notifications.') }}
{% endmacro %}