- Создан полнофункциональный 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 - полная сводка проекта
8.2 KiB
8.2 KiB
🤖 Telegram Bot для поиска и загрузки фильмов
📋 Описание
Telegram бот полностью дублирует функциональность веб-интерфейса для поиска и загрузки фильмов через торренты. Бот интегрирован с существующими API endpoints и предоставляет удобный интерфейс для работы в Telegram.
🎯 Функциональность
Основные команды:
/start- Запуск бота и приветствие/help- Справка по использованию/find- Начать поиск фильма
Процесс работы:
- Поиск фильма - пользователь вводит название фильма
- Выбор фильма - из результатов поиска выбирается нужный фильм с постером
- Поиск торрентов - система ищет доступные торренты на всех трекерах
- Выбор торрента - пользователь выбирает нужный торрент из списка
- Автоматическое добавление - торрент автоматически добавляется в 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- свободное состояние
🛠️ Устранение неполадок
Проблема: Бот не отвечает
Решение:
- Проверьте, что основное приложение запущено на порту 8089
- Убедитесь, что все Docker контейнеры работают
- Проверьте логи:
docker logs telegram-bot
Проблема: Не работает поиск фильмов
Решение:
- Проверьте подключение к TMDB API
- Убедитесь, что API ключ правильный
- Проверьте интернет-соединение
Проблема: Не работает поиск торрентов
Решение:
- Проверьте, что TorAPI контейнеры запущены
- Убедитесь, что основное приложение доступно
- Проверьте логи:
docker logs movie-search
Проблема: Торренты не добавляются в qBittorrent
Решение:
- Проверьте, что qBittorrent запущен
- Убедитесь, что учетные данные правильные
- Проверьте доступность 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"
🔒 Безопасность
Рекомендации:
- Не публикуйте токен бота в открытом доступе
- Используйте переменные окружения для конфиденциальных данных
- Регулярно обновляйте зависимости
- Мониторьте использование бота
📈 Производительность
Оптимизация:
- Ограничьте количество одновременных пользователей
- Используйте кэширование для часто запрашиваемых данных
- Мониторьте использование ресурсов
- Настройте лимиты для API запросов
🆘 Поддержка
При возникновении проблем:
- Проверьте логи всех сервисов
- Убедитесь, что все порты доступны
- Проверьте настройки сети
- Создайте 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