{% extends 'base.html' %} {% block content %} {% from '_helpers.html' import render_simple_field, render_field, render_nolabel_field, sort_by_title %}
Add a new change detection watch
{{ render_nolabel_field(form.url, placeholder="https://...", required=true) }} {{ render_nolabel_field(form.tags, value=active_tag.title if active_tag_uuid else '', placeholder="watch label / tag") }} {{ render_nolabel_field(form.watch_submit_button, title="Watch this URL!" ) }} {{ render_nolabel_field(form.edit_and_watch_submit_button, title="Edit first then Watch") }}
{{ render_simple_field(form.processor) }}
Create a shareable link Tip: You can also add 'shared' watches. More info
{% if watches|length >= pagination.per_page %} {{ pagination.info }} {% endif %} {% if search_q %}
Searching "{{search_q}}"
{% endif %}
All {% for uuid, tag in tags %} {% if tag != "" %} {{ tag.title }} {% endif %} {% endfor %}
{% set sort_order = sort_order or 'asc' %} {% set sort_attribute = sort_attribute or 'last_changed' %} {% set pagination_page = request.args.get('page', 0) %}
{% set link_order = "desc" if sort_order == 'asc' else "asc" %} {% set arrow_span = "" %} {% if not watches|length %} {% endif %} {% for watch in (watches|sort(attribute=sort_attribute, reverse=sort_order == 'asc'))|pagination_slice(skip=pagination.skip) %} {% set is_unviewed = watch.newest_history_key| int > watch.last_viewed and watch.history_n>=2 %} {% endfor %}
# Website Last Checked Last Changed
No website watches configured, please add a URL in the box above, or import a list.
{{ loop.index+pagination.skip }} {% if not watch.paused %} Pause checks {% else %} UnPause checks {% endif %} Mute notifications {{watch.title if watch.title is not none and watch.title|length > 0 else watch.url}} {% if watch.get_fetch_backend == "html_webdriver" or ( watch.get_fetch_backend == "system" and system_default_fetcher == 'html_webdriver' ) or "extra_browser_" in watch.get_fetch_backend %} {% endif %} {%if watch.is_pdf %}{% endif %} {% if watch.has_browser_steps %}{% endif %} {% if watch.last_error is defined and watch.last_error != False %}
{{ watch.last_error }} {% if '403' in watch.last_error %} {% if has_proxies %} Try other proxies/location  {% endif %} Try adding external proxies/locations {% endif %} {% if 'empty result or contain only an image' in watch.last_error %} more help here. {% endif %}
{% endif %} {% if watch.last_notification_error is defined and watch.last_notification_error != False %} {% endif %} {% if watch['processor'] == 'text_json_diff' %} {% if watch['has_ldjson_price_data'] and not watch['track_ldjson_price_data'] %}
Embedded price data detected, follow only price data? Yes No
{% endif %} {% if watch['track_ldjson_price_data'] == 'accepted' %} Price {% endif %} {% endif %} {% if watch['processor'] == 'restock_diff' %} {% if watch['last_checked'] and watch['in_stock'] != None %} {% if watch['in_stock'] %} In stock {% else %} Not in stock {% endif %} {% else %} Not yet checked {% endif %} {% endif %} {% for watch_tag_uuid, watch_tag in datastore.get_all_tags_for_watch(watch['uuid']).items() %} {{ watch_tag.title }} {% endfor %}
{{watch|format_last_checked_time|safe}} {% if watch.history_n >=2 and watch.last_changed >0 %} {{watch.last_changed|format_timestamp_timeago}} {% else %} Not yet {% endif %} {% if watch.uuid in queued_uuids %}Queued{% else %}Recheck{% endif %} Edit {% if watch.history_n >= 2 %} {% if is_unviewed %} Diff {% else %} Diff {% endif %} {% else %} {% if watch.history_n == 1 or (watch.history_n ==0 and watch.error_text_ctime )%} Preview {% endif %} {% endif %}
{{ pagination.links }}
{% endblock %}