|
1 | 1 | // ==UserScript== |
2 | 2 | // @name 全球主机交流论坛增强 |
3 | | -// @version 1.1.1 |
| 3 | +// @version 1.1.2 |
4 | 4 | // @author X.I.U |
5 | | -// @description 自动签到(访问空间)、自动无缝翻页、自动显示帖子内隐藏回复、自动隐藏阅读权限 255 的帖子、回到顶部(右键点击两侧空白处) |
| 5 | +// @description 自动签到(访问空间)、屏蔽指定用户(黑名单)、自动无缝翻页、自动显示帖子内隐藏回复、自动隐藏阅读权限 255 的帖子、回到顶部(右键点击两侧空白处) |
6 | 6 | // @match *://hostloc.com/* |
7 | 7 | // @icon https://www.hostloc.com/favicon.ico |
8 | 8 | // @grant GM_xmlhttpRequest |
|
21 | 21 | var menu_ALL = [ |
22 | 22 | ['menu_autoSignIn', '自动签到', '自动签到', true], |
23 | 23 | ['menu_reAutoSignIn', '重新签到', '重新签到', ''], |
| 24 | + ['menu_blockUsers', '屏蔽指定用户', '屏蔽指定用户', false], |
| 25 | + ['menu_customBlockUsers', '自定义屏蔽用户', '自定义屏蔽用户', []], |
24 | 26 | ['menu_thread_pageLoading', '帖子内自动翻页', '帖子内自动翻页', true], |
25 | 27 | ['menu_showhide', '自动显示隐藏回复', '自动显示隐藏回复', true], |
26 | 28 | ['menu_delate255', '自动隐藏阅读权限 255 的帖子', '自动隐藏阅读权限 255 的帖子', true], |
|
42 | 44 | menu_ALL[i][3] = GM_getValue(menu_ALL[i][0]); |
43 | 45 | if (menu_ALL[i][0] === 'menu_reAutoSignIn') { |
44 | 46 | 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()}); |
45 | 49 | } else { |
46 | 50 | 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]}`)}); |
47 | 51 | } |
|
128 | 132 | hidePgbtn(); // 隐藏帖子内的 [下一页] 按钮 |
129 | 133 | } |
130 | 134 | showPosts(); // 自动显示帖子内被隐藏的回复 |
| 135 | + blockUsers('thread'); |
131 | 136 | }else if (patt_forum.test(location.pathname) || location.search.indexOf('mod=forumdisplay') > -1){ |
132 | 137 | // 各板块帖子列表 |
133 | 138 | curSite = DBSite.forum; |
134 | 139 | if (menu_value('menu_delate255')) delate255(); // 自动隐藏阅读权限 255 的帖子 |
| 140 | + blockUsers('forum'); |
135 | 141 | }else if (patt_guide.test(location.search)){ |
136 | 142 | // 导读帖子列表 |
137 | 143 | curSite = DBSite.guide; |
138 | 144 | }else if(location.pathname === '/search.php'){ |
139 | 145 | // 搜索结果列表 |
140 | 146 | curSite = DBSite.search; |
| 147 | + blockUsers('search'); |
141 | 148 | } |
142 | 149 |
|
143 | 150 | curSite.pageUrl = ""; // 下一页URL |
|
188 | 195 | } |
189 | 196 |
|
190 | 197 |
|
| 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 | + |
191 | 243 | // 自动翻页 |
192 | 244 | function pageLoading() { |
193 | 245 | if (curSite.SiteTypeID > 0){ |
|
0 commit comments