Last active
December 5, 2020 19:30
-
-
Save softwareengineerprogrammer/c5d44be95d51ad5a996e6baad9cc6598 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==UserScript== | |
// @name FB Link Badger | |
// @namespace https://gist.github.com/softwareengineerprogrammer | |
// @version 0.5 | |
// @description Clean FB tracking shit from links | |
// @author softwareengineerprogrammer | |
// @match https://www.facebook.com/* | |
// @match https://www.facebook.com/ | |
// @updateURL https://gist.github.com/softwareengineerprogrammer/c5d44be95d51ad5a996e6baad9cc6598/raw/cf2667de5e23e79583daa8ad89256d188459082e/FB_Link_Badger.user.js | |
// @downloadURL https://gist.github.com/softwareengineerprogrammer/c5d44be95d51ad5a996e6baad9cc6598/raw/cf2667de5e23e79583daa8ad89256d188459082e/FB_Link_Badger.user.js | |
// @grant none | |
// ==/UserScript== | |
(function() { | |
'use strict'; | |
var nthParent = function(el,p) { | |
if(p >0) { | |
return nthParent(el.parentElement,p-1); | |
} else { | |
return p; | |
} | |
}; | |
var linked = {}; | |
var timeoutHandle; | |
var badger = function() { | |
var badgered = 0; | |
console.log("Badgering..."); | |
document.querySelectorAll("a[target='_blank']").forEach(function(elm){ | |
if(!elm.getAttribute("badger-link")){ | |
//elm.style="border-bottom: red solid 1px !important"; | |
var badgerLink = document.createElement("a"); | |
var topPos = 50;//document.querySelector("#contentArea").scrollTop; | |
badgerLink.style = "position:sticky; top:" + topPos + "px; background-color:white; left: 0;"; | |
badgerLink.target="_blank"; | |
//badgerLink.rel="nofollow"; | |
var niceHref = elm.href; | |
if(niceHref.indexOf("https://l.facebook.com/l.php?u=") > -1) { | |
niceHref = decodeURIComponent(niceHref.replace("https://l.facebook.com/l.php?u=","")); | |
} | |
niceHref = niceHref.split("?")[0].split("&h=")[0]; | |
if(niceHref.indexOf("fbclid=") > -1){ | |
console.log("Link has FB click ID:", niceHref) | |
niceHref = niceHref.split("fbclid=")[0] | |
console.log("Link without FB click ID:",niceHref) | |
}else{ | |
console.log("Link does NOT have FB click ID:", niceHref) | |
} | |
elm.href = niceHref; | |
if(!linked[niceHref]){ | |
badgerLink.href = niceHref; | |
badgerLink.innerText = "🦂 " + niceHref; | |
elm.parentElement.parentElement.append(badgerLink); | |
//document.body.append(badgerLink); | |
elm.setAttribute("badger-link", "fuck-you-fb"); | |
linked[niceHref] = true; | |
} | |
elm.onclick = function() { | |
console.log('badgered bitch'); | |
//badgerLink.click(); | |
window.open(niceHref,'_blank'); | |
return false; | |
}; | |
elm.setAttribute('data-lynx-mode','shitfuck'); | |
elm.setAttribute('data-lynx-uri','http://poopy-butt.farts/shit'); | |
badgered += 1; | |
} | |
}); | |
if(timeoutHandle){ | |
clearTimeout(timeoutHandle); | |
} | |
//timeoutHandle = setTimeout(badger, 5000); | |
console.log("Badgered", badgered); | |
}; | |
badger(); | |
setInterval(function() { | |
console.log(Date(),"💓Badger heartbeat. Timeout handle:",timeoutHandle); | |
requestIdle(); | |
}, 1000 * 30); | |
var requestIdle = function() { | |
window.requestIdleCallback(function() { | |
console.log("Invoking badger via idle callback"); | |
badger(); | |
requestIdle(); | |
}); | |
}; | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment