mirror of
https://github.com/ajayyy/SponsorBlock.git
synced 2024-11-10 09:07:45 +01:00
1c4ca8da26
Also changed the isSubmitButtonLoaded function to be checking for the right button and fixed the startSponsorButton not hiding. Useless function was removed.
41 lines
No EOL
1.3 KiB
JavaScript
41 lines
No EOL
1.3 KiB
JavaScript
// Function that can be used to wait for a condition before returning
|
|
async function wait(condition, timeout = 5000, check = 100) {
|
|
return await new Promise((resolve, reject) => {
|
|
setTimeout(() => {reject("TIMEOUT")}, timeout);
|
|
const interval = setInterval(() => {
|
|
let result = condition();
|
|
if (result !== false) {
|
|
resolve(result);
|
|
clearInterval(interval);
|
|
};
|
|
}, check);
|
|
});
|
|
}
|
|
|
|
function getYouTubeVideoID(url) {
|
|
//Attempt to parse url
|
|
let urlObject = null;
|
|
try {
|
|
urlObject = new URL(url);
|
|
} catch (e) {
|
|
console.error("[SB] Unable to parse URL: " + url);
|
|
return false;
|
|
}
|
|
|
|
//Check if valid hostname
|
|
if(!["www.youtube.com","www.youtube-nocookie.com"].includes(urlObject.host)) return false;
|
|
|
|
//Get ID from searchParam
|
|
if ((urlObject.pathname == "/watch" || urlObject.pathname == "/watch/") && urlObject.searchParams.has("v")) {
|
|
id = urlObject.searchParams.get("v");
|
|
return id.length == 11 ? id : false;
|
|
} else if (urlObject.pathname.startsWith("/embed/")) {
|
|
try {
|
|
return urlObject.pathname.substr(7, 11);
|
|
} catch (e) {
|
|
console.error("[SB] Video ID not valid for " + url);
|
|
return false;
|
|
}
|
|
}
|
|
return false;
|
|
} |