mirror of
https://github.com/ajayyy/SponsorBlock.git
synced 2025-12-13 23:17:05 +03:00
Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e2da071761 | ||
|
|
c20c9ac64a | ||
|
|
2d59f3825c | ||
|
|
fb8b7a7d19 | ||
|
|
d992cc7a3c | ||
|
|
f8fecf5174 | ||
|
|
3007cddce9 | ||
|
|
2b3c812f8a | ||
|
|
61535fac95 | ||
|
|
4182595436 | ||
|
|
a64deb2e18 |
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "__MSG_fullName__",
|
||||
"short_name": "SponsorBlock",
|
||||
"version": "4.4.2",
|
||||
"version": "4.4.3",
|
||||
"default_locale": "en",
|
||||
"description": "__MSG_Description__",
|
||||
"homepage_url": "https://sponsor.ajay.app",
|
||||
|
||||
@@ -101,7 +101,7 @@
|
||||
"message": "It seems the server is down. Contact the dev immediately."
|
||||
},
|
||||
"connectionError": {
|
||||
"message": "A connection error has occured. Error code: "
|
||||
"message": "A connection error has occurred. Error code: "
|
||||
},
|
||||
"clearTimes": {
|
||||
"message": "Clear Segments"
|
||||
@@ -356,7 +356,7 @@
|
||||
"message": "Show Time With Skips Removed"
|
||||
},
|
||||
"showTimeWithSkipsDescription": {
|
||||
"message": "This time appears in brackets next to the current time on below the seekbar. This shows the total video duration minus any segments. This includes segments marked as only \"Show In Seekbar\"."
|
||||
"message": "This time appears in brackets next to the current time on below the Seek Bar. This shows the total video duration minus any segments. This includes segments marked as only \"Show In Seek Bar\"."
|
||||
},
|
||||
"youHaveSkipped": {
|
||||
"message": "You've skipped "
|
||||
@@ -410,7 +410,7 @@
|
||||
"message": "Supported Sites: "
|
||||
},
|
||||
"optionsInfo": {
|
||||
"message": "Enable Invidious support, disable autoskip, hide buttons and more."
|
||||
"message": "Enable Invidious support, disable auto skip, hide buttons and more."
|
||||
},
|
||||
"addInvidiousInstance": {
|
||||
"message": "Add 3rd-Party Client Instance"
|
||||
@@ -499,7 +499,7 @@
|
||||
"incorrectlyFormattedOptions": {
|
||||
"message": "This JSON is not formatted correctly. Your options have not been changed."
|
||||
},
|
||||
"confirmNoticeTitle" : {
|
||||
"confirmNoticeTitle": {
|
||||
"message": "Submit Segment"
|
||||
},
|
||||
"submit": {
|
||||
@@ -947,5 +947,11 @@
|
||||
},
|
||||
"openOptionsPage": {
|
||||
"message": "Open options page"
|
||||
},
|
||||
"resetToDefault": {
|
||||
"message": "Reset settings to default"
|
||||
},
|
||||
"confirmResetToDefault": {
|
||||
"message": "Are you sure you want to reset all settings to their default values? This cannot be undone."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -186,7 +186,7 @@
|
||||
"message": "Detta döljer knapparna på YouTube-spelaren som du kan skicka in segment med som ska hoppas över."
|
||||
},
|
||||
"showSkipButton": {
|
||||
"message": "Behåll knappen hoppa till markerat på spelaren"
|
||||
"message": "Behåll knappen hoppa till höjdpunkt på spelaren"
|
||||
},
|
||||
"showInfoButton": {
|
||||
"message": "Visa Infoknapp På YouTube-spelaren"
|
||||
@@ -613,7 +613,7 @@
|
||||
"message": "Icke-musik"
|
||||
},
|
||||
"category_poi_highlight": {
|
||||
"message": "Markera"
|
||||
"message": "Höjdpunkt"
|
||||
},
|
||||
"category_poi_highlight_description": {
|
||||
"message": "Den del av videon som de flesta letar efter. Liknande kommentarer \"Video börjar på x\"."
|
||||
|
||||
@@ -368,6 +368,12 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div data-type="button-press" data-sync="resetToDefault" data-confirm-message="confirmResetToDefault">
|
||||
<div class="option-button trigger-button">
|
||||
__MSG_resetToDefault__
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="advanced" class="option-group hidden">
|
||||
|
||||
@@ -113,6 +113,7 @@ export interface SBObject {
|
||||
local: SBStorage;
|
||||
forceSyncUpdate(prop: string): void;
|
||||
forceLocalUpdate(prop: string): void;
|
||||
resetToDefault(): void;
|
||||
}
|
||||
|
||||
const Config: SBObject = {
|
||||
@@ -289,7 +290,8 @@ const Config: SBObject = {
|
||||
config: null,
|
||||
local: null,
|
||||
forceSyncUpdate,
|
||||
forceLocalUpdate
|
||||
forceLocalUpdate,
|
||||
resetToDefault
|
||||
};
|
||||
|
||||
// Function setup
|
||||
@@ -522,6 +524,16 @@ function addDefaults() {
|
||||
}
|
||||
}
|
||||
|
||||
function resetToDefault() {
|
||||
chrome.storage.sync.set({
|
||||
...Config.syncDefaults,
|
||||
userID: Config.config.userID,
|
||||
minutesSaved: Config.config.minutesSaved,
|
||||
skipCount: Config.config.skipCount,
|
||||
sponsorTimesContributed: Config.config.sponsorTimesContributed
|
||||
});
|
||||
}
|
||||
|
||||
// Sync config
|
||||
setupConfig();
|
||||
|
||||
|
||||
@@ -276,6 +276,7 @@ function resetValues() {
|
||||
switchingVideos = false;
|
||||
} else {
|
||||
switchingVideos = true;
|
||||
logDebug("Setting switching videos to true (reset data)");
|
||||
}
|
||||
|
||||
firstEvent = true;
|
||||
@@ -574,6 +575,8 @@ function startSponsorSchedule(includeIntersectingSegments = false, currentTime?:
|
||||
// Use interval instead of timeout near the end to combat imprecise video time
|
||||
const startIntervalTime = performance.now();
|
||||
const startVideoTime = Math.max(currentTime, video.currentTime);
|
||||
logDebug(`Starting setInterval skipping ${video.currentTime} to skip at ${skipTime[0]}`);
|
||||
|
||||
currentSkipInterval = setInterval(() => {
|
||||
const intervalDuration = performance.now() - startIntervalTime;
|
||||
if (intervalDuration >= delayTime || video.currentTime >= skipTime[0]) {
|
||||
@@ -588,6 +591,8 @@ function startSponsorSchedule(includeIntersectingSegments = false, currentTime?:
|
||||
}
|
||||
}, 1);
|
||||
} else {
|
||||
logDebug(`Starting timeout to skip ${video.currentTime} to skip at ${skipTime[0]}`);
|
||||
|
||||
// Schedule for right before to be more precise than normal timeout
|
||||
currentSkipSchedule = setTimeout(skippingFunction, Math.max(0, delayTime - 100));
|
||||
}
|
||||
@@ -677,6 +682,8 @@ function setupVideoListeners() {
|
||||
|
||||
if (switchingVideos) {
|
||||
switchingVideos = false;
|
||||
logDebug("Setting switching videos to false");
|
||||
|
||||
// If already segments loaded before video, retry to skip starting segments
|
||||
if (sponsorTimes) startSkipScheduleCheckingForStartSponsors();
|
||||
}
|
||||
@@ -1150,14 +1157,12 @@ async function whitelistCheck() {
|
||||
channelIDInfo = {
|
||||
status: ChannelIDStatus.Found,
|
||||
id: getChannelID().match(/^\/?([^\s/]+)/)[0]
|
||||
}
|
||||
};
|
||||
} catch (e) {
|
||||
channelIDInfo = {
|
||||
status: ChannelIDStatus.Failed,
|
||||
id: null
|
||||
}
|
||||
|
||||
return;
|
||||
};
|
||||
}
|
||||
|
||||
//see if this is a whitelisted channel
|
||||
|
||||
@@ -232,12 +232,22 @@ async function init() {
|
||||
}
|
||||
case "button-press": {
|
||||
const actionButton = optionsElements[i].querySelector(".trigger-button");
|
||||
const confirmMessage = optionsElements[i].getAttribute("data-confirm-message");
|
||||
|
||||
switch(optionsElements[i].getAttribute("data-sync")) {
|
||||
case "copyDebugInformation":
|
||||
actionButton.addEventListener("click", copyDebugOutputToClipboard);
|
||||
break;
|
||||
}
|
||||
actionButton.addEventListener("click", () => {
|
||||
if (confirmMessage !== null && !confirm(chrome.i18n.getMessage(confirmMessage))) {
|
||||
return;
|
||||
}
|
||||
switch (optionsElements[i].getAttribute("data-sync")) {
|
||||
case "copyDebugInformation":
|
||||
copyDebugOutputToClipboard();
|
||||
break;
|
||||
case "resetToDefault":
|
||||
Config.resetToDefault();
|
||||
window.location.reload();
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user