From 0fb2685c229f7b48191f23ad1ad57e30187cccfd Mon Sep 17 00:00:00 2001 From: reusedname <155286845+reusedname@users.noreply.github.com> Date: Sat, 1 Feb 2025 16:05:30 +0500 Subject: [PATCH] fix n^2 loop by @crazy hacker man --- .../main/resources/html/static/recordings.js | 25 +++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/server/src/main/resources/html/static/recordings.js b/server/src/main/resources/html/static/recordings.js index 00dadfc1..ee1d8eef 100644 --- a/server/src/main/resources/html/static/recordings.js +++ b/server/src/main/resources/html/static/recordings.js @@ -125,19 +125,18 @@ function syncRecordings(recordings) { } // update existing recordings - for ( let i in recordings) { - let recording = recordings[i]; - for ( let j in observableRecordingsArray()) { - let r = observableRecordingsArray()[j]; - if (recording.id === r.id) { - r.progress = recording.progress; - r.sizeInByte = recording.sizeInByte; - r.status = recording.status; - r.startDate = recording.startDate; - r.ko_progressString(recording.progress === -1 ? '' : (recording.progress + '%')); - r.ko_size(calculateSize(recording.sizeInByte)); - r.ko_status(recording.status); - } + const recordingsMap = new Map(observableRecordingsArray().map(r => [r.id, r])); + + for (let recording of recordings) { + const r = recordingsMap.get(recording.id); + if (r) { + r.progress = recording.progress; + r.sizeInByte = recording.sizeInByte; + r.status = recording.status; + r.startDate = recording.startDate; + r.ko_progressString(recording.progress === -1 ? '' : (recording.progress + '%')); + r.ko_size(calculateSize(recording.sizeInByte)); + r.ko_status(recording.status); } } }