// ==UserScript==
// @name Rock Paper Shotgun [RPS] & Eurogamer embed fix
// @version 7
// @description Enable embedded third party content on RPS & Eurogamer despite having rejected cookies
// @author Tim Smith
// @license GPL-3.0 License
// @namespace https://greasyfork.org/users/945293
// @match *://www.rockpapershotgun.com/*
// @match *://www.eurogamer.net/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=rockpapershotgun.com
// ==/UserScript==
(function() {
function dashStyle(camelCase) {
return camelCase.replaceAll(/[A-Z]/g, letter => `-${letter.toLowerCase()}`);
}
const sources = [
['iframe', 'src', 'embed.acast.com'],
['script', 'src', 'apester.com'],
['iframe', 'src', 'bandcamp.com'],
['iframe', 'src', 'efmfeedback.com'],
['iframe', 'src', 'docs.google.com'],
['iframe', 'src', 'gfycat.com'],
['iframe', 'src', 'giphy.com'],
['iframe', 'src', 'libsyn.com'],
['iframe', 'src', 'megaphone.fm'],
['script', 'cookiesSrc', 'primis.tech'],
['iframe', 'src', 'redditmedia.com'],
['iframe', 'src', 'soundcloud.com'],
['iframe', 'src', 'spotify.com'],
['iframe', 'src', 'twitch.tv'],
['iframe', 'src', 'youtube']
];
const selectors = sources.map(source => `${source[0]}[data-${dashStyle(source[1])}*="${source[2]}"]`);
document.querySelectorAll(selectors.join()).forEach(element => {
const source = sources.find(source => source[1] in element.dataset && element.dataset[source[1]].includes(source[2]));
element.src = element.dataset[source[1]];
});
if (document.querySelector('blockquote.twitter-tweet') !== null) {
const widgetScript = document.createElement('script');
widgetScript.async = true;
widgetScript.src = 'https://platform.twitter.com/widgets.js';
widgetScript.charset = 'utf-8';
document.head.appendChild(widgetScript);
}
})();