新增 [屏蔽指定用户(黑名单)] 功能支持消息、点评等

This commit is contained in:
xiu2
2021-05-23 16:54:53 +08:00
parent eba0e2f3ab
commit 4ba9f6b091
+29 -20
View File
@@ -1,6 +1,6 @@
// ==UserScript==
// @name 全球主机交流论坛增强
// @version 1.1.3
// @version 1.1.4
// @author X.I.U
// @description 自动签到(访问空间)、屏蔽指定用户(黑名单)、自动无缝翻页、自动显示帖子内隐藏回复、自动隐藏阅读权限 255 的帖子、回到顶部(右键点击两侧空白处)
// @match *://hostloc.com/*
@@ -125,26 +125,26 @@
patt_guide = /mod\=guide\&view\=(hot|digest)/
// URL 判断
if (patt_thread.test(location.pathname) || location.search.indexOf('mod=viewthread') > -1){
// 帖子内
if(menu_value('menu_thread_pageLoading')) {
if (patt_thread.test(location.pathname) || location.search.indexOf('mod=viewthread') > -1) { // 帖子内
if (menu_value('menu_thread_pageLoading')) {
curSite = DBSite.thread;
hidePgbtn(); // 隐藏帖子内的 [下一页] 按钮
}
showPosts(); // 自动显示帖子内被隐藏的回复
blockUsers('thread');
}else if (patt_forum.test(location.pathname) || location.search.indexOf('mod=forumdisplay') > -1){
// 各板块帖子列表
} else if (patt_forum.test(location.pathname) || location.search.indexOf('mod=forumdisplay') > -1) { // 各板块帖子列表
curSite = DBSite.forum;
if (menu_value('menu_delate255')) delate255(); // 自动隐藏阅读权限 255 的帖子
blockUsers('forum');
}else if (patt_guide.test(location.search)){
// 导读帖子列表
}else if (patt_guide.test(location.search)) { // 导读帖子列表
curSite = DBSite.guide;
}else if(location.pathname === '/search.php'){
// 搜索结果列表
} else if(location.pathname === '/search.php') { // 搜索结果列表
curSite = DBSite.search;
blockUsers('search');
} else if(location.pathname === '/home.php' && location.search.indexOf('mod=space&do=notice&view=mypost') > -1) { // 消息(帖子/点评/提到)
blockUsers('notice');
} else if(location.pathname === '/home.php' && location.search === '?mod=space&do=pm') { // 消息(私人聊天)
blockUsers('pm');
}
curSite.pageUrl = ""; // 下一页URL
@@ -198,12 +198,14 @@
// 自定义屏蔽用户
function customBlockUsers() {
let nowBlockUsers = '';
menu_value('menu_customBlockUsers').forEach(function(item){nowBlockUsers = nowBlockUsers + '|' + item})
GM_getValue('menu_customBlockUsers').forEach(function(item){nowBlockUsers = nowBlockUsers + '|' + item})
let newBlockUsers = prompt('编辑 [自定义屏蔽用户],刷新网页后生效\n(不同用户名之间使用 "|" 分隔,\n(例如:用户A|用户B|用户C,如果只有一个就不需要 "|" 了。', nowBlockUsers.replace('|',''));
if (newBlockUsers === '') {
GM_setValue('menu_customBlockUsers', []);
registerMenuCommand(); // 重新注册脚本菜单
} else if (newBlockUsers != null) {
GM_setValue('menu_customBlockUsers', newBlockUsers.split('|'));
registerMenuCommand(); // 重新注册脚本菜单
}
};
@@ -213,23 +215,30 @@
if (!menu_value('menu_blockUsers')) return
if (!menu_value('menu_customBlockUsers') || menu_value('menu_customBlockUsers').length < 1) return
switch(type) {
case 'thread':
blockUsers_('[id^="post_"]');
case 'thread': // 帖子内
blockUsers_('[id^="post_"]', 'a[href^="space-uid"]');
blockUsers_('[id^="comment_"] > div', 'a.xi2.xw1'); // 点评
break;
case 'forum':
blockUsers_('[id^="normalthread_"]');
case 'forum': // 各版块帖子列表
blockUsers_('[id^="normalthread_"]', 'a[href^="space-uid"]');
break;
case 'search':
blockUsers_('.pbw');
case 'search': // 搜索结果
blockUsers_('.pbw', 'a[href^="space-uid"]');
break;
case 'notice': // 消息
blockUsers_('dl.cl', '.ntc_body a[href^="space-uid"]');
break;
case 'pm': // 私人聊天
blockUsers_('dl[id^="pmlist_"]', '.ptm.pm_c a[href^="space-uid"]');
break;
}
function blockUsers_(list) {
let listItem = document.querySelectorAll(list);
function blockUsers_(list1, list2) {
let listItem = document.querySelectorAll(list1);
if (listItem.length < 1) return
listItem.forEach(function(item){ // 遍历所有帖子
menu_value('menu_customBlockUsers').forEach(function(item1){ // 遍历用户黑名单
let itemName = item.querySelector('a[href^="space-uid"]'); // 寻找用户名
let itemName = item.querySelector(list2); // 寻找用户名
if (itemName && itemName.innerText === item1) {
console.log(item1);
item.remove(); // 删除帖子