findFilms/app/TELEGRAM_BOT_README.md

226 lines
8.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

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.

# 🤖 Telegram Bot для поиска и загрузки фильмов
## 📋 Описание
Telegram бот полностью дублирует функциональность веб-интерфейса для поиска и загрузки фильмов через торренты. Бот интегрирован с существующими API endpoints и предоставляет удобный интерфейс для работы в Telegram.
## 🎯 Функциональность
### Основные команды:
- `/start` - Запуск бота и приветствие
- `/help` - Справка по использованию
- `/find` - Начать поиск фильма
### Процесс работы:
1. **Поиск фильма** - пользователь вводит название фильма
2. **Выбор фильма** - из результатов поиска выбирается нужный фильм с постером
3. **Поиск торрентов** - система ищет доступные торренты на всех трекерах
4. **Выбор торрента** - пользователь выбирает нужный торрент из списка
5. **Автоматическое добавление** - торрент автоматически добавляется в qBittorrent
## 🚀 Установка и запуск
### 1. Локальный запуск (для тестирования)
```bash
# Установка зависимостей
pip install -r requirements.txt
# Запуск основного приложения (в отдельном терминале)
python app.py
# Запуск Telegram бота
python run_telegram_bot.py
```
### 2. Запуск через Docker
```bash
# Запуск всех сервисов включая Telegram бота
docker compose up -d --build
# Проверка статуса
docker ps
```
### 3. Проверка работы
```bash
# Тестирование бота
python test_telegram_bot.py
```
## ⚙️ Конфигурация
### Переменные окружения:
```bash
# Telegram Bot Token (уже настроен)
TELEGRAM_BOT_TOKEN=7662650066:AAFgsfYJNYgpcSHaSe6fspsjqmhMkOBT1s4
# TMDB API
TMDB_API_KEY=6d58225585fb77af5945a964de41849f
# Torrent APIs
TORRENT_SEARCH_URL=http://localhost:8443
TORRENT_ADD_URL=http://localhost:8088
# qBittorrent
QBITTORRENT_HOST=localhost
QBITTORRENT_PORT=8080
QBITTORRENT_USERNAME=admin
QBITTORRENT_PASSWORD=vrubel07
```
## 🎬 Использование
### 1. Начало работы
- Найдите бота в Telegram: `@your_bot_username`
- Отправьте команду `/start`
- Следуйте инструкциям бота
### 2. Поиск фильма
- Отправьте команду `/find` или просто введите название фильма
- Выберите нужный фильм из списка результатов
- Просмотрите информацию о фильме с постером
### 3. Поиск торрентов
- Нажмите кнопку "🔍 Найти торренты"
- Дождитесь результатов поиска
- Выберите нужный торрент из списка
### 4. Скачивание
- Нажмите на нужный торрент
- Торрент автоматически добавится в qBittorrent
- Получите уведомление о начале загрузки
## 🔧 Технические детали
### Архитектура:
- **Telegram Bot API** - для взаимодействия с пользователями
- **FastAPI** - основной веб-сервис с API endpoints
- **TMDB API** - поиск информации о фильмах
- **TorAPI** - поиск торрентов на трекерах
- **qBittorrent** - клиент для загрузки торрентов
### Файлы проекта:
- `telegram_bot.py` - основной код бота
- `run_telegram_bot.py` - скрипт запуска
- `test_telegram_bot.py` - тестирование
- `Dockerfile.telegram` - Docker образ для бота
- `docker-compose.yml` - конфигурация Docker Compose
### Состояния пользователя:
- `waiting_movie_title` - ожидание названия фильма
- `movie_selected` - фильм выбран, ожидание действий
- `None` - свободное состояние
## 🛠️ Устранение неполадок
### Проблема: Бот не отвечает
**Решение:**
1. Проверьте, что основное приложение запущено на порту 8089
2. Убедитесь, что все Docker контейнеры работают
3. Проверьте логи: `docker logs telegram-bot`
### Проблема: Не работает поиск фильмов
**Решение:**
1. Проверьте подключение к TMDB API
2. Убедитесь, что API ключ правильный
3. Проверьте интернет-соединение
### Проблема: Не работает поиск торрентов
**Решение:**
1. Проверьте, что TorAPI контейнеры запущены
2. Убедитесь, что основное приложение доступно
3. Проверьте логи: `docker logs movie-search`
### Проблема: Торренты не добавляются в qBittorrent
**Решение:**
1. Проверьте, что qBittorrent запущен
2. Убедитесь, что учетные данные правильные
3. Проверьте доступность qBittorrent API
## 📊 Мониторинг
### Проверка статуса:
```bash
# Все контейнеры
docker ps
# Логи бота
docker logs telegram-bot --tail 50
# Логи основного приложения
docker logs movie-search --tail 50
# Статус qBittorrent
sudo systemctl status qbittorrent
```
### Тестирование API:
```bash
# Тест основного API
curl http://localhost:8089/api/search/terminator
# Тест TMDB
curl "https://api.themoviedb.org/3/search/movie?api_key=6d58225585fb77af5945a964de41849f&query=terminator"
```
## 🔒 Безопасность
### Рекомендации:
1. Не публикуйте токен бота в открытом доступе
2. Используйте переменные окружения для конфиденциальных данных
3. Регулярно обновляйте зависимости
4. Мониторьте использование бота
## 📈 Производительность
### Оптимизация:
1. Ограничьте количество одновременных пользователей
2. Используйте кэширование для часто запрашиваемых данных
3. Мониторьте использование ресурсов
4. Настройте лимиты для API запросов
## 🆘 Поддержка
При возникновении проблем:
1. Проверьте логи всех сервисов
2. Убедитесь, что все порты доступны
3. Проверьте настройки сети
4. Создайте issue в репозитории проекта
## ✅ Статус
**🟢 TELEGRAM BOT ПОЛНОСТЬЮ ФУНКЦИОНАЛЕН**
- ✅ Поиск фильмов работает
- ✅ Отображение постеров работает
- ✅ Поиск торрентов работает
- ✅ Добавление в qBittorrent работает
- ✅ Интерактивные кнопки работают
- ✅ Обработка ошибок работает
- ✅ Docker контейнеризация работает
## 🚀 Быстрый старт
```bash
# 1. Запуск всех сервисов
docker compose up -d --build
# 2. Проверка статуса
docker ps
# 3. Тестирование
python test_telegram_bot.py
# 4. Использование
# Найдите бота в Telegram и отправьте /start
```
---
**Версия**: 1.0
**Дата**: 2025-01-06
**Автор**: AI Assistant