From 47a842fb0ecaa33c2b0b2d2005d684139f7758d5 Mon Sep 17 00:00:00 2001 From: Marcello Date: Tue, 2 Jul 2024 06:07:49 +0200 Subject: [PATCH] Remove the need for segment info in routes API response --- src/actions/index.js | 22 +++++++++++----------- src/components/DriveView/Media.jsx | 17 ++++++++--------- 2 files changed, 19 insertions(+), 20 deletions(-) diff --git a/src/actions/index.js b/src/actions/index.js index bf3cd5db..9235e977 100644 --- a/src/actions/index.js +++ b/src/actions/index.js @@ -54,18 +54,16 @@ export function checkRoutesData() { } const routes = routesData.map((r) => { - let startTime = r.segment_start_times[0]; - let endTime = r.segment_end_times[r.segment_end_times.length - 1]; - - // TODO: these will all be relative times soon - // fix segment boundary times for routes that have the wrong time at the start - if ((Math.abs(r.start_time_utc_millis - startTime) > 24 * 60 * 60 * 1000) - && (Math.abs(r.end_time_utc_millis - endTime) < 10 * 1000)) { - startTime = r.start_time_utc_millis; - endTime = r.end_time_utc_millis; - r.segment_start_times = r.segment_numbers.map((x) => startTime + (x * 60 * 1000)); - r.segment_end_times = r.segment_numbers.map((x) => Math.min(startTime + ((x + 1) * 60 * 1000), endTime)); + const startTime = r.start_time_utc_millis; + const endTime = r.end_time_utc_millis; + + const segmentStartTimes = []; + const segmentEndTimes = []; + for (let i = 0; i < Math.ceil((endTime - startTime) / (60*1000)); i++) { + segmentStartTimes[i] = r.start_time_utc_millis + i*60*1000; + segmentEndTimes[i] = segmentStartTimes[i] + 60*1000; } + return { ...r, url: r.url.replace('chffrprivate.blob.core.windows.net', 'chffrprivate.azureedge.net'), @@ -73,6 +71,8 @@ export function checkRoutesData() { duration: endTime - startTime, start_time_utc_millis: startTime, end_time_utc_millis: endTime, + segment_start_times: segmentStartTimes, + segment_end_times: segmentEndTimes, }; }).sort((a, b) => { return b.create_time - a.create_time; diff --git a/src/components/DriveView/Media.jsx b/src/components/DriveView/Media.jsx index c6c1f839..9ed4ec51 100644 --- a/src/components/DriveView/Media.jsx +++ b/src/components/DriveView/Media.jsx @@ -372,11 +372,11 @@ class Media extends Component { const uploading = {}; const adjusted_start_time = currentRoute.start_time_utc_millis + loop.startTime; - for (let i = 0; i < currentRoute.segment_numbers.length; i++) { - if (currentRoute.segment_start_times[i] < adjusted_start_time + loop.duration - && currentRoute.segment_end_times[i] > adjusted_start_time) { + for (let segmentIdx = 0; segmentIdx < currentRoute.segment_start_times.length; segmentIdx++) { + if (currentRoute.segment_start_times[segmentIdx] < adjusted_start_time + loop.duration + && currentRoute.segment_end_times[segmentIdx] > adjusted_start_time) { types.forEach((type) => { - const fileName = `${currentRoute.fullname}--${currentRoute.segment_numbers[i]}/${type}`; + const fileName = `${currentRoute.fullname}--${segmentIdx}/${type}`; if (!files[fileName]) { uploading[fileName] = { requested: true }; } @@ -399,13 +399,12 @@ class Media extends Component { _uploadStats(types, count, uploaded, uploading, paused, requested) { const { currentRoute, loop, files } = this.props; const adjusted_start_time = currentRoute.start_time_utc_millis + loop.startTime; - - for (let i = 0; i < currentRoute.segment_numbers.length; i++) { - if (currentRoute.segment_start_times[i] < adjusted_start_time + loop.duration - && currentRoute.segment_end_times[i] > adjusted_start_time) { + for (let segmentIdx = 0; segmentIdx < currentRoute.segment_start_times.length; segmentIdx++) { + if (currentRoute.segment_start_times[segmentIdx] < adjusted_start_time + loop.duration + && currentRoute.segment_end_times[segmentIdx] > adjusted_start_time) { for (let j = 0; j < types.length; j++) { count += 1; - const log = files[`${currentRoute.fullname}--${currentRoute.segment_numbers[i]}/${types[j]}`]; + const log = files[`${currentRoute.fullname}--${segmentIdx}/${types[j]}`]; if (log) { uploaded += Boolean(log.url || log.notFound); uploading += Boolean(log.progress !== undefined);