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 - {chrome.i18n.getMessage("delete")} - - - {(!isNaN(segment[1]) && ![ActionType.Poi, ActionType.Full].includes(this.state.selectedActionType)) ? ( - + this.previewTime(e.ctrlKey, e.shiftKey)}> - {chrome.i18n.getMessage("preview")} + onClick={this.deleteTime.bind(this)}> + {chrome.i18n.getMessage("delete")} - ): ""} - {(!isNaN(segment[1]) && this.state.selectedActionType != ActionType.Full) ? ( - - {chrome.i18n.getMessage("inspect")} - - ): ""} + {(!isNaN(segment[1]) && ![ActionType.Poi, ActionType.Full].includes(this.state.selectedActionType)) + ? ( + this.previewTime(e.ctrlKey, e.shiftKey)}> + {chrome.i18n.getMessage("preview")} + + ): ""} - {(!isNaN(segment[1]) && ![ActionType.Poi, ActionType.Full].includes(this.state.selectedActionType)) ? ( - this.previewTime(e.ctrlKey, e.shiftKey, true)}> - {chrome.i18n.getMessage("End")} - - ): ""} + {(!isNaN(segment[1]) && this.state.selectedActionType != ActionType.Full) ? ( + + {chrome.i18n.getMessage("inspect")} + + ): ""} + + {(!isNaN(segment[1]) && ![ActionType.Poi, ActionType.Full].includes(this.state.selectedActionType)) ? ( + this.previewTime(e.ctrlKey, e.shiftKey, true)}> + {chrome.i18n.getMessage("End")} + + ): ""} + + {(!isNaN(segment[1]) && this.state.selectedActionType != ActionType.Full) ? ( + + {this.state.editing ? chrome.i18n.getMessage("save") : chrome.i18n.getMessage("edit")} + + ): ""} +
- {(!isNaN(segment[1]) && this.state.selectedActionType != ActionType.Full) ? ( - - {this.state.editing ? chrome.i18n.getMessage("save") : chrome.i18n.getMessage("edit")} - - ): ""}
); } 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);