mirror of
https://github.com/XIU2/UserScript.git
synced 2026-09-22 15:06:57 +00:00
新增 [屏蔽指定用户(黑名单)] 功能支持消息、点评等
This commit is contained in:
+29
-20
@@ -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(); // 删除帖子
|
||||
|
||||
Reference in New Issue
Block a user