Commit Graph

25 Commits

Author SHA1 Message Date
Erno
04fe3f3925 feat(players/alloha): add meta endpoint for seasons/episodes; perf: http clients/transport; docs: update 2025-10-21 15:35:20 +00:00
Erno
53a405a743 feat(search): include originalType (FILM/TV_SERIES) for KP results; ensure KP poster/backdrop proxied 2025-10-20 19:02:05 +00:00
Erno
71ea922528 feat(unified-kp): return KP poster/backdrop via our /api/v1/images proxy too 2025-10-20 18:50:30 +00:00
Erno
95aae4c46d feat(unified): return poster/backdrop URLs via our /api/v1/images proxy for TMDB and KP 2025-10-19 19:31:37 +00:00
Erno
608eeb7dcf fix: resolve unified handler merge and keep tmdb id enrichment only in externalIds 2025-10-19 13:51:47 +00:00
33572b0cff fix(api): add TMDB ID enrichment for KP content via IMDB ID lookup
- Add TMDBID field to ExternalIDs model
- Enhance GetExternalIDs in MovieService and TVService to fetch TMDB ID via FindTMDBIdByIMDB
- Add EnrichKPWithTMDBID function to enrich unified content with TMDB IDs
- Update unified handlers to automatically enrich KP content with TMDB IDs
- Enrich search results with TMDB IDs by fetching full film data for each result

This ensures that when using source=kp, the response includes TMDB IDs in externalIds
when available through IMDB ID mapping, while preserving all original KP data.
2025-10-19 12:48:11 +00:00
Erno
b86c9fc340 feat(api): enrich KP movie by resolving TMDB via IMDb /find endpoint 2025-10-19 10:42:03 +00:00
Erno
85c1a1b365 fix(kp): url-escape keyword and imdbId in Kinopoisk requests to avoid 502 2025-10-19 10:03:53 +00:00
Erno
0d32fa6afc feat(unified): add seasons to unified content and map TMDB seasons 2025-10-19 09:10:01 +00:00
Erno
43af05cf91 feat(api): add unified models, mappers, and prefixed routes (movie/tv/search) 2025-10-19 08:46:25 +00:00
Erno
855cc0920c feat(api): support prefixed IDs in routes and add unified mappers scaffolding
- Handlers parse IDs like kp_123 / tmdb_456 and set id_type accordingly
- Add KP->Unified and TMDB->Unified movie mappers (basic fields)
- Keep backward compatibility for numeric IDs
2025-10-19 08:30:16 +00:00
Erno
86042e2580 fix(api): respect explicit id_type and remove hidden TMDB fallback
- Movies/TV: if id_type=kp, fetch only from Kinopoisk (with TMDB->KP conversion)
- Movies/TV: if id_type=tmdb, fetch only from TMDB
- Default (no id_type): keep language-based behavior
- README: redact example tokens/keys with placeholders

Prevents wrong provider data when opened from search links with id_type.
2025-10-19 07:40:37 +00:00
dec78baffe fix: Remove TMDB fallback and add ID conversion for strict id_type handling
ПРОБЛЕМА:
- При id_type='kp' код делал fallback на TMDB если фильм не найден
- Если передан TMDB ID с id_type='kp', возвращались данные из TMDB
- Нарушалась явная логика выбора источника

РЕШЕНИЕ:
1. Убран автоматический fallback на TMDB при id_type='kp'
2. Добавлена конвертация ID:
   - Если id_type='kp' и фильм не найден напрямую
   - Пробуем конвертировать TMDB ID → KP ID через TmdbIdToKPId
   - Запрашиваем данные по сконвертированному KP ID
3. Если конвертация не удалась → возвращаем ошибку

ЛОГИКА:
- id_type='kp' + ID=550 (TMDB):
  1. Поиск KP фильма с id=550 → не найдено
  2. Конвертация 550 (TMDB) → получаем KP ID (например 326)
  3. Поиск KP фильма с id=326 → успех
  4. Возврат данных из Kinopoisk 

- id_type='kp' + несуществующий ID:
  1. Поиск KP фильма → не найдено
  2. Конвертация → не удалась
  3. Возврат ошибки (НЕ fallback на TMDB) 

ИЗМЕНЕНИЯ:
- pkg/services/movie.go: добавлена конвертация и удален fallback
- pkg/services/tv.go: добавлена конвертация и удален fallback
- Добавлен import fmt для форматирования ошибок

РЕЗУЛЬТАТ:
 Строгое соблюдение id_type параметра
 Умная конвертация между TMDB и KP ID
 Нет неожиданного fallback на другой источник
2025-10-18 23:55:42 +00:00
e2c6201e7e feat: Add id_type parameter support for movies and TV shows 2025-10-18 23:41:53 +00:00
9063d3e431 fix: Handle Kinopoisk IDs in GetExternalIDs
- Try to fetch from KP API first by KP ID
- If KP data found, return external IDs directly
- Falls back to TMDB if KP ID not found
- Fixes 500 error for Russian content external IDs
2025-10-18 22:05:51 +00:00
792a2f9867 fix: Correct field names ImdbID to IMDbID
- Fixed ImdbID to IMDbID in kinopoisk.go
- Fixed ImdbID to IMDbID in kp_mapper.go
- Removed Tagline field from TVShow mapping
- All builds now pass successfully
2025-10-18 20:30:37 +00:00
b5d9f3c57d feat: Update player API to use id_type in path
All Russian players now use format: /players/{player}/{id_type}/{id}
- id_type can be kp (Kinopoisk) or imdb
- Alloha, Lumex, Vibix, HDVB support both ID types
- Added validation for id_type parameter
- Updated handlers to parse id_type from path
2025-10-18 20:21:13 +00:00
c56d02d79a feat: implement JWT refresh token mechanism and improve auth 2025-09-28 11:46:20 +00:00
a68dbcdad4 bug fixes 2025-08-28 21:25:21 +03:00
7796e741d6 Add WebTorrent Player(Experimental) 2025-08-14 11:34:31 +00:00
eeb96a9efb Add player: Vibix 2025-08-11 18:36:02 +00:00
3cfa75cc00 Bug fix: favourites route 2025-08-11 11:36:23 +03:00
cd60dec5b8 Add Google OAuth 2025-08-08 16:47:02 +00:00
83ecac92c4 Bug fix 2025-08-07 18:25:43 +00:00
8131c7db8c Rewrite api to Go 2025-08-07 13:47:42 +00:00