226 lines
8.2 KiB
Markdown
226 lines
8.2 KiB
Markdown
# 🤖 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
|