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

2.4 KiB

Channel Notifier

Telegram-бот на aiogram 3, который автоматически отправляет личное сообщение пользователям, подавшим заявку в закрытый канал.

Стек

  • Python 3.11
  • aiogram 3.28.2
  • SQLAlchemy 2.x
  • aiosqlite
  • Alembic
  • APScheduler
  • aiohttp
  • pydantic-settings
  • pytz

Быстрый старт

  1. Создание виртуального окружения:
python3.11 -m venv .venv
source .venv/bin/activate
  1. Установка зависимостей:
pip install -r requirements.txt
  1. Создание локального конфига:
cp .env.example .env
  1. Заполнение .env:
BOT_TOKEN=123456:telegram_bot_token
BOT_ADMIN_IDS=123456789
BOT_DATABASE_EXPORT=False

BOT_ADMIN_IDS можно указать через запятую: 123456789,987654321.

  1. Применение миграций:
python migrate.py up

Без аргументов python migrate.py только показывает подсказки. Бот сам миграции при старте не запускает, чтобы не менять схему базы неожиданно.

  1. Запуск бота:
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. Это специально: база может содержать персональные данные, поэтому экспорт надо включать руками и осознанно.