- Оновлює закріплене повідомлення із PNG‑зображенням у підключених каналах/чатах кожні 5 хвилин.
- Канал реєструється автоматично після додавання бота. Конфіг зберігається в
graphenko-chats.json. - Після успішних команд бот видаляє саме командне повідомлення. Якщо бота прибрано з каналу — запис видаляється автоматично.
BOT_TOKEN(GitHub Secret або .env локально).- Бот має бути адміністратором із правом Pin messages і видалення повідомлень.
- Додайте бота до каналу/чату (бот надішле вітання і зареєструє
chat_id). - У каналі надішліть команду з URL зображення:
/graphenko_image https://raw.githubusercontent.com/Baskerville42/outage-data-ua/refs/heads/main/images/kyiv/gpv-3-2-emergency.png
Вимоги до URL: починається з .../images/ і закінчується на .png; ресурс має бути доступний. 3) За потреби встановіть підпис:
- Власний: /graphenko_caption Мій власний підпис
- За замовчуванням: /graphenko_caption -default
/graphenko_image <url.png>— зберігає image_url, видаляє вітальне повідомлення, надсилає/оновлює і закріплює пост./graphenko_caption <текст>— зберігає підпис для цього чату./graphenko_caption -default— прибирає кастомний підпис, повертає стандартний.
- Стандартний підпис (якщо свій не задано): "⚡️ Графік стабілізаційних вимкнень. Це повідомлення оновлюється щогодини автоматично." Бот автоматично додає рядок: "Оновлено: YYYY-MM-DD HH:mm" (час Europe/Kyiv).
- Кеш‑бастинг: до URL додається ?cb=, щоб обійти кеш Telegram.
- Якщо "message is not modified" — вважається успішно; бот усе одно перевіряє пін.
- Якщо API повертає 403 (бот більше не в каналі) або отримано my_chat_member зі статусом left/kicked — канал автоматично розреєстровується (видаляється з файлу).
- Формат: масив об’єктів
{ "<chat_id>": { image_url?, caption?, message_id?, welcome_message_id?, message_thread_id? } }. - message_id і welcome_message_id веде бот; вручну їх не змінюйте.
- caption зберігається лише коли явно встановлений; якщо поля немає — використовується стандартний підпис.
- message_thread_id — необов’язковий ідентифікатор треду (форум‑топіка) у супергрупі. Якщо заданий, нові повідомлення із зображенням надсилатимуться саме в цей тред та там же закріплюватимуться. Корисно для чатів із увімкненими топіками.
.env: BOT_TOKEN=YOUR_TELEGRAM_BOT_TOKEN- Команда:
node index.mjs
.github/workflows/run-graphenko-bot.ymlзапускається кожні 5 хвилин та вручну. Файлgraphenko-chats.jsonє єдиним джерелом конфігурації і автоматично оновлюється під час роботи скрипта.
