diff --git a/maze-utils b/maze-utils
index c64eefa6..b374bc62 160000
--- a/maze-utils
+++ b/maze-utils
@@ -1 +1 @@
-Subproject commit c64eefa6602d9672bac8b075088cc3680cf37831
+Subproject commit b374bc6270df77daba964f1bae3f4ca8d11baaa7
diff --git a/public/_locales b/public/_locales
index d3080f6a..c6a170d2 160000
--- a/public/_locales
+++ b/public/_locales
@@ -1 +1 @@
-Subproject commit d3080f6a4a7c905f49fbf5c994d2e97c5b09d7c6
+Subproject commit c6a170d2a8824c75274b93635374afa728b32e94
diff --git a/public/options/options.html b/public/options/options.html
index 4a6e68a4..1169568e 100644
--- a/public/options/options.html
+++ b/public/options/options.html
@@ -561,6 +561,18 @@
__MSG_exportOtherData__
__MSG_whatTrackDownvotes__
+
+
+
+
+
+
+
__MSG_copyDebugInformation__
diff --git a/src/background.ts b/src/background.ts
index 55236cec..97aa3f9f 100644
--- a/src/background.ts
+++ b/src/background.ts
@@ -209,7 +209,7 @@ async function submitVote(type: number, UUID: string, category: string) {
try {
const response = await asyncRequestToServer("POST", "/api/voteOnSponsorTime?UUID=" + UUID + "&userID=" + userID + typeSection);
-
+
if (response.ok) {
return {
successType: 1,
diff --git a/src/components/SponsorTimeEditComponent.tsx b/src/components/SponsorTimeEditComponent.tsx
index 3bc88361..f957fa86 100644
--- a/src/components/SponsorTimeEditComponent.tsx
+++ b/src/components/SponsorTimeEditComponent.tsx
@@ -244,43 +244,47 @@ class SponsorTimeEditComponent extends React.Component
- {(!isNaN(segment[1]) && this.state.selectedActionType != ActionType.Full) ? (
-
- ): ""}
);
}
diff --git a/src/config.ts b/src/config.ts
index 6640297c..89692718 100644
--- a/src/config.ts
+++ b/src/config.ts
@@ -29,6 +29,7 @@ interface SBConfig {
trackViewCount: boolean;
trackViewCountInPrivate: boolean;
trackDownvotes: boolean;
+ trackDownvotesInPrivate: boolean;
dontShowNotice: boolean;
noticeVisibilityMode: NoticeVisbilityMode;
hideVideoPlayerControls: boolean;
@@ -273,6 +274,7 @@ const syncDefaults = {
trackViewCount: true,
trackViewCountInPrivate: true,
trackDownvotes: true,
+ trackDownvotesInPrivate: false,
dontShowNotice: false,
noticeVisibilityMode: NoticeVisbilityMode.FadedForAutoSkip,
hideVideoPlayerControls: false,
diff --git a/src/content.ts b/src/content.ts
index 8059da11..234b72ee 100644
--- a/src/content.ts
+++ b/src/content.ts
@@ -2140,7 +2140,8 @@ async function sendSubmitMessage(): Promise {
if (!previewedSegment
&& !sponsorTimesSubmitting.every((segment) =>
[ActionType.Full, ActionType.Poi].includes(segment.actionType)
- || segment.segment[1] >= getVideo()?.duration)) {
+ || segment.segment[1] >= getVideo()?.duration
+ || segment.segment[0] === 0)) {
alert(`${chrome.i18n.getMessage("previewSegmentRequired")} ${keybindToString(Config.config.previewKeybind)}`);
return false;
}
diff --git a/src/options.ts b/src/options.ts
index 8e595dfe..25ca7c0f 100644
--- a/src/options.ts
+++ b/src/options.ts
@@ -254,7 +254,7 @@ async function init() {
break;
case "resetToDefault":
Config.resetToDefault();
- window.location.reload();
+ setTimeout(() => window.location.reload(), 200);
break;
}
});
@@ -564,8 +564,7 @@ async function setTextOption(option: string, element: HTMLElement, value: string
}
}
- window.location.reload();
-
+ setTimeout(() => window.location.reload(), 200);
} catch (e) {
alert(chrome.i18n.getMessage("incorrectlyFormattedOptions"));
}
diff --git a/src/utils.ts b/src/utils.ts
index 8aff0723..0c31b3fa 100644
--- a/src/utils.ts
+++ b/src/utils.ts
@@ -272,7 +272,8 @@ export default class Utils {
}
async addHiddenSegment(videoID: VideoID, segmentUUID: string, hidden: SponsorHideType) {
- if (chrome.extension.inIncognitoContext || !Config.config.trackDownvotes) return;
+ if ((chrome.extension.inIncognitoContext && !Config.config.trackDownvotesInPrivate)
+ || !Config.config.trackDownvotes) return;
const hashedVideoID = (await getHash(videoID, 1)).slice(0, 4) as VideoID & HashedValue;
const UUIDHash = await getHash(segmentUUID, 1);