Очистка проекта и улучшение документации
- Удалены ненужные файлы: node_modules, package.json, package-lock.json, get_rutracker_cookie.js, __pycache__ - Создан скрипт автоматического развертывания deploy.sh - Создан файл .gitignore для исключения временных файлов - Создан env.example с примером конфигурации - Полностью переписана документация README.md с подробными инструкциями - Обновлен PROJECT_SUMMARY.md с инструкциями по развертыванию - Проект готов к развертыванию на новом компьютере
This commit is contained in:
parent
215b471a5e
commit
90ad38bca7
4308 changed files with 829 additions and 790415 deletions
719
README.md
719
README.md
|
|
@ -1,394 +1,469 @@
|
|||
# 📚 searchTorrentDownl - Полная документация
|
||||
# 🎬 searchTorrentDownl
|
||||
|
||||
**Полнофункциональная система для поиска и загрузки фильмов через торренты с Telegram ботом**
|
||||
|
||||
[](https://www.docker.com/)
|
||||
[](https://python.org/)
|
||||
[](https://fastapi.tiangolo.com/)
|
||||
[](https://telegram.org/)
|
||||
|
||||
## 🎯 Описание проекта
|
||||
|
||||
**searchTorrentDownl** - это полнофункциональная система для поиска и загрузки фильмов через торренты. Приложение интегрирует поиск фильмов через TMDB API с поиском торрентов на популярных трекерах и автоматическим добавлением в qBittorrent клиент.
|
||||
**searchTorrentDownl** - это современная система для поиска и загрузки фильмов, которая объединяет:
|
||||
- 🌐 **Веб-интерфейс** с адаптивным дизайном
|
||||
- 🤖 **Telegram бот** с полной функциональностью
|
||||
- 🔍 **Поиск фильмов** через TMDB API
|
||||
- 🎬 **Поиск торрентов** на популярных трекерах
|
||||
- ⬇️ **Автоматическое добавление** в qBittorrent
|
||||
- 🔔 **Уведомления** о завершении загрузки
|
||||
|
||||
### 🎬 Бизнес-логика:
|
||||
1. **Поиск фильмов** - пользователь вводит название фильма
|
||||
2. **Выбор фильма** - из результатов поиска выбирается нужный фильм
|
||||
3. **Поиск торрентов** - система ищет доступные торренты на всех подключенных трекерах
|
||||
4. **Фильтрация и ранжирование** - торренты сортируются по качеству, размеру и количеству сидов
|
||||
5. **Автоматическое добавление** - выбранный торрент автоматически добавляется в qBittorrent
|
||||
6. **Загрузка** - файлы загружаются в настроенную папку
|
||||
### ✨ Основные возможности
|
||||
|
||||
### 🔧 Техническая составляющая:
|
||||
- **Frontend**: HTML/CSS/JavaScript с адаптивным дизайном
|
||||
- **Backend**: FastAPI с асинхронной обработкой запросов
|
||||
- **Поиск фильмов**: TMDB API для получения метаданных
|
||||
- **Поиск торрентов**: TorAPI для работы с трекерами (RuTracker, Kinozal, RuTor, NoNameClub)
|
||||
- **Клиент**: qBittorrent-nox на хосте для загрузки
|
||||
- **Контейнеризация**: Docker для изоляции сервисов
|
||||
- **Сеть**: Docker networks для связи между компонентами
|
||||
- **🎬 Поиск фильмов** - интеллектуальный поиск с постерами и описаниями
|
||||
- **🔍 Поиск торрентов** - на всех популярных трекерах (RuTracker, Kinozal, RuTor, NoNameClub)
|
||||
- **📱 Telegram бот** - полная функциональность в мессенджере
|
||||
- **🌐 Веб-интерфейс** - удобный поиск и навигация
|
||||
- **⬇️ Автоматическая загрузка** - добавление торрентов в qBittorrent одним кликом
|
||||
- **🔔 Уведомления** - сообщения о завершении загрузки в Telegram
|
||||
- **🐳 Docker** - полная контейнеризация для простого развертывания
|
||||
|
||||
## 🏗️ Архитектура системы
|
||||
|
||||
### Компоненты системы:
|
||||
```
|
||||
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
|
||||
│ Telegram Bot │ │ Web Interface │ │ qBittorrent │
|
||||
│ (Docker) │ │ (Docker) │ │ (Host) │
|
||||
└─────────┬───────┘ └─────────┬───────┘ └─────────┬───────┘
|
||||
│ │ │
|
||||
└──────────────────────┼──────────────────────┘
|
||||
│
|
||||
┌─────────────┴─────────────┐
|
||||
│ FastAPI App │
|
||||
│ (Movie Search API) │
|
||||
└─────────────┬─────────────┘
|
||||
│
|
||||
┌─────────────┴─────────────┐
|
||||
│ TMDB API │
|
||||
│ (Movie Information) │
|
||||
└─────────────┬─────────────┘
|
||||
│
|
||||
┌─────────────┴─────────────┐
|
||||
│ TorAPI │
|
||||
│ (Torrent Search) │
|
||||
└───────────────────────────┘
|
||||
```
|
||||
|
||||
1. **FastAPI приложение** (Docker контейнер) - основной веб-сервис
|
||||
2. **TorAPI-Search** (Docker контейнер) - поиск торрентов по названию
|
||||
3. **TorAPI-qBittorrent** (Docker контейнер) - получение magnet ссылок по ID
|
||||
4. **qBittorrent-nox** (хостовая система) - клиент для загрузки торрентов
|
||||
### 🔧 Компоненты системы
|
||||
|
||||
## 📋 Технические требования
|
||||
1. **FastAPI приложение** (Docker) - основной веб-сервис и API
|
||||
2. **Telegram Bot** (Docker) - бот для мессенджера
|
||||
3. **TorAPI-Search** (Docker) - поиск торрентов по названию
|
||||
4. **TorAPI-qBittorrent** (Docker) - получение magnet ссылок
|
||||
5. **qBittorrent-nox** (Host) - клиент для загрузки торрентов
|
||||
|
||||
### Системные требования:
|
||||
- **ОС**: Linux (Ubuntu/Debian)
|
||||
## 📋 Системные требования
|
||||
|
||||
### Минимальные требования
|
||||
- **ОС**: Linux (Ubuntu 20.04+, Debian 11+)
|
||||
- **RAM**: 2GB
|
||||
- **Диск**: 10GB свободного места
|
||||
- **CPU**: 2 ядра
|
||||
|
||||
### Необходимое ПО
|
||||
- **Docker**: 20.10+
|
||||
- **Docker Compose**: 2.0+
|
||||
- **Python**: 3.12+
|
||||
- **RAM**: минимум 2GB
|
||||
- **Диск**: минимум 10GB свободного места
|
||||
- **qBittorrent-nox**: 4.6.7+
|
||||
|
||||
### Зависимости:
|
||||
- FastAPI 0.115.0
|
||||
- Uvicorn 0.30.6
|
||||
- httpx 0.27.2
|
||||
- BeautifulSoup4 4.12.3
|
||||
- qBittorrent-nox 4.6.7+
|
||||
## 🚀 Быстрый старт
|
||||
|
||||
## 🚀 Установка и настройка
|
||||
|
||||
### 1. Установка qBittorrent на хост
|
||||
### 1️⃣ Автоматическое развертывание (рекомендуется)
|
||||
|
||||
```bash
|
||||
# Установка qBittorrent-nox
|
||||
sudo apt update
|
||||
sudo apt install qbittorrent-nox
|
||||
# Клонируйте репозиторий
|
||||
git clone <repository-url>
|
||||
cd searchTorrentDownl
|
||||
|
||||
# Создание пользователя для qBittorrent
|
||||
# Запустите скрипт развертывания
|
||||
chmod +x deploy.sh
|
||||
./deploy.sh
|
||||
```
|
||||
|
||||
Скрипт автоматически:
|
||||
- Установит все зависимости
|
||||
- Настроит qBittorrent
|
||||
- Запустит все сервисы
|
||||
- Покажет статус системы
|
||||
|
||||
### 2️⃣ Ручное развертывание
|
||||
|
||||
#### Шаг 1: Установка зависимостей
|
||||
|
||||
```bash
|
||||
# Обновление системы
|
||||
sudo apt update && sudo apt upgrade -y
|
||||
|
||||
# Установка Docker
|
||||
curl -fsSL https://get.docker.com -o get-docker.sh
|
||||
sudo sh get-docker.sh
|
||||
sudo usermod -aG docker $USER
|
||||
|
||||
# Установка Docker Compose
|
||||
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
|
||||
sudo chmod +x /usr/local/bin/docker-compose
|
||||
|
||||
# Установка qBittorrent
|
||||
sudo apt install -y qbittorrent-nox
|
||||
```
|
||||
|
||||
#### Шаг 2: Настройка qBittorrent
|
||||
|
||||
```bash
|
||||
# Создание пользователя
|
||||
sudo useradd -r -s /bin/false qbittorrent
|
||||
sudo mkdir -p /home/qbittorrent/Downloads
|
||||
sudo chown -R qbittorrent:qbittorrent /home/qbittorrent
|
||||
|
||||
# Создание systemd сервиса
|
||||
sudo tee /etc/systemd/system/qbittorrent.service > /dev/null <<EOF
|
||||
[Unit]
|
||||
Description=qBittorrent Command Line Client
|
||||
Description=qBittorrent-nox
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=forking
|
||||
Type=simple
|
||||
User=qbittorrent
|
||||
Group=qbittorrent
|
||||
UMask=007
|
||||
ExecStart=/usr/bin/qbittorrent-nox -d --webui-port=8080
|
||||
Restart=on-failure
|
||||
ExecStart=/usr/bin/qbittorrent-nox --webui-port=8080
|
||||
Restart=always
|
||||
RestartSec=5
|
||||
TimeoutStopSec=300
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
# Включение и запуск сервиса
|
||||
# Запуск сервиса
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable qbittorrent
|
||||
sudo systemctl start qbittorrent
|
||||
```
|
||||
|
||||
### 2. Настройка qBittorrent
|
||||
|
||||
1. Откройте браузер: http://localhost:8080
|
||||
2. Войдите с логином `admin` и паролем `vrubel07`
|
||||
3. Настройте параметры:
|
||||
- **Connection**: порт 6881, включить UPnP/NAT-PMP
|
||||
- **BitTorrent**: включить DHT, PeX, Local Peer Discovery
|
||||
- **Downloads**: папка `/home/qbittorrent/Downloads` (настроена автоматически)
|
||||
|
||||
**Важно**: Все загруженные файлы сохраняются в `/home/qbittorrent/Downloads/`
|
||||
|
||||
### 3. Запуск Docker контейнеров
|
||||
#### Шаг 3: Настройка проекта
|
||||
|
||||
```bash
|
||||
# Клонирование репозитория
|
||||
git clone <repository-url>
|
||||
cd searchTorrentDownl
|
||||
|
||||
# Создание сети для TorAPI
|
||||
# Создание Docker сети
|
||||
docker network create torrentvideo_default
|
||||
|
||||
# Копирование конфигурации
|
||||
cp env.example .env
|
||||
|
||||
# Редактирование конфигурации
|
||||
nano .env
|
||||
```
|
||||
|
||||
#### Шаг 4: Запуск сервисов
|
||||
|
||||
```bash
|
||||
# Запуск всех сервисов
|
||||
docker compose up -d --build
|
||||
|
||||
# Проверка статуса
|
||||
docker ps
|
||||
```
|
||||
|
||||
## ⚙️ Конфигурация
|
||||
|
||||
### Переменные окружения
|
||||
### 🔑 Получение API ключей
|
||||
|
||||
#### TMDB API Key
|
||||
1. Зарегистрируйтесь на [themoviedb.org](https://www.themoviedb.org/)
|
||||
2. Перейдите в [Settings > API](https://www.themoviedb.org/settings/api)
|
||||
3. Создайте новый API ключ
|
||||
4. Скопируйте ключ в файл `.env`
|
||||
|
||||
#### Telegram Bot Token
|
||||
1. Найдите [@BotFather](https://t.me/BotFather) в Telegram
|
||||
2. Отправьте команду `/newbot`
|
||||
3. Следуйте инструкциям для создания бота
|
||||
4. Скопируйте токен в файл `.env`
|
||||
|
||||
### 📝 Файл конфигурации (.env)
|
||||
|
||||
#### Основное приложение (movie-search):
|
||||
```bash
|
||||
TMDB_API_KEY=6d58225585fb77af5945a964de41849f
|
||||
TORAPI_URL=http://localhost:8088
|
||||
TORRENT_SEARCH_URL=http://localhost:8443
|
||||
TORRENT_ADD_URL=http://localhost:8444
|
||||
QBITTORRENT_HOST=localhost
|
||||
QBITTORRENT_PORT=8080
|
||||
# TMDB API Key
|
||||
TMDB_API_KEY=your_tmdb_api_key_here
|
||||
|
||||
# Telegram Bot Token
|
||||
TELEGRAM_BOT_TOKEN=your_telegram_bot_token_here
|
||||
|
||||
# qBittorrent настройки
|
||||
QBITTORRENT_USERNAME=admin
|
||||
QBITTORRENT_PASSWORD=vrubel07
|
||||
QBITTORRENT_PASSWORD=admin
|
||||
QBITTORRENT_HOST=host.docker.internal
|
||||
QBITTORRENT_PORT=8080
|
||||
|
||||
# TorAPI настройки
|
||||
TORRENT_SEARCH_URL=http://host.docker.internal:8443
|
||||
TORRENT_ADD_URL=http://host.docker.internal:8088
|
||||
```
|
||||
|
||||
#### TorAPI-qBittorrent:
|
||||
```bash
|
||||
PROXY_ADDRESS=172.17.0.1
|
||||
PROXY_PORT=8080
|
||||
USERNAME=admin
|
||||
PASSWORD=vrubel07
|
||||
```
|
||||
## 🌐 Использование
|
||||
|
||||
### Docker Compose конфигурация
|
||||
### Веб-интерфейс
|
||||
1. Откройте http://localhost:8089
|
||||
2. Введите название фильма
|
||||
3. Выберите фильм из результатов
|
||||
4. Выберите торрент для скачивания
|
||||
5. Торрент автоматически добавится в qBittorrent
|
||||
|
||||
```yaml
|
||||
version: '3.8'
|
||||
services:
|
||||
movie-search:
|
||||
build: .
|
||||
ports:
|
||||
- "8089:8000"
|
||||
environment:
|
||||
- TMDB_API_KEY=6d58225585fb77af5945a964de41849f
|
||||
- TORAPI_URL=http://localhost:8088
|
||||
- TORRENT_SEARCH_URL=http://localhost:8443
|
||||
- TORRENT_ADD_URL=http://localhost:8444
|
||||
- QBITTORRENT_HOST=localhost
|
||||
- QBITTORRENT_PORT=8080
|
||||
- QBITTORRENT_USERNAME=admin
|
||||
- QBITTORRENT_PASSWORD=vrubel07
|
||||
networks:
|
||||
- torrentvideo_default
|
||||
### Telegram Bot
|
||||
1. Найдите вашего бота в Telegram
|
||||
2. Отправьте команду `/start` или `/find`
|
||||
3. Введите название фильма
|
||||
4. Выберите фильм из списка
|
||||
5. Нажмите "Найти торренты"
|
||||
6. Выберите нужный торрент
|
||||
7. Получите уведомление о завершении загрузки
|
||||
|
||||
TorAPI-Search:
|
||||
image: lifailon/torapi:latest
|
||||
ports:
|
||||
- "8443:8443"
|
||||
networks:
|
||||
- torrentvideo_default
|
||||
|
||||
TorAPI-qBittorrent:
|
||||
image: lifailon/torapi:latest
|
||||
ports:
|
||||
- "8444:8443"
|
||||
environment:
|
||||
- PROXY_ADDRESS=172.17.0.1
|
||||
- PROXY_PORT=8080
|
||||
- USERNAME=admin
|
||||
- PASSWORD=vrubel07
|
||||
networks:
|
||||
- torrentvideo_default
|
||||
|
||||
networks:
|
||||
torrentvideo_default:
|
||||
external: true
|
||||
```
|
||||
|
||||
## 🔧 API Endpoints
|
||||
|
||||
### Основное приложение (порт 8089)
|
||||
|
||||
#### Веб-интерфейс:
|
||||
- `GET /` - главная страница поиска
|
||||
- `POST /search` - поиск фильмов
|
||||
- `GET /torrents/{movie_title}` - страница с торрентами
|
||||
|
||||
#### API:
|
||||
- `GET /api/search/{movie_title}` - поиск фильмов через TMDB
|
||||
- `GET /api/torrents/{movie_title}` - поиск торрентов
|
||||
- `GET /api/torrent/id/{torrent_id}` - получение информации о торренте по ID
|
||||
- `POST /api/add-torrent` - добавление торрента в qBittorrent
|
||||
|
||||
### TorAPI-Search (порт 8443)
|
||||
- `GET /api/search/title/{provider}?q={query}` - поиск торрентов по названию
|
||||
- `GET /api/provider/list` - список доступных провайдеров
|
||||
|
||||
### TorAPI-qBittorrent (порт 8444)
|
||||
- `GET /api/search/id/{provider}?id={torrent_id}` - получение magnet ссылки по ID
|
||||
|
||||
## 🎬 Поддерживаемые трекеры
|
||||
|
||||
- **RuTracker** - rutracker.org, rutracker.net, rutracker.nl
|
||||
- **Kinozal** - kinozal.tv, kinozal.me, kinozal.guru
|
||||
- **RuTor** - rutor.info, rutor.is
|
||||
- **NoNameClub** - nnmclub.to
|
||||
|
||||
## 🔄 Алгоритм работы
|
||||
|
||||
### 1. Поиск фильма:
|
||||
1. Пользователь вводит название фильма в веб-форму
|
||||
2. FastAPI приложение обращается к TMDB API с запросом
|
||||
3. Получает список фильмов с метаданными (постер, описание, рейтинг, год)
|
||||
4. Отображает результаты в удобном интерфейсе
|
||||
|
||||
### 2. Поиск торрентов:
|
||||
1. Пользователь выбирает фильм и нажимает "Найти торренты"
|
||||
2. Приложение обращается к TorAPI-Search (порт 8443)
|
||||
3. TorAPI ищет торренты на всех подключенных трекерах:
|
||||
- RuTracker (rutracker.org, rutracker.net, rutracker.nl)
|
||||
- Kinozal (kinozal.tv, kinozal.me, kinozal.guru)
|
||||
- RuTor (rutor.info, rutor.is)
|
||||
- NoNameClub (nnmclub.to)
|
||||
4. Результаты фильтруются и ранжируются по релевантности, качеству и количеству сидов
|
||||
|
||||
### 3. Добавление торрента:
|
||||
1. Пользователь нажимает "Добавить в клиент" на выбранном торренте
|
||||
2. Приложение получает ID торрента и обращается к TorAPI-qBittorrent (порт 8444)
|
||||
3. TorAPI-qBittorrent получает magnet ссылку по ID торрента
|
||||
4. Приложение генерирует "чистую" magnet ссылку с публичными трекерами
|
||||
5. Через qBittorrent Web API торрент добавляется в клиент
|
||||
6. qBittorrent начинает загрузку в папку `/home/qbittorrent/Downloads`
|
||||
|
||||
### 4. Мониторинг загрузки:
|
||||
1. Пользователь может отслеживать прогресс через qBittorrent веб-интерфейс
|
||||
2. Файлы автоматически сохраняются в настроенную папку
|
||||
3. После завершения загрузки файлы готовы к просмотру
|
||||
|
||||
## 🛠️ Устранение неполадок
|
||||
|
||||
### Проблема: qBittorrent не может добавить торренты
|
||||
**Решение:**
|
||||
1. Проверьте настройки qBittorrent (DHT, PeX, LPD включены)
|
||||
2. Убедитесь, что порт 6881 открыт
|
||||
3. Проверьте подключение к интернету
|
||||
|
||||
### Проблема: TorAPI не может подключиться к трекерам
|
||||
**Решение:**
|
||||
1. Проверьте, что трекеры доступны
|
||||
2. Убедитесь, что нет блокировки на уровне роутера/провайдера
|
||||
3. Проверьте логи контейнеров: `docker logs TorAPI-Search`
|
||||
|
||||
### Проблема: Приложение не может подключиться к qBittorrent
|
||||
**Решение:**
|
||||
1. Проверьте, что qBittorrent запущен: `sudo systemctl status qbittorrent`
|
||||
2. Проверьте доступность: `curl http://localhost:8080/api/v2/app/version`
|
||||
3. Проверьте учетные данные в переменных окружения
|
||||
|
||||
## 📊 Мониторинг
|
||||
|
||||
### Проверка статуса сервисов:
|
||||
```bash
|
||||
# qBittorrent
|
||||
sudo systemctl status qbittorrent
|
||||
|
||||
# Docker контейнеры
|
||||
docker ps
|
||||
|
||||
# Логи приложения
|
||||
docker logs movie-search --tail 50
|
||||
|
||||
# Логи TorAPI
|
||||
docker logs TorAPI-Search --tail 50
|
||||
docker logs TorAPI-qBittorrent --tail 50
|
||||
```
|
||||
|
||||
### Проверка торрентов в qBittorrent:
|
||||
```bash
|
||||
curl -s -X POST "http://localhost:8080/api/v2/auth/login" -d "username=admin&password=vrubel07" -c cookies.txt
|
||||
curl -s -b cookies.txt "http://localhost:8080/api/v2/torrents/info" | jq '.[] | {name: .name, state: .state, progress: .progress}'
|
||||
```
|
||||
|
||||
## 🔒 Безопасность
|
||||
|
||||
### Рекомендации:
|
||||
1. Измените пароли по умолчанию
|
||||
2. Настройте файрвол для ограничения доступа
|
||||
3. Используйте HTTPS в продакшене
|
||||
4. Регулярно обновляйте зависимости
|
||||
|
||||
### Настройка файрвола:
|
||||
```bash
|
||||
# Разрешить доступ к веб-интерфейсам
|
||||
sudo ufw allow 8080/tcp # qBittorrent
|
||||
sudo ufw allow 8089/tcp # Приложение
|
||||
sudo ufw allow 6881/tcp # BitTorrent
|
||||
sudo ufw allow 6881/udp # BitTorrent
|
||||
```
|
||||
|
||||
## 📈 Производительность
|
||||
|
||||
### Оптимизация:
|
||||
1. Настройте лимиты загрузки в qBittorrent
|
||||
2. Используйте SSD для папки загрузок
|
||||
3. Настройте кэширование в браузере
|
||||
4. Мониторьте использование ресурсов
|
||||
|
||||
### Рекомендуемые настройки qBittorrent:
|
||||
- Максимальная скорость загрузки: 80% от пропускной способности
|
||||
- Максимальная скорость отдачи: 20% от пропускной способности
|
||||
- Максимальное количество активных торрентов: 10-20
|
||||
- Максимальное количество подключений: 200-500
|
||||
|
||||
## 🆘 Поддержка
|
||||
|
||||
При возникновении проблем:
|
||||
1. Проверьте логи всех сервисов
|
||||
2. Убедитесь, что все порты доступны
|
||||
3. Проверьте настройки сети и файрвола
|
||||
4. Создайте issue в репозитории проекта
|
||||
### qBittorrent
|
||||
- **Веб-интерфейс**: http://localhost:8080
|
||||
- **Логин по умолчанию**: admin / admin
|
||||
- **Настройка папок**: Settings > Downloads
|
||||
|
||||
## 📁 Структура проекта
|
||||
|
||||
```
|
||||
searchTorrentDownl/
|
||||
├── app.py # Основное приложение
|
||||
├── telegram_bot.py # Telegram бот
|
||||
├── run_telegram_bot.py # Скрипт запуска бота
|
||||
├── test_telegram_bot.py # Тестирование бота
|
||||
├── requirements.txt # Python зависимости
|
||||
├── Dockerfile # Docker образ основного приложения
|
||||
├── Dockerfile.telegram # Docker образ Telegram бота
|
||||
├── docker-compose.yml # Docker Compose конфигурация
|
||||
├── templates/ # HTML шаблоны
|
||||
│ ├── index.html # Главная страница
|
||||
│ ├── results.html # Страница результатов поиска фильмов
|
||||
│ ├── torrents.html # Страница результатов поиска торрентов
|
||||
│ └── error.html # Страница ошибок
|
||||
├── README.md # Основная документация
|
||||
└── TELEGRAM_BOT_README.md # Документация Telegram бота
|
||||
├── app.py # Основное FastAPI приложение
|
||||
├── telegram_bot.py # Telegram бот
|
||||
├── run_telegram_bot.py # Скрипт запуска бота
|
||||
├── deploy.sh # Скрипт автоматического развертывания
|
||||
├── start_all.sh # Скрипт запуска (локально)
|
||||
├── requirements.txt # Python зависимости
|
||||
├── env.example # Пример конфигурации
|
||||
├── Dockerfile # Docker образ основного приложения
|
||||
├── Dockerfile.telegram # Docker образ Telegram бота
|
||||
├── docker-compose.yml # Docker Compose конфигурация
|
||||
├── templates/ # HTML шаблоны
|
||||
│ ├── index.html # Главная страница
|
||||
│ ├── results.html # Результаты поиска фильмов
|
||||
│ ├── torrents.html # Результаты поиска торрентов
|
||||
│ └── error.html # Страница ошибок
|
||||
├── README.md # Основная документация
|
||||
├── TELEGRAM_BOT_README.md # Документация Telegram бота
|
||||
└── PROJECT_SUMMARY.md # Сводка проекта
|
||||
```
|
||||
|
||||
## 🎯 Возможности
|
||||
## 🔧 Управление сервисами
|
||||
|
||||
- 🔍 **Поиск фильмов** по названию через TMDB API с полными метаданными
|
||||
- 🎬 **Информация о фильмах** - постер, описание, рейтинг, год выпуска, актеры
|
||||
- 🔗 **Поиск торрентов** на 4 популярных трекерах одновременно
|
||||
- 📊 **Детальная информация** о торрентах - размер, разрешение, качество, количество сидов
|
||||
- 🚀 **Автоматическое добавление** торрентов в qBittorrent одним кликом
|
||||
- 🌐 **Веб-интерфейс** с удобным поиском и навигацией
|
||||
- 📱 **Адаптивный дизайн** для работы на любых устройствах
|
||||
- 🤖 **Telegram Bot** - полная функциональность в мессенджере
|
||||
- 🐳 **Контейнеризация** для простого развертывания
|
||||
- 🔌 **REST API** для интеграции с другими системами
|
||||
- ⚡ **Асинхронная обработка** для высокой производительности
|
||||
- 🛡️ **Безопасность** - генерация чистых magnet ссылок с публичными трекерами
|
||||
|
||||
## ✅ Статус проекта
|
||||
|
||||
**🟢 ПРОЕКТ ПОЛНОСТЬЮ ФУНКЦИОНАЛЕН**
|
||||
|
||||
- ✅ Поиск фильмов работает
|
||||
- ✅ Поиск торрентов работает
|
||||
- ✅ Добавление торрентов в qBittorrent работает
|
||||
- ✅ Загрузка файлов работает
|
||||
- ✅ Веб-интерфейс работает
|
||||
- ✅ API работает
|
||||
- ✅ Telegram Bot работает
|
||||
- ✅ Все сервисы интегрированы
|
||||
|
||||
## 🚀 Быстрый старт
|
||||
|
||||
### Запуск с помощью Docker Compose
|
||||
### Основные команды
|
||||
|
||||
```bash
|
||||
docker compose up --build -d
|
||||
# Запуск всех сервисов
|
||||
docker compose up -d
|
||||
|
||||
# Остановка всех сервисов
|
||||
docker compose down
|
||||
|
||||
# Перезапуск сервисов
|
||||
docker compose restart
|
||||
|
||||
# Просмотр логов
|
||||
docker compose logs -f
|
||||
|
||||
# Просмотр статуса
|
||||
docker ps
|
||||
```
|
||||
|
||||
### Доступ к приложению
|
||||
### Управление отдельными сервисами
|
||||
|
||||
- **Веб-интерфейс**: http://localhost:8089
|
||||
- **qBittorrent**: http://localhost:8080 (admin/vrubel07)
|
||||
- **API**: http://localhost:8089/api/search/{название_фильма}
|
||||
- **Telegram Bot**: @your_bot_username (команда /start)
|
||||
```bash
|
||||
# Запуск только веб-приложения
|
||||
docker compose up -d movie-search
|
||||
|
||||
# Запуск только Telegram бота
|
||||
docker compose up -d telegram-bot
|
||||
|
||||
# Перезапуск TorAPI
|
||||
docker compose restart torapi-search torapi-qbittorrent
|
||||
```
|
||||
|
||||
### Управление qBittorrent
|
||||
|
||||
```bash
|
||||
# Запуск
|
||||
sudo systemctl start qbittorrent
|
||||
|
||||
# Остановка
|
||||
sudo systemctl stop qbittorrent
|
||||
|
||||
# Статус
|
||||
sudo systemctl status qbittorrent
|
||||
|
||||
# Логи
|
||||
sudo journalctl -u qbittorrent -f
|
||||
```
|
||||
|
||||
## 🐛 Устранение неполадок
|
||||
|
||||
### Проблемы с Docker
|
||||
|
||||
```bash
|
||||
# Проверка статуса контейнеров
|
||||
docker ps -a
|
||||
|
||||
# Просмотр логов
|
||||
docker logs <container_name>
|
||||
|
||||
# Пересборка контейнеров
|
||||
docker compose up -d --build --force-recreate
|
||||
```
|
||||
|
||||
### Проблемы с qBittorrent
|
||||
|
||||
```bash
|
||||
# Проверка статуса
|
||||
sudo systemctl status qbittorrent
|
||||
|
||||
# Перезапуск
|
||||
sudo systemctl restart qbittorrent
|
||||
|
||||
# Проверка портов
|
||||
netstat -tlnp | grep 8080
|
||||
```
|
||||
|
||||
### Проблемы с сетью
|
||||
|
||||
```bash
|
||||
# Проверка Docker сетей
|
||||
docker network ls
|
||||
|
||||
# Создание сети заново
|
||||
docker network rm torrentvideo_default
|
||||
docker network create torrentvideo_default
|
||||
```
|
||||
|
||||
### Проблемы с API
|
||||
|
||||
```bash
|
||||
# Проверка TMDB API
|
||||
curl "https://api.themoviedb.org/3/movie/550?api_key=YOUR_API_KEY"
|
||||
|
||||
# Проверка Telegram Bot
|
||||
curl "https://api.telegram.org/botYOUR_BOT_TOKEN/getMe"
|
||||
|
||||
# Проверка TorAPI
|
||||
curl "http://localhost:8443/api/provider/list"
|
||||
```
|
||||
|
||||
## 📊 Мониторинг
|
||||
|
||||
### Логи сервисов
|
||||
|
||||
```bash
|
||||
# Все сервисы
|
||||
docker compose logs -f
|
||||
|
||||
# Конкретный сервис
|
||||
docker logs -f movie-search
|
||||
docker logs -f telegram-bot
|
||||
docker logs -f TorAPI-Search
|
||||
docker logs -f TorAPI-qBittorrent
|
||||
```
|
||||
|
||||
### Мониторинг ресурсов
|
||||
|
||||
```bash
|
||||
# Использование ресурсов контейнерами
|
||||
docker stats
|
||||
|
||||
# Использование диска
|
||||
df -h
|
||||
|
||||
# Использование памяти
|
||||
free -h
|
||||
```
|
||||
|
||||
## 🔒 Безопасность
|
||||
|
||||
### Рекомендации
|
||||
|
||||
1. **Измените пароли по умолчанию**
|
||||
```bash
|
||||
# В файле .env
|
||||
QBITTORRENT_PASSWORD=your_secure_password
|
||||
```
|
||||
|
||||
2. **Настройте файрвол**
|
||||
```bash
|
||||
sudo ufw allow 8080 # qBittorrent
|
||||
sudo ufw allow 8089 # Web interface
|
||||
sudo ufw enable
|
||||
```
|
||||
|
||||
3. **Используйте HTTPS в продакшене**
|
||||
- Настройте reverse proxy (nginx)
|
||||
- Получите SSL сертификат
|
||||
|
||||
4. **Регулярно обновляйте зависимости**
|
||||
```bash
|
||||
docker compose pull
|
||||
docker compose up -d --build
|
||||
```
|
||||
|
||||
## 🚀 Развертывание в продакшене
|
||||
|
||||
### Настройка reverse proxy (nginx)
|
||||
|
||||
```nginx
|
||||
server {
|
||||
listen 80;
|
||||
server_name your-domain.com;
|
||||
|
||||
location / {
|
||||
proxy_pass http://localhost:8089;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Использование Docker Swarm
|
||||
|
||||
```bash
|
||||
# Инициализация Swarm
|
||||
docker swarm init
|
||||
|
||||
# Развертывание стека
|
||||
docker stack deploy -c docker-compose.yml searchtorrentdownl
|
||||
```
|
||||
|
||||
## 🤝 Вклад в проект
|
||||
|
||||
1. Форкните репозиторий
|
||||
2. Создайте ветку для новой функции
|
||||
3. Внесите изменения
|
||||
4. Создайте Pull Request
|
||||
|
||||
## 📄 Лицензия
|
||||
|
||||
Этот проект распространяется под лицензией MIT. См. файл [LICENSE](LICENSE) для подробностей.
|
||||
|
||||
## 🆘 Поддержка
|
||||
|
||||
При возникновении проблем:
|
||||
|
||||
1. Проверьте [раздел устранения неполадок](#-устранение-неполадок)
|
||||
2. Изучите логи сервисов
|
||||
3. Создайте issue в репозитории
|
||||
4. Опишите проблему и приложите логи
|
||||
|
||||
## 📈 Планы развития
|
||||
|
||||
- [ ] Поддержка дополнительных трекеров
|
||||
- [ ] Веб-интерфейс для управления ботом
|
||||
- [ ] Система уведомлений по email
|
||||
- [ ] API для интеграции с другими приложениями
|
||||
- [ ] Поддержка сериалов и аниме
|
||||
- [ ] Мобильное приложение
|
||||
|
||||
---
|
||||
|
||||
**Версия документации**: 1.0
|
||||
**Дата обновления**: $(date)
|
||||
**Автор**: AI Assistant
|
||||
**Создано с ❤️ для удобного поиска и загрузки фильмов**
|
||||
Loading…
Add table
Add a link
Reference in a new issue