> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vetox.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Как работают уведомления

> Объявляйте новые стримы, видео, посты и эпизоды с восьми внешних платформ прямо на сервере Discord.

Vetox следит за восемью внешними платформами и публикует объявление на вашем сервере, когда появляется что-то новое.

<CardGroup cols={4}>
  <Card title="Twitch" icon="twitch" href="/ru/notifications/twitch" />

  <Card title="Kick" icon="tower-broadcast" href="/ru/notifications/kick" />

  <Card title="YouTube" icon="youtube" href="/ru/notifications/youtube" />

  <Card title="Reddit" icon="reddit" href="/ru/notifications/reddit" />

  <Card title="Bluesky" icon="cloud" href="/ru/notifications/bluesky" />

  <Card title="Steam" icon="steam" href="/ru/notifications/steam" />

  <Card title="RSS" icon="rss" href="/ru/notifications/rss" />

  <Card title="Подкасты" icon="podcast" href="/ru/notifications/podcasts" />
</CardGroup>

## Должны быть выполнены три условия

Это самая частая причина, по которой уведомления кажутся не работающими. Все три обязательны, и только первое видно на самой странице уведомлений.

<Steps>
  <Step title="Премиум Basic или выше">
    Каждая платформа требует как минимум тариф **Basic**. Добавление подписки на Starter отклоняется с сообщением, называющим платформу.

    Проверка выполняется дважды — при добавлении и в момент отправки объявления.
  </Step>

  <Step title="Переключатель платформы в настройках сервера">
    У каждой платформы есть свой переключатель на странице [Настройка сервера](/ru/server-management/setup), и он **выключен по умолчанию**. Настроить само уведомление недостаточно.

    <Warning>
      Ни одна страница уведомлений не показывает состояние этого переключателя. Полностью настроенная и оплаченная лента будет молча не срабатывать, без каких-либо индикаций в UI уведомлений. **Сначала проверьте Настройку сервера.**
    </Warning>
  </Step>

  <Step title="Права в канале">
    Vetox нужны **View Channel**, **Send Messages** и **Embed Links** в целевом канале. См. ниже.
  </Step>
</Steps>

## Лимиты

**10 записей на платформу, на сервер** — 10 стримеров Twitch, 10 каналов YouTube, 10 субреддитов и т. д.

Это фиксированный продуктовый лимит. Он **не** растёт с более высоким тарифом премиум и одинаков на Basic, Max и Black.

## Как быстро приходят уведомления

Vetox опрашивает каждую платформу по фиксированному расписанию. Объявление приходит на следующем опросе после появления контента.

| Платформа | Проверяется каждые | Кулдаун на источник |
| --------- | ------------------ | ------------------- |
| Twitch    | 60 секунд          | 10 минут            |
| Kick      | 60 секунд          | 10 минут            |
| Bluesky   | 60 секунд          | 2 минуты            |
| Reddit    | 3 минуты           | 2 минуты            |
| Steam     | 3 минуты           | 2 минуты            |
| YouTube   | 5 минут            | 10 минут            |
| RSS       | 5 минут            | 5 минут             |
| Подкасты  | 5 минут            | 5 минут             |

**Кулдаун** — минимальный интервал между двумя объявлениями по одному источнику, независимо от интервала опроса. Субреддит с тремя постами за минуту породит одно объявление, а не три.

<Note>
  Опрос делается одним выбранным экземпляром, поэтому загруженный сервер никогда не получает дубликатов от параллельных воркеров.
</Note>

### Две разные модели отслеживания

| Модель            | Платформы       | Поведение                                                                  |
| ----------------- | --------------- | -------------------------------------------------------------------------- |
| **Live state**    | Twitch, Kick    | Отслеживает, идёт стрим или нет, и объявляет момент *изменения* состояния  |
| **Новый контент** | Остальные шесть | Отслеживает отдельные единицы контента и объявляет каждую новую однократно |

<Warning>
  **Добавление уже стримящего стримера ничего не даст.** Live-трекер срабатывает только на переходе offline → online. Если вы добавили кого-то посреди стрима, первое объявление вы получите на *следующем* стриме.

  Проверяйте на том, кто сейчас оффлайн, или просто подождите.
</Warning>

<Note>
  Состояние live/offline отслеживается **на стримера, а не на сервер**. Если несколько серверов следят за одним стримером, они управляются от одного общего состояния.
</Note>

## Что не будет объявлено

<AccordionGroup>
  <Accordion title="Всё, опубликованное до добавления" icon="clock-rotate-left">
    Добавление подписки никогда не подтягивает старое. Объявляется только контент, опубликованный после добавления, чтобы канал не был затоплен при настройке.
  </Accordion>

  <Accordion title="Контент старше 2 часов" icon="hourglass-end">
    Для шести контентных платформ всё, опубликованное более 2 часов назад, игнорируется, даже если Vetox никогда его не видел. Это не даёт вылить бэклог после простоя.

    Единица, лента которой не предоставляет читаемой даты публикации, обходит эту проверку и может быть объявлена независимо от возраста. Иногда именно поэтому появляется старая запись RSS.
  </Accordion>

  <Accordion title="Одна и та же запись дважды" icon="copy">
    Каждая объявленная запись помнится **7 дней**, на сервер, поэтому перезапуск или медленный опрос не дадут дубликат. Два сервера, следящих за одной лентой, каждый получают свою копию — просмотр одним сервером не подавляет её для другого.
  </Accordion>

  <Accordion title="Ответы и репосты Bluesky" icon="reply">
    Объявляются только оригинальные посты. Ответы и репосты фильтруются двойной проверкой. **Цитаты не фильтруются** и будут объявлены.
  </Accordion>

  <Accordion title="Всё, пришедшее пока премиум был просрочен" icon="triangle-exclamation">
    Запись, увиденная при неактивном премиуме, помечается как просмотренная на 7 дней, хотя ничего не публиковалось. Повышение тарифа задним числом её не объявит.

    После восстановления премиума ожидайте тихого периода, пока не появится действительно новый контент.
  </Accordion>
