mirror of
https://github.com/ajayyy/SponsorBlock.git
synced 2025-12-13 15:07:02 +03:00
Reimplements error system
This commit is contained in:
201
popup.js
201
popup.js
@@ -1,35 +1,65 @@
|
|||||||
|
|
||||||
// References
|
//make this a function to allow this to run on the content page
|
||||||
|
function runThePopup() {
|
||||||
|
|
||||||
|
//is it in the popup or content script
|
||||||
|
var inPopup = true;
|
||||||
|
if (chrome.tabs == undefined) {
|
||||||
|
//this is on the content script, use direct communication
|
||||||
|
chrome.tabs = {};
|
||||||
|
chrome.tabs.sendMessage = function(id, request, callback) {
|
||||||
|
messageListener(request, null, callback);
|
||||||
|
}
|
||||||
|
|
||||||
|
//add a dummy query method
|
||||||
|
chrome.tabs.query = function(config, callback) {
|
||||||
|
callback([{
|
||||||
|
url: document.URL,
|
||||||
|
id: -1
|
||||||
|
}]);
|
||||||
|
}
|
||||||
|
|
||||||
|
inPopup = false;
|
||||||
|
}
|
||||||
|
|
||||||
var SB = {};
|
var SB = {};
|
||||||
|
|
||||||
SB.sponsorStart = document.getElementById("sponsorStart");
|
["sponsorStart",
|
||||||
SB.clearTimes = document.getElementById("clearTimes");
|
"clearTimes",
|
||||||
SB.submitTimes = document.getElementById("submitTimes");
|
"submitTimes",
|
||||||
SB.showNoticeAgain = document.getElementById("showNoticeAgain");
|
"showNoticeAgain",
|
||||||
SB.hideVideoPlayerControls = document.getElementById("hideVideoPlayerControls");
|
"hideVideoPlayerControls",
|
||||||
SB.showVideoPlayerControls = document.getElementById("showVideoPlayerControls");
|
"showVideoPlayerControls",
|
||||||
SB.hideInfoButtonPlayerControls = document.getElementById("hideInfoButtonPlayerControls");
|
"hideInfoButtonPlayerControls",
|
||||||
SB.showInfoButtonPlayerControls = document.getElementById("showInfoButtonPlayerControls");
|
"showInfoButtonPlayerControls",
|
||||||
SB.hideDeleteButtonPlayerControls = document.getElementById("hideDeleteButtonPlayerControls");
|
"hideDeleteButtonPlayerControls",
|
||||||
SB.showDeleteButtonPlayerControls = document.getElementById("showDeleteButtonPlayerControls");
|
"showDeleteButtonPlayerControls",
|
||||||
SB.disableSponsorViewTracking = document.getElementById("disableSponsorViewTracking");
|
"disableSponsorViewTracking",
|
||||||
SB.enableSponsorViewTracking = document.getElementById("enableSponsorViewTracking");
|
"enableSponsorViewTracking",
|
||||||
SB.optionsButton = document.getElementById("optionsButton");
|
"optionsButton",
|
||||||
SB.reportAnIssue = document.getElementById("reportAnIssue");
|
"reportAnIssue",
|
||||||
// sponsorTimesContributions
|
// sponsorTimesContributions
|
||||||
SB.sponsorTimesContributionsContainer = document.getElementById("sponsorTimesContributionsContainer");
|
"sponsorTimesContributionsContainer",
|
||||||
SB.sponsorTimesContributionsDisplay = document.getElementById("sponsorTimesContributionsDisplay");
|
"sponsorTimesContributionsDisplay",
|
||||||
SB.sponsorTimesContributionsDisplayEndWord = document.getElementById("sponsorTimesContributionsDisplayEndWord");
|
"sponsorTimesContributionsDisplayEndWord",
|
||||||
// sponsorTimesViewsDisplay
|
// sponsorTimesViewsDisplay
|
||||||
SB.sponsorTimesViewsContainer = document.getElementById("sponsorTimesViewsDisplayContainer");
|
"sponsorTimesViewsContainer",
|
||||||
SB.sponsorTimesViewsDisplay = document.getElementById("sponsorTimesViewsDisplayDisplay");
|
"sponsorTimesViewsDisplay",
|
||||||
SB.sponsorTimesViewsDisplayEndWord = document.getElementById("sponsorTimesViewsDisplayDisplayEndWord");
|
"sponsorTimesViewsDisplayEndWord",
|
||||||
// discordButtons
|
// discordButtons
|
||||||
SB.discordButtonContainer = document.getElementById("discordButtonContainer");
|
"discordButtonContainer",
|
||||||
SB.hideDiscordButton = document.getElementById("hideDiscordButton");
|
"hideDiscordButton",
|
||||||
// submitTimesInfoMessage
|
// submitTimesInfoMessage
|
||||||
SB.submitTimesInfoMessageContainer = document.getElementById("submitTimesInfoMessage");
|
"submitTimesInfoMessageContainer",
|
||||||
SB.submitTimesInfoMessage = document.getElementById("submitTimesInfoMessage");
|
"submitTimesInfoMessage"
|
||||||
|
// More
|
||||||
|
"submissionSection",
|
||||||
|
"mainControls",
|
||||||
|
"loadingIndicator",
|
||||||
|
"videoFound",
|
||||||
|
"sponsorMessageTimes",
|
||||||
|
"downloadedSponsorMessageTimes",
|
||||||
|
].forEach(id => SB[id] = document.getElementById(id));
|
||||||
|
|
||||||
//setup click listeners
|
//setup click listeners
|
||||||
SB.sponsorStart.addEventListener("click", sendSponsorStartMessage);
|
SB.sponsorStart.addEventListener("click", sendSponsorStartMessage);
|
||||||
@@ -48,18 +78,26 @@ SB.optionsButton.addEventListener("click", openOptions);
|
|||||||
SB.reportAnIssue.addEventListener("click", reportAnIssue);
|
SB.reportAnIssue.addEventListener("click", reportAnIssue);
|
||||||
SB.hideDiscordButton.addEventListener("click", hideDiscordButton);
|
SB.hideDiscordButton.addEventListener("click", hideDiscordButton);
|
||||||
|
|
||||||
|
//setup error message languages
|
||||||
|
var EN_US = new Map();
|
||||||
|
|
||||||
|
EN_US.set(400, 'Server said this request was invalid"')
|
||||||
|
.set(429, 'You have submitted too many sponsor times for this one video, are you sure there are this many?')
|
||||||
|
.set(409, 'This has already been submitted before')
|
||||||
|
.set(502, 'It seems the server is down. Contact the dev to inform them.')
|
||||||
|
.set('Unknown', 'There was an error submitting your sponsor times, please try again later.');
|
||||||
|
|
||||||
//if true, the button now selects the end time
|
//if true, the button now selects the end time
|
||||||
var startTimeChosen = false;
|
let startTimeChosen = false;
|
||||||
|
|
||||||
//the start and end time pairs (2d)
|
//the start and end time pairs (2d)
|
||||||
var sponsorTimes = [];
|
let sponsorTimes = [];
|
||||||
|
|
||||||
//current video ID of this tab
|
//current video ID of this tab
|
||||||
var currentVideoID = null;
|
let currentVideoID = null;
|
||||||
|
|
||||||
//is this a YouTube tab?
|
//is this a YouTube tab?
|
||||||
var isYouTubeTab = false;
|
let isYouTubeTab = false;
|
||||||
|
|
||||||
//see if discord link can be shown
|
//see if discord link can be shown
|
||||||
chrome.storage.sync.get(["hideDiscordLink"], function(result) {
|
chrome.storage.sync.get(["hideDiscordLink"], function(result) {
|
||||||
@@ -81,7 +119,7 @@ chrome.storage.sync.get(["hideDiscordLink"], function(result) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
//if the don't show notice again variable is true, an option to
|
//if the don't show notice again letiable is true, an option to
|
||||||
// disable should be available
|
// disable should be available
|
||||||
chrome.storage.sync.get(["dontShowNoticeAgain"], function(result) {
|
chrome.storage.sync.get(["dontShowNoticeAgain"], function(result) {
|
||||||
let dontShowNoticeAgain = result.dontShowNoticeAgain;
|
let dontShowNoticeAgain = result.dontShowNoticeAgain;
|
||||||
@@ -164,6 +202,7 @@ chrome.tabs.query({
|
|||||||
currentWindow: true
|
currentWindow: true
|
||||||
}, loadTabData);
|
}, loadTabData);
|
||||||
|
|
||||||
|
|
||||||
function loadTabData(tabs) {
|
function loadTabData(tabs) {
|
||||||
//set current videoID
|
//set current videoID
|
||||||
currentVideoID = getYouTubeVideoID(tabs[0].url);
|
currentVideoID = getYouTubeVideoID(tabs[0].url);
|
||||||
@@ -189,7 +228,7 @@ function loadTabData(tabs) {
|
|||||||
displaySponsorTimes();
|
displaySponsorTimes();
|
||||||
|
|
||||||
//show submission section
|
//show submission section
|
||||||
document.getElementById("submissionSection").style.display = "unset";
|
SB.submissionSection.style.display = "unset";
|
||||||
|
|
||||||
showSubmitTimesIfNecessary();
|
showSubmitTimesIfNecessary();
|
||||||
}
|
}
|
||||||
@@ -213,19 +252,19 @@ function infoFound(request) {
|
|||||||
//if request is undefined, then the page currently being browsed is not YouTube
|
//if request is undefined, then the page currently being browsed is not YouTube
|
||||||
if (request != undefined) {
|
if (request != undefined) {
|
||||||
//this must be a YouTube video
|
//this must be a YouTube video
|
||||||
//set variable
|
//set letiable
|
||||||
isYouTubeTab = true;
|
isYouTubeTab = true;
|
||||||
|
|
||||||
//remove loading text
|
//remove loading text
|
||||||
document.getElementById("mainControls").style.display = "unset"
|
SB.mainControls.style.display = "unset"
|
||||||
document.getElementById("loadingIndicator").innerHTML = "";
|
SB.loadingIndicator.innerHTML = "";
|
||||||
|
|
||||||
if (request.found) {
|
if (request.found) {
|
||||||
document.getElementById("videoFound").innerHTML = "This video's sponsors are in the database!"
|
SB.videoFound.innerHTML = "This video's sponsors are in the database!"
|
||||||
|
|
||||||
displayDownloadedSponsorTimes(request);
|
displayDownloadedSponsorTimes(request);
|
||||||
} else {
|
} else {
|
||||||
document.getElementById("videoFound").innerHTML = "No sponsors found"
|
SB.videoFound.innerHTML = "No sponsors found"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -269,36 +308,33 @@ function startSponsorCallback(response) {
|
|||||||
displaySponsorTimes();
|
displaySponsorTimes();
|
||||||
|
|
||||||
//show submission section
|
//show submission section
|
||||||
document.getElementById("submissionSection").style.display = "unset";
|
SB.submissionSection.style.display = "unset";
|
||||||
|
|
||||||
showSubmitTimesIfNecessary();
|
showSubmitTimesIfNecessary();
|
||||||
}
|
}
|
||||||
|
|
||||||
//display the video times from the array
|
//display the video times from the array
|
||||||
function displaySponsorTimes() {
|
function displaySponsorTimes() {
|
||||||
//set it to the message
|
|
||||||
let sponsorMessageTimes = document.getElementById("sponsorMessageTimes");
|
|
||||||
|
|
||||||
//remove all children
|
//remove all children
|
||||||
while (sponsorMessageTimes.firstChild) {
|
while (SB.sponsorMessageTimes.firstChild) {
|
||||||
sponsorMessageTimes.removeChild(sponsorMessageTimes.firstChild);
|
SB.sponsorMessageTimes.removeChild(SB.sponsorMessageTimes.firstChild);
|
||||||
}
|
}
|
||||||
|
|
||||||
//add sponsor times
|
//add sponsor times
|
||||||
sponsorMessageTimes.appendChild(getSponsorTimesMessageDiv(sponsorTimes));
|
SB.sponsorMessageTimes.appendChild(getSponsorTimesMessageDiv(sponsorTimes));
|
||||||
}
|
}
|
||||||
|
|
||||||
//display the video times from the array at the top, in a different section
|
//display the video times from the array at the top, in a different section
|
||||||
function displayDownloadedSponsorTimes(request) {
|
function displayDownloadedSponsorTimes(request) {
|
||||||
if (request.sponsorTimes != undefined) {
|
if (request.sponsorTimes != undefined) {
|
||||||
//set it to the message
|
//set it to the message
|
||||||
document.getElementById("downloadedSponsorMessageTimes").innerHTML = getSponsorTimesMessage(request.sponsorTimes);
|
SB.downloadedSponsorMessageTimes.innerText = getSponsorTimesMessage(request.sponsorTimes);
|
||||||
|
|
||||||
//add them as buttons to the issue reporting container
|
//add them as buttons to the issue reporting container
|
||||||
let container = document.getElementById("issueReporterTimeButtons");
|
let container = document.getElementById("issueReporterTimeButtons");
|
||||||
for (let i = 0; i < request.sponsorTimes.length; i++) {
|
for (let i = 0; i < request.sponsorTimes.length; i++) {
|
||||||
let sponsorTimeButton = document.createElement("button");
|
let sponsorTimeButton = document.createElement("button");
|
||||||
sponsorTimeButton.className = "warningButton";
|
sponsorTimeButton.className = "warningButton popupElement";
|
||||||
sponsorTimeButton.innerText = getFormattedTime(request.sponsorTimes[i][0]) + " to " + getFormattedTime(request.sponsorTimes[i][1]);
|
sponsorTimeButton.innerText = getFormattedTime(request.sponsorTimes[i][0]) + " to " + getFormattedTime(request.sponsorTimes[i][1]);
|
||||||
|
|
||||||
let votingButtons = document.createElement("div");
|
let votingButtons = document.createElement("div");
|
||||||
@@ -313,13 +349,13 @@ function displayDownloadedSponsorTimes(request) {
|
|||||||
|
|
||||||
let upvoteButton = document.createElement("img");
|
let upvoteButton = document.createElement("img");
|
||||||
upvoteButton.id = "sponsorTimesUpvoteButtonsContainer" + UUID;
|
upvoteButton.id = "sponsorTimesUpvoteButtonsContainer" + UUID;
|
||||||
upvoteButton.className = "voteButton";
|
upvoteButton.className = "voteButton popupElement";
|
||||||
upvoteButton.src = chrome.extension.getURL("icons/upvote.png");
|
upvoteButton.src = chrome.extension.getURL("icons/upvote.png");
|
||||||
upvoteButton.addEventListener("click", () => vote(1, UUID));
|
upvoteButton.addEventListener("click", () => vote(1, UUID));
|
||||||
|
|
||||||
let downvoteButton = document.createElement("img");
|
let downvoteButton = document.createElement("img");
|
||||||
downvoteButton.id = "sponsorTimesDownvoteButtonsContainer" + UUID;
|
downvoteButton.id = "sponsorTimesDownvoteButtonsContainer" + UUID;
|
||||||
downvoteButton.className = "voteButton";
|
downvoteButton.className = "voteButton popupElement";
|
||||||
downvoteButton.src = chrome.extension.getURL("icons/downvote.png");
|
downvoteButton.src = chrome.extension.getURL("icons/downvote.png");
|
||||||
downvoteButton.addEventListener("click", () => vote(0, UUID));
|
downvoteButton.addEventListener("click", () => vote(0, UUID));
|
||||||
|
|
||||||
@@ -378,13 +414,13 @@ function getSponsorTimesMessageDiv(sponsorTimes) {
|
|||||||
for (let i = 0; i < sponsorTimes.length; i++) {
|
for (let i = 0; i < sponsorTimes.length; i++) {
|
||||||
let currentSponsorTimeContainer = document.createElement("div");
|
let currentSponsorTimeContainer = document.createElement("div");
|
||||||
currentSponsorTimeContainer.id = "sponsorTimeContainer" + i;
|
currentSponsorTimeContainer.id = "sponsorTimeContainer" + i;
|
||||||
currentSponsorTimeContainer.className = "sponsorTime";
|
currentSponsorTimeContainer.className = "sponsorTime popupElement";
|
||||||
let currentSponsorTimeMessage = "";
|
let currentSponsorTimeMessage = "";
|
||||||
|
|
||||||
let deleteButton = document.createElement("span");
|
let deleteButton = document.createElement("span");
|
||||||
deleteButton.id = "sponsorTimeDeleteButton" + i;
|
deleteButton.id = "sponsorTimeDeleteButton" + i;
|
||||||
deleteButton.innerText = "Delete";
|
deleteButton.innerText = "Delete";
|
||||||
deleteButton.className = "mediumLink";
|
deleteButton.className = "mediumLink popupElement";
|
||||||
let index = i;
|
let index = i;
|
||||||
deleteButton.addEventListener("click", () => deleteSponsorTime(index));
|
deleteButton.addEventListener("click", () => deleteSponsorTime(index));
|
||||||
|
|
||||||
@@ -394,7 +430,7 @@ function getSponsorTimesMessageDiv(sponsorTimes) {
|
|||||||
let editButton = document.createElement("span");
|
let editButton = document.createElement("span");
|
||||||
editButton.id = "sponsorTimeEditButton" + i;
|
editButton.id = "sponsorTimeEditButton" + i;
|
||||||
editButton.innerText = "Edit";
|
editButton.innerText = "Edit";
|
||||||
editButton.className = "mediumLink";
|
editButton.className = "mediumLink popupElement";
|
||||||
editButton.addEventListener("click", () => editSponsorTime(index));
|
editButton.addEventListener("click", () => editSponsorTime(index));
|
||||||
|
|
||||||
for (let s = 0; s < sponsorTimes[i].length; s++) {
|
for (let s = 0; s < sponsorTimes[i].length; s++) {
|
||||||
@@ -431,36 +467,39 @@ function editSponsorTime(index) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//hide submit button
|
||||||
|
document.getElementById("submitTimesContainer").style.display = "none";
|
||||||
|
|
||||||
let sponsorTimeContainer = document.getElementById("sponsorTimeContainer" + index);
|
let sponsorTimeContainer = document.getElementById("sponsorTimeContainer" + index);
|
||||||
|
|
||||||
//get sponsor time minutes and seconds boxes
|
//get sponsor time minutes and seconds boxes
|
||||||
let startTimeMinutes = document.createElement("input");
|
let startTimeMinutes = document.createElement("input");
|
||||||
startTimeMinutes.id = "startTimeMinutes" + index;
|
startTimeMinutes.id = "startTimeMinutes" + index;
|
||||||
startTimeMinutes.className = "sponsorTime";
|
startTimeMinutes.className = "sponsorTime popupElement";
|
||||||
startTimeMinutes.type = "text";
|
startTimeMinutes.type = "text";
|
||||||
startTimeMinutes.value = getTimeInMinutes(sponsorTimes[index][0]);
|
startTimeMinutes.value = getTimeInMinutes(sponsorTimes[index][0]);
|
||||||
startTimeMinutes.style.width = "45";
|
startTimeMinutes.style.width = "45px";
|
||||||
|
|
||||||
let startTimeSeconds = document.createElement("input");
|
let startTimeSeconds = document.createElement("input");
|
||||||
startTimeSeconds.id = "startTimeSeconds" + index;
|
startTimeSeconds.id = "startTimeSeconds" + index;
|
||||||
startTimeSeconds.className = "sponsorTime";
|
startTimeSeconds.className = "sponsorTime popupElement";
|
||||||
startTimeSeconds.type = "text";
|
startTimeSeconds.type = "text";
|
||||||
startTimeSeconds.value = getTimeInFormattedSeconds(sponsorTimes[index][0]);
|
startTimeSeconds.value = getTimeInFormattedSeconds(sponsorTimes[index][0]);
|
||||||
startTimeSeconds.style.width = "60";
|
startTimeSeconds.style.width = "60px";
|
||||||
|
|
||||||
let endTimeMinutes = document.createElement("input");
|
let endTimeMinutes = document.createElement("input");
|
||||||
endTimeMinutes.id = "endTimeMinutes" + index;
|
endTimeMinutes.id = "endTimeMinutes" + index;
|
||||||
endTimeMinutes.className = "sponsorTime";
|
endTimeMinutes.className = "sponsorTime popupElement";
|
||||||
endTimeMinutes.type = "text";
|
endTimeMinutes.type = "text";
|
||||||
endTimeMinutes.value = getTimeInMinutes(sponsorTimes[index][1]);
|
endTimeMinutes.value = getTimeInMinutes(sponsorTimes[index][1]);
|
||||||
endTimeMinutes.style.width = "45";
|
endTimeMinutes.style.width = "45px";
|
||||||
|
|
||||||
let endTimeSeconds = document.createElement("input");
|
let endTimeSeconds = document.createElement("input");
|
||||||
endTimeSeconds.id = "endTimeSeconds" + index;
|
endTimeSeconds.id = "endTimeSeconds" + index;
|
||||||
endTimeSeconds.className = "sponsorTime";
|
endTimeSeconds.className = "sponsorTime popupElement";
|
||||||
endTimeSeconds.type = "text";
|
endTimeSeconds.type = "text";
|
||||||
endTimeSeconds.value = getTimeInFormattedSeconds(sponsorTimes[index][1]);
|
endTimeSeconds.value = getTimeInFormattedSeconds(sponsorTimes[index][1]);
|
||||||
endTimeSeconds.style.width = "60";
|
endTimeSeconds.style.width = "60px";
|
||||||
|
|
||||||
let colonText = document.createElement("span");
|
let colonText = document.createElement("span");
|
||||||
colonText.innerText = ":";
|
colonText.innerText = ":";
|
||||||
@@ -485,14 +524,13 @@ function editSponsorTime(index) {
|
|||||||
let saveButton = document.createElement("span");
|
let saveButton = document.createElement("span");
|
||||||
saveButton.id = "sponsorTimeSaveButton" + index;
|
saveButton.id = "sponsorTimeSaveButton" + index;
|
||||||
saveButton.innerText = "Save";
|
saveButton.innerText = "Save";
|
||||||
saveButton.className = "mediumLink";
|
saveButton.className = "mediumLink popupElement";
|
||||||
saveButton.addEventListener("click", () => saveSponsorTimeEdit(index));
|
saveButton.addEventListener("click", () => saveSponsorTimeEdit(index));
|
||||||
|
|
||||||
let editButton = document.getElementById("sponsorTimeEditButton" + index);
|
let editButton = document.getElementById("sponsorTimeEditButton" + index);
|
||||||
let sponsorTimesContainer = document.getElementById("sponsorTimesContainer");
|
let sponsorTimesContainer = document.getElementById("sponsorTimesContainer");
|
||||||
|
|
||||||
sponsorTimesContainer.removeChild(editButton);
|
sponsorTimesContainer.replaceChild(saveButton, editButton);
|
||||||
sponsorTimesContainer.appendChild(saveButton);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function saveSponsorTimeEdit(index) {
|
function saveSponsorTimeEdit(index) {
|
||||||
@@ -510,6 +548,8 @@ function saveSponsorTimeEdit(index) {
|
|||||||
chrome.storage.sync.set({[sponsorTimeKey]: sponsorTimes});
|
chrome.storage.sync.set({[sponsorTimeKey]: sponsorTimes});
|
||||||
|
|
||||||
displaySponsorTimes();
|
displaySponsorTimes();
|
||||||
|
|
||||||
|
showSubmitTimesIfNecessary();
|
||||||
}
|
}
|
||||||
|
|
||||||
//deletes the sponsor time submitted at an index
|
//deletes the sponsor time submitted at an index
|
||||||
@@ -587,17 +627,9 @@ function clearTimes() {
|
|||||||
resetStartTimeChosen();
|
resetStartTimeChosen();
|
||||||
}
|
}
|
||||||
|
|
||||||
var EN_US = new Map();
|
function getErrorMessage(lang, statusCode) {
|
||||||
|
if(lang.has(statusCode)) return lang.get(statusCode);
|
||||||
EN_US.set(400, 'Server said this request was invalid"')
|
return lang.get('Unknown').concat(" Error code: ") + statusCode;
|
||||||
.set(429, 'You have submitted too many sponsor times for this one video, are you sure there are this many?')
|
|
||||||
.set(409, 'This has already been submitted before')
|
|
||||||
.set(502, 'It seems the server is down. Contact the dev to inform them.')
|
|
||||||
.set('Unknown', 'There was an error submitting your sponsor times, please try again later.');
|
|
||||||
|
|
||||||
function ErrorParser (Lang, statusCode) {
|
|
||||||
if(Lang.has(statusCode)) return Lang.get(statusCode);
|
|
||||||
return Lang.get('Unknown').concat(" Error code: ") + statusCode;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function submitTimes() {
|
function submitTimes() {
|
||||||
@@ -614,9 +646,14 @@ function submitTimes() {
|
|||||||
if (response.statusCode == 200) {
|
if (response.statusCode == 200) {
|
||||||
//hide loading message
|
//hide loading message
|
||||||
SB.submitTimesInfoMessageContainer.style.display = "none";
|
SB.submitTimesInfoMessageContainer.style.display = "none";
|
||||||
|
|
||||||
clearTimes();
|
clearTimes();
|
||||||
} else {
|
} else {
|
||||||
ErrorParser(EN_US, response.statusCode);
|
let errorMessage = getErrorMessage(EN_US, response.statusCode);
|
||||||
|
|
||||||
|
document.getElementById("submitTimesInfoMessage").innerText = errorMessage;
|
||||||
|
document.getElementById("submitTimesInfoMessageContainer").style.display = "unset";
|
||||||
|
|
||||||
SB.submitTimesInfoMessageContainer.style.display = "unset";
|
SB.submitTimesInfoMessageContainer.style.display = "unset";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -776,7 +813,7 @@ function enableSponsorViewTracking() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function updateStartTimeChosen() {
|
function updateStartTimeChosen() {
|
||||||
//update startTimeChosen variable
|
//update startTimeChosen letiable
|
||||||
if (!startTimeChosen) {
|
if (!startTimeChosen) {
|
||||||
startTimeChosen = true;
|
startTimeChosen = true;
|
||||||
SB.sponsorStart.innerHTML = "Sponsorship Ends Now";
|
SB.sponsorStart.innerHTML = "Sponsorship Ends Now";
|
||||||
@@ -922,8 +959,20 @@ function sendRequestToServer(type, address, callback) {
|
|||||||
xmlhttp.send();
|
xmlhttp.send();
|
||||||
}
|
}
|
||||||
|
|
||||||
function getYouTubeVideoID(url) { // Return video id or false
|
function getYouTubeVideoID(url) { // Returns with video id else returns false
|
||||||
var regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*/;
|
var regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*/;
|
||||||
var match = url.match(regExp);
|
var match = url.match(regExp);
|
||||||
return (match && match[7].length == 11) ? match[7] : false;
|
var id = new URL(url).searchParams.get("v");
|
||||||
|
return (match && match[7].length == 11) ? id : false;
|
||||||
|
}
|
||||||
|
|
||||||
|
//end of function
|
||||||
|
}
|
||||||
|
|
||||||
|
if (chrome.tabs != undefined) {
|
||||||
|
//add the width restriction (because Firefox)
|
||||||
|
document.getElementById("sponorBlockStyleSheet").sheet.insertRule('.popupBody { width: 300 }', 0);
|
||||||
|
|
||||||
|
//this means it is actually opened in the popup
|
||||||
|
runThePopup();
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user