{% extends "base.html" %} {% block title %}Alerts{% endblock %} {% block content %}

Where alerts go

Each search sends to one or more of these. Choose which on the search itself; a search with none picked sends to all of them.

{% for dd in dests|sort(attribute="status") %}
{{ dd.name }}{{ dd.label }}
{# Green only when something actually arrived through it. #} {% if dd.status == "failing" %}{{ ui.icon("circle-alert") }}{{ dd.status_label }} {% elif dd.status in ("waiting", "warn", "paused") %}{{ ui.icon("triangle-alert" if dd.status == "warn" else "hourglass") }}{{ dd.status_label }} {% elif dd.status == "untested" %}{{ ui.icon("send") }}{{ dd.status_label }} {% else %}{{ ui.icon("check") }}{{ dd.status_label }}{% endif %}
{% if dd.status == "failing" %}
{{ ui.icon("circle-alert") }}

{{ dd.detail }}

Send a test to see what's wrong. If it keeps failing, remove it and add it again, or use a notification on your phone instead.

{% elif dd.status == "paused" %}
{{ ui.icon("hourglass") }}

{{ dd.detail }}

{% elif dd.status == "warn" %}
{{ ui.icon("triangle-alert") }}

{{ dd.detail }}

Add the token, then send a test.

{% else %}

{{ dd.detail }}

{% endif %}
{{ ui.icon("chevron-right", "i-sm") }}OptionsWhat to send, sound{% if dd.kind == "discord" %}, look and pings{% elif dd.kind == "telegram" %}, look{% elif dd.kind == "ntfy" %}, priority and server{% elif dd.kind == "webhook" %}, headers{% endif %}
Tell me when something stops workingA message here when a search has been stuck for a while, when Vinted keeps turning checks away, and when vinted-bot updated itself. Without one, nobody hears about it until they look at this page.
{% set tier_names = [("steal", "Big bargains", "40% or more under the typical price"), ("deal", "Bargains", "20% or more under"), ("normal", "Everything else", "")] %}
Send theseCompared with the search's typical price. New searches count as "everything else" until they know it.
{% for key, label, hint in tier_names %}{% endfor %}
{% if dd.opts.legacy_pct %}

Set up before 2.2 to take listings {{ dd.opts.legacy_pct }}% or more under the typical price, shown here as the closest choice. Changing anything here keeps these choices instead.

{% endif %}
Watchlist alertsPrice drops and sales of listings you watch, and new uploads from sellers you follow. These come whatever the choice above.
Without soundThese arrive quietly, no buzz
{% for key, label, hint in tier_names %}{% endfor %}
{% if dd.kind == "discord" %}
LookBig card with photos, or one line
Ping forWhich listings mention the person or role below
{% for key, label, hint in tier_names %}{% endfor %}
Ping someoneType @everyone to buzz phones even when the server is muted, a role's ID number, or user: and a person's ID number for just them (Discord can't look names up for webhooks). Copy an ID by turning on Developer Mode, then right-clicking the role or person.
Never buzzEvery alert arrives without a notification sound, pings included.
{{ ui.icon("chevron-right") }}Thread, name and picture
{% elif dd.kind == "telegram" %}
LookOne photo with buttons, or all photos
Never buzzEvery alert arrives without a notification sound.
{% elif dd.kind == "ntfy" %}
PriorityHigh can break through Do Not Disturb
{{ ui.icon("chevron-right") }}Your own ntfy server

ntfy.sh unless you run your own. The phone app must use the same server.

{% if dd.opts.token_set %}{% endif %}
{% elif dd.kind == "webhook" %}
{% if dd.opts.headers %}{% endif %}
{% endif %}
Used by
{% for sr in dd.searches %}{{ sr.name }}{% else %}No searches send here. Tick it in a search's "Where alerts go".{% endfor %}
{% if dd.kind in ("discord", "telegram") and dd.can_test %}
{{ ui.icon("chevron-right", "i-sm") }}What it looks likeA made-up listing, with these options

Loading…

{% endif %}
{% if dd.can_test %}{% endif %}
{% endfor %} {% if telegram.configured or dests|selectattr("kind", "equalto", "telegram")|list %}
Telegram bot{% if telegram.configured %}{% if telegram.bot %}@{{ telegram.bot }}{% else %}Bot{% endif %} · {{ telegram.masked }}{% else %}No bot yet{% endif %}
{% if telegram.configured and telegram.bot %}{{ ui.icon("check") }}Ready{% elif telegram.rejected %}{{ ui.icon("circle-alert") }}Not running{% elif telegram.configured %}{{ ui.icon("triangle-alert") }}Not recognised{% else %}{{ ui.icon("triangle-alert") }}Needs a token{% endif %}
{% if telegram.rejected %}
{{ ui.icon("circle-alert") }}

{{ telegram.rejected }}

{% elif telegram.configured and not telegram.bot %}

Telegram couldn't be reached just now to check this bot. If alerts don't arrive, {% if telegram.from_env %}make a new token with BotFather and put it in VINTED_BOT_TELEGRAM_BOT_TOKEN.{% else %}make a new token with BotFather and paste it below.{% endif %}

{% endif %} {% if telegram.from_env %}

Its token comes from VINTED_BOT_TELEGRAM_BOT_TOKEN in this copy's environment, so it's changed there, not here. With Docker that's the environment: section of docker-compose.yml (then docker compose up -d), or the app's settings in a NAS app store.

{% else %}

Every Telegram place sends through this bot. {% if telegram.configured %}To use another bot, paste its token from BotFather.{% else %}Paste the token BotFather gave you: open @BotFather, send /mybots, pick your bot, then API Token.{% endif %}

We check it with Telegram, then keep it on this computer.

{% endif %}
{% if telegram.configured and not telegram.from_env %}
{% endif %}
{% endif %}
This browserOnly while this page is open
{{ ui.icon("clock") }}While open

A chime and a pop-up when a find arrives, while a vinted-bot tab is open on this device. Nothing to set up, but you'll miss finds while it's closed.

Play a soundA short chime per new find
Pop-up notificationsYour browser asks once for permission
{% endblock %} {% block modals %}
{% endblock %} {% block scripts %}{% endblock %}