Tiny Customize

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

目前为 2016-06-30 提交的版本。查看 最新版本

// ==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/
// @version     1.0.6
// @grant       none
// ==/UserScript==

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

/**
 * 获取立即执行的操作。
 */
const getInstantActions = function()
{
    const host = unsafeWindow.location.host;
    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);
    }

    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);
    }

    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);