Merge pull request #133 from ajayyy/experimental

Update master
This commit is contained in:
Ajay Ramachandran
2019-08-23 23:30:11 -04:00
committed by GitHub
7 changed files with 200 additions and 243 deletions

View File

@@ -124,6 +124,15 @@
"leftTimes": { "leftTimes": {
"message": "You seem to have left some sponsor times unsubmitted. Go back to that page to submit them (they are not deleted)." "message": "You seem to have left some sponsor times unsubmitted. Go back to that page to submit them (they are not deleted)."
}, },
"clearTimes": {
"message": "Clear Sponsor Times"
},
"openPopup": {
"message": "Open SponsorBlock Popup"
},
"SubmitTimes": {
"message": "Submit Sponsor Times"
},
"submitCheck": { "submitCheck": {
"message": "Are you sure you want to submit this?" "message": "Are you sure you want to submit this?"
} }

View File

@@ -4,12 +4,12 @@
"description": "Name of the extension." "description": "Name of the extension."
}, },
"fullName": { "fullName": {
"message": "SponsorBlock pour YouTube - Enlève les endossements", "message": "SponsorBlock pour YouTube - Enlève les messages commerciaux et publicités intégrées",
"description": "Name of the extension." "description": "Name of the extension."
}, },
"Description": { "Description": {
"message": "Enlève les endossements dans les vidéos YouTube. Soummettre les endossements dans les vidéos que vous regardez pour aidez les autres.", "message": "Passe automatiquement les messages commerciaux intégrés dans les vidéos YouTube. Soumettez les segments commerciaux dans les vidéos que vous regardez pour aidez les autres.",
"description": "Description of the extension." "description": "Description of the extension."
}, },
"helpPage": { "helpPage": {
@@ -19,40 +19,40 @@
"message": "Soumission invalide" "message": "Soumission invalide"
}, },
"429": { "429": {
"message": "Vous avez soummetez trop de endossements, il y a vraiment cette montant?" "message": "Vous cherchez à envoyer beaucoup de segments, il y en a vraiment autant ?"
}, },
"409": { "409": {
"message": "Déjas soummis" "message": "Déja soumis"
}, },
"502": { "502": {
"message": "Le serveur ne fonctionne pas. Message le développeur." "message": "Le serveur ne fonctionne pas. Contactez le développeur."
}, },
"channelWhitelisted": { "channelWhitelisted": {
"message": "Cette channel est sur la liste blanche!" "message": "Cette chaine est sur la liste blanche !"
}, },
"Sponsor": { "Sponsor": {
"message": "endossement" "message": "message commercial"
}, },
"Sponsors": { "Sponsors": {
"message": "endossements" "message": "messages commerciaux"
}, },
"Segment": { "Segment": {
"message": "section d'endossement" "message": "segment de message commercial"
}, },
"Segments": { "Segments": {
"message": "section d'endossements" "message": "segments de message commercial"
}, },
"noticeTitle": { "noticeTitle": {
"message": "Endossement Passer" "message": "Message passé"
}, },
"reportButtonTitle": { "reportButtonTitle": {
"message": "Incorrect" "message": "Incorrect"
}, },
"reportButtonInfo": { "reportButtonInfo": {
"message": "Informe que cette endossement est incorrect ou n'existe pas." "message": "Signaler que ce segment est incorrect ou n'existe pas."
}, },
"Dismiss": { "Dismiss": {
"message": "Ferme" "message": "Fermer"
}, },
"Loading": { "Loading": {
"message": "Chargement en cours..." "message": "Chargement en cours..."
@@ -61,69 +61,69 @@
"message": "Minutes" "message": "Minutes"
}, },
"Secs": { "Secs": {
"message": "Seconds" "message": "Secondes"
}, },
"Hide": { "Hide": {
"message": "Ne Montre Jaimais" "message": "Ne plus montrer"
}, },
"hitGoBack": { "hitGoBack": {
"message": "Clique retourne pour si vous avez manqué parti." "message": "Cliquez sur revenir en arrière pour revenir avant le saut du segment"
}, },
"unskip": { "unskip": {
"message": "Retourne" "message": "Revenir en arrière"
}, },
"reskip": { "reskip": {
"message": "Resaute" "message": "Sauter"
}, },
"paused": { "paused": {
"message": "Pause" "message": "En pause"
}, },
"confirmMSG": { "confirmMSG": {
"message": "\n\nPour modifier ou enlever des soumissions, clique sur le bouton d'info." "message": "\n\nPour modifier ou enlever des soumissions, cliquez sur le bouton d'info."
}, },
"clearThis": { "clearThis": {
"message": "Êtes-vous certaines vous voulez enlever vos soumissions?\n\n" "message": "Êtes-vous certain(e) que vous voulez enlever vos soumissions ?\n\n"
}, },
"Unknown": { "Unknown": {
"message": "Erreur, essayer encore plus tard." "message": "Erreur, essayer plus tard."
}, },
"sponsorFound": { "sponsorFound": {
"message": "Cette vidéo est dans le database!" "message": "Les messages commerciaux sont déjà dans notre base de donnée pour cette vidéo !"
}, },
"sponsor404": { "sponsor404": {
"message": "Rien d'endossements trouvé" "message": "Pas de messages trouvés"
}, },
"sponsorStart": { "sponsorStart": {
"message": "Endossement Commence Maintenant" "message": "Début du message"
}, },
"sponsorEnd": { "sponsorEnd": {
"message": "Endossement Arête Maintenant" "message": "Fin du message"
}, },
"noVideoID": { "noVideoID": {
"message": "Ceci n'est pas une tab de YouTube, ou vous avez cliqué trop tôt. \n Si vous savez que ceci est une tab YouTube, ferme ce menu et essayé encore." "message": "Ceci n'est pas un onglet YouTube, ou vous avez cliqué trop tôt. \n Si vous êtes sur(e) que c'est un onglet YouTube, fermez ce menu et essayer."
}, },
"success": { "success": {
"message": "Succès !" "message": "Succès !"
}, },
"voted": { "voted": {
"message": "Voté!" "message": "A voté !"
}, },
"voteFail": { "voteFail": {
"message": "Vous avez déjà voté la même façon." "message": "Vous avez déjà voté pour ce choix auparavant."
}, },
"serverDown": { "serverDown": {
"message": "Le serveur ne fonctionne pas. Message le développeur." "message": "Le serveur ne fonctionne pas. Contactez le développeur."
}, },
"connectionError": { "connectionError": {
"message": "Erreur. Code: " "message": "Erreur de connexion, Code : "
}, },
"wantToSubmit": { "wantToSubmit": {
"message": "Voulez-vous soumettre les endossements sur le vidéo" "message": "Voulez-vous soumettre les messages pour cette vidéo"
}, },
"leftTimes": { "leftTimes": {
"message": "Vous avez laissé les endossements qui n'étaient pas soumis. Retournez à la page pour les soumettre (Ils ne sont pas enlevés)." "message": "Vous avez laissé des messages non soumis. Retournez sur la vidéo pour les soumettre (ils ont été conservés)."
}, },
"submitCheck": { "submitCheck": {
"message": "Êtes-vous certaines vous voulez soumettre?" "message": "Soumettre ce(s) message(s) ?"
} }
} }

