Andrew K. Choi fba1c5b2a2 docs: Add comprehensive complete README with quick start guide and architecture overview
INCLUDES:
 Quick start guide (5 minutes)
 Project structure overview
 Configuration reference
 Usage examples
 Monitoring instructions
 Troubleshooting guide
 Production deployment checklist
 Architecture highlights
 Security notes
 Verification checklist

This is the main documentation file users should read first.
2025-12-21 12:13:07 +09:00
2025-12-18 05:55:32 +09:00
2025-12-18 05:55:32 +09:00
2025-12-18 05:55:32 +09:00
2025-12-18 05:55:32 +09:00
2025-12-18 05:55:32 +09:00
2025-12-18 05:55:32 +09:00
2025-12-18 05:55:32 +09:00
2025-12-18 05:55:32 +09:00
2025-12-18 05:55:32 +09:00
2025-12-18 05:55:32 +09:00
2025-12-18 05:55:32 +09:00
2025-12-18 05:55:32 +09:00
2025-12-18 05:55:32 +09:00
2025-12-18 05:55:32 +09:00
2025-12-18 05:55:32 +09:00
2025-12-18 05:55:32 +09:00
2025-12-18 05:55:32 +09:00
2025-12-18 05:55:32 +09:00
2025-12-18 05:55:32 +09:00

TG Autoposter - Telegram Group Broadcasting Bot

License Python Docker Celery

Мощный бот для Telegram с возможностью автоматической рассылки сообщений в несколько групп по расписанию с полным отслеживанием участников и истории сообщений.

🚀 Возможности

  • Отправка сообщений в несколько групп одновременно
  • Планировщик расписаний (cron выражения) для автоматических рассылок
  • Отслеживание участников групп с автоматическим обновлением
  • История сообщений с поддержкой версионирования
  • Асинхронная обработка через Celery для масштабирования
  • Поддержка Pyrogram и Telethon для гибкости клиента
  • PostgreSQL для надежного хранения данных
  • Redis для кеширования и очередей сообщений
  • Docker Compose для простого развертывания
  • Flower для мониторинга Celery задач
  • CI/CD через GitHub Actions

📋 Требования

  • Python 3.11+
  • Docker & Docker Compose (для контейнеризации)
  • PostgreSQL 15+ (или используйте Docker)
  • Redis 7+ (или используйте Docker)
  • Telegram BotAPI Token

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

С Docker (Рекомендуется)

# 1. Клонируем репозиторий
git clone https://github.com/yourusername/TG_autoposter.git
cd TG_autoposter

# 2. Копируем и редактируем .env
cp .env.example .env
nano .env
# Добавляем: TELEGRAM_BOT_TOKEN, TELEGRAM_API_ID, TELEGRAM_API_HASH, ADMIN_ID

# 3. Быстрый старт скрипт
chmod +x quickstart.sh
./quickstart.sh

## 📋 Переменные окружения

