97 lines
3.5 KiB
Markdown
97 lines
3.5 KiB
Markdown
# 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` наразі не використовуються — інтервал та логування жорстко зашиті в коді.
|
||
|
||
---
|