From a839480a33d2d8823252be5285fae5ba24b9b1d0 Mon Sep 17 00:00:00 2001 From: Ajay Ramachandran Date: Thu, 15 Jul 2021 16:01:22 -0400 Subject: [PATCH] Add auto and manual skip at start --- public/_locales/en/messages.json | 4 ++++ src/components/SkipNoticeComponent.tsx | 4 +++- src/content.ts | 31 +++++++++++++++++++------- 3 files changed, 30 insertions(+), 9 deletions(-) diff --git a/public/_locales/en/messages.json b/public/_locales/en/messages.json index 6edb27a5..2b104ac6 100644 --- a/public/_locales/en/messages.json +++ b/public/_locales/en/messages.json @@ -281,6 +281,10 @@ "skip_category": { "message": "Skip {0}?" }, + "skip_to_category": { + "message": "Skip to {0}?", + "description": "Used for skipping to things (Skip to Highlight)" + }, "skipped": { "message": "Skipped" }, diff --git a/src/components/SkipNoticeComponent.tsx b/src/components/SkipNoticeComponent.tsx index c5ffa166..b4efb20e 100644 --- a/src/components/SkipNoticeComponent.tsx +++ b/src/components/SkipNoticeComponent.tsx @@ -83,7 +83,9 @@ class SkipNoticeComponent extends React.Component startingSponsor && time.segment[1] > video.currentTime + if (time.segment[0] <= video.currentTime && time.segment[0] > startingSegmentTime && time.segment[1] > video.currentTime && utils.getCategoryActionType(time.category) === CategoryActionType.Skippable) { - startingSponsor = time.segment[0]; + startingSegmentTime = time.segment[0]; + startingSegment = time; break; } } - if (startingSponsor === -1) { + if (startingSegmentTime === -1) { for (const time of sponsorTimesSubmitting) { - if (time.segment[0] <= video.currentTime && time.segment[0] > startingSponsor && time.segment[1] > video.currentTime + if (time.segment[0] <= video.currentTime && time.segment[0] > startingSegmentTime && time.segment[1] > video.currentTime && utils.getCategoryActionType(time.category) === CategoryActionType.Skippable) { - startingSponsor = time.segment[0]; + startingSegmentTime = time.segment[0]; + startingSegment = time; break; } } } - if (startingSponsor !== -1) { - startSponsorSchedule(undefined, startingSponsor); + // For highlight category + const poiSegments = sponsorTimes + .filter((time) => time.segment[1] > video.currentTime && utils.getCategoryActionType(time.category) === CategoryActionType.POI) + .sort((a, b) => b.segment[0] - a.segment[0]); + for (const time of poiSegments) { + const skipOption = utils.getCategorySelection(time.category)?.option; + if (skipOption !== CategorySkipOption.ShowOverlay) { + skipToTime(video, time.segment, [time], true); + if (skipOption === CategorySkipOption.AutoSkip) break; + } + } + + if (startingSegmentTime !== -1) { + startSponsorSchedule(undefined, startingSegmentTime); } else { startSponsorSchedule(); }