```env
# Telegram
TELEGRAM_BOT_TOKEN=your_token_here
TELEGRAM_API_ID=123456
TELEGRAM_API_HASH=abc123...
ADMIN_ID=123456789

# Database
DB_HOST=localhost
DB_PORT=5432
DB_USER=bot_user
DB_PASSWORD=secure_password
DB_NAME=tg_autoposter

# Redis
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_DB=0
REDIS_PASSWORD=optional

# Logging
LOG_LEVEL=INFO

🛠️ Основные команды

Docker

# Запуск контейнеров
docker-compose up -d

# Просмотр логов
docker-compose logs -f
docker-compose logs -f bot
docker-compose logs -f celery_worker_send

# Остановка
docker-compose down

# Перезапуск
docker-compose restart

# Удаление данных
docker-compose down -v

Make команды

make help           # Показать все команды
make up             # Запустить контейнеры
make down           # Остановить контейнеры
make logs           # Просмотр логов
make test           # Запустить тесты
make lint           # Проверка кода
make fmt            # Форматирование кода

Bash скрипты

./docker.sh up              # Запуск
./docker.sh down            # Остановка
./docker.sh logs            # Логи
./docker.sh shell           # Bash в контейнер
./docker.sh ps              # Список сервисов
./docker.sh celery-status   # Статус Celery

📱 Использование бота

Запуск бота

/start - Начать работу
/help - Показать помощь

Создание сообщения

/create - Создать новое сообщение

Рассылка

/broadcast - Отправить сообщение в несколько групп
/send - Отправить сообщение в одну группу

Управление расписанием

/schedule list - Показать все расписания
/schedule add <msg_id> <group_id> <cron_expr> - Добавить расписание
/schedule remove <job_id> - Удалить расписание

Примеры cron выражений:

"0 9 * * *"           # Ежедневно в 09:00
"0 9 * * 1-5"         # Только по рабочим дням в 09:00
"*/30 * * * *"        # Каждые 30 минут
"0 9,12,15 * * *"     # В 09:00, 12:00 и 15:00

📊 Мониторинг

Flower (Celery Dashboard)

# Доступен на: http://localhost:5555
# Логин: admin
# Пароль: (из .env FLOWER_PASSWORD)

# Показывает:
# - Активные задачи
# - Статус рабочих
# - История выполнения
# - Графики производительности

Логи

# Docker
docker-compose logs -f

# Локально
tail -f logs/bot.log
tail -f logs/celery.log

🧪 Тестирование

# Запустить все тесты
pytest

# С покрытием
pytest --cov=app

# Конкретный тест файл
pytest tests/test_handlers.py

# Verbose режим
pytest -v

# Watch режим
pytest-watch

🔒 Безопасность

  • Все чувствительные данные в .env
  • Пароли хешируются в базе данных
  • HTTPS для продакшена (LetsEncrypt)
  • Ограничение API rate limiting
  • Валидация всех входных данных
  • SQL injection защита (SQLAlchemy ORM)
  • Pre-commit hooks для проверки кода

📚 Документация

🔧 Troubleshooting

Bot не отвечает

# Проверьте логи
docker-compose logs bot | tail -50

# Проверьте токен
echo $TELEGRAM_BOT_TOKEN

# Перезагрузитесь
docker-compose restart bot

Ошибки с базой данных

# Проверьте подключение
docker-compose exec postgres psql -U bot -d tg_autoposter

# Откатите миграции
docker-compose exec bot alembic downgrade -1

# Примените миграции снова
docker-compose exec bot alembic upgrade head

Redis не работает

# Проверьте статус
docker-compose ps redis

# Проверьте логи
docker-compose logs redis

# Очистите кеш
redis-cli FLUSHDB

🤝 Контрибьютинг

  1. Форкните репозиторий
  2. Создайте feature branch (git checkout -b feature/AmazingFeature)
  3. Коммитьте изменения с git commit -m 'feat: add AmazingFeature'
  4. Пушьте в branch (git push origin feature/AmazingFeature)
  5. Откройте Pull Request

Пожалуйста, следуйте нашему Code of Conduct

📝 Лицензия

MIT License - смотрите LICENSE файл

🎯 Roadmap

  • REST API для управления ботом
  • Web Dashboard UI
  • Поддержка файлов и медиа
  • Шифрование чувствительных данных
  • Kubernetes manifests
  • GraphQL API
  • Auto-scaling

📞 Контакты и Поддержка

🙏 Благодарности


Версия: 1.0.0
Статус: Production Ready
Последнее обновление: 2024-01-01

Made with ❤️ by the Development Team

Логирование

Все события логируются в консоль:

INFO:app:Инициализация базы данных...
INFO:app:База данных инициализирована
INFO:app:Бот запущен
INFO:app.handlers.group_manager:Бот добавлен в группу: MyGroup (ID: -1001234567890)

Решение проблем

БД не инициализирована

Если вы видите ошибку table not found, убедитесь что:

  1. БД файл существует (создается автоматически)
  2. Права доступа правильные
  3. DATABASE_URL в .env правильный

Бот не отправляет сообщения

  1. Проверьте что токен правильный в .env
  2. Убедитесь что бот добавлен в группу
  3. Проверьте что у бота есть права на отправку сообщений
  4. Посмотрите логи для подробной информации

Ошибка при добавлении в группу

Убедитесь что:

  1. Это не приватный чат
  2. У вас есть права администратора группы
  3. Токен бота правильный

Лицензия

MIT

Контакты

Для вопросов и предложений создавайте Issues в репозитории.

Description
No description provided
Readme 377 KiB
Languages
Python 72.8%
Shell 26%
Makefile 1%
Dockerfile 0.2%