</AccordionGroup>

## Права Discord

Проверяются по актуальным правам бота в целевом канале при отправке:

| Право             | Зачем                                                                                              |
| ----------------- | -------------------------------------------------------------------------------------------------- |
| **View Channel**  | Vetox не может писать в канал, которого не видит                                                   |
| **Send Messages** | Чтобы опубликовать объявление                                                                      |
| **Embed Links**   | Каждое уведомление — embed. Без него сообщение отклоняется полностью, даже если Send Messages есть |

<Warning>
  **Ошибка прав теряет эту запись навсегда.** Запись помечается как просмотренная до попытки отправки, и повтора нет. Исправляйте права *до* публикации важного контента — а не после.
</Warning>

<Tip>
  Если в канале есть особые переопределения прав, проверьте *эффективные* права бота там, а не его общесерверную роль. Embed Links отсутствует чаще всего.
</Tip>

## Кастомизация объявления

| Опция               | Что делает                                                                                                  |
| ------------------- | ----------------------------------------------------------------------------------------------------------- |
| **Discord channel** | Куда публикуется объявление. Задаётся на отслеживаемую запись, чтобы разные стримеры писали в разные каналы |
| **Mention role**    | Роль, которую пингуют вместе с объявлением                                                                  |
| **Custom embed**    | Полный контроль над заголовком, описанием, цветом, автором, футером, миниатюрой, изображением и полями      |
| **Custom message**  | Обычный текст как тело embed. **Доступно только в RSS и Подкастах**                                         |

<Note>
  Контрол custom message появляется только на страницах RSS и Подкастов. Остальные шесть платформ используют custom embed.
</Note>

### Лимиты размера embed

| Поле                        | Лимит                           |
| --------------------------- | ------------------------------- |
| Title                       | 256 символов                    |
| Description                 | 4 096 символов                  |
| Имя автора                  | 256 символов                    |
| Текст футера                | 2 048 символов                  |
| Fields                      | 25, каждое 256 / 1 024 символов |
| URL изображения и миниатюры | 500 символов, без SVG           |

### Переменные

Поля embed и сообщения поддерживают переменные в фигурных скобках, вроде `{streamer.name}`. У каждой платформы свой набор, указанный на её странице.

<Warning>
  **Неизвестная переменная превращается в пустой текст, а не в ошибку.** А поле embed, чей заголовок или значение оказалось пустым, полностью удаляется из сообщения.

  Так что поле, которое постоянно исчезает, почти всегда означает неправильно написанную переменную или ту, что не существует для этой платформы. Сверьте имя со списком на странице платформы — выпадающий список в редакторе является авторитетным.
</Warning>

<Note>
  Переменные стрима Twitch и Kick (`{stream.title}`, `{stream.viewers}` и т. д.) существуют только в **live**-объявлении. Использованные в оффлайн-embed они разворачиваются в ничто, и их поля исчезают.
</Note>

## Упоминания

Настроенная роль-упоминание пингуется как обычно.

<Warning>
  Упоминания внутри embed уведомления **не** ограничены настроенной ролью. Упоминание роли или пользователя, вставленное в custom message или тело embed, пингнёт. Аккуратно с `@everyone` в кастомном шаблоне.
</Warning>

## Две настройки, которые нельзя изменить

<Note>
  **Главный переключатель включения** и **цвет embed** для каждой платформы хранятся, но не имеют рабочего контрола в панели. Каждая платформа использует свой брендовый цвет по умолчанию, а главный переключатель нельзя переключить.

  Используйте переключатель [Настройки сервера](/ru/server-management/setup), чтобы выключить платформу, и custom embed — чтобы задать цвет.
</Note>

## Устранение неполадок

<AccordionGroup>
  <Accordion title="Вообще ничего не публикуется">
    По порядку:

    1. Переключатель платформы на странице **Настройка сервера** включён — по умолчанию выключен и отсюда невидим
    2. У сервера активен премиум **Basic** или выше
    3. Целевой канал ещё существует
    4. У Vetox там есть **View Channel + Send Messages + Embed Links**
    5. Для Twitch и Kick — стример уходил в оффлайн и возвращался после добавления
  </Accordion>

  <Accordion title="Приходит live-объявление, но не оффлайн">
    Оффлайн-объявления **выключены по умолчанию** на Twitch и Kick. Включите их на отслеживаемом стримере.
  </Accordion>

  <Accordion title="Поле embed постоянно исчезает">
    Его заголовок или значение развернулись в пустоту, и поле было удалено. Почти всегда — неправильно написанная переменная или переменная не той платформы.
  </Accordion>

  <Accordion title="Не могу добавить одиннадцатую запись">
    Десять на платформу — максимум, и он не масштабируется с тарифом. Уберите одну сначала.
  </Accordion>

  <Accordion title="Работало, а потом остановилось, когда премиум истёк">
    Конфигурация сохраняется, а не удаляется, и возобновляется автоматически. Но всё, опубликованное во время просрочки, уже помечено как просмотренное и не будет объявлено задним числом.
  </Accordion>

  <Accordion title="Очистка канала у стримера Twitch/Kick ничего не дала">
    Очищенное поле канала не отправляется, поэтому сохраняется предыдущий, и ошибки не показывается. Выберите другой канал вместо очистки.
  </Accordion>
</AccordionGroup>
