Greasy Fork

Greasy Fork is available in English.

HB Partner 链接自动提示及清除

发现网页中存在疑似 HB Partner 链接时自动弹窗提示,点击不在白名单中的 Partner 链接进入 HB 后自动清除网址尾巴并删除相关 cookie,更多请详见说明。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name           HB Partner 链接自动提示及清除
// @description    发现网页中存在疑似 HB Partner 链接时自动弹窗提示,点击不在白名单中的 Partner 链接进入 HB 后自动清除网址尾巴并删除相关 cookie,更多请详见说明。
// @match          *://*.humblebundle.com/*
// @match          *://keylol.com/t*
// @match          *://keylol.com/forum.php?mod=viewthread&tid=*
// @match          *://yxdzqb.com/*
// @author         Kazma Zhang
// @copyright      Kazma Zhang
// @version        1.3.1
// @licence        AGPL v3
// @grant          none
// @namespace      http://greasyfork.icu/zh-CN/users/280819-kzpic
// ==/UserScript==

//目前仅匹配 hb(功能需要)、steamcn 和一个未做任何提示且隐藏了 Partner 链接的网站
//如需增减请按格式调整头部的 @match 字段,为 * 则匹配所有网站,注意删除 *://*.humblebundle.com/* 后自动清除功能将失效

(function(){

    //白名单:默认为空,如需忽略某些 Partner 的自动提醒和清除,请在下一行的引号内输入 Partner 名称,如需定义多个,请按此格式输入(数量不限):var white = ["abc", "def", "ghi"];
    var white = [""];

    //启用提醒:启用提醒功能
    var Warning = 1;

    //启用清除:启用清除功能
    var Clean = 1;

    //提醒原则:默认为 0,表示仅当网页中存在以链接形式出现或被隐藏的 Partner 链接时提醒,如需在任何时候都提醒,请更改为 1
    var WarningAll = 0;

    if (Warning == 1) {
        //获取 body 代码
        var str = document.body.innerHTML;
        var reg = "";
        //匹配规则,前者为 html 标签中的链接,后者为全部链接
        WarningAll == 0 ? reg = /<[^<>]*humblebundle\.com[^\'\"<>]*\?partner=[^<>]*>/g : reg = /humblebundle\.com[^\'\"<>]*\?partner=/g;
        //如匹配则提醒
        if (str.match(reg)) {
            alert("注意:此页面疑似包含 HB Partner 链接!\r\n如需查找请按 F12 或右键审查元素搜索“?partner=”。");
        }
    }

    if (Clean == 1) {
        //判断当前网站为 www.humblebundle.com
        if (window.location.host.indexOf("www.humblebundle.com") != -1) {
            //判断网址是否包含尾巴及尾巴是否不在白名单中
            if (window.location.search.indexOf("?partner=") != -1 && white.indexOf(window.location.search.replace("?partner=", "")) == -1) {
                //匹配则跳转到正常链接
                location.replace(window.location.origin + window.location.pathname);
            } else {
                //获取站点 cookie,不会上传请放心
                var strcookie = document.cookie;
                //拆分 cookie 为名/值对
                var arrcookie = strcookie.split("; ");
                //遍历 cookie 数组
                for(var i=0; i < arrcookie.length; i++) {
                    //拆分每对
                    var arr = arrcookie[i].split("=");
                    //如匹配则清除
                    if(arr[0] == "partner_id") {
                        if (white.indexOf(arr[1]) == -1) {
                            var date=new Date();
                            date.setTime(date.getTime() - 10000);
                            document.cookie = "partner_id=;domain=.humblebundle.com;expire=" + date.toGMTString() + ";path=/;";
                        }
                    }
                }
            }
        }
    }
}) ()