MonoTG/README.md
2025-05-29 11:44:58 +03:00

3.5 KiB
Raw Blame History

MonoTG Telegramбот сповіщень Monobank (singlefile edition)

MonoTG це невеликий асинхронний бот на pythontelegrambot v20. Він підключається до API Monobank і надсилає в Telegramчат оперативні повідомлення про нові транзакції, дозволяє подивитися баланс, історію та курси валют. Усі функції реалізовано в одному файлі monobank_bot.py, тому розгортання займає кілька хвилин.


📂 Вміст репозиторію

MonoTG/
 ├─ monobank_bot.py      # увесь код бота (~330 с.)
 ├─ .env.example         # шаблон змінних середовища
 ├─ requirements.txt     # залежності (ptb 20, aiohttp, pythondotenv, 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 наразі не використовуються — інтервал та логування жорстко зашиті в коді.