mirror of
https://github.com/ajayyy/SponsorBlockServer.git
synced 2025-12-15 16:07:03 +03:00
Compare commits
2 Commits
c0ee5206a2
...
2d5d3637fd
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2d5d3637fd | ||
|
|
99ed7698c4 |
@@ -182,8 +182,27 @@ async function getSegmentsByHash(req: Request, hashedVideoIDPrefix: VideoIDHash,
|
|||||||
};
|
};
|
||||||
|
|
||||||
const canUseCache = requiredSegments.length === 0;
|
const canUseCache = requiredSegments.length === 0;
|
||||||
data.segments = (await prepareCategorySegments(req, videoID as VideoID, service, videoData.segments, cache, canUseCache))
|
const filteredSegments = (await prepareCategorySegments(req, videoID as VideoID, service, videoData.segments, cache, canUseCache))
|
||||||
.filter((segment: Segment) => categories.includes(segment?.category) && actionTypes.includes(segment?.actionType))
|
.filter((segment: Segment) => categories.includes(segment?.category) && actionTypes.includes(segment?.actionType));
|
||||||
|
|
||||||
|
// Make sure no hash duplicates exist
|
||||||
|
if (trimUUIDs) {
|
||||||
|
const seen = new Set<string>();
|
||||||
|
for (const segment of filteredSegments) {
|
||||||
|
const shortUUID = segment.UUID.substring(0, trimUUIDs);
|
||||||
|
if (seen.has(shortUUID)) {
|
||||||
|
// Duplicate found, disable trimming
|
||||||
|
trimUUIDs = undefined;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
seen.add(shortUUID);
|
||||||
|
}
|
||||||
|
|
||||||
|
seen.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
data.segments = filteredSegments
|
||||||
.map((segment) => ({
|
.map((segment) => ({
|
||||||
category: segment.category,
|
category: segment.category,
|
||||||
actionType: segment.actionType,
|
actionType: segment.actionType,
|
||||||
@@ -424,7 +443,7 @@ async function getSkipSegments(req: Request, res: Response): Promise<Response> {
|
|||||||
|
|
||||||
await getEtag("skipSegments", (videoID as string), service)
|
await getEtag("skipSegments", (videoID as string), service)
|
||||||
.then(etag => res.set("ETag", etag))
|
.then(etag => res.set("ETag", etag))
|
||||||
.catch(() => null);
|
.catch(() => ({}));
|
||||||
return res.send(segments);
|
return res.send(segments);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user