260 lines
11 KiB
Markdown
260 lines
11 KiB
Markdown
# 🎬 searchTorrentDownl - Полная сводка проекта
|
||
|
||
## ✅ Статус: ЗАВЕРШЕН И РАБОТАЕТ
|
||
|
||
**Дата завершения**: 9 октября 2025
|
||
**Версия**: 1.0
|
||
**Статус**: 🟢 ПОЛНОСТЬЮ ФУНКЦИОНАЛЕН
|
||
|
||
## 🎯 Что было реализовано
|
||
|
||
### 1. **Telegram Bot** 🤖
|
||
- **Полная функциональность** веб-интерфейса в Telegram
|
||
- **Команды**: `/start`, `/help`, `/find`
|
||
- **Интерактивные кнопки** для выбора фильмов и торрентов
|
||
- **Поиск фильмов** через TMDB API с постерами
|
||
- **Поиск торрентов** на всех трекерах
|
||
- **Автоматическое добавление** в qBittorrent
|
||
- **Обработка ошибок** и пользовательских состояний
|
||
|
||
### 2. **Веб-интерфейс** 🌐
|
||
- **Адаптивный дизайн** для всех устройств
|
||
- **Поиск фильмов** с постерами и описаниями
|
||
- **Поиск торрентов** с детальной информацией
|
||
- **Однокликовое добавление** в qBittorrent
|
||
|
||
### 3. **API Endpoints** 🔌
|
||
- `GET /api/search/{movie_title}` - поиск фильмов
|
||
- `GET /api/torrents/{movie_title}` - поиск торрентов
|
||
- `GET /api/torrent/id/{torrent_id}` - информация о торренте
|
||
- `POST /api/add-torrent` - добавление торрента
|
||
|
||
### 4. **Docker контейнеризация** 🐳
|
||
- **movie-search** - основное веб-приложение
|
||
- **telegram-bot** - Telegram бот
|
||
- **TorAPI-Search** - поиск торрентов
|
||
- **TorAPI-qBittorrent** - получение magnet ссылок
|
||
|
||
## 🚀 Как использовать
|
||
|
||
### Telegram Bot:
|
||
1. Найдите бота в Telegram: `@your_bot_username`
|
||
2. Отправьте `/start` или `/find`
|
||
3. Введите название фильма
|
||
4. Выберите фильм из списка
|
||
5. Нажмите "Найти торренты"
|
||
6. Выберите нужный торрент
|
||
7. Торрент автоматически добавится в qBittorrent
|
||
|
||
### Веб-интерфейс:
|
||
1. Откройте http://localhost:8089
|
||
2. Введите название фильма
|
||
3. Выберите фильм из результатов
|
||
4. Выберите торрент для скачивания
|
||
|
||
## 📊 Технические детали
|
||
|
||
### Архитектура (два стека):
|
||
```
|
||
┌─────────────────────────────────────────┐
|
||
│ searchFilms/ — NL-хост (72.56.91.135) │
|
||
│ ┌──────────┐ ┌──────────────────────┐ │
|
||
│ │ tmdb- │ │ torapi-search │ │
|
||
│ │ proxy │ │ (rutracker, kinozal, │ │
|
||
│ │ (:8001) │ │ rutor, nnmclub) │ │
|
||
│ └────┬─────┘ └──────────┬───────────┘ │
|
||
│ │ │ │
|
||
│ ┌────┴───────────────────┴───────────┐ │
|
||
│ │ torapi-qbittorrent (:8444) │ │
|
||
│ │ bridge → magnet ссылки │ │
|
||
│ └────────────┬────────────────────────┘ │
|
||
└───────────────┼──────────────────────────┘
|
||
│ интернет
|
||
┌───────────────┼──────────────────────────┐
|
||
│ │ app/ — RU-хост │
|
||
│ ┌────────────┴──────────────────────┐ │
|
||
│ │ movie-search (:8089) FastAPI API │ │
|
||
│ │ веб-интерфейс + API endpoints │ │
|
||
│ └────┬──────────────────────┬───────┘ │
|
||
│ │ │ │
|
||
│ ┌────┴──────────┐ ┌──────┴────────┐ │
|
||
│ │ qBittorrent │ │ telegram-bot │ │
|
||
│ │ (192.168.8.177│ │ │ │
|
||
│ │ :8080) │ │ @your_bot │ │
|
||
│ └───────────────┘ └───────────────┘ │
|
||
└─────────────────────────────────────────┘
|
||
```
|
||
|
||
### Поддерживаемые трекеры:
|
||
- **RuTracker** (rutracker.org)
|
||
- **Kinozal** (kinozal.tv)
|
||
- **RuTor** (rutor.info)
|
||
- **NoNameClub** (nnmclub.to)
|
||
|
||
### Технологии:
|
||
- **Backend**: FastAPI, Python 3.12
|
||
- **Frontend**: HTML, CSS, JavaScript
|
||
- **Telegram**: python-telegram-bot 20.7
|
||
- **Database**: TMDB API
|
||
- **Torrents**: TorAPI
|
||
- **Containerization**: Docker, Docker Compose
|
||
- **Client**: qBittorrent-nox
|
||
|
||
## 🔧 Установка и запуск
|
||
|
||
### Автоматическое развертывание (рекомендуется):
|
||
```bash
|
||
# 1. Клонирование репозитория
|
||
git clone <repository-url>
|
||
cd searchTorrentDownl
|
||
|
||
# 2. Запуск скрипта развертывания
|
||
chmod +x deploy.sh
|
||
./deploy.sh
|
||
```
|
||
|
||
### Ручное развертывание:
|
||
```bash
|
||
# 1. Клонирование репозитория
|
||
git clone <repository-url>
|
||
cd searchTorrentDownl
|
||
|
||
# 2. Установка зависимостей (см. README.md)
|
||
# 3. Создание сети Docker
|
||
docker network create torrentvideo_default
|
||
|
||
# 4. Настройка конфигурации
|
||
cp env.example .env
|
||
nano .env
|
||
|
||
# 5. Запуск всех сервисов
|
||
docker compose up -d --build
|
||
|
||
# 6. Проверка статуса
|
||
docker ps
|
||
```
|
||
|
||
### Доступ к сервисам:
|
||
- **Веб-интерфейс**: http://localhost:8089
|
||
- **qBittorrent**: http://localhost:8080 (admin/vrubel07)
|
||
- **Telegram Bot**: @your_bot_username
|
||
|
||
## 📁 Структура файлов
|
||
|
||
```
|
||
findFilms/
|
||
├── README.md # Инструкция по запуску
|
||
├── PROJECT_SUMMARY.md # Архитектура проекта
|
||
├── .gitignore
|
||
│
|
||
├── searchFilms/ # 🌍 NL-стек (Голландия, 72.56.91.135)
|
||
│ ├── docker-compose.yml # tmdb-proxy + torapi-search + bridge
|
||
│ ├── .env.example
|
||
│ └── tmdb-proxy/ # build-зависимость
|
||
│ ├── Dockerfile
|
||
│ └── tmdb_proxy.py
|
||
│
|
||
└── app/ # 🏠 RU-стек (Россия, 192.168.8.173)
|
||
├── docker-compose.yml # movie-search + telegram-bot
|
||
├── .env.example
|
||
├── app.py # FastAPI приложение
|
||
├── telegram_bot.py # Telegram бот
|
||
├── Dockerfile
|
||
├── Dockerfile.telegram
|
||
└── templates/ # HTML шаблоны
|
||
```
|
||
|
||
## 🎯 Ключевые особенности
|
||
|
||
### 1. **Полная интеграция**
|
||
- Telegram бот полностью дублирует функциональность веб-интерфейса
|
||
- Единая кодовая база для всех компонентов
|
||
- Синхронизация данных между интерфейсами
|
||
|
||
### 2. **Умный поиск**
|
||
- Поиск по русским и английским названиям
|
||
- Генерация вариантов поисковых запросов
|
||
- Скоринг результатов по релевантности
|
||
|
||
### 3. **Безопасность**
|
||
- Генерация чистых magnet ссылок с публичными трекерами
|
||
- Изоляция сервисов через Docker
|
||
- Безопасная передача данных
|
||
|
||
### 4. **Производительность**
|
||
- Асинхронная обработка запросов
|
||
- Кэширование результатов
|
||
- Оптимизированные API вызовы
|
||
|
||
## 🛠️ Устранение неполадок
|
||
|
||
### Проблема: Telegram бот не отвечает
|
||
**Решение**: Проверьте логи `docker logs telegram-bot`
|
||
|
||
### Проблема: Не работает поиск фильмов
|
||
**Решение**: Проверьте подключение к TMDB API
|
||
|
||
### Проблема: Торренты не добавляются
|
||
**Решение**: Убедитесь, что qBittorrent запущен и доступен
|
||
|
||
### Проблема: Ошибки Docker
|
||
**Решение**: Пересоберите контейнеры `docker compose up -d --build`
|
||
|
||
## 📈 Производительность
|
||
|
||
### Рекомендуемые настройки:
|
||
- **RAM**: минимум 2GB
|
||
- **CPU**: 2+ ядра
|
||
- **Диск**: 10GB+ свободного места
|
||
- **Сеть**: стабильное интернет-соединение
|
||
|
||
### Мониторинг:
|
||
```bash
|
||
# Статус контейнеров
|
||
docker ps
|
||
|
||
# Логи приложения
|
||
docker logs movie-search --tail 50
|
||
|
||
# Логи Telegram бота
|
||
docker logs telegram-bot --tail 50
|
||
|
||
# Статус qBittorrent
|
||
sudo systemctl status qbittorrent
|
||
```
|
||
|
||
## 🔒 Безопасность
|
||
|
||
### Рекомендации:
|
||
1. Измените пароли по умолчанию
|
||
2. Настройте файрвол
|
||
3. Используйте HTTPS в продакшене
|
||
4. Регулярно обновляйте зависимости
|
||
|
||
## 🆘 Поддержка
|
||
|
||
При возникновении проблем:
|
||
1. Проверьте логи всех сервисов
|
||
2. Убедитесь, что все порты доступны
|
||
3. Проверьте настройки сети
|
||
4. Создайте issue в репозитории
|
||
|
||
## ✅ Итоги
|
||
|
||
**Проект полностью реализован и работает!**
|
||
|
||
- ✅ **Telegram Bot** - полная функциональность в мессенджере
|
||
- ✅ **Веб-интерфейс** - удобный поиск и навигация
|
||
- ✅ **API** - RESTful интерфейс для интеграции
|
||
- ✅ **Docker** - контейнеризация для простого развертывания
|
||
- ✅ **qBittorrent** - автоматическое добавление торрентов
|
||
- ✅ **TMDB** - поиск информации о фильмах
|
||
- ✅ **TorAPI** - поиск торрентов на всех трекерах
|
||
|
||
**Готово к использованию!** 🚀
|
||
|
||
---
|
||
|
||
**Автор**: AI Assistant
|
||
**Дата**: 9 октября 2025
|
||
**Версия**: 1.0
|