refactor: split into two stacks - searchFilms/ (NL) and app/ (RU)
This commit is contained in:
parent
6ef3a10d0d
commit
51348a9d23
36 changed files with 326 additions and 1271 deletions
226
app/TELEGRAM_BOT_README.md
Normal file
226
app/TELEGRAM_BOT_README.md
Normal file
|
|
@ -0,0 +1,226 @@
|
|||
# 🤖 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue