mirror of
https://github.com/ajayyy/SponsorBlock.git
synced 2024-09-20 13:03:45 +02:00
Merge pull request #114 from ajayyy/experimental-ajay
Made preview bar update more and made the sponsor times reset more.
This commit is contained in:
commit
2431f44a29
1 changed files with 41 additions and 22 deletions
63
content.js
63
content.js
|
@ -18,6 +18,12 @@ var v;
|
||||||
|
|
||||||
var listenerAdded;
|
var listenerAdded;
|
||||||
|
|
||||||
|
//the video id of the last preview bar update
|
||||||
|
var lastPreviewBarUpdate;
|
||||||
|
|
||||||
|
//whether the duration listener listening for the duration changes of the video has been setup yet
|
||||||
|
var durationListenerSetUp = false;
|
||||||
|
|
||||||
//the channel this video is about
|
//the channel this video is about
|
||||||
var channelURL;
|
var channelURL;
|
||||||
|
|
||||||
|
@ -94,7 +100,11 @@ 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(id);
|
if(id = getYouTubeVideoID(document.URL)){
|
||||||
|
videoIDChange(id);
|
||||||
|
} else {
|
||||||
|
resetValues();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (request.message == "sponsorStart") {
|
if (request.message == "sponsorStart") {
|
||||||
|
@ -201,6 +211,24 @@ document.onkeydown = function(e){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function resetValues() {
|
||||||
|
//reset last sponsor times
|
||||||
|
lastTime = -1;
|
||||||
|
lastUnixTimeSkipped = -1;
|
||||||
|
|
||||||
|
//reset sponsor times
|
||||||
|
sponsorTimes = null;
|
||||||
|
UUIDs = null;
|
||||||
|
sponsorVideoID = id;
|
||||||
|
sponsorLookupRetries = 0;
|
||||||
|
|
||||||
|
//empty the preview bar
|
||||||
|
previewBar.set([], [], 0);
|
||||||
|
|
||||||
|
//reset sponsor data found check
|
||||||
|
sponsorDataFound = false;
|
||||||
|
}
|
||||||
|
|
||||||
function videoIDChange(id) {
|
function videoIDChange(id) {
|
||||||
//not a url change
|
//not a url change
|
||||||
if (sponsorVideoID == id) return;
|
if (sponsorVideoID == id) return;
|
||||||
|
@ -237,24 +265,11 @@ function videoIDChange(id) {
|
||||||
//close popup
|
//close popup
|
||||||
closeInfoMenu();
|
closeInfoMenu();
|
||||||
|
|
||||||
//reset last sponsor times
|
resetValues();
|
||||||
lastTime = -1;
|
|
||||||
lastUnixTimeSkipped = -1;
|
|
||||||
|
|
||||||
//reset sponsor times
|
|
||||||
sponsorTimes = null;
|
|
||||||
UUIDs = null;
|
|
||||||
sponsorVideoID = id;
|
|
||||||
sponsorLookupRetries = 0;
|
|
||||||
|
|
||||||
//empty the preview bar
|
|
||||||
previewBar.set([], [], 0);
|
|
||||||
|
|
||||||
//see if there is a video start time
|
//see if there is a video start time
|
||||||
youtubeVideoStartTime = getYouTubeVideoStartTime(document.URL);
|
youtubeVideoStartTime = getYouTubeVideoStartTime(document.URL);
|
||||||
|
|
||||||
//reset sponsor data found check
|
|
||||||
sponsorDataFound = false;
|
|
||||||
sponsorsLookup(id);
|
sponsorsLookup(id);
|
||||||
|
|
||||||
//make sure everything is properly added
|
//make sure everything is properly added
|
||||||
|
@ -312,12 +327,18 @@ function videoIDChange(id) {
|
||||||
|
|
||||||
function sponsorsLookup(id) {
|
function sponsorsLookup(id) {
|
||||||
v = document.querySelector('video') // Youtube video player
|
v = document.querySelector('video') // Youtube video player
|
||||||
|
|
||||||
//there is no video here
|
//there is no video here
|
||||||
if (v == null) {
|
if (v == null) {
|
||||||
setTimeout(() => sponsorsLookup(id), 100);
|
setTimeout(() => sponsorsLookup(id), 100);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!durationListenerSetUp) {
|
||||||
|
durationListenerSetUp = true;
|
||||||
|
|
||||||
|
//wait until it is loaded
|
||||||
|
v.addEventListener('durationchange', updatePreviewBar);
|
||||||
|
}
|
||||||
|
|
||||||
//check database for sponsor times
|
//check database for sponsor times
|
||||||
sendRequestToServer('GET', "/api/getVideoSponsorTimes?videoID=" + id, function(xmlhttp) {
|
sendRequestToServer('GET', "/api/getVideoSponsorTimes?videoID=" + id, function(xmlhttp) {
|
||||||
|
@ -329,11 +350,9 @@ function sponsorsLookup(id) {
|
||||||
|
|
||||||
//update the preview bar
|
//update the preview bar
|
||||||
//leave the type blank for now until categories are added
|
//leave the type blank for now until categories are added
|
||||||
if (isNaN(v.duration)) {
|
if (lastPreviewBarUpdate == id || (lastPreviewBarUpdate == null && !isNaN(v.duration))) {
|
||||||
//wait until it is loaded
|
|
||||||
v.addEventListener('durationchange', updatePreviewBar);
|
|
||||||
} else {
|
|
||||||
//set it now
|
//set it now
|
||||||
|
//otherwise the listener can handle it
|
||||||
updatePreviewBar();
|
updatePreviewBar();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -374,8 +393,8 @@ function sponsorsLookup(id) {
|
||||||
function updatePreviewBar() {
|
function updatePreviewBar() {
|
||||||
previewBar.set(sponsorTimes, [], v.duration);
|
previewBar.set(sponsorTimes, [], v.duration);
|
||||||
|
|
||||||
//the listener is only needed once
|
//update last video id
|
||||||
v.removeEventListener('durationchange', updatePreviewBar);
|
lastPreviewBarUpdate = getYouTubeVideoID(document.URL);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getChannelID() {
|
function getChannelID() {
|
||||||
|
|
Loading…
Reference in a new issue