Skip to content

Commit 5a8f7b8

Browse files
committed
新增 [屏蔽指定用户(黑名单)] 功能
1 parent 450a780 commit 5a8f7b8

1 file changed

Lines changed: 54 additions & 2 deletions

File tree

Hostloc-Enhanced.user.js

Lines changed: 54 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
// ==UserScript==
22
// @name 全球主机交流论坛增强
3-
// @version 1.1.1
3+
// @version 1.1.2
44
// @author X.I.U
5-
// @description 自动签到(访问空间)、自动无缝翻页、自动显示帖子内隐藏回复、自动隐藏阅读权限 255 的帖子、回到顶部(右键点击两侧空白处)
5+
// @description 自动签到(访问空间)、屏蔽指定用户(黑名单)、自动无缝翻页、自动显示帖子内隐藏回复、自动隐藏阅读权限 255 的帖子、回到顶部(右键点击两侧空白处)
66
// @match *://hostloc.com/*
77
// @icon https://www.hostloc.com/favicon.ico
88
// @grant GM_xmlhttpRequest
@@ -21,6 +21,8 @@
2121
var menu_ALL = [
2222
['menu_autoSignIn', '自动签到', '自动签到', true],
2323
['menu_reAutoSignIn', '重新签到', '重新签到', ''],
24+
['menu_blockUsers', '屏蔽指定用户', '屏蔽指定用户', false],
25+
['menu_customBlockUsers', '自定义屏蔽用户', '自定义屏蔽用户', []],
2426
['menu_thread_pageLoading', '帖子内自动翻页', '帖子内自动翻页', true],
2527
['menu_showhide', '自动显示隐藏回复', '自动显示隐藏回复', true],
2628
['menu_delate255', '自动隐藏阅读权限 255 的帖子', '自动隐藏阅读权限 255 的帖子', true],
@@ -42,6 +44,8 @@
4244
menu_ALL[i][3] = GM_getValue(menu_ALL[i][0]);
4345
if (menu_ALL[i][0] === 'menu_reAutoSignIn') {
4446
menu_ID[i] = GM_registerMenuCommand(`[ ⚑ ] ${menu_ALL[i][1]}`, function(){reAutoSignIn()});
47+
} else if (menu_ALL[i][0] === 'menu_customBlockUsers') {
48+
menu_ID[i] = GM_registerMenuCommand(`[ ⚑ ] ${menu_ALL[i][1]}`, function(){customBlockUsers()});
4549
} else {
4650
menu_ID[i] = GM_registerMenuCommand(`[ ${menu_ALL[i][3]?'√':'×'} ] ${menu_ALL[i][1]}`, function(){menu_switch(`${menu_ALL[i][3]}`,`${menu_ALL[i][0]}`,`${menu_ALL[i][2]}`)});
4751
}
@@ -128,16 +132,19 @@
128132
hidePgbtn(); // 隐藏帖子内的 [下一页] 按钮
129133
}
130134
showPosts(); // 自动显示帖子内被隐藏的回复
135+
blockUsers('thread');
131136
}else if (patt_forum.test(location.pathname) || location.search.indexOf('mod=forumdisplay') > -1){
132137
// 各板块帖子列表
133138
curSite = DBSite.forum;
134139
if (menu_value('menu_delate255')) delate255(); // 自动隐藏阅读权限 255 的帖子
140+
blockUsers('forum');
135141
}else if (patt_guide.test(location.search)){
136142
// 导读帖子列表
137143
curSite = DBSite.guide;
138144
}else if(location.pathname === '/search.php'){
139145
// 搜索结果列表
140146
curSite = DBSite.search;
147+
blockUsers('search');
141148
}
142149

143150
curSite.pageUrl = ""; // 下一页URL
@@ -188,6 +195,51 @@
188195
}
189196

190197

198+
// 自定义屏蔽用户
199+
function customBlockUsers() {
200+
let nowBlockUsers = '';
201+
menu_value('menu_customBlockUsers').forEach(function(item){nowBlockUsers = nowBlockUsers + '|' + item})
202+
let newBlockUsers = prompt('编辑 [自定义屏蔽用户],刷新网页后生效\n(不同用户名之间使用 "|" 分隔,\n(例如:用户A|用户B|用户C,如果只有一个就不需要 "|" 了。', nowBlockUsers.replace('|',''));
203+
if (newBlockUsers === '') {
204+
GM_setValue('menu_customBlockUsers', []);
205+
} else if (newBlockUsers != null) {
206+
GM_setValue('menu_customBlockUsers', newBlockUsers.split('|'));
207+
}
208+
};
209+
210+
211+
// 屏蔽指定用户
212+
function blockUsers(type) {
213+
if (!menu_value('menu_blockUsers')) return
214+
if (!menu_value('menu_customBlockUsers') || menu_value('menu_customBlockUsers').length < 1) return
215+
switch(type) {
216+
case 'thread':
217+
blockUsers_('[id^="post_"]');
218+
break;
219+
case 'forum':
220+
blockUsers_('[id^="normalthread_"]');
221+
break;
222+
case 'search':
223+
blockUsers_('.pbw');
224+
break;
225+
}
226+
227+
function blockUsers_(list) {
228+
let listItem = document.querySelectorAll(list);
229+
if (listItem.length < 1) return
230+
listItem.forEach(function(item){ // 遍历所有帖子
231+
menu_value('menu_customBlockUsers').forEach(function(item1){ // 遍历用户黑名单
232+
let itemName = item.querySelector('a[href^="space-uid"]'); // 寻找用户名
233+
if (itemName && itemName.innerText === item1) {
234+
//console.log(item1);
235+
item.remove(); // 删除帖子
236+
}
237+
})
238+
})
239+
}
240+
}
241+
242+
191243
// 自动翻页
192244
function pageLoading() {
193245
if (curSite.SiteTypeID > 0){

0 commit comments

Comments
 (0)