aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAjay Ramachandran <[email protected]>2021-11-02 00:08:10 -0400
committerGitHub <[email protected]>2021-11-02 00:08:10 -0400
commitca0f68bb7d36a11a881177d79875dd218a3c2688 (patch)
treeb9466d7d5cfd92103563921d789b38f27f387b0c
parent34884026d93710aac542c655a83e0125b7722f0f (diff)
parent95f45312e139858151365b0f452415f5eade6fec (diff)
downloadSponsorBlock-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.tsx11
-rw-r--r--src/content.ts5
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)];