Imgur Mirror

Switches all imgur links to the mirror site http://kageurufu.net/imgur

目前為 2016-07-28 提交的版本,檢視 最新版本

// ==UserScript==
// @name        Imgur Mirror
// @description Switches all imgur links to the mirror site http://kageurufu.net/imgur
// @include     *
// @version     1.0.9
// @grant        none
// @require https://greasyfork.org/scripts/5679-wait-for-elements/code/Wait%20For%20Elements.js?version=122976
// @namespace https://greasyfork.org/users/649
// ==/UserScript==
(function() {
    'use strict';
    var regex = /imgur\.com\/(?!a\/|gallery\/)([a-z0-9]+)(\.+[a-z0-9]+)?/i;

    var getNewLink = function(imgurLink, useGif) {
        var match = imgurLink.match(regex);
        if (match) {
            var file = match[1];
            var extension = match[2];
            if (!extension) {
                extension = '.png';
            } else if (extension === '.gifv' || extension === '.gif' || extension === '.webm') {
                extension = '.mp4';
            }
            if (useGif && extension === '.mp4') {
                extension = '.gif';
            }
            return 'http://kageurufu.net/imgur/?' + file + extension;
        } else {
            return null;
        }
    };

    waitForElems('img,a', function(node) {
        var isImg = node.nodeName === 'IMG';
        var prop = isImg ? 'src' : 'href';
        var newLink = getNewLink(node[prop], isImg);
        if(newLink) {
            node[prop] = newLink;
            if (node.dataset.hrefUrl) {
                node.dataset.hrefUrl = newLink;
            }
            if (node.dataset.outboundUrl) {
                node.dataset.outboundUrl = newLink;
            }
        }
    });
})();