> ## 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="/uk/notifications/twitch" />

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

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

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

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

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

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

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

## Мають виконуватися три умови

Це найпоширеніша причина того, що сповіщення «не працюють». Потрібні всі три, і лише перша видима на самій сторінці сповіщень.

<Steps>
  <Step title="Преміум Basic або вище">
    Кожна платформа вимагає щонайменше тарифу **Basic**. Спроба додати підписку на Starter відхиляється з повідомленням, у якому названо платформу.

    Перевірка виконується двічі — коли ви додаєте елемент і в момент, коли мало б бути надіслано оголошення.
  </Step>

  <Step title="Перемикач платформи в Налаштуванні сервера">
    Кожна платформа має власний перемикач на сторінці [Налаштування сервера](/uk/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 | Відстежує, у ефірі стрім чи ні, і оголошує в момент *зміни* стану |
| **New content** | Інші шість   | Відстежує окремі елементи й оголошує кожен новий один раз         |

<Warning>
  **Додавання стримера, який уже в ефірі, нічого не публікує.** Live-state трекер спрацьовує лише на переході 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">
    Оголошуються лише оригінальні пости. Відповіді й репости фільтруються двічі. **Quote-пости не фільтруються** і будуть оголошені.
  </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**    | Повний контроль над заголовком, описом, кольором, автором, футером, thumbnail, зображенням і полями                            |
| **Custom message**  | Звичайний текст як тіло embed. **Доступно лише в RSS і Подкастах**                                                             |

<Note>
  Керування custom message є лише на сторінках RSS і Podcast. Інші шість платформ використовують custom embed.
</Note>

### Обмеження розмірів embed

| Поле                       | Ліміт                         |
| -------------------------- | ----------------------------- |
| Заголовок                  | 256 символів                  |
| Опис                       | 4 096 символів                |
| Ім'я автора                | 256 символів                  |
| Текст футера               | 2 048 символів                |
| Поля                       | 25, кожне 256 / 1 024 символи |
| URL зображення й thumbnail | 500 символів, без SVG         |

### Змінні

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

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

  Тож поле, що постійно зникає, майже завжди означає неправильно написану змінну або таку, якої немає для цієї платформи. Перевіряйте назву за списком на сторінці платформи — випадаючий список у редакторі — джерело істини.
</Warning>

<Note>
  Змінні стрімів Twitch і Kick (`{stream.title}`, `{stream.viewers}` тощо) існують лише в **live**-оголошенні. У offline-embed вони перетворюються на порожнє й поле зникає.
</Note>

## Згадування

Роль, яку ви налаштували, згадується як зазвичай.

<Warning>
  Згадування в embed сповіщення **не** обмежуються заданою роллю. Згадка ролі або користувача в custom message або тілі embed спрацює. Обережно з `@everyone` у custom-шаблоні.
</Warning>

## Два налаштування, які не змінюються

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

  Використовуйте перемикач у [Налаштуванні сервера](/uk/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-оголошення, але не offline">
    Offline-оголошення **вимкнені за замовчуванням** на Twitch і Kick. Увімкніть їх на конкретному стримері.
  </Accordion>

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

  <Accordion title="Не можу додати одинадцятий елемент">
    Десять на платформу — максимум, і не масштабується з тарифом. Спершу видаліть один.
  </Accordion>

  <Accordion title="Працювало, а потім перестало після завершення преміуму">
    Конфігурація зберігається, а не видаляється, і відновлюється автоматично. Але все, опубліковане в період простроченого преміуму, вже позначено переглянутим і не буде оголошено заднім числом.
  </Accordion>

  <Accordion title="Очищення каналу для стримера Twitch або Kick нічого не зробило">
    Порожнє поле каналу не надсилається, тож зберігається попередній канал і жодної помилки не показується. Оберіть інший канал замість очищення.
  </Accordion>
</AccordionGroup>
