fix: Update api/index.go and README with new API format

- Fix NewSearchHandler call in api/index.go to include kpService
- Update README with Kinopoisk API integration details
- Document new player API format: /players/{player}/{id_type}/{id}
- Add all new environment variables (KPAPI_KEY, HDVB_TOKEN, etc)
- Add examples for both kp and imdb ID types
This commit is contained in:
2025-10-18 21:04:46 +00:00
parent 7b8d92af14
commit 35ceb00217
2 changed files with 68 additions and 24 deletions

View File

@@ -4,13 +4,14 @@ REST API для поиска и получения информации о фи
## Особенности ## Особенности
- Поиск фильмов - Интеграция с Kinopoisk API для русского контента
- Автоматическое переключение между TMDB и Kinopoisk
- Поиск фильмов и сериалов
- Информация о фильмах - Информация о фильмах
- Популярные фильмы - Популярные, топ-рейтинговые, предстоящие фильмы
- Топ рейтинговые фильмы - Поддержка русских плееров (Alloha, Lumex, Vibix, HDVB)
- Предстоящие фильмы
- Swagger документация - Swagger документация
- Поддержка русского языка - Полная поддержка русского языка
## 🛠 Быстрый старт ## 🛠 Быстрый старт
@@ -50,32 +51,39 @@ API будет доступен на `http://localhost:3000`
```bash ```bash
# Обязательные # Обязательные
MONGO_URI= MONGO_URI=mongodb://localhost:27017/neomovies
MONGO_DB_NAME=database MONGO_DB_NAME=neomovies
TMDB_ACCESS_TOKEN= TMDB_ACCESS_TOKEN=your_tmdb_access_token
JWT_SECRET= JWT_SECRET=your_jwt_secret_key
# Kinopoisk API
KPAPI_KEY=920aaf6a-9f64-46f7-bda7-209fb1069440
KPAPI_BASE_URL=https://kinopoiskapiunofficial.tech/api
# Сервис # Сервис
PORT=3000 PORT=3000
BASE_URL=http://localhost:3000 BASE_URL=http://localhost:3000
FRONTEND_URL=http://localhost:3001
NODE_ENV=development NODE_ENV=development
# Email (Gmail) # Email (Gmail)
GMAIL_USER= GMAIL_USER=your_gmail@gmail.com
GMAIL_APP_PASSWORD= GMAIL_APP_PASSWORD=your_gmail_app_password
# Плееры # Русские плееры
LUMEX_URL= LUMEX_URL=https://p.lumex.space
ALLOHA_TOKEN= ALLOHA_TOKEN=your_alloha_token
VIBIX_TOKEN= VIBIX_HOST=https://vibix.org
VIBIX_TOKEN=18745|NzecUXT4gikPUtFkSEFlDLPmr9kWnQACTo1N0Ixq9240bcf1
HDVB_TOKEN=b9ae5f8c4832244060916af4aa9d1939
# Торренты (RedAPI) # Торренты (RedAPI)
REDAPI_BASE_URL=http://redapi.cfhttp.top REDAPI_BASE_URL=http://redapi.cfhttp.top
REDAPI_KEY= REDAPI_KEY=your_redapi_key
# Google OAuth # Google OAuth
GOOGLE_CLIENT_ID= GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET= GOOGLE_CLIENT_SECRET=your_google_client_secret
GOOGLE_REDIRECT_URL=http://localhost:3000/api/v1/auth/google/callback GOOGLE_REDIRECT_URL=http://localhost:3000/api/v1/auth/google/callback
``` ```
@@ -120,10 +128,14 @@ GET /api/v1/tv/{id} # Детали сериала
GET /api/v1/tv/{id}/recommendations # Рекомендации GET /api/v1/tv/{id}/recommendations # Рекомендации
GET /api/v1/tv/{id}/similar # Похожие GET /api/v1/tv/{id}/similar # Похожие
# Плееры # Плееры (новый формат с типом ID)
GET /api/v1/players/alloha/{imdb_id} # Alloha плеер по IMDb ID GET /api/v1/players/alloha/{id_type}/{id} # Alloha плеер (kp/301 или imdb/tt0133093)
GET /api/v1/players/lumex/{imdb_id} # Lumex плеер по IMDb ID GET /api/v1/players/lumex/{id_type}/{id} # Lumex плеер (kp/301 или imdb/tt0133093)
GET /api/v1/players/vibix/{imdb_id} # Vibix плеер по IMDb ID GET /api/v1/players/vibix/{id_type}/{id} # Vibix плеер (kp/301 или imdb/tt0133093)
GET /api/v1/players/hdvb/{id_type}/{id} # HDVB плеер (kp/301 или imdb/tt0133093)
GET /api/v1/players/vidsrc/{media_type}/{imdb_id} # Vidsrc (только IMDB)
GET /api/v1/players/vidlink/movie/{imdb_id} # Vidlink фильмы (только IMDB)
GET /api/v1/players/vidlink/tv/{tmdb_id} # Vidlink сериалы (только TMDB)
# Торренты # Торренты
GET /api/v1/torrents/search/{imdbId} # Поиск торрентов GET /api/v1/torrents/search/{imdbId} # Поиск торрентов
@@ -243,10 +255,42 @@ curl "https://api.neomovies.ru/api/v1/torrents/search/tt0111161?type=movie&quali
- **Gorilla Mux** - HTTP роутер - **Gorilla Mux** - HTTP роутер
- **MongoDB** - база данных - **MongoDB** - база данных
- **JWT** - аутентификация - **JWT** - аутентификация
- **TMDB API** - данные о фильмах - **TMDB API** - данные о фильмах (международный контент)
- **Kinopoisk API Unofficial** - данные о русском контенте
- **Gmail SMTP** - email уведомления - **Gmail SMTP** - email уведомления
- **Vercel** - деплой и хостинг - **Vercel** - деплой и хостинг
## 🌍 Kinopoisk API интеграция
API автоматически переключается между TMDB и Kinopoisk в зависимости от языка запроса:
- **Русский язык (`lang=ru`)** → Kinopoisk API
- Русские названия фильмов
- Рейтинги Кинопоиска
- Поддержка Kinopoisk ID
- **Английский язык (`lang=en`)** → TMDB API
- Международные названия
- Рейтинги IMDB/TMDB
- Поддержка IMDB/TMDB ID
### Формат ID в плеерах
Все русские плееры поддерживают два типа идентификаторов:
```bash
# По Kinopoisk ID (приоритет для русского контента)
GET /api/v1/players/alloha/kp/301
# По IMDB ID (fallback)
GET /api/v1/players/alloha/imdb/tt0133093
# Примеры для других плееров
GET /api/v1/players/lumex/kp/301
GET /api/v1/players/vibix/kp/301
GET /api/v1/players/hdvb/kp/301
```
## 🚀 Производительность ## 🚀 Производительность
По сравнению с Node.js версией: По сравнению с Node.js версией:

View File

@@ -67,7 +67,7 @@ func Handler(w http.ResponseWriter, r *http.Request) {
tvHandler := handlersPkg.NewTVHandler(tvService) tvHandler := handlersPkg.NewTVHandler(tvService)
favoritesHandler := handlersPkg.NewFavoritesHandler(favoritesService, globalCfg) favoritesHandler := handlersPkg.NewFavoritesHandler(favoritesService, globalCfg)
docsHandler := handlersPkg.NewDocsHandler() docsHandler := handlersPkg.NewDocsHandler()
searchHandler := handlersPkg.NewSearchHandler(tmdbService) searchHandler := handlersPkg.NewSearchHandler(tmdbService, kpService)
categoriesHandler := handlersPkg.NewCategoriesHandler(tmdbService) categoriesHandler := handlersPkg.NewCategoriesHandler(tmdbService)
playersHandler := handlersPkg.NewPlayersHandler(globalCfg) playersHandler := handlersPkg.NewPlayersHandler(globalCfg)
torrentsHandler := handlersPkg.NewTorrentsHandler(torrentService, tmdbService) torrentsHandler := handlersPkg.NewTorrentsHandler(torrentService, tmdbService)