diff --git a/SB.js b/SB.js index 9fa8f29e..a7f8d048 100644 --- a/SB.js +++ b/SB.js @@ -160,7 +160,9 @@ SB.defaults = { "hideDeleteButtonPlayerControls": false, "hideDiscordLaunches": 0, "hideDiscordLink": false, - "invidiousInstances": ["invidio.us", "invidiou.sh"] + "invidiousInstances": ["invidio.us", "invidiou.sh", "invidious.snopyta.org"], + "invidiousUpdateInfoShowCount": 0, + "autoUpvote": true } // Reset config diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 3dca55b5..eab70b4e 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -374,5 +374,17 @@ }, "currentInstances": { "message": "Current Instances:" + }, + "enableAutoUpvote": { + "message": "Auto Upvote" + }, + "whatAutoUpvote": { + "message": "With this enabled, the extension will upvote all submissions you view if you do not report them. If the notice is disabled, this will not occur." + }, + "invidiousInfo1": { + "message": "Invidious (the 3rd party YouTube site) support has been added!" + }, + "invidiousInfo2": { + "message": "You MUST enable it in the options for it to work." } } diff --git a/background.js b/background.js index f6d1d533..1f7cdd70 100644 --- a/background.js +++ b/background.js @@ -16,9 +16,7 @@ chrome.tabs.onUpdated.addListener(function(tabId) { }, () => void chrome.runtime.lastError ); // Suppress error on Firefox }); -chrome.runtime.onMessage.addListener(async function (request, sender, callback) { - await wait(() => SB.config !== undefined); - +chrome.runtime.onMessage.addListener(function (request, sender, callback) { switch(request.message) { case "submitTimes": submitTimes(request.videoID, callback); @@ -65,6 +63,8 @@ chrome.runtime.onMessage.addListener(async function (request, sender, callback) //add help page on install chrome.runtime.onInstalled.addListener(function (object) { + // This let's the config sync to run fully before checking. + // This is required on Firefox setTimeout(function() { const userID = SB.config.userID; @@ -76,7 +76,11 @@ chrome.runtime.onInstalled.addListener(function (object) { //generate a userID const newUserID = generateUserID(); //save this UUID - SB.config.userID = newUserID; + SB.config.userID = newUserID; + + //TODO: Remove when invidious support is old + // Don't show this to new users + SB.config.invidiousUpdateInfoShowCount = 6; } }, 1500); }); @@ -132,34 +136,35 @@ function addSponsorTime(time, videoID, callback) { } function submitVote(type, UUID, callback) { - let userID = SB.config.userID; + let userID = SB.config.userID; - if (userID == undefined || userID === "undefined") { - //generate one - userID = generateUserID(); - SB.config.userID = userID; + if (userID == undefined || userID === "undefined") { + //generate one + userID = generateUserID(); + SB.config.userID = userID; + } + + //publish this vote + sendRequestToServer("POST", "/api/voteOnSponsorTime?UUID=" + UUID + "&userID=" + userID + "&type=" + type, function(xmlhttp, error) { + if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { + callback({ + successType: 1 + }); + } else if (xmlhttp.readyState == 4 && xmlhttp.status == 405) { + //duplicate vote + callback({ + successType: 0, + statusCode: xmlhttp.status + }); + } else if (error) { + //error while connect + callback({ + successType: -1, + statusCode: xmlhttp.status + }); } - //publish this vote - sendRequestToServer("POST", "/api/voteOnSponsorTime?UUID=" + UUID + "&userID=" + userID + "&type=" + type, function(xmlhttp, error) { - if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { - callback({ - successType: 1 - }); - } else if (xmlhttp.readyState == 4 && xmlhttp.status == 405) { - //duplicate vote - callback({ - successType: 0, - statusCode: xmlhttp.status - }); - } else if (error) { - //error while connect - callback({ - successType: -1, - statusCode: xmlhttp.status - }); - } - }) + }); } async function submitTimes(videoID, callback) { diff --git a/content.css b/content.css index 525fedc3..c76484ad 100644 --- a/content.css +++ b/content.css @@ -71,7 +71,7 @@ } .sponsorSkipNotice { - min-width: 300px; + min-width: 350px; background-color: rgba(28, 28, 28, 0.9); position: absolute; right: 5px; diff --git a/content.js b/content.js index b165dafd..f3b96fe0 100644 --- a/content.js +++ b/content.js @@ -556,8 +556,16 @@ function skipToTime(v, index, sponsorTimes, openNotice) { //send out the message saying that a sponsor message was skipped if (!SB.config.dontShowNotice) { let skipNotice = new SkipNotice(this, currentUUID, SB.config.disableAutoSkip); + + //TODO: Remove this when Invidious support is old + if (SB.config.invidiousUpdateInfoShowCount < 5) { + skipNotice.addNoticeInfoMessage(chrome.i18n.getMessage("invidiousInfo1"), chrome.i18n.getMessage("invidiousInfo2")); + + SB.config.invidiousUpdateInfoShowCount += 1; + } + //auto-upvote this sponsor - if (SB.config.trackViewCount && !SB.config.disableAutoSkip) { + if (SB.config.trackViewCount && !SB.config.disableAutoSkip && SB.config.autoUpvote) { vote(1, currentUUID, null); } } diff --git a/help/index_en.html b/help/index_en.html index 5db3c81f..abeff075 100644 --- a/help/index_en.html +++ b/help/index_en.html @@ -27,6 +27,12 @@ Come contribute, make some suggestions and help out in the Discord: https://discord.gg/QnmVMpU

