diff --git a/Hostloc-Enhanced.user.js b/Hostloc-Enhanced.user.js index 4f5faa8..c620ac0 100644 --- a/Hostloc-Enhanced.user.js +++ b/Hostloc-Enhanced.user.js @@ -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(); // 删除帖子