From 0279d930ec9a6646de5b628b28ebbe6bf44e1f13 Mon Sep 17 00:00:00 2001 From: Joost Wooning Date: Thu, 17 Feb 2022 18:17:28 +0100 Subject: [PATCH] m3u8 cache bust closes #81 --- .env.development | 1 - .env.production | 1 - .env.staging | 1 - src/CanExplorer.js | 19 ++++++++++++------- src/components/Explorer.js | 2 ++ src/components/RouteVideoSync.js | 9 +++++---- 6 files changed, 19 insertions(+), 14 deletions(-) diff --git a/.env.development b/.env.development index 9d59558..6ce384e 100644 --- a/.env.development +++ b/.env.development @@ -1,2 +1 @@ BROWSER=none -REACT_APP_VIDEO_CDN=https://cabana-video-development.azureedge.net diff --git a/.env.production b/.env.production index 14b6c2b..6ce384e 100644 --- a/.env.production +++ b/.env.production @@ -1,2 +1 @@ BROWSER=none -REACT_APP_VIDEO_CDN=https://cabana-video.azureedge.net diff --git a/.env.staging b/.env.staging index f81c83c..6ce384e 100644 --- a/.env.staging +++ b/.env.staging @@ -1,2 +1 @@ BROWSER=none -REACT_APP_VIDEO_CDN=https://cabana-video-staging.azureedge.net diff --git a/src/CanExplorer.js b/src/CanExplorer.js index ffbed4e..71c6795 100644 --- a/src/CanExplorer.js +++ b/src/CanExplorer.js @@ -186,13 +186,16 @@ export default class CanExplorer extends Component { ); } else if (dongleId && name) { const routeName = `${dongleId}|${name}`; - let urlPromise; + let routePromise; let logUrlsPromise; if (this.props.url) { - urlPromise = Promise.resolve(this.props.url); + routePromise = Promise.resolve({ + maxqcamera: null, + url: this.props.url, + }); } else { - urlPromise = DrivesApi.getRouteInfo(routeName).then((route) => route.url); + routePromise = DrivesApi.getRouteInfo(routeName); } if (this.props.sig && this.props.exp) { @@ -203,15 +206,16 @@ export default class CanExplorer extends Component { } else { logUrlsPromise = RawDataApi.getLogUrls(routeName); } - Promise.all([urlPromise, logUrlsPromise]) + Promise.all([routePromise, logUrlsPromise]) .then((initData) => { - const [url, logUrls] = initData; + const [route, logUrls] = initData; const newState = { route: { fullname: routeName, proclog: logUrls.length - 1, start_time: Moment(name, 'YYYY-MM-DD--H-m-s'), - url + url: route.url.replace('chffrprivate.blob.core.windows.net', 'chffrprivate.azureedge.net'), + maxqcamera: route.maxqcamera ? route.maxqcamera : logUrls.length - 1, }, currentParts: [ 0, @@ -227,7 +231,7 @@ export default class CanExplorer extends Component { exp: shareSignature.exp, sig: shareSignature.sig, max: logUrls.length - 1, - url + url: route.url.replace('chffrprivate.blob.core.windows.net', 'chffrprivate.azureedge.net'), }, remove: [GITHUB_AUTH_TOKEN_KEY] }) @@ -1360,6 +1364,7 @@ export default class CanExplorer extends Component { } videoOffset={ (this.state.firstFrameTime && this.state.routeInitTime) ? this.state.firstFrameTime - this.state.routeInitTime : 0 } partsCount={route ? route.proclog : 0} + maxqcamera={route ? route.maxqcamera : 0} /> ) : null} diff --git a/src/components/Explorer.js b/src/components/Explorer.js index 0649bf8..411c0e2 100644 --- a/src/components/Explorer.js +++ b/src/components/Explorer.js @@ -460,6 +460,7 @@ export default class Explorer extends Component { { - this.setState({source: videoApi.getQcameraStreamIndexUrl()}); - }).catch(() => { - this.setState({source: videoApi.getRearCameraStreamIndexUrl()}); + this.setState({source: videoApi.getQcameraStreamIndexUrl() + `?s=${this.props.maxqcamera}`}); + }).catch((err) => { + console.log(err); }) } @@ -226,6 +226,7 @@ export default class RouteVideoSync extends Component { RouteVideoSync.propTypes = { segment: PropTypes.array.isRequired, + maxqcamera: PropTypes.number, thumbnails: PropTypes.array, url: PropTypes.string.isRequired, playing: PropTypes.bool.isRequired,