Fix: реакции (эмодзи-счётчики) не отображаются на карточках KP-источника - #32
Open
ekolvah wants to merge 1 commit into
Open
Fix: реакции (эмодзи-счётчики) не отображаются на карточках KP-источника#32ekolvah wants to merge 1 commit into
ekolvah wants to merge 1 commit into
Conversation
Reactions block (emoji counters under genres) was always empty on KP cards because the engine's reactions call is keyed by TMDB id, which KP cards don't carry. Resolve TMDB id via imdb_id (already returned by getById) and fetch reactions the same way the native tmdb source does, so movie and TV cards show reactions like tmdb/cub-sourced cards do.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Проблема
На карточках источника
KPблок реакций (эмодзи-счётчики под жанрами) всегдапуст — показывается «Нет реакций», хотя тот же фильм/сериал на источнике
tmdbреакции показывает.Причина
Блок реакций в движке Lampa (
Api.sources.tmdb.full()) явно дёргаетApi.sources.cub.reactionsGet({method, id})по TMDB id. У карточекKPсвоего TMDB id нет (
idвидаKP_<kinopoisk_id>), аKP.full()этот вызовникогда не делает — поэтому
result.reactionsостаётсяundefined.Фикс
getById()уже возвращаетmovie.imdb_id(строка 233). Резолвим по немуTMDB id через штатный
tmdb.get('find/<imdb_id>?external_source=imdb_id', ...)и дальше запрашиваем реакции тем же способом, что и нативный источник —
cub.reactionsGet({method: movie.type, id}). Оборачиваемoncompliteвstatus.onComplite(единственная точка, где собирается финальныйresult),остальной код
full()не тронут.Если у карточки нет
imdb_id, TMDB id не резолвится, или один из источниковнедоступен — просто вызывается исходный
oncomplite(result)без реакций(как сейчас), без новых состояний ошибки.
Проверено на реальном устройстве (фильм и сериал) — реакции подтягиваются и
совпадают с тем, что показывает
tmdb-источник для того же тайтла.