aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAjay Ramachandran <[email protected]>2019-12-13 23:37:11 -0500
committerGitHub <[email protected]>2019-12-13 23:37:11 -0500
commitb30acaac78d23d66e64c74c328c096693bdd224b (patch)
tree362c26b5056da0dd54cf64341b705e58d14f6171
parent3d01ffee1b9b02097870aad8c3cd2226607c2ef2 (diff)
parent46ac6542243ab19de9495e774f07f195476a8eea (diff)
downloadSponsorBlock-11.9.9.tar.gz
SponsorBlock-11.9.9.zip
Merge pull request #195 from ajayyy/experimental-ajay11.9.9
Small Fixes
-rw-r--r--_locales/en/messages.json8
-rw-r--r--background.js22
-rw-r--r--content.js70
-rw-r--r--help/index_en.html2
-rw-r--r--manifest.json2
-rw-r--r--popup.html14
-rw-r--r--popup.js32
-rw-r--r--utils.js39
-rw-r--r--utils/previewBar.js2
-rw-r--r--utils/skipNotice.js10
10 files changed, 97 insertions, 104 deletions
diff --git a/_locales/en/messages.json b/_locales/en/messages.json
index f34542a7..c0cb80bf 100644
--- a/_locales/en/messages.json
+++ b/_locales/en/messages.json
@@ -76,7 +76,7 @@
"message": "Paused"
},
"confirmMSG": {
- "message": "\n\nTo edit or delete individual values, click the info button or open the extension popup by clicking the extension icon in the top right corner."
+ "message": "To edit or delete individual values, click the info button or open the extension popup by clicking the extension icon in the top right corner."
},
"clearThis": {
"message": "Are you sure you want to clear this?\n\n"
@@ -314,5 +314,11 @@
},
"youHaveSavedTimeEnd": {
"message": " of their lives."
+ },
+ "guildlinesSummary": {
+ "message": "- Make sure your segment only contains paid promotion segment, nothing else.\n- Make sure skipping this segment will not skip valuable content\n- If the whole video is a sponsor, please do not report it. A full video reporting system will come out soon.\n- Please do not report disclaimers that could show bias (if a review video is sponsored, don't skip when they mention that)."
+ },
+ "statusReminder": {
+ "message": "Check status.sponsor.ajay.app for server status."
}
}
diff --git a/background.js b/background.js
index 7aaed64e..ae1f7e45 100644
--- a/background.js
+++ b/background.js
@@ -33,7 +33,7 @@ chrome.runtime.onMessage.addListener(function (request, sender, callback) {
case "alertPrevious":
chrome.notifications.create("stillThere" + Math.random(), {
type: "basic",
- title: chrome.i18n.getMessage("wantToSubmit") + request.previousVideoID + "?",
+ title: chrome.i18n.getMessage("wantToSubmit") + " " + request.previousVideoID + "?",
message: chrome.i18n.getMessage("leftTimes"),
iconUrl: "./icons/LogoSponsorBlocker256px.png"
});
@@ -215,22 +215,4 @@ function sendRequestToServer(type, address, callback) {
//submit this request
xmlhttp.send();
-}
-
-function generateUserID(length = 36) {
- let charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
- let result = "";
- if (window.crypto && window.crypto.getRandomValues) {
- values = new Uint32Array(length);
- window.crypto.getRandomValues(values);
- for (i = 0; i < length; i++) {
- result += charset[values[i] % charset.length];
- }
- return result;
- } else {
- for (let i = 0; i < length; i++) {
- result += charset[Math.floor(Math.random() * charset.length)];
- }
- return result;
- }
-}
+} \ No newline at end of file
diff --git a/content.js b/content.js
index 228172de..b5ec6b93 100644
--- a/content.js
+++ b/content.js
@@ -479,7 +479,12 @@ function updatePreviewBar() {
//create an array of the sponsor types
let types = [];
for (let i = 0; i < localSponsorTimes.length; i++) {
- types.push("sponsor");
+ if (!hiddenSponsorTimes.includes(i)) {
+ types.push("sponsor");
+ } else {
+ // Don't show this sponsor
+ types.push(null);
+ }
}
for (let i = 0; i < sponsorTimesSubmitting.length; i++) {
types.push("previewSponsor");
@@ -493,25 +498,20 @@ function updatePreviewBar() {
function getChannelID() {
//get channel id
- let channelContainers = document.querySelectorAll(".ytd-channel-name#text");
- let channelURLContainer = null;
+ let channelNameContainer = document.getElementById("channel-name");
+ let channelURLContainer = channelNameContainer.querySelector("#container").querySelector("#text-container").querySelector("#text").firstElementChild;
+
- for (let i = 0; i < channelContainers.length; i++) {
- let child = channelContainers[i].firstElementChild;
- if (child != null && child.getAttribute("href") != "") {
- channelURLContainer = child;
- }
- }
- if (channelContainers.length == 0) {
+ if (channelURLContainer === null) {
//old YouTube theme
- channelContainers = document.getElementsByClassName("yt-user-info");
+ let channelContainers = document.getElementsByClassName("yt-user-info");
if (channelContainers.length != 0) {
channelURLContainer = channelContainers[0].firstElementChild;
}
}
- if (channelURLContainer == null) {
+ if (channelURLContainer === null) {
//try later
return false;
}
@@ -545,11 +545,9 @@ function whitelistCheck() {
chrome.storage.sync.get(["whitelistedChannels"], function(result) {
let whitelistedChannels = result.whitelistedChannels;
- if (whitelistedChannels != undefined && whitelistedChannels.includes(channelURL)) {
- //reset sponsor times to nothing
- sponsorTimes = [];
- UUIDs = [];
+ console.log(channelURL)
+ if (whitelistedChannels != undefined && whitelistedChannels.includes(channelURL)) {
channelWhitelisted = true;
}
});
@@ -561,6 +559,8 @@ function sponsorCheck() {
// Make sure this isn't called again
v.ontimeupdate = null;
return;
+ } else if (channelWhitelisted) {
+ return;
}
let skipHappened = false;
@@ -980,14 +980,8 @@ function vote(type, UUID, skipNotice) {
skipNotice.addNoticeInfoMessage.bind(skipNotice)(chrome.i18n.getMessage("voteFail"))
skipNotice.resetVoteButtonInfo.bind(skipNotice)();
} else if (response.successType == -1) {
- if (response.statusCode == 502) {
- skipNotice.addNoticeInfoMessage.bind(skipNotice)(chrome.i18n.getMessage("serverDown"))
- skipNotice.resetVoteButtonInfo.bind(skipNotice)();
- } else {
- //failure: unknown error
- skipNotice.addNoticeInfoMessage.bind(skipNotice)(chrome.i18n.getMessage("connectionError") + response.statusCode);
- skipNotice.resetVoteButtonInfo.bind(skipNotice)();
- }
+ skipNotice.addNoticeInfoMessage.bind(skipNotice)(getErrorMessage(response.statusCode))
+ skipNotice.resetVoteButtonInfo.bind(skipNotice)();
}
}
}
@@ -1047,8 +1041,11 @@ function submitSponsorTimes() {
//update sponsorTimes
chrome.storage.sync.set({[sponsorTimeKey]: sponsorTimes});
- let confirmMessage = chrome.i18n.getMessage("submitCheck") + "\n\n" + getSponsorTimesMessage(sponsorTimes);
- confirmMessage += "\n\n" + chrome.i18n.getMessage("confirmMSG");
+ //update sponsorTimesSubmitting
+ sponsorTimesSubmitting = sponsorTimes;
+
+ let confirmMessage = chrome.i18n.getMessage("submitCheck") + "\n\n" + getSponsorTimesMessage(sponsorTimes)
+ + "\n\n" + chrome.i18n.getMessage("confirmMSG") + "\n\n" + chrome.i18n.getMessage("guildlinesSummary");
if(!confirm(confirmMessage)) return;
sendSubmitMessage();
@@ -1066,8 +1063,6 @@ function sendSubmitMessage(){
let currentVideoID = sponsorVideoID;
- let currentSponsorTimes = submitSponsorTimes;
-
chrome.runtime.sendMessage({
message: "submitTimes",
videoID: currentVideoID
@@ -1091,24 +1086,25 @@ function sendSubmitMessage(){
//clear the sponsor times
let sponsorTimeKey = "sponsorTimes" + currentVideoID;
- chrome.storage.sync.set({[sponsorTimeKey]: []}, () => void updatePreviewBar());
+ chrome.storage.sync.set({[sponsorTimeKey]: []});
//add submissions to current sponsors list
sponsorTimes = sponsorTimes.concat(sponsorTimesSubmitting);
+ for (let i = 0; i < sponsorTimesSubmitting.length; i++) {
+ // Add some random IDs
+ UUIDs.push(generateUserID());
+ }
+
+ // Empty the submitting times
sponsorTimesSubmitting = [];
+
+ updatePreviewBar();
} else {
//show that the upload failed
document.getElementById("submitButton").style.animation = "unset";
document.getElementById("submitImage").src = chrome.extension.getURL("icons/PlayerUploadFailedIconSponsorBlocker256px.png");
- if([400, 429, 409, 502, 0].includes(response.statusCode)) {
- //treat them the same
- if (response.statusCode == 503) response.statusCode = 502;
-
- alert(chrome.i18n.getMessage(response.statusCode + "") + " " + chrome.i18n.getMessage("errorCode") + response.statusCode);
- } else {
- alert(chrome.i18n.getMessage("connectionError") + response.statusCode);
- }
+ alert(getErrorMessage(response.statusCode));
}
}
});
diff --git a/help/index_en.html b/help/index_en.html
index acf0c519..ac3a0987 100644
--- a/help/index_en.html
+++ b/help/index_en.html
@@ -39,7 +39,7 @@
<br/>
<br/>
- Whenever you skip a video, you will get a notice report that submission. If the timing seems wrong, report it! You can also vote in the popup. The extension auto upvotes it if you don't report it, so make sure to report when necessary.
+ Whenever you skip a video, you will get a notice report that submission. If the timing seems wrong, report it! You can also vote in the popup. The extension auto upvotes it if you don't report it, so make sure to report when necessary (this can be disabled in the options).
</p>
<center><img height="120px" src="https://user-images.githubusercontent.com/12688112/63067735-5a638700-bede-11e9-8147-f321b57527ec.gif"></center>
diff --git a/manifest.json b/manifest.json
index e186cd0f..327d5db1 100644
--- a/manifest.json
+++ b/manifest.json
@@ -1,7 +1,7 @@
{
"name": "__MSG_fullName__",
"short_name": "__MSG_Name__",
- "version": "1.1.9.8",
+ "version": "1.1.9.9",
"default_locale": "en",
"description": "__MSG_Description__",
"content_scripts": [
diff --git a/popup.html b/popup.html
index 3e96de4d..a9130680 100644
--- a/popup.html
+++ b/popup.html
@@ -140,24 +140,24 @@
<span class="popupElement">__MSG_youHaveSavedTimeEnd__</span>
</span>
- <br/>
- <br/>
-
- <span id="sponsorTimesSkipsDoneContainer" class="popupElement" style="display: none">
+ <div id="sponsorTimesSkipsDoneContainer" class="popupElement" style="display: none">
__MSG_youHaveSkipped__
<span id="sponsorTimesSkipsDoneDisplay" class="popupElement">
0
</span>
<span id="sponsorTimesSkipsDoneEndWord" class="popupElement">__MSG_Segments__</span> since December 5th.
- </span>
+ </div>
- <span id="sponsorTimeSavedContainer" class="popupElement" style="display: none">
+ <div id="sponsorTimeSavedContainer" class="popupElement" style="display: none">
__MSG_youHaveSaved__
<span id="sponsorTimeSavedDisplay" class="popupElement">
0
</span>
<span id="sponsorTimeSavedEndWord" class="popupElement">__MSG_minsLower__</span> since December 5th.
- </span>
+
+ </br/>
+ </br/>
+ </div>
<div class="popupElement">
__MSG_viewLeaderboard__ <a class="popupElement discreteLink" href="https://sponsor.ajay.app/stats" target="_blank">__MSG_here__</a>.
diff --git a/popup.js b/popup.js
index d51fac4b..d5646e2c 100644
--- a/popup.js
+++ b/popup.js
@@ -895,18 +895,7 @@ function runThePopup() {
clearTimes();
} else {
- let errorMessage = "";
-
- if([400, 429, 409, 502, 0].includes(response.statusCode)) {
- //treat them the same
- if (response.statusCode == 503) response.statusCode = 502;
-
- errorMessage = chrome.i18n.getMessage(response.statusCode + "") + " " + chrome.i18n.getMessage("errorCode") + response.statusCode;
- } else {
- errorMessage = chrome.i18n.getMessage("connectionError") + response.statusCode;
- }
-
- document.getElementById("submitTimesInfoMessage").innerText = errorMessage;
+ document.getElementById("submitTimesInfoMessage").innerText = getErrorMessage(response.statusCode);
document.getElementById("submitTimesInfoMessageContainer").style.display = "unset";
SB.submitTimesInfoMessageContainer.style.display = "unset";
@@ -1138,7 +1127,7 @@ function runThePopup() {
SB.usernameInput.style.display = "none";
SB.setUsernameStatusContainer.style.display = "unset";
- SB.setUsernameStatus.innerText = "Couldn't connect to server. Error code: " + xmlhttp.status;
+ SB.setUsernameStatus.innerText = getErrorMessage(xmlhttp.status);
}
});
});
@@ -1160,15 +1149,7 @@ function runThePopup() {
SB.setUsernameStatus.innerText = chrome.i18n.getMessage("success");
} else if (xmlhttp.readyState == 4) {
- let errorMessage = "";
-
- if([400, 429, 409, 502].includes(xmlhttp.status)) {
- errorMessage = chrome.i18n.getMessage(xmlhttp.status);
- } else {
- errorMessage = chrome.i18n.getMessage("connectionError") + xmlhttp.status;
- }
-
- SB.setUsernameStatus.innerText = errorMessage;
+ SB.setUsernameStatus.innerText = getErrorMessageI(xmlhttp.status);
}
});
});
@@ -1224,12 +1205,7 @@ function runThePopup() {
//failure: duplicate vote
addVoteMessage(chrome.i18n.getMessage("voteFail"), UUID)
} else if (response.successType == -1) {
- if (response.statusCode == 502) {
- addVoteMessage(chrome.i18n.getMessage("serverDown"), UUID)
- } else {
- //failure: unknown error
- addVoteMessage(chrome.i18n.getMessage("connectionError") + response.statusCode, UUID)
- }
+ addVoteMessage(getErrorMessage(response.statusCode), UUID)
}
}
});
diff --git a/utils.js b/utils.js
index d9ce3a22..838769a2 100644
--- a/utils.js
+++ b/utils.js
@@ -66,3 +66,42 @@ function localizeHtmlPage() {
}
}
+function generateUserID(length = 36) {
+ let charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
+ let result = "";
+ if (window.crypto && window.crypto.getRandomValues) {
+ values = new Uint32Array(length);
+ window.crypto.getRandomValues(values);
+ for (i = 0; i < length; i++) {
+ result += charset[values[i] % charset.length];
+ }
+ return result;
+ } else {
+ for (let i = 0; i < length; i++) {
+ result += charset[Math.floor(Math.random() * charset.length)];
+ }
+ return result;
+ }
+}
+
+/**
+ * Gets the error message in a nice string
+ *
+ * @param {int} statusCode
+ * @returns {string} errorMessage
+ */
+function getErrorMessage(statusCode) {
+ let errorMessage = "";
+
+ if([400, 429, 409, 502, 0].includes(statusCode)) {
+ //treat them the same
+ if (statusCode == 503) statusCode = 502;
+
+ errorMessage = chrome.i18n.getMessage(statusCode + "") + " " + chrome.i18n.getMessage("errorCode") + statusCode
+ + "\n\n" + chrome.i18n.getMessage("statusReminder");
+ } else {
+ errorMessage = chrome.i18n.getMessage("connectionError") + statusCode;
+ }
+
+ return errorMessage;
+} \ No newline at end of file
diff --git a/utils/previewBar.js b/utils/previewBar.js
index c746c5d4..e5a74b62 100644
--- a/utils/previewBar.js
+++ b/utils/previewBar.js
@@ -59,6 +59,8 @@ class PreviewBar {
duration = Math.floor(duration * 100) / 100;
let width;
for (let i = 0; i < timestamps.length; i++) {
+ if (types[i] == null) continue;
+
width = (timestamps[i][1] - timestamps[i][0]) / duration * 100;
width = Math.floor(width * 100) / 100;
diff --git a/utils/skipNotice.js b/utils/skipNotice.js
index c69e62d2..a9e537b3 100644
--- a/utils/skipNotice.js
+++ b/utils/skipNotice.js
@@ -324,15 +324,7 @@ class SkipNotice {
//add this as a hidden sponsorTime
hiddenSponsorTimes.push(i);
- let sponsorTimesLeft = sponsorTimes.slice();
- for (let j = 0; j < hiddenSponsorTimes.length; j++) {
- //remove this sponsor time
- sponsorTimesLeft.splice(hiddenSponsorTimes[j], 1);
- }
-
- //update the preview
- previewBar.set(sponsorTimesLeft, [], v.duration);
-
+ updatePreviewBar();
break;
}
}