This is on GreasyFork - Link Here
- Initial fixed release to be compatible with auto-updates
// ==UserScript== | |
// @name gg.deals - jdoqocy link rewrite | |
// @namespace http://tampermonkey.net/ | |
// @version 1.0.2 | |
// @license MIT | |
// @description Simple deals.gg script to bypass jdoqocy links because my adblocker blocks them | |
// @author avelardi | |
// @match https://gg.deals/* | |
// @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== | |
// @grant none | |
// @installURL https://gist.github.com/avelardi/02abd8abbe91844095f90f1d666dfd93/raw/gg.deals.jdoqocy.fix.user.js | |
// @downloadURL https://gist.github.com/avelardi/02abd8abbe91844095f90f1d666dfd93/raw/gg.deals.jdoqocy.fix.user.js | |
// @updateURL https://gist.github.com/avelardi/02abd8abbe91844095f90f1d666dfd93/raw/gg.deals.jdoqocy.fix.user.js | |
// ==/UserScript== | |
//This was hacked together and probably coded poorly, but it works for me. | |
//Note you may need to click one fanatical link once first then reload? | |
function replaceAllHrefs(node, newHref) { | |
const elementsWithHref = node.querySelectorAll('[href]'); | |
elementsWithHref.forEach(element => { | |
element.setAttribute('href', newHref); | |
}); | |
} | |
$( document ).ready(function() { | |
const shop_links = document.getElementsByClassName("shop-link"); | |
var fanatical_img_div = undefined; | |
for (let i=0;i<shop_links.length;i++){ | |
if(shop_links.item(i).querySelector('img') !== null){ | |
if(shop_links.item(i).querySelector('img').hasAttribute('alt')){ | |
if(shop_links.item(i).querySelector('img').getAttribute('alt') == "Fanatical"){ | |
fanatical_img_div = shop_links.item(i); | |
} | |
} | |
} | |
} | |
$.ajax({ | |
url: fanatical_img_div.href, | |
type: 'GET', | |
success: function(data){ | |
const parser = new DOMParser(); | |
const redirect_html = parser.parseFromString(data, 'text/html'); | |
//console.log(redirect_html.getElementsByClassName('redirection-actions')[0].querySelector('a').href); | |
var actual_url = decodeURIComponent(redirect_html.getElementsByClassName('redirection-actions')[0].querySelector('a').href).split('url=')[1]; | |
replaceAllHrefs(fanatical_img_div.parentNode.parentNode,actual_url); | |
}, | |
error: function(data) { | |
console.log('Error! Something went wrong'); | |
console.log(data); | |
}}) | |
}) |