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

97 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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