diff options
author | Ajay Ramachandran <[email protected]> | 2021-11-02 00:08:10 -0400 |
---|---|---|
committer | GitHub <[email protected]> | 2021-11-02 00:08:10 -0400 |
commit | ca0f68bb7d36a11a881177d79875dd218a3c2688 (patch) | |
tree | b9466d7d5cfd92103563921d789b38f27f387b0c | |
parent | 34884026d93710aac542c655a83e0125b7722f0f (diff) | |
parent | 95f45312e139858151365b0f452415f5eade6fec (diff) | |
download | SponsorBlock-ca0f68bb7d36a11a881177d79875dd218a3c2688.tar.gz SponsorBlock-ca0f68bb7d36a11a881177d79875dd218a3c2688.zip |
Merge pull request #1019 from FlorianZahn/roundSubmitTimes
unsubmitted segments are initialized rounded to 3 digits
-rw-r--r-- | src/components/SponsorTimeEditComponent.tsx | 11 | ||||
-rw-r--r-- | src/content.ts | 5 |
2 files changed, 13 insertions, 3 deletions
diff --git a/src/components/SponsorTimeEditComponent.tsx b/src/components/SponsorTimeEditComponent.tsx index 6a1b006f..72d3e44f 100644 --- a/src/components/SponsorTimeEditComponent.tsx +++ b/src/components/SponsorTimeEditComponent.tsx @@ -38,6 +38,9 @@ class SponsorTimeEditComponent extends React.Component<SponsorTimeEditProps, Spo configUpdateListener: () => void; + previousSkipType: CategoryActionType; + timeBeforeChangingToPOI: number; // Initialized when first selecting POI + constructor(props: SponsorTimeEditProps) { super(props); @@ -46,6 +49,7 @@ class SponsorTimeEditComponent extends React.Component<SponsorTimeEditProps, Spo this.idSuffix = this.props.idSuffix; + this.previousSkipType = CategoryActionType.Skippable; this.state = { editing: false, sponsorTimeEdits: [null, null], @@ -274,6 +278,7 @@ class SponsorTimeEditComponent extends React.Component<SponsorTimeEditProps, Spo } sponsorTimeEdits[index] = utils.getFormattedTime(timeAsNumber, true); if (getCategoryActionType(sponsorTime.category) === CategoryActionType.POI) sponsorTimeEdits[1] = sponsorTimeEdits[0]; + this.setState({sponsorTimeEdits}); this.saveEditTimes(); } @@ -338,6 +343,7 @@ class SponsorTimeEditComponent extends React.Component<SponsorTimeEditProps, Spo } if (getCategoryActionType(event.target.value as Category) === CategoryActionType.POI) { + if (this.previousSkipType === CategoryActionType.Skippable) this.timeBeforeChangingToPOI = utils.getFormattedTimeToSeconds(this.state.sponsorTimeEdits[1]); this.setTimeTo(1, null); this.props.contentContainer().updateEditButtonsOnPlayer(); @@ -345,8 +351,11 @@ class SponsorTimeEditComponent extends React.Component<SponsorTimeEditProps, Spo .some((segment, i) => segment.category === event.target.value && i !== this.props.index)) { alert(chrome.i18n.getMessage("poiOnlyOneSegment")); } + } else if (getCategoryActionType(event.target.value as Category) === CategoryActionType.Skippable && this.previousSkipType === CategoryActionType.POI) { + this.setTimeTo(1, this.timeBeforeChangingToPOI); } - + + this.previousSkipType = getCategoryActionType(event.target.value as Category); this.saveEditTimes(); } diff --git a/src/content.ts b/src/content.ts index 9c7b079f..ee989c30 100644 --- a/src/content.ts +++ b/src/content.ts @@ -1433,9 +1433,10 @@ function getRealCurrentTime(): number { } function startOrEndTimingNewSegment() { + const roundedTime = Math.round((getRealCurrentTime() + Number.EPSILON) * 1000) / 1000; if (!isSegmentCreationInProgress()) { sponsorTimesSubmitting.push({ - segment: [getRealCurrentTime()], + segment: [roundedTime], UUID: null, category: Config.config.defaultCategory, actionType: ActionType.Skip, @@ -1445,7 +1446,7 @@ function startOrEndTimingNewSegment() { // Finish creating the new segment const existingSegment = getIncompleteSegment(); const existingTime = existingSegment.segment[0]; - const currentTime = getRealCurrentTime(); + const currentTime = roundedTime; // Swap timestamps if the user put the segment end before the start existingSegment.segment = [Math.min(existingTime, currentTime), Math.max(existingTime, currentTime)]; |