Files
yt-share-cleaner/yt-share-cleaner.js
2025-08-25 15:18:35 -04:00

45 lines
1.4 KiB
JavaScript

(function() {
// 'use strict';
function isShareLink(url) {
// test if input is a share link, return True or False
const regex = /https:\/\/youtu\.be\/[A-Za-z0-9\_-]+\?si=.+/i;
const isShareLink = regex.test(url);
return(isShareLink)
}
function cleanUrl(url){
// clean tracker from URL if it is a share link
if (isShareLink(url)) {
// replace tracker portion with empty string
const cleanedUrl = url.replace(/\?si=[^&]+&?/, "");
return(cleanedUrl)
}
// return original url if it is not a share link
console.log("Not a share link, clipboard contents unmodified.")
return(url)
}
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function onMouseUp() {
// wait half a second after clicking before reading clipboard
await sleep(500);
let clipText = await navigator.clipboard.readText();
let newText = cleanUrl(clipText);
if (clipText !== newText) {
const newClip = await navigator.clipboard.writeText(newText);
console.log("Modified clipboard with cleaned share link: %o", newText);
clipText = undefined;
newText = undefined;
}
clipText = undefined;
newText = undefined;
}
document.addEventListener('mouseup', onMouseUp, false);
})();