From c8a14e51f5c7cf9aced3d0047ce5a84dee5f668e Mon Sep 17 00:00:00 2001 From: nklhrstv Date: Fri, 3 Jan 2020 12:08:52 +0200 Subject: [PATCH] map subtitles origin from from ctx addons --- src/routes/Player/usePlayer.js | 37 ++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/src/routes/Player/usePlayer.js b/src/routes/Player/usePlayer.js index 6a692b192..f6237f9d1 100644 --- a/src/routes/Player/usePlayer.js +++ b/src/routes/Player/usePlayer.js @@ -1,13 +1,45 @@ const React = require('react'); const { useModelState } = require('stremio/common'); -const initPlayer = () => ({ +const initPlayerState = () => ({ selected: null, meta_resource: null, subtitles_resources: [], next_video: null }); +const mapPlayerStateWithCtx = (player, ctx) => { + const selected = player.selected; + const meta_resource = player.meta_resource; + const subtitles_resources = player.subtitles_resources.map((subtitles_resource) => { + if (subtitles_resource.content.type === 'Ready') { + const origin = ctx.content.addons.reduce((origin, addon) => { + if (addon.transportUrl === subtitles_resource.request.base) { + return typeof addon.manifest.name === 'string' && addon.manifest.name.length > 0 ? + addon.manifest.name + : + addon.manifest.id; + } + + return origin; + }, subtitles_resource.request.base); + subtitles_resource.content.content = subtitles_resource.content.content.map((subtitles) => ({ + ...subtitles, + origin + })); + } + + return subtitles_resource; + }, []); + const next_video = player.next_video; + return { + selected, + meta_resource, + subtitles_resources, + next_video + }; +}; + const usePlayer = (urlParams) => { const loadPlayerAction = React.useMemo(() => { try { @@ -34,7 +66,8 @@ const usePlayer = (urlParams) => { return useModelState({ model: 'player', action: loadPlayerAction, - init: initPlayer + init: initPlayerState, + mapWithCtx: mapPlayerStateWithCtx }); };