Files
youtube-music/src/plugins/sponsorblock/segments.ts
2025-09-05 22:43:34 +09:00

35 lines
808 B
TypeScript

// Segments are an array [ [start, end], … ]
import type { Segment } from './types';
export const sortSegments = (segments: Segment[]) => {
segments.sort((segment1, segment2) =>
segment1[0] === segment2[0]
? segment1[1] - segment2[1]
: segment1[0] - segment2[0],
);
const compiledSegments: Segment[] = [];
let currentSegment: Segment | undefined;
for (const segment of segments) {
if (!currentSegment) {
currentSegment = segment;
continue;
}
if (currentSegment[1] < segment[0]) {
compiledSegments.push(currentSegment);
currentSegment = segment;
continue;
}
currentSegment[1] = Math.max(currentSegment[1], segment[1]);
}
if (currentSegment) {
compiledSegments.push(currentSegment);
}
return compiledSegments;
};