Greasy Fork is available in English.

feiji-tieba-script

Automatic URL conversion

Від 27.10.2017. Дивіться остання версія.

// ==UserScript==
// @name               feiji-tieba-script
// @name:zh-CN         百度飞机汉化组吧脚本
// @version            0.1
// @description        Automatic URL conversion
// @description:zh-cn  自动转换4位尾号为网址
// @author             yahiousun
// @include            *://tieba.baidu.com/p/*
// @grant              none
// @namespace https://greasyfork.org/users/157242
// ==/UserScript==

(function(window, document) {
    'use strict';
    var CODE_REGEX = /(\u4ee3\u7801|\u4ee3\u53f7|\u5c3e\u53f7|\u672b\u4f4d|\u56db\u4f4d|\u56db\u4f4d\u6570|\u4f60\u4eec\u61c2\u5f97)[^\d]*?(\d{4})(?!:)/g;
    var TEMPLATE = "<a href=\"http://smp.yoedge.com/view/omnibus/100$2\" target=\"_blank\">http://smp.yoedge.com/view/omnibus/100$2</a>";
    var THRESHOLD = 1000;

    function immediate(fn, threshold, context) {
        var timer, available = true;
        return function() {
            var args = arguments;
            if (available) {
                fn.call(context, args);
                available = false;
            }
            clearTimeout(timer);
            timer = setTimeout(function() {
                available = true;
            }, threshold);
        };
    }

    function smp() {
        if (CODE_REGEX.test(document.body.innerHTML)) {
            var cc = document.querySelectorAll('cc');
            [].forEach.call(cc, function(node) {
                node.innerHTML = node.innerHTML.replace(CODE_REGEX, TEMPLATE);
            });
        }
    }

    window.addEventListener('DOMNodeInserted', immediate(smp, THRESHOLD));
    window.addEventListener('DOMSubtreeModified', immediate(smp, THRESHOLD));
})(window, document);