全球主机交流论坛
标题:
发一个aff清理大师脚本,支持屏蔽所有aff帖子及过滤aff链接
[打印本页]
作者:
Planck
时间:
2024-6-25 16:38
标题:
发一个aff清理大师脚本,支持屏蔽所有aff帖子及过滤aff链接
本帖最后由 Planck 于 2024-6-25 16:39 编辑
rt,支持隐藏帖子列表包含特定关键词的帖子(仅支持hostloc,默认屏蔽“瓦工”关键词)
支持过滤页面里面所有的aff链接,逻辑为将所有aff链接的id设置为0,支持帖子内部aff和签名的aff链接,支持不限于hostloc的所有网页
食用方法:安装tampermonkey,新建脚本,复制下方代码并保存即可。可自由修改需屏蔽的关键词。
// ==UserScript==
// @name AFF清理大师
// @namespace http://tampermonkey.net/
// @version 1.0
// @description 屏蔽包含指定关键词的网页元素,并在控制台输出删除的帖子标题和URL,修改aff参数
// @author You
// @match *://*/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
// 指定需要屏蔽的关键词
const keywords = ["瓦工", "关键词2", "关键词3"];
function containsKeyword(text) {
return keywords.some(keyword => text.includes(keyword));
}
function removeMatchingElements() {
// 查找所有包含帖子内容的 <tbody> 元素
const threads = document.querySelectorAll('tbody[id^="normalthread_"]');
threads.forEach(thread => {
const titleElement = thread.querySelector('a.s.xst');
if (titleElement && containsKeyword(titleElement.textContent)) {
console.log(`【删除的帖子】 ${titleElement.textContent}\n【URL】${titleElement.href}`);
// console.log(`帖子URL: ${titleElement.href}`);
thread.remove();
}
});
}
function modifyAffParameters() {
// 查找所有包含链接的 <a> 元素
const links = document.querySelectorAll('a[href*="?"]');
links.forEach(link => {
let url = new URL(link.href);
if (url.searchParams.has('aff')) {
url.searchParams.set('aff', '0');
link.href = url.toString();
console.log(`修改后的URL: ${link.href}`);
}
});
// 查找所有包含纯文本URL的文本节点
const walker = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT, null, false);
let node;
const urlRegex = /https?:\/\/[^\s]+/g;
while (node = walker.nextNode()) {
const matches = node.nodeValue.match(urlRegex);
if (matches) {
matches.forEach(match => {
try {
let url = new URL(match);
if (url.searchParams.has('aff')) {
url.searchParams.set('aff', '0');
const modifiedUrl = url.toString();
node.nodeValue = node.nodeValue.replace(match, modifiedUrl);
console.log(`修改后的文本URL: ${modifiedUrl}`);
}
} catch (e) {
// Ignore invalid URLs
}
});
}
}
}
// 监听DOM变化并屏蔽包含关键词的元素
const observer = new MutationObserver(() => {
removeMatchingElements();
modifyAffParameters();
});
observer.observe(document.body, { childList: true, subtree: true });
// 初始调用以立即屏蔽当前页面中包含关键词的元素并修改aff参数
removeMatchingElements();
modifyAffParameters();
})();
复制代码
作者:
mikj521
时间:
2024-6-25 16:41
不错
作者:
karson
时间:
2024-6-25 16:42
可以,能否再发一个头像出处
作者:
b66667777
时间:
2024-6-25 17:03
从此丐帮何去何从
作者:
血仍未冷
时间:
2024-6-25 17:13
不错,顶一个,试一试
作者:
xftaw
时间:
2024-6-25 17:14
感觉是gpt写的
小尾巴~~~~~
作者:
猫和老鼠
时间:
2024-6-25 17:16
提示:
作者被禁止或删除 内容自动屏蔽
作者:
悠悠
时间:
2024-6-26 12:46
好贴收藏。
作者:
yaya178
时间:
2024-6-26 16:02
让商家少赚的不行?这么反感aff?对自己又没影响
欢迎光临 全球主机交流论坛 (https://sunk.eu.org/)
Powered by Discuz! X3.4