Files
Channel-Notifier/README.md
T
2026-07-30 10:30:41 +00:00

77 lines
2.4 KiB
Markdown

# Channel Notifier
Telegram-бот на aiogram 3, который автоматически отправляет личное сообщение пользователям, подавшим заявку в закрытый канал.
## Стек
- Python 3.11
- aiogram 3.28.2
- SQLAlchemy 2.x
- aiosqlite
- Alembic
- APScheduler
- aiohttp
- pydantic-settings
- pytz
## Быстрый старт
1. Создание виртуального окружения:
```bash
python3.11 -m venv .venv
source .venv/bin/activate
```
2. Установка зависимостей:
```bash
pip install -r requirements.txt
```
3. Создание локального конфига:
```bash
cp .env.example .env
```
4. Заполнение `.env`:
```env
BOT_TOKEN=123456:telegram_bot_token
BOT_ADMIN_IDS=123456789
BOT_DATABASE_EXPORT=False
```
`BOT_ADMIN_IDS` можно указать через запятую: `123456789,987654321`.
5. Применение миграций:
```bash
python migrate.py up
```
Без аргументов `python migrate.py` только показывает подсказки. Бот сам миграции при старте не запускает, чтобы не менять схему базы неожиданно.
6. Запуск бота:
```bash
python main.py
```
## Настройки
| Параметр | Что делает |
| --- | --- |
| `BOT_TOKEN` | Токен Telegram-бота от BotFather |
| `BOT_ADMIN_IDS` | Telegram ID админов, один или несколько через запятую |
| `BOT_DATABASE_EXPORT` | Разрешает отправку файла БД админам через `/db` и ежедневный автобэкап |
| `BOT_STATUS_NOTIFICATION` | Включает уведомление админов о запуске |
| `BOT_TIMEZONE` | Временная зона бота |
| `BOT_USER_CACHE_TTL` | Время кеширования пользователя в middleware |
| `BOT_THROTTLE_RATE` | Базовая задержка антиспама |
| `PATH_DATABASE` | Путь к SQLite-базе |
| `PATH_LOGS` | Путь к файлу логов |
По умолчанию `BOT_DATABASE_EXPORT=False`. Это специально: база может содержать персональные данные, поэтому экспорт надо включать руками и осознанно.