Switches all imgur links to 0imgur
当前为
// ==UserScript==
// @name Imgur Mirror (Modified)
// @version 2.1.2
// @description Switches all imgur links to 0imgur
// @author Ad3m
// @include *://*/*
// @exclude *://imgur.com/*
// @exclude *://*.imgur.com/*
// @grant GM_log
// @namespace https://greasyfork.org/users/159159
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
// ==/UserScript==
changeLinks();
document.addEventListener('scroll', changeLinks);
document.addEventListener('click', changeLinks);
function changeLinks() {
if (window.location.hostname == "i.0imgur.com") {
$('style').remove();
$('.icerik').remove();
$('.yatay').remove();
$('.dikey').remove();
jQuery('body')
.prepend("<style> .img { position: fixed; top: 0; bottom: 0; left: 0; right: 0; max-width: 100%; max-height: 100%; margin: auto; overflow: auto; }</style>");
}
var imgur_old_href = "imgur.com";
var imgur_new_href = "0imgur.com";
var nodeList = document.querySelectorAll('[href*="imgur.com"]');
for (var i = 0; i < nodeList.length; i++)
{
if (nodeList[i].href.indexOf(imgur_new_href)==-1) nodeList[i].href = nodeList[i].href.replace(imgur_old_href,imgur_new_href);
}
var imgur_old_src = "imgur.com";
var imgur_new_src = "0imgur.com";
var nodeList_src = document.querySelectorAll('[src*="imgur.com"]');
for (var i = 0; i < nodeList_src.length; i++)
{
if (nodeList_src[i].src.indexOf(imgur_new_src)==-1) nodeList_src[i].src = nodeList_src[i].src.replace(imgur_old_src,imgur_new_src);
}
}
// Reddit Link Hijack Remover by jmesmon https://greasyfork.org/tr/scripts/20752-reddit-link-hijack-remover
(function () {
'use strict';
if (window.location.host == "www.reddit.com") {
function cl(ac) {
var a = ac.querySelectorAll('a[data-href-url]');
var ct_out = 0, ct_aff = 0, ct = 0, ct_in;
for (var i = 0; i < a.length; i++) {
/*
// This is reddit's function to determine the url, which is stored in `o`.
// It then hooks window unload to call sendBeacon with the url in `o` or
// modifies the href attribute (if sendBeacon is disabled in config or unsupported by the browser).
function o(e) {
var t = $(e),
r = Date.now(),
o;
return t.attr('data-inbound-url')
? o = t.attr('data-inbound-url')
: !n && t.attr('data-outbound-expiration') > r && (o = t.attr('data-outbound-url')),
o && (i ? s = o : e.href = o),
!0
}
*/
// Some minimal counting so we can tell things are working
if (a[i].getAttribute('data-inbound-url')) {
ct_in++;
}
if (a[i].getAttribute('data-affiliate-url')) {
ct_aff++;
}
if (a[i].getAttribute('data-outbound-url') || a[i].getAttribute('data-outbound-expiration')) {
ct_out++;
}
// Goals:
// - make sure `o` stays undefined.
// - avoid ever getting this function called
// Removing all the relevent attributes gets us both of those
// Unclear what the purpose of these is, but they are being used to
// re-write urls (and trigger entry to the fn above), so remove.
a[i].removeAttribute('data-inbound-url');
// Doesn't appear that reddit is injecting these affiliate links
// anymore, but no reason to remove this
a[i].removeAttribute('data-affiliate-url');
// We don't actually need to remove this, but it does short circuit
// the condition quicker & cleans up the html, so do it.
a[i].removeAttribute('data-outbound-expiration');
a[i].removeAttribute('data-outbound-url');
ct++;
}
console.log('>>>');
console.log('Outbound redirects removed: ' + ct_out);
console.log('Inbound redirects removed: ' + ct_out);
console.log('Affiliate redirects removed: ' + ct_aff);
console.log('Total redirects removed: ' + ct);
console.log('<<<');
}
var tbls = document.querySelector('#siteTable');
var obs = new MutationObserver(function (r, self) {
for (var i = 0; i < r.length; i++) {
var ad = r[i].addedNodes;
for (var j = 0; j < ad.length; j++) {
var n = ad[j];
cl(n);
}
}
});
obs.observe(tbls, {
childList: true
});
// TODO: consider patching out window.navigator.sendBeacon (which reddit only uses for this link tracking)
// TODO: consider blocking the recent_srs cookie used for tracking
cl(document);
}
}) ();
// Reddit Link Hijack Remover by jmesmon https://greasyfork.org/tr/scripts/20752-reddit-link-hijack-remover