Tiny Customize

针对一些常用网站,例如 3DMGame、贴吧、卡饭、巴哈姆特、流亡编年史、Chiphell、等的反反广告检测、自动化、屏蔽网站功能等。

Versão de: 09/07/2016. Veja: a última versão.

Você precisará instalar uma extensão como Tampermonkey, Greasemonkey ou Violentmonkey para instalar este script.

Você precisará instalar uma extensão como Tampermonkey ou Violentmonkey para instalar este script.

Você precisará instalar uma extensão como Tampermonkey ou Violentmonkey para instalar este script.

Você precisará instalar uma extensão como Tampermonkey ou Userscripts para instalar este script.

Você precisará instalar uma extensão como o Tampermonkey para instalar este script.

Você precisará instalar um gerenciador de scripts de usuário para instalar este script.

(Eu já tenho um gerenciador de scripts de usuário, me deixe instalá-lo!)

Você precisará instalar uma extensão como o Stylus para instalar este estilo.

Você precisará instalar uma extensão como o Stylus para instalar este estilo.

Você precisará instalar uma extensão como o Stylus para instalar este estilo.

Você precisará instalar um gerenciador de estilos de usuário para instalar este estilo.

Você precisará instalar um gerenciador de estilos de usuário para instalar este estilo.

Você precisará instalar um gerenciador de estilos de usuário para instalar este estilo.

(Eu já possuo um gerenciador de estilos de usuário, me deixar fazer a instalação!)

// ==UserScript==
// @name        Tiny Customize
// @description 针对一些常用网站,例如 3DMGame、贴吧、卡饭、巴哈姆特、流亡编年史、Chiphell、等的反反广告检测、自动化、屏蔽网站功能等。
// @namespace   https://greasyfork.org/zh-CN/scripts/19823-tiny-customize
// @homepageURL https://greasyfork.org/zh-CN/scripts/19823-tiny-customize
// @author      nonoroazoro
// @include     /^https?\:\/\/(bbs)\.3dmgame\.com/
// @include     /^https?\:\/\/(bbs)\.kafan\.cn/
// @include     /^https?\:\/\/(forum)\.gamer\.com\.tw/
// @include     /^https?\:\/\/(www)\.chiphell\.com/
// @include     /^https?\:\/\/poedb\.tw(\/?.*)\/dps/
// @include     /^https?\:\/\/tieba\.baidu\.com/
// @version     1.1.0
// @grant       none
// ==/UserScript==

if (typeof unsafeWindow == "undefined")
{
    unsafeWindow = window;
}

/**
 * 获取立即执行的操作。
 */
const getInstantActions = function()
{
    const host = unsafeWindow.location.host;
    const href = unsafeWindow.location.href;
    const actions = [];

    if (host === "forum.gamer.com.tw")
    {
        // 巴哈姆特。

        // 反反广告检测。
        const action = function()
        {
            if (unsafeWindow.AntiAd)
            {
                unsafeWindow.AntiAd.check = function() {};
            }
        };
        actions.push(action);
    }
    else if (
        host === "bbs.kafan.cn" ||
        host === "bbs.3dmgame.com" ||
        host === "www.chiphell.com"
    )
    {
        // 卡饭、3DMGame、Chiphell 论坛(Discuz 驱动的论坛)。

        // 屏蔽方向键翻页。
        const action = function()
        {
            if (unsafeWindow.keyPageScroll)
            {
                unsafeWindow.keyPageScroll = function() {};
            }
        };
        actions.push(action);
    }
    else if (/^https?\:\/\/poedb\.tw(\/?.*)\/dps/.test(href))
    {
        // 流亡编年史。

        // 屏蔽默认自动全选物品信息、自动查询物品信息。
        const action = function()
        {
            const elem = document.querySelector(`#iteminfo`);
            elem.addEventListener("click", (e) =>
            {
                e.stopPropagation();
            }, true);

            elem.addEventListener("keydown", (e) =>
            {
                if (e.key === "Enter")
                {
                    document.querySelector(`form[action^="dps"]`).submit();
                    e.preventDefault();
                }
            }, true);

            elem.addEventListener("keyup", (e) =>
            {
                if (e.ctrlKey && (e.key === "v" || e.key === "V"))
                {
                    document.querySelector(`form[action^="dps"]`).submit();
                }
            });
        };
        actions.push(action);
    }

    return actions;
};

/**
 * 获取延迟执行的操作。
 */
const getLazyActions = function()
{
    const host = unsafeWindow.location.host;
    const actions = [];

    if (host === "forum.gamer.com.tw")
    {
        // 巴哈姆特。

        // 自动开启图片。
        let action = function()
        {
            if (unsafeWindow.forumShowAllMedia)
            {
                unsafeWindow.forumShowAllMedia();
            }
        };
        actions.push(action);
    }
    else if (host === "tieba.baidu.com")
    {
        // 贴吧。

        // 个人中心新标签打开。
        let action = function()
        {
            const timer = unsafeWindow.setInterval(() =>
            {
                const elem = document.querySelector(`a.u_menu_wrap[title^="点击到个人中心"`);
                if (elem)
                {
                    elem.target = "_blank";
                    unsafeWindow.clearInterval(timer);
                }
            }, 100);
        };
        actions.push(action);
    }

    return actions;
};

/**
 * 立即执行指定的操作。
 */
const exec = function(p_actions)
{
    if (p_actions)
    {
        p_actions.forEach(function(p_action)
        {
            p_action();
        });
    }
};

// 1. 立即执行。
exec(getInstantActions());


// 2. 延迟执行。
unsafeWindow.addEventListener("load", function()
{
    exec(getLazyActions());
}, true);