+ Enable Invidious Support + +

+ Invidious is a third-party YouTube viewer. SponsorBlock now supports invidious along with YouTube. Please visit the options page to make sure everything is how you want it to be. +

+

How skipping works

diff --git a/help/styles.css b/help/styles.css index 278d8c72..b71059d3 100644 --- a/help/styles.css +++ b/help/styles.css @@ -1,4 +1,8 @@ -:not(.hljs-keyword):not(.hljs-comment):not(.hljs-number):not(.hljs-string):not(pre):not(code) { +.bigText { + font-size: 50px; +} + +body { background-color: #333333; } @@ -122,7 +126,7 @@ a { text-decoration: none; } -p,li { +p,li,a { font-family: sans-serif; font-size: 20; color: #c4c4c4; diff --git a/options/options.html b/options/options.html index b76c3e0a..2278e4d3 100644 --- a/options/options.html +++ b/options/options.html @@ -181,6 +181,23 @@

__MSG_whatDeleteButton__
+ +
+
+ +
+ + +
+
+ +
__MSG_whatAutoUpvote__
+


diff --git a/package.json b/package.json index 2300f120..c5dadd4a 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ }, "scripts": { "test": "echo \"Error: no test specified\" && exit 1", - "dev": "web-ext run", + "dev": "web-ext run --start-url https://chrome.google.com/webstore/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm", "build": "web-ext build --overwrite-dest -i \"*(package-lock.json|README.md|package.json|config.js.example|firefox_manifest-extra.json|manifest.json.original|ignored|crowdin.yml)\"" }, "repository": { diff --git a/popup.js b/popup.js index 9e9ccaeb..7be8235d 100644 --- a/popup.js +++ b/popup.js @@ -231,7 +231,6 @@ async function runThePopup() { } //load video times for this video - setTimeout(()=> console.log( SB.config.sponsorTimes.set), 200 ) let sponsorTimesStorage = SB.config.sponsorTimes.get(currentVideoID); if (sponsorTimesStorage != undefined && sponsorTimesStorage.length > 0) { if (sponsorTimesStorage[sponsorTimesStorage.length - 1] != undefined && sponsorTimesStorage[sponsorTimesStorage.length - 1].length < 2) { @@ -919,10 +918,8 @@ async function runThePopup() { type: type, UUID: UUID }, function(response) { - console.log(response) if (response != undefined) { //see if it was a success or failure - console.log(response) if (response.successType == 1 || (response.successType == -1 && response.statusCode == 429)) { //success (treat rate limits as a success) addVoteMessage(chrome.i18n.getMessage("voted"), UUID)