View File

@@ -147,11 +147,29 @@ function submitVote(type, UUID, callback) {
function submitTimes(videoID, callback) { function submitTimes(videoID, callback) {
//get the video times from storage //get the video times from storage
let sponsorTimeKey = 'sponsorTimes' + videoID; let sponsorTimeKey = 'sponsorTimes' + videoID;
chrome.storage.sync.get([sponsorTimeKey, "userID"], function(result) { chrome.storage.sync.get([sponsorTimeKey, "userID"], async function(result) {
let sponsorTimes = result[sponsorTimeKey]; let sponsorTimes = result[sponsorTimeKey];
let userID = result.userID; let userID = result.userID;
if (sponsorTimes != undefined && sponsorTimes.length > 0) { if (sponsorTimes != undefined && sponsorTimes.length > 0) {
let durationResult = await new Promise((resolve, reject) => {
chrome.tabs.query({
active: true,
currentWindow: true
}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {
message: "getVideoDuration"
}, (response) => resolve(response));
});
});
//check if a sponsor exceeds the duration of the video
for (let i = 0; i < sponsorTimes.length; i++) {
if (sponsorTimes[i][1] > durationResult.duration) {
sponsorTimes[i][1] = durationResult.duration;
}
}
//submit these times //submit these times
for (let i = 0; i < sponsorTimes.length; i++) { for (let i = 0; i < sponsorTimes.length; i++) {
//submit the sponsorTime //submit the sponsorTime

View File

@@ -28,11 +28,13 @@ var channelURL;
var channelWhitelisted = false; var channelWhitelisted = false;
// create preview bar // create preview bar
var previewBar; var previewBar = null;
if (id = getYouTubeVideoID(document.URL)) { // Direct Links //the player controls on the YouTube player
videoIDChange(id); var controls = null;
}
// Direct Links
videoIDChange(getYouTubeVideoID(document.URL));
//the last time looked at (used to see if this time is in the interval) //the last time looked at (used to see if this time is in the interval)
var lastTime = -1; var lastTime = -1;
@@ -90,11 +92,7 @@ function messageListener(request, sender, sendResponse) {
//messages from popup script //messages from popup script
if (request.message == "update") { if (request.message == "update") {
if(id = getYouTubeVideoID(document.URL)){ videoIDChange(getYouTubeVideoID(document.URL));
videoIDChange(id);
} else {
resetValues();
}
} }
if (request.message == "sponsorStart") { if (request.message == "sponsorStart") {
@@ -124,10 +122,16 @@ function messageListener(request, sender, sendResponse) {
if (request.message == "getVideoID") { if (request.message == "getVideoID") {
sendResponse({ sendResponse({
videoID: getYouTubeVideoID(document.URL) videoID: sponsorVideoID
}) })
} }
if (request.message == "getVideoDuration") {
sendResponse({
duration: v.duration
});
}
if (request.message == "skipToTime") { if (request.message == "skipToTime") {
v.currentTime = request.time; v.currentTime = request.time;
} }
@@ -152,7 +156,7 @@ function messageListener(request, sender, sendResponse) {
if (request.message == "whitelistChange") { if (request.message == "whitelistChange") {
channelWhitelisted = request.value; channelWhitelisted = request.value;
sponsorsLookup(getYouTubeVideoID(document.URL)); sponsorsLookup(sponsorVideoID);
} }
if (request.message == "showNoticeAgain") { if (request.message == "showNoticeAgain") {
@@ -208,20 +212,30 @@ function resetValues() {
//reset sponsor times //reset sponsor times
sponsorTimes = null; sponsorTimes = null;
UUIDs = null; UUIDs = null;
sponsorVideoID = id;
sponsorLookupRetries = 0; sponsorLookupRetries = 0;
//empty the preview bar //empty the preview bar
if (previewBar !== null) {
previewBar.set([], [], 0); previewBar.set([], [], 0);
}
//reset sponsor data found check //reset sponsor data found check
sponsorDataFound = false; sponsorDataFound = false;
} }
function videoIDChange(id) { function videoIDChange(id) {
//not a url change //if the id has not changed return
if (sponsorVideoID == id) return; if (sponsorVideoID === id) return;
//set the global videoID
sponsorVideoID = id;
resetValues();
//id is not valid
if (!id) return;
//setup the preview bar
if (previewBar == null) { if (previewBar == null) {
//create it //create it
let progressBar = document.getElementsByClassName("ytp-progress-bar-container")[0] || document.getElementsByClassName("no-model cue-range-markers")[0]; let progressBar = document.getElementsByClassName("ytp-progress-bar-container")[0] || document.getElementsByClassName("no-model cue-range-markers")[0];
@@ -254,8 +268,6 @@ function videoIDChange(id) {
//close popup //close popup
closeInfoMenu(); closeInfoMenu();
resetValues();
sponsorsLookup(id); sponsorsLookup(id);
//make sure everything is properly added //make sure everything is properly added
@@ -265,6 +277,7 @@ function videoIDChange(id) {
sponsorTimesSubmitting = []; sponsorTimesSubmitting = [];
//see if the onvideo control image needs to be changed //see if the onvideo control image needs to be changed
wait(getControls).then(result => {
chrome.runtime.sendMessage({ chrome.runtime.sendMessage({
message: "getSponsorTimes", message: "getSponsorTimes",
videoID: id videoID: id
@@ -287,6 +300,7 @@ function videoIDChange(id) {
} }
} }
}); });
});
//see if video controls buttons should be added //see if video controls buttons should be added
chrome.storage.sync.get(["hideVideoPlayerControls"], function(result) { chrome.storage.sync.get(["hideVideoPlayerControls"], function(result) {
@@ -329,6 +343,9 @@ function sponsorsLookup(id) {
} }
//check database for sponsor times //check database for sponsor times
//made true once a setTimeout has been created to try again after a server error
let recheckStarted = false;
sendRequestToServer('GET', "/api/getVideoSponsorTimes?videoID=" + id, function(xmlhttp) { sendRequestToServer('GET', "/api/getVideoSponsorTimes?videoID=" + id, function(xmlhttp) {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
sponsorDataFound = true; sponsorDataFound = true;
@@ -364,7 +381,9 @@ function sponsorsLookup(id) {
}); });
sponsorLookupRetries = 0; sponsorLookupRetries = 0;
} else if (xmlhttp.readyState == 4 && sponsorLookupRetries < 90) { } else if (xmlhttp.readyState == 4 && sponsorLookupRetries < 90 && !recheckStarted) {
recheckStarted = true;
//some error occurred, try again in a second //some error occurred, try again in a second
setTimeout(() => sponsorsLookup(id), 1000); setTimeout(() => sponsorsLookup(id), 1000);
@@ -396,7 +415,7 @@ function updatePreviewBar() {
previewBar.set(allSponsorTimes, types, v.duration); previewBar.set(allSponsorTimes, types, v.duration);
//update last video id //update last video id
lastPreviewBarUpdate = getYouTubeVideoID(document.URL); lastPreviewBarUpdate = sponsorVideoID;
} }
function getChannelID() { function getChannelID() {
@@ -539,55 +558,63 @@ function reskipSponsorTime(UUID) {
} }
} }
//Adds a sponsorship starts button to the player controls
function addPlayerControlsButton() {
if (document.getElementById("startSponsorButton") != null) {
//it's already added
return;
}
let startSponsorButton = document.createElement("button");
startSponsorButton.id = "startSponsorButton";
startSponsorButton.draggable = false;
startSponsorButton.className = "ytp-button playerButton";
startSponsorButton.setAttribute("title", chrome.i18n.getMessage("sponsorStart"));
startSponsorButton.addEventListener("click", startSponsorClicked);
let startSponsorImage = document.createElement("img");
startSponsorImage.id = "startSponsorImage";
startSponsorImage.draggable = false;
startSponsorImage.className = "playerButtonImage";
startSponsorImage.src = chrome.extension.getURL("icons/PlayerStartIconSponsorBlocker256px.png");
//add the image to the button
startSponsorButton.appendChild(startSponsorImage);
let controls = document.getElementsByClassName("ytp-right-controls");
let referenceNode = controls[controls.length - 1];
if (referenceNode == undefined) {
//page not loaded yet
setTimeout(addPlayerControlsButton, 100);
return;
}
referenceNode.prepend(startSponsorButton);
}
function removePlayerControlsButton() { function removePlayerControlsButton() {
if (!sponsorVideoID) return;
document.getElementById("startSponsorButton").style.display = "none"; document.getElementById("startSponsorButton").style.display = "none";
document.getElementById("submitButton").style.display = "none"; document.getElementById("submitButton").style.display = "none";
} }
function createButton(baseID, title, callback, imageName, isDraggable=false) {
if (document.getElementById(baseID + "Button") != null) return;
// Button HTML
let newButton = document.createElement("button");
newButton.draggable = isDraggable;
newButton.id = baseID + "Button";
newButton.className = "ytp-button playerButton";
newButton.setAttribute("title", chrome.i18n.getMessage(title));
newButton.addEventListener("click", callback);
// Image HTML
let newButtonImage = document.createElement("img");
newButton.draggable = isDraggable;
newButtonImage.id = baseID + "Image";
newButtonImage.className = "playerButtonImage";
newButtonImage.src = chrome.extension.getURL("icons/" + imageName);
// Append image to button
newButton.appendChild(newButtonImage);
// Add the button to player
controls.prepend(newButton);
}
function getControls() {
let controls = document.getElementsByClassName("ytp-right-controls");
return (!controls || controls.length === 0) ? false : controls[controls.length - 1]
};
//adds all the player controls buttons
function createButtons() {
wait(getControls).then(result => {
//set global controls variable
controls = result;
// Add button if does not already exist in html
createButton("startSponsor", "sponsorStart", startSponsorClicked, "PlayerStartIconSponsorBlocker256px.png");
createButton("info", "openPopup", openInfoMenu, "PlayerInfoIconSponsorBlocker256px.png")
createButton("delete", "clearTimes", clearSponsorTimes, "PlayerDeleteIconSponsorBlocker256px.png");
createButton("submit", "SubmitTimes", submitSponsorTimes, "PlayerUploadIconSponsorBlocker256px.png");
});
}
//adds or removes the player controls button to what it should be //adds or removes the player controls button to what it should be
function updateVisibilityOfPlayerControlsButton() { function updateVisibilityOfPlayerControlsButton() {
//not on a proper video yet //not on a proper video yet
if (!getYouTubeVideoID(document.URL)) return; if (!sponsorVideoID) return;
createButtons();
addPlayerControlsButton();
addInfoButton();
addDeleteButton();
addSubmitButton();
if (hideVideoPlayerControls) { if (hideVideoPlayerControls) {
removePlayerControlsButton(); removePlayerControlsButton();
} }
@@ -609,7 +636,7 @@ function startSponsorClicked() {
chrome.runtime.sendMessage({ chrome.runtime.sendMessage({
message: "addSponsorTime", message: "addSponsorTime",
time: v.currentTime, time: v.currentTime,
videoID: getYouTubeVideoID(document.URL) videoID: sponsorVideoID
}, function(response) { }, function(response) {
//see if the sponsorTimesSubmitting needs to be updated //see if the sponsorTimesSubmitting needs to be updated
updateSponsorTimesSubmitting(); updateSponsorTimesSubmitting();
@@ -619,7 +646,7 @@ function startSponsorClicked() {
function updateSponsorTimesSubmitting() { function updateSponsorTimesSubmitting() {
chrome.runtime.sendMessage({ chrome.runtime.sendMessage({
message: "getSponsorTimes", message: "getSponsorTimes",
videoID: getYouTubeVideoID(document.URL) videoID: sponsorVideoID
}, function(response) { }, function(response) {
if (response != undefined) { if (response != undefined) {
let sponsorTimes = response.sponsorTimes; let sponsorTimes = response.sponsorTimes;
@@ -634,14 +661,18 @@ function updateSponsorTimesSubmitting() {
}); });
} }
function changeStartSponsorButton(showStartSponsor, uploadButtonVisible) { //is the submit button on the player loaded yet
//if it isn't visible, there is no data function isSubmitButtonLoaded() {
if (uploadButtonVisible && !hideDeleteButtonPlayerControls) { return document.getElementById("submitButton") !== null;
document.getElementById("deleteButton").style.display = "unset";
} else {
document.getElementById("deleteButton").style.display = "none";
} }
function changeStartSponsorButton(showStartSponsor, uploadButtonVisible) {
if(!sponsorVideoID) return false;
wait(isSubmitButtonLoaded).then(result => {
//if it isn't visible, there is no data
let shouldHide = (uploadButtonVisible && !hideDeleteButtonPlayerControls) ? "unset":"none"
document.getElementById("deleteButton").style.display = shouldHide;
if (showStartSponsor) { if (showStartSponsor) {
showingStartSponsor = true; showingStartSponsor = true;
document.getElementById("startSponsorImage").src = chrome.extension.getURL("icons/PlayerStartIconSponsorBlocker256px.png"); document.getElementById("startSponsorImage").src = chrome.extension.getURL("icons/PlayerStartIconSponsorBlocker256px.png");
@@ -661,124 +692,13 @@ function changeStartSponsorButton(showStartSponsor, uploadButtonVisible) {
//disable submit button //disable submit button
document.getElementById("submitButton").style.display = "none"; document.getElementById("submitButton").style.display = "none";
} }
});
} }
function toggleStartSponsorButton() { function toggleStartSponsorButton() {
changeStartSponsorButton(!showingStartSponsor, true); changeStartSponsorButton(!showingStartSponsor, true);
} }
//shows the info button on the video player
function addInfoButton() {
if (document.getElementById("infoButton") != null) {
//it's already added
return;
}
//make a submit button
let infoButton = document.createElement("button");
infoButton.id = "infoButton";
infoButton.draggable = false;
infoButton.className = "ytp-button playerButton";
infoButton.setAttribute("title", "Open SponsorBlock Popup");
infoButton.addEventListener("click", openInfoMenu);
let infoImage = document.createElement("img");
infoImage.id = "infoButtonImage";
infoImage.draggable = false;
infoImage.className = "playerButtonImage";
infoImage.src = chrome.extension.getURL("icons/PlayerInfoIconSponsorBlocker256px.png");
//add the image to the button
infoButton.appendChild(infoImage);
let controls = document.getElementsByClassName("ytp-right-controls");
let referenceNode = controls[controls.length - 1];
if (referenceNode == undefined) {
//page not loaded yet
setTimeout(addInfoButton, 100);
return;
}
referenceNode.prepend(infoButton);
}
//shows the delete button on the video player
function addDeleteButton() {
if (document.getElementById("deleteButton") != null) {
//it's already added
return;
}
//make a submit button
let deleteButton = document.createElement("button");
deleteButton.id = "deleteButton";
deleteButton.draggable = false;
deleteButton.className = "ytp-button playerButton";
deleteButton.setAttribute("title", "Clear Sponsor Times");
deleteButton.addEventListener("click", clearSponsorTimes);
//hide it at the start
deleteButton.style.display = "none";
let deleteImage = document.createElement("img");
deleteImage.id = "deleteButtonImage";
deleteImage.draggable = false;
deleteImage.className = "playerButtonImage";
deleteImage.src = chrome.extension.getURL("icons/PlayerDeleteIconSponsorBlocker256px.png");
//add the image to the button
deleteButton.appendChild(deleteImage);
let controls = document.getElementsByClassName("ytp-right-controls");
let referenceNode = controls[controls.length - 1];
if (referenceNode == undefined) {
//page not loaded yet
setTimeout(addDeleteButton, 100);
return;
}
referenceNode.prepend(deleteButton);
}
//shows the submit button on the video player
function addSubmitButton() {
if (document.getElementById("submitButton") != null) {
//it's already added
return;
}
//make a submit button
let submitButton = document.createElement("button");
submitButton.id = "submitButton";
submitButton.draggable = false;
submitButton.className = "ytp-button playerButton";
submitButton.setAttribute("title", "Submit Sponsor Times");
submitButton.addEventListener("click", submitSponsorTimes);
//hide it at the start
submitButton.style.display = "none";
let submitImage = document.createElement("img");
submitImage.id = "submitButtonImage";
submitImage.draggable = false;
submitImage.className = "playerButtonImage";
submitImage.src = chrome.extension.getURL("icons/PlayerUploadIconSponsorBlocker256px.png");
//add the image to the button
submitButton.appendChild(submitImage);
let controls = document.getElementsByClassName("ytp-right-controls");
let referenceNode = controls[controls.length - 1];
if (referenceNode == undefined) {
//page not loaded yet
setTimeout(addSubmitButton, 100);
return;
}
referenceNode.prepend(submitButton);
}
function openInfoMenu() { function openInfoMenu() {
if (document.getElementById("sponsorBlockPopupContainer") != null) { if (document.getElementById("sponsorBlockPopupContainer") != null) {
//it's already added //it's already added
@@ -843,7 +763,7 @@ function clearSponsorTimes() {
//it can't update to this info yet //it can't update to this info yet
closeInfoMenu(); closeInfoMenu();
let currentVideoID = getYouTubeVideoID(document.URL); let currentVideoID = sponsorVideoID;
let sponsorTimeKey = 'sponsorTimes' + currentVideoID; let sponsorTimeKey = 'sponsorTimes' + currentVideoID;
chrome.storage.sync.get([sponsorTimeKey], function(result) { chrome.storage.sync.get([sponsorTimeKey], function(result) {
@@ -946,13 +866,22 @@ function submitSponsorTimes() {
//it can't update to this info yet //it can't update to this info yet
closeInfoMenu(); closeInfoMenu();
let currentVideoID = getYouTubeVideoID(document.URL); let currentVideoID = sponsorVideoID;
let sponsorTimeKey = 'sponsorTimes' + currentVideoID; let sponsorTimeKey = 'sponsorTimes' + currentVideoID;
chrome.storage.sync.get([sponsorTimeKey], function(result) { chrome.storage.sync.get([sponsorTimeKey], function(result) {
let sponsorTimes = result[sponsorTimeKey]; let sponsorTimes = result[sponsorTimeKey];
if (sponsorTimes != undefined && sponsorTimes.length > 0) { if (sponsorTimes != undefined && sponsorTimes.length > 0) {
//check if a sponsor exceeds the duration of the video
for (let i = 0; i < sponsorTimes.length; i++) {
if (sponsorTimes[i][1] > v.duration) {
sponsorTimes[i][1] = v.duration;
}
}
//update sponsorTimes
chrome.storage.sync.set({[sponsorTimeKey]: sponsorTimes});
let confirmMessage = chrome.i18n.getMessage("submitCheck") + "\n\n" + getSponsorTimesMessage(sponsorTimes); let confirmMessage = chrome.i18n.getMessage("submitCheck") + "\n\n" + getSponsorTimesMessage(sponsorTimes);
confirmMessage += "\n\n" + chrome.i18n.getMessage("confirmMSG"); confirmMessage += "\n\n" + chrome.i18n.getMessage("confirmMSG");
if(!confirm(confirmMessage)) return; if(!confirm(confirmMessage)) return;
@@ -970,7 +899,7 @@ function sendSubmitMessage(){
document.getElementById("submitButtonImage").src = chrome.extension.getURL("icons/PlayerUploadIconSponsorBlocker256px.png"); document.getElementById("submitButtonImage").src = chrome.extension.getURL("icons/PlayerUploadIconSponsorBlocker256px.png");
document.getElementById("submitButton").style.animation = "rotate 1s 0s infinite"; document.getElementById("submitButton").style.animation = "rotate 1s 0s infinite";
let currentVideoID = getYouTubeVideoID(document.URL); let currentVideoID = sponsorVideoID;
chrome.runtime.sendMessage({ chrome.runtime.sendMessage({
message: "submitTimes", message: "submitTimes",

View File

@@ -1,7 +1,7 @@
{ {
"name": "__MSG_fullName__", "name": "__MSG_fullName__",
"short_name": "__MSG_Name__", "short_name": "__MSG_Name__",
"version": "1.1.3", "version": "1.1.4",
"default_locale": "en", "default_locale": "en",
"description": "__MSG_Description__", "description": "__MSG_Description__",
"content_scripts": [ "content_scripts": [

View File

@@ -981,7 +981,7 @@ function runThePopup() {
//set it to false //set it to false
function resetStartTimeChosen() { function resetStartTimeChosen() {
startTimeChosen = false; startTimeChosen = false;
SB.sponsorStart.innerHTML = "SP_START"; SB.sponsorStart.innerHTML = chrome.i18n.getMessage("sponsorStart");
} }
//hides and shows the submit times button when needed //hides and shows the submit times button when needed
@@ -1278,7 +1278,7 @@ function runThePopup() {
if (chrome.tabs != undefined) { if (chrome.tabs != undefined) {
//add the width restriction (because Firefox) //add the width restriction (because Firefox)
document.getElementById("sponorBlockStyleSheet").sheet.insertRule('.popupBody { width: 300 }', 0); document.getElementById("sponorBlockStyleSheet").sheet.insertRule('.popupBody { width: 325 }', 0);
//this means it is actually opened in the popup //this means it is actually opened in the popup
runThePopup(); runThePopup();

View File

@@ -37,4 +37,5 @@ function getYouTubeVideoID(url) {
return false; return false;
} }
} }
return false;
} }