Back to Changedetection Io

if not set, falls back to URL') }}

changedetectionio/templates/_common_fields.html

0.55.38.0 KB
Original Source

{% 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') }}
  • {{ _('Accepts the %(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) }}

  • {{ _('For JSON payloads, use') }} |tojson {{ _('without quotes for automatic escaping, for example -') }} { "name": {{ '{{ watch_title|tojson }}' }} }
  • {{ _('URL encoding, use') }} |urlencode , {{ _('for example -') }} gets://hook-website.com/test.php?title={{ '{{ watch_title|urlencode }}' }}
  • {{ _('Regular-expression replace, use') }} |regex_replace , {{ _('for example -') }} {{ "{{ \"hello world 123\" | regex_replace('[0-9]+', 'no-more-numbers') }}" }}
  • {{ _('For a complete reference of all Jinja2 built-in filters, users can refer to the') }} https://jinja.palletsprojects.com/en/3.1.x/templates/#builtin-filters

{{ 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 %}