findFilms/app/TELEGRAM_BOT_README.md

227 lines
8.2 KiB
Markdown
Raw Permalink Normal View History

Подключили Telegram бот с полной функциональностью - Создан полнофункциональный Telegram бот для поиска фильмов и торрентов - Бот дублирует всю функциональность веб-интерфейса - Реализован поиск фильмов через TMDB API с постерами - Добавлен поиск торрентов на всех трекерах (RuTracker, Kinozal, RuTor, NoNameClub) - Автоматическое добавление торрентов в qBittorrent - Интерактивные кнопки для выбора фильмов и торрентов - Обработка ошибок и пользовательских состояний - Docker контейнеризация с правильной сетевой конфигурацией - Увеличен таймаут HTTP запросов до 60 секунд - Добавлена документация и скрипты запуска Команды бота: - /start, /help - справка - /find - начать поиск фильма Файлы: - telegram_bot.py - основной код бота - run_telegram_bot.py - скрипт запуска - Dockerfile.telegram - Docker образ для бота - docker-compose.yml - обновлен с сервисом бота - requirements.txt - добавлена зависимость python-telegram-bot - README.md - обновлена документация - PROJECT_SUMMARY.md - полная сводка проекта
2025-10-09 12:39:19 +03:00
# 🤖 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