🏠 Home 

HB Partner 链接自动提示及清除

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


Install this script?
// ==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      https://greasyfork.org/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=/;";
}
}
}
}
}
}
}) ()