Files
bitvid/js/utils/videoDeduper.js
T

38 lines
858 B
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// js/utils/videoDeduper.js
/**
* Given an array of video objects, return only the newest (by created_at) for
* each videoRootId. If no videoRootId is present, treat the video’s own ID as
* its root.
*/
export function dedupeToNewestByRoot(videos) {
const map = new Map();
const normalizeTimestamp = (value) => {
const numeric = Number(value);
return Number.isFinite(numeric) ? numeric : -Infinity;
};
for (const vid of videos || []) {
if (!vid) {
continue;
}
const rootId = vid.videoRootId || vid.id;
if (!rootId) {
continue;
}
const existing = map.get(rootId);
if (
!existing ||
normalizeTimestamp(vid.created_at) > normalizeTimestamp(existing.created_at)
) {
map.set(rootId, vid);
}
}
return Array.from(map.values());
}
export default dedupeToNewestByRoot;