# 🤖 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
