MonoTG – Telegram‑бот сповіщень Monobank (single‑file edition)
MonoTG – це невеликий асинхронний бот на python‑telegram‑bot v20. Він підключається до API Monobank і надсилає в Telegram‑чат оперативні повідомлення про нові транзакції, дозволяє подивитися баланс, історію та курси валют. Усі функції реалізовано в одному файлі monobank_bot.py, тому розгортання займає кілька хвилин.
📂 Вміст репозиторію
MonoTG/
├─ monobank_bot.py # увесь код бота (~330 с.)
├─ .env.example # шаблон змінних середовища
├─ requirements.txt # залежності (ptb 20, aiohttp, python‑dotenv, filelock)
├─ .gitignore
└─ README.md # цей файл
🚀 Швидкий старт
# Клонувати репозиторій
$ git clone git@192.168.31.120:you/MonoTG.git && cd MonoTG
# Встановити залежності
$ pip install -r requirements.txt
# Скопіювати .env
$ cp .env.example .env && nano .env # впишіть свої токени
# Запустити бота
$ python monobank_bot.py
Після старту бот перейде у polling‑режим і почне перевіряти Monobank кожні 5 хвилин.
Приклад .env
TELEGRAM_BOT_TOKEN=123456:ABC…
MONO_TOKEN_MAIN=mono_api_token
ALLOWED_USERS=123456789,987654321
💬 Доступні команди
| Команда | Опис |
|---|---|
/start |
Привітання + допомога |
/balance |
Поточний баланс та доступний кредит |
/currency |
Курси USD/EUR → ₴ |
/history d |
Історія за d днів (≤ 30) |
/status |
Час останнього оновлення |
Сповіщення про нові транзакції приходять автоматично.
⚙️ Запуск як systemd‑служби (Linux)
Створіть файл /etc/systemd/system/monotg.service:
[Unit]
Description=MonoTG – Monobank → Telegram bot
After=network.target
[Service]
WorkingDirectory=/opt/MonoTG
User=bot # змініть за потреби
ExecStart=/opt/MonoTG/.venv/bin/python monobank_bot.py
EnvironmentFile=/opt/MonoTG/.env
Restart=always
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now monotg
🛠️ Нотатки по розробці
- Файл мітки останньої транзакції зберігається в
~/.mono-tg/last_time.txtпід lock‑файлом. /statusнаразі показує лише час останнього оновлення транзакцій із Monobank API.- Мультиакаунти не підтримуються — бот працює лише з одним токеном
MONO_TOKEN_MAIN. - Змінні
CHECK_INTERVALіLOG_LEVELнаразі не використовуються — інтервал та логування жорстко зашиті в коді.
Description
Languages
Python
100%