NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name Picarto Link De-Nanny
// @namespace http://www.furaffinity.net/user/Maloo
// @description You know what's annoying? Getting warned that, when I click a link, I'm no longer on picarto! Buzz off. <3
// @license MIT
// @include https://picarto.tv/*
// @version 3.3
// @grant none
// @run-at document-end
// ==/UserScript==
var NannytarEl = document;
var nannynator = function(mutations){
var y;
for (y = 0; y < mutations.length; y++)
{
//var links = document.querySelector('.frame').getElementsByTagName('a');
var links;
if (mutations[y].type == "attributes") {
if (mutations[y].target.hasAttribute("href")) {
links = mutations[y].target;
deNanny(links);
}
}
else {
links = mutations[y].target.getElementsByTagName('a');
if (links.length != 0) deNanny(links);
}
//console.log("Nannypage TERMINATED");
}
/*mutObserver.disconnect();
setTimeout(function() {console.log("Nannynator is back online"); mutObserver.observe(NannytarEl, {attributes: true, subtree: true});}, 1000);*/
};
function deNanny(links) {
var x;
var count = 0;
for (x = 0; x < links.length; x++)
{
var hdata;
hdata = links[x].getAttribute("href");
if (hdata === null) continue;
//else console.log(hdata);
if (hdata.search("/site/referrer") != -1) // /site/referrer?go=http%3A%2F%2Fwww.furaffinity.net%2Fuser%2Fslowfag&ref=https://picarto.tv/Seff
{
//hdata = hdata.substr(14); //Trim off /site/referrer
hdata = hdata.substr(hdata.search("go=") + 3); //Trim off everything before link.
if (hdata.search("&") != -1) //If the go parameter isn't last,
hdata = hdata.substr(0, hdata.search("&")); //Remove everything after it.
//hdata = hdata.substr(18, hdata.search("&ref=https://picarto.tv") - 18); //17 until "&ref=https://picarto.tv"
//console.log(unescape(hdata));
links[x].setAttribute("href", unescape(hdata));
links[x].removeAttribute("onclick");
count++;
}
}
console.log("Terminated " + count + " links.");
//console.log(links);
}
var mutObserver1 = new MutationObserver(nannynator);
var mutObserver2 = new MutationObserver(nannynator);
//console.log("I lived! Links Found: " + links.length);
//console.log(typeof hdata);
var waitForStrip = setInterval(function() {
if (document.querySelector('[class*="InfoBox__Container"]'))
{
deNanny(document.querySelector('#root').getElementsByTagName('a'));
//setInterval(nannynator(), 60000);
NannytarEl = document.querySelector('[class*="InfoBox__Container"]');
mutObserver1.observe(NannytarEl, {attributes: true, childList: true, subtree: true});
NannytarEl = document.querySelector('[class*="ChatBoxContainer"]');
mutObserver1.observe(NannytarEl, {childList: true, subtree: true});
clearInterval(waitForStrip);
}
},3000);