Merge branch 'experimental' of https://github.com/ajayyy/SponsorBlock into experimental-ajay

This commit is contained in:
Ajay Ramachandran
2019-08-31 21:04:19 -04:00

View File

@@ -93,99 +93,104 @@ chrome.runtime.onMessage.addListener(messageListener);
function messageListener(request, sender, sendResponse) { function messageListener(request, sender, sendResponse) {
//messages from popup script //messages from popup script
switch(request.message){
if (request.message == "update") { case "update":
videoIDChange(getYouTubeVideoID(document.URL)); videoIDChange(getYouTubeVideoID(document.URL));
}
if (request.message == "sponsorStart") {
sponsorMessageStarted(sendResponse);
}
if (request.message == "sponsorDataChanged") { break;
updateSponsorTimesSubmitting(); case "sponsorStart":
} sponsorMessageStarted(sendResponse);
if (request.message == "isInfoFound") { break;
//send the sponsor times along with if it's found case "sponsorDataChanged":
sendResponse({ updateSponsorTimesSubmitting();
found: sponsorDataFound,
sponsorTimes: sponsorTimes,
hiddenSponsorTimes: hiddenSponsorTimes,
UUIDs: UUIDs
});
if (popupInitialised && document.getElementById("sponsorBlockPopupContainer") != null) { break;
//the popup should be closed now that another is opening case "isInfoFound":
closeInfoMenu(); //send the sponsor times along with if it's found
} sendResponse({
found: sponsorDataFound,
sponsorTimes: sponsorTimes,
hiddenSponsorTimes: hiddenSponsorTimes,
UUIDs: UUIDs
});
popupInitialised = true; if (popupInitialised && document.getElementById("sponsorBlockPopupContainer") != null) {
} //the popup should be closed now that another is opening
closeInfoMenu();
}
if (request.message == "getVideoID") { popupInitialised = true;
sendResponse({ break;
videoID: sponsorVideoID case "getVideoID":
}) sendResponse({
} videoID: sponsorVideoID
});
if (request.message == "getVideoDuration") { break;
sendResponse({ case "getVideoDuration":
sendResponse({
duration: v.duration duration: v.duration
}); });
}
if (request.message == "skipToTime") { break;
v.currentTime = request.time; case "skipToTime":
} v.currentTime = request.time;
return
case "getCurrentTime":
sendResponse({
currentTime: v.currentTime
});
if (request.message == "getCurrentTime") { break;
sendResponse({ case "getChannelURL":
currentTime: v.currentTime sendResponse({
});
}
if (request.message == "getChannelURL") {
sendResponse({
channelURL: channelURL channelURL: channelURL
}) });
}
if (request.message == "isChannelWhitelisted") { break;
sendResponse({ case "isChannelWhitelisted":
value: channelWhitelisted sendResponse({
}) value: channelWhitelisted
} });
if (request.message == "whitelistChange") { break;
channelWhitelisted = request.value; case "whitelistChange":
sponsorsLookup(sponsorVideoID); channelWhitelisted = request.value;
} sponsorsLookup(sponsorVideoID);
if (request.message == "showNoticeAgain") { break;
dontShowNotice = false; case "dontShowNotice":
} dontShowNotice = false;
if (request.message == "changeStartSponsorButton") { break;
changeStartSponsorButton(request.showStartSponsor, request.uploadButtonVisible); case "changeStartSponsorButton":
} changeStartSponsorButton(request.showStartSponsor, request.uploadButtonVisible);
if (request.message == "changeVideoPlayerControlsVisibility") { break;
hideVideoPlayerControls = request.value; case "showNoticeAgain":
dontShowNotice = false;
break;
case "changeVideoPlayerControlsVisibility":
hideVideoPlayerControls = request.value;
updateVisibilityOfPlayerControlsButton();
updateVisibilityOfPlayerControlsButton(); break;
} else if (request.message == "changeInfoButtonPlayerControlsVisibility") { case "changeInfoButtonPlayerControlsVisibility":
hideInfoButtonPlayerControls = request.value; hideInfoButtonPlayerControls = request.value;
updateVisibilityOfPlayerControlsButton();
updateVisibilityOfPlayerControlsButton(); break;
} else if (request.message == "changeDeleteButtonPlayerControlsVisibility") { case "changeDeleteButtonPlayerControlsVisibility":
hideDeleteButtonPlayerControls = request.value; hideDeleteButtonPlayerControls = request.value;
updateVisibilityOfPlayerControlsButton();
updateVisibilityOfPlayerControlsButton(); break;
} case "trackViewCount":
trackViewCount = request.value;
if (request.message == "trackViewCount") { break;
trackViewCount = request.value;
} }
} }
@@ -386,7 +391,7 @@ function sponsorsLookup(id, channelIDPromise) {
//check if this video was uploaded recently //check if this video was uploaded recently
//use the invidious api to get the time published //use the invidious api to get the time published
sendRequestToCustomServer('GET', "https://invidio.us/api/v1/videos/" + id, function(xmlhttp, error) { sendRequestToCustomServer('GET', "https://invidio.us/api/v1/videos/" + id + '?fields=published', function(xmlhttp, error) {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
let unixTimePublished = JSON.parse(xmlhttp.responseText).published; let unixTimePublished = JSON.parse(xmlhttp.responseText).published;
@@ -615,6 +620,7 @@ function createButton(baseID, title, callback, imageName, isDraggable=false) {
newButton.className = "ytp-button playerButton"; newButton.className = "ytp-button playerButton";
newButton.setAttribute("title", chrome.i18n.getMessage(title)); newButton.setAttribute("title", chrome.i18n.getMessage(title));
newButton.addEventListener("click", callback); newButton.addEventListener("click", callback);
newButton.addEventListener("mouseover", getEventListeners(document.getElementsByClassName("ytp-play-button")[0]).mouseover[0].listener);
// Image HTML // Image HTML
let newButtonImage = document.createElement("img"); let newButtonImage = document.createElement("img");