findFilms/app/TELEGRAM_BOT_README.md

8.2 KiB
Raw Permalink Blame History

🤖 Telegram Bot для поиска и загрузки фильмов

📋 Описание

Telegram бот полностью дублирует функциональность веб-интерфейса для поиска и загрузки фильмов через торренты. Бот интегрирован с существующими API endpoints и предоставляет удобный интерфейс для работы в Telegram.

🎯 Функциональность

Основные команды:

  • /start - Запуск бота и приветствие
  • /help - Справка по использованию
  • /find - Начать поиск фильма

Процесс работы:

  1. Поиск фильма - пользователь вводит название фильма
  2. Выбор фильма - из результатов поиска выбирается нужный фильм с постером
  3. Поиск торрентов - система ищет доступные торренты на всех трекерах
  4. Выбор торрента - пользователь выбирает нужный торрент из списка
  5. Автоматическое добавление - торрент автоматически добавляется в qBittorrent

🚀 Установка и запуск

1. Локальный запуск (для тестирования)

# Установка зависимостей
pip install -r requirements.txt

# Запуск основного приложения (в отдельном терминале)
python app.py

# Запуск Telegram бота
python run_telegram_bot.py

2. Запуск через Docker

# Запуск всех сервисов включая Telegram бота
docker compose up -d --build

# Проверка статуса
docker ps

3. Проверка работы

# Тестирование бота
python test_telegram_bot.py

⚙️ Конфигурация

Переменные окружения:

# 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

📊 Мониторинг

Проверка статуса:

# Все контейнеры
docker ps

# Логи бота
docker logs telegram-bot --tail 50

# Логи основного приложения
docker logs movie-search --tail 50

# Статус qBittorrent
sudo systemctl status qbittorrent

Тестирование API:

# Тест основного 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 контейнеризация работает

🚀 Быстрый старт

# 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