mirror of
https://github.com/Stremio/stremio-web.git
synced 2026-04-27 01:12:59 +00:00
map subtitles origin from from ctx addons
This commit is contained in:
parent
907ccc04f4
commit
c8a14e51f5
1 changed files with 35 additions and 2 deletions
|
|
@ -1,13 +1,45 @@
|
||||||
const React = require('react');
|
const React = require('react');
|
||||||
const { useModelState } = require('stremio/common');
|
const { useModelState } = require('stremio/common');
|
||||||
|
|
||||||
const initPlayer = () => ({
|
const initPlayerState = () => ({
|
||||||
selected: null,
|
selected: null,
|
||||||
meta_resource: null,
|
meta_resource: null,
|
||||||
subtitles_resources: [],
|
subtitles_resources: [],
|
||||||
next_video: null
|
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 usePlayer = (urlParams) => {
|
||||||
const loadPlayerAction = React.useMemo(() => {
|
const loadPlayerAction = React.useMemo(() => {
|
||||||
try {
|
try {
|
||||||
|
|
@ -34,7 +66,8 @@ const usePlayer = (urlParams) => {
|
||||||
return useModelState({
|
return useModelState({
|
||||||
model: 'player',
|
model: 'player',
|
||||||
action: loadPlayerAction,
|
action: loadPlayerAction,
|
||||||
init: initPlayer
|
init: initPlayerState,
|
||||||
|
mapWithCtx: mapPlayerStateWithCtx
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue