From dfc5626f0dd35f15df307c734d6c4e9741d99588 Mon Sep 17 00:00:00 2001 From: nklhrstv Date: Thu, 18 Aug 2022 16:31:57 +0300 Subject: [PATCH 1/7] time removed from gdpr_consent --- src/routes/Intro/Intro.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/routes/Intro/Intro.js b/src/routes/Intro/Intro.js index a97a113f8..4e2fb74cd 100644 --- a/src/routes/Intro/Intro.js +++ b/src/routes/Intro/Intro.js @@ -186,7 +186,6 @@ const Intro = ({ queryParams }) => { tos: state.termsAccepted, privacy: state.privacyPolicyAccepted, marketing: state.marketingAccepted, - time: new Date(), from: 'web' } } From a7feff94587f5213732e46752c113ab6141caf25 Mon Sep 17 00:00:00 2001 From: nklhrstv Date: Fri, 19 Aug 2022 18:09:39 +0300 Subject: [PATCH 2/7] send device type to core --- src/routes/Player/Player.js | 12 ++++++++---- src/routes/Player/usePlayer.js | 8 ++++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/routes/Player/Player.js b/src/routes/Player/Player.js index 1778c4089..243de7ef4 100644 --- a/src/routes/Player/Player.js +++ b/src/routes/Player/Player.js @@ -25,7 +25,7 @@ const Player = ({ urlParams, queryParams }) => { queryParams.has('maxAudioChannels') ? parseInt(queryParams.get('maxAudioChannels'), 10) : null ]; }, [queryParams]); - const [player, updateLibraryItemState, pushToLibrary] = usePlayer(urlParams); + const [player, timeUpdate, pushToLibrary] = usePlayer(urlParams); const [settings, updateSettings] = useSettings(); const streamingServer = useStreamingServer(); const routeFocused = useRouteFocused(); @@ -42,6 +42,7 @@ const Player = ({ urlParams, queryParams }) => { const [videoState, setVideoState] = React.useReducer( (videoState, nextVideoState) => ({ ...videoState, ...nextVideoState }), { + manifest: null, stream: null, paused: null, time: null, @@ -75,6 +76,7 @@ const Player = ({ urlParams, queryParams }) => { } }, []); const onImplementationChanged = React.useCallback((manifest) => { + setVideoState({ manifest }); manifest.props.forEach((propName) => { dispatch({ type: 'observeProp', propName }); }); @@ -302,10 +304,12 @@ const Player = ({ urlParams, queryParams }) => { dispatch({ type: 'setProp', propName: 'extraSubtitlesOutlineColor', propValue: settings.subtitlesOutlineColor }); }, [settings.subtitlesOutlineColor]); React.useEffect(() => { - if (videoState.time !== null && !isNaN(videoState.time) && videoState.duration !== null && !isNaN(videoState.duration)) { - updateLibraryItemState(videoState.time, videoState.duration); + if (videoState.time !== null && !isNaN(videoState.time) && + videoState.duration !== null && !isNaN(videoState.duration) && + videoState.manifest !== null && typeof videoState.manifest.name === 'string') { + timeUpdate(videoState.time, videoState.duration, videoState.manifest.name); } - }, [videoState.time, videoState.duration]); + }, [videoState.time, videoState.duration, videoState.manifest]); React.useEffect(() => { if ((!Array.isArray(videoState.subtitlesTracks) || videoState.subtitlesTracks.length === 0) && (!Array.isArray(videoState.extraSubtitlesTracks) || videoState.extraSubtitlesTracks.length === 0) && diff --git a/src/routes/Player/usePlayer.js b/src/routes/Player/usePlayer.js index f9c18e9d5..503562c5f 100644 --- a/src/routes/Player/usePlayer.js +++ b/src/routes/Player/usePlayer.js @@ -86,12 +86,12 @@ const usePlayer = (urlParams) => { }; } }, [urlParams]); - const updateLibraryItemState = React.useCallback((time, duration) => { + const timeUpdate = React.useCallback((time, duration, device) => { core.transport.dispatch({ action: 'Player', args: { - action: 'UpdateLibraryItemState', - args: { time, duration } + action: 'TimeUpdate', + args: { time, duration, device } } }, 'player'); }, []); @@ -104,7 +104,7 @@ const usePlayer = (urlParams) => { }, 'player'); }, []); const player = useModelState({ model: 'player', action, map }); - return [player, updateLibraryItemState, pushToLibrary]; + return [player, timeUpdate, pushToLibrary]; }; module.exports = usePlayer; From 53954876cda0f9defe3c83a34e26d19d99d2e549 Mon Sep 17 00:00:00 2001 From: nklhrstv Date: Fri, 19 Aug 2022 18:11:19 +0300 Subject: [PATCH 3/7] not needed rewind removed from player --- src/routes/Player/Player.js | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/src/routes/Player/Player.js b/src/routes/Player/Player.js index 243de7ef4..9e685a95a 100644 --- a/src/routes/Player/Player.js +++ b/src/routes/Player/Player.js @@ -18,7 +18,7 @@ const useSettings = require('./useSettings'); const styles = require('./styles'); const Player = ({ urlParams, queryParams }) => { - const { core, chromecast } = useServices(); + const { chromecast } = useServices(); const [forceTranscoding, maxAudioChannels] = React.useMemo(() => { return [ queryParams.has('forceTranscoding'), @@ -96,15 +96,6 @@ const Player = ({ urlParams, queryParams }) => { }, []); const onEnded = React.useCallback(() => { pushToLibrary(); - if (player.libraryItem !== null) { - core.transport.dispatch({ - action: 'Ctx', - args: { - action: 'RewindLibraryItem', - args: player.libraryItem._id - } - }); - } if (player.nextVideo !== null) { window.location.replace( typeof player.nextVideo.deepLinks.player === 'string' ? From 3710d10e298879a1ba8a6c841b38bdf09ac9b64f Mon Sep 17 00:00:00 2001 From: nklhrstv Date: Fri, 19 Aug 2022 19:10:30 +0300 Subject: [PATCH 4/7] dispatch Ended action --- src/routes/Player/Player.js | 3 ++- src/routes/Player/usePlayer.js | 10 +++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/routes/Player/Player.js b/src/routes/Player/Player.js index 9e685a95a..631964691 100644 --- a/src/routes/Player/Player.js +++ b/src/routes/Player/Player.js @@ -25,7 +25,7 @@ const Player = ({ urlParams, queryParams }) => { queryParams.has('maxAudioChannels') ? parseInt(queryParams.get('maxAudioChannels'), 10) : null ]; }, [queryParams]); - const [player, timeUpdate, pushToLibrary] = usePlayer(urlParams); + const [player, timeUpdate, pushToLibrary, ended] = usePlayer(urlParams); const [settings, updateSettings] = useSettings(); const streamingServer = useStreamingServer(); const routeFocused = useRouteFocused(); @@ -95,6 +95,7 @@ const Player = ({ urlParams, queryParams }) => { setVideoState({ [propName]: propValue }); }, []); const onEnded = React.useCallback(() => { + ended(); pushToLibrary(); if (player.nextVideo !== null) { window.location.replace( diff --git a/src/routes/Player/usePlayer.js b/src/routes/Player/usePlayer.js index 503562c5f..e0e735bd8 100644 --- a/src/routes/Player/usePlayer.js +++ b/src/routes/Player/usePlayer.js @@ -103,8 +103,16 @@ const usePlayer = (urlParams) => { } }, 'player'); }, []); + const ended = React.useCallback(() => { + core.transport.dispatch({ + action: 'Player', + args: { + action: 'Ended' + } + }, 'player'); + }, []); const player = useModelState({ model: 'player', action, map }); - return [player, timeUpdate, pushToLibrary]; + return [player, timeUpdate, pushToLibrary, ended]; }; module.exports = usePlayer; From 0101c015ddd86b8ed5871f07413d4524e150ef0e Mon Sep 17 00:00:00 2001 From: nklhrstv Date: Mon, 22 Aug 2022 13:00:13 +0300 Subject: [PATCH 5/7] timechanged renamed --- src/routes/Player/Player.js | 4 ++-- src/routes/Player/usePlayer.js | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/routes/Player/Player.js b/src/routes/Player/Player.js index 631964691..fe6481657 100644 --- a/src/routes/Player/Player.js +++ b/src/routes/Player/Player.js @@ -25,7 +25,7 @@ const Player = ({ urlParams, queryParams }) => { queryParams.has('maxAudioChannels') ? parseInt(queryParams.get('maxAudioChannels'), 10) : null ]; }, [queryParams]); - const [player, timeUpdate, pushToLibrary, ended] = usePlayer(urlParams); + const [player, timeChanged, pushToLibrary, ended] = usePlayer(urlParams); const [settings, updateSettings] = useSettings(); const streamingServer = useStreamingServer(); const routeFocused = useRouteFocused(); @@ -299,7 +299,7 @@ const Player = ({ urlParams, queryParams }) => { if (videoState.time !== null && !isNaN(videoState.time) && videoState.duration !== null && !isNaN(videoState.duration) && videoState.manifest !== null && typeof videoState.manifest.name === 'string') { - timeUpdate(videoState.time, videoState.duration, videoState.manifest.name); + timeChanged(videoState.time, videoState.duration, videoState.manifest.name); } }, [videoState.time, videoState.duration, videoState.manifest]); React.useEffect(() => { diff --git a/src/routes/Player/usePlayer.js b/src/routes/Player/usePlayer.js index e0e735bd8..b2e3185ab 100644 --- a/src/routes/Player/usePlayer.js +++ b/src/routes/Player/usePlayer.js @@ -86,11 +86,11 @@ const usePlayer = (urlParams) => { }; } }, [urlParams]); - const timeUpdate = React.useCallback((time, duration, device) => { + const timeChanged = React.useCallback((time, duration, device) => { core.transport.dispatch({ action: 'Player', args: { - action: 'TimeUpdate', + action: 'TimeChanged', args: { time, duration, device } } }, 'player'); @@ -112,7 +112,7 @@ const usePlayer = (urlParams) => { }, 'player'); }, []); const player = useModelState({ model: 'player', action, map }); - return [player, timeUpdate, pushToLibrary, ended]; + return [player, timeChanged, pushToLibrary, ended]; }; module.exports = usePlayer; From 28a8c9cdfafa0b216e2d95350e8ec12b7133fe67 Mon Sep 17 00:00:00 2001 From: nklhrstv Date: Mon, 22 Aug 2022 13:03:19 +0300 Subject: [PATCH 6/7] pausedChanged action sent to core --- src/routes/Player/Player.js | 7 ++++++- src/routes/Player/usePlayer.js | 11 ++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/routes/Player/Player.js b/src/routes/Player/Player.js index fe6481657..e08157426 100644 --- a/src/routes/Player/Player.js +++ b/src/routes/Player/Player.js @@ -25,7 +25,7 @@ const Player = ({ urlParams, queryParams }) => { queryParams.has('maxAudioChannels') ? parseInt(queryParams.get('maxAudioChannels'), 10) : null ]; }, [queryParams]); - const [player, timeChanged, pushToLibrary, ended] = usePlayer(urlParams); + const [player, timeChanged, pausedChanged, ended, pushToLibrary] = usePlayer(urlParams); const [settings, updateSettings] = useSettings(); const streamingServer = useStreamingServer(); const routeFocused = useRouteFocused(); @@ -302,6 +302,11 @@ const Player = ({ urlParams, queryParams }) => { timeChanged(videoState.time, videoState.duration, videoState.manifest.name); } }, [videoState.time, videoState.duration, videoState.manifest]); + React.useEffect(() => { + if (videoState.paused !== null) { + pausedChanged(videoState.paused); + } + }, [videoState.paused]); React.useEffect(() => { if ((!Array.isArray(videoState.subtitlesTracks) || videoState.subtitlesTracks.length === 0) && (!Array.isArray(videoState.extraSubtitlesTracks) || videoState.extraSubtitlesTracks.length === 0) && diff --git a/src/routes/Player/usePlayer.js b/src/routes/Player/usePlayer.js index b2e3185ab..9acd16396 100644 --- a/src/routes/Player/usePlayer.js +++ b/src/routes/Player/usePlayer.js @@ -111,8 +111,17 @@ const usePlayer = (urlParams) => { } }, 'player'); }, []); + const pausedChanged = React.useCallback((paused) => { + core.transport.dispatch({ + action: 'Player', + args: { + action: 'PausedChanged', + args: { paused } + } + }, 'player'); + }, []); const player = useModelState({ model: 'player', action, map }); - return [player, timeChanged, pushToLibrary, ended]; + return [player, timeChanged, pausedChanged, ended, pushToLibrary]; }; module.exports = usePlayer; From 5c8538a4a76a47f33f32e6128444285e8e2c1341 Mon Sep 17 00:00:00 2001 From: nklhrstv Date: Mon, 22 Aug 2022 13:07:39 +0300 Subject: [PATCH 7/7] PullUserFromAPI on init --- src/App/App.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/App/App.js b/src/App/App.js index d7a8ef54a..1c39635a2 100644 --- a/src/App/App.js +++ b/src/App/App.js @@ -90,6 +90,12 @@ const App = () => { action: 'PullAddonsFromAPI' } }); + services.core.transport.dispatch({ + action: 'Ctx', + args: { + action: 'PullUserFromAPI' + } + }); } }, [initialized]); return (