# 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 # цей файл ``` --- ## 🚀 Швидкий старт ```bash #  Клонувати репозиторій $ 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` ```dotenv 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`: ```ini [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 ``` ```bash 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` наразі не використовуються — інтервал та логування жорстко зашиті в коді. ---