From d5289733c38f2239e50b1dc2e5dc0fb4fc7d3d67 Mon Sep 17 00:00:00 2001 From: xiu2 <54703944+XIU2@users.noreply.github.com> Date: Wed, 26 May 2021 19:38:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20[=E6=94=B6=E8=B5=B7?= =?UTF-8?q?=E9=A2=84=E8=A7=88=E5=B8=96=E5=AD=90]=20=E5=8A=9F=E8=83=BD;=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=20[=E6=98=BE=E7=A4=BA=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E5=9C=A8=E7=BA=BF]=20=E5=8A=9F=E8=83=BD;=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=20[=E5=B1=8F=E8=94=BD=E9=98=85=E8=AF=BB=E6=9D=83=E9=99=90=2025?= =?UTF-8?q?5=20=E5=B8=96=E5=AD=90]=20=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Hostloc-Enhanced.user.js | 66 ++++++++++++++++++++++++++++------------ 1 file changed, 46 insertions(+), 20 deletions(-) diff --git a/Hostloc-Enhanced.user.js b/Hostloc-Enhanced.user.js index 03c14eb..8c3d183 100644 --- a/Hostloc-Enhanced.user.js +++ b/Hostloc-Enhanced.user.js @@ -1,8 +1,8 @@ // ==UserScript== // @name 全球主机交流论坛增强 -// @version 1.1.7 +// @version 1.1.8 // @author X.I.U -// @description 自动签到(访问空间)、屏蔽用户(黑名单)、屏蔽关键词(帖子标题)、自动无缝翻页、自动显示帖子内隐藏回复、自动隐藏阅读权限 255 的帖子、回到顶部(右键点击两侧空白处) +// @description 自动签到(访问空间)、屏蔽用户(黑名单)、屏蔽关键词(帖子标题)、自动无缝翻页、自动显示帖子内隐藏回复、自动隐藏阅读权限 255 的帖子、快捷回到顶部(右键点击两侧空白处)、收起预览帖子(左键点击两侧空白处) // @match *://hostloc.com/* // @icon https://www.hostloc.com/favicon.ico // @grant GM_xmlhttpRequest @@ -26,9 +26,11 @@ ['menu_blockKeywords', '屏蔽关键词(帖子标题)', '屏蔽关键词(帖子标题)', false], ['menu_customBlockKeywords', '自定义屏蔽关键词', '自定义屏蔽关键词', []], ['menu_thread_pageLoading', '帖子内自动翻页', '帖子内自动翻页', true], - ['menu_showhide', '自动显示隐藏回复', '自动显示隐藏回复', true], - ['menu_delate255', '自动隐藏阅读权限 255 的帖子', '自动隐藏阅读权限 255 的帖子', true], - ['menu_backToTop', '回到顶部(右键点击两侧空白处)', '回到顶部', true] + ['menu_showhide', '显示隐藏回复', '显示隐藏回复', true], + ['menu_backToTop', '快捷回到顶部(右键点击两侧空白处)', '快捷回到顶部', true], + ['menu_collapsedNowPost', '收起预览帖子(左键点击两侧空白处)', '收起预览帖子', true], + ['menu_onlineStatus', '显示是否在线', '显示是否在线', true], + ['menu_delate255', '屏蔽阅读权限 255 帖子', '屏蔽阅读权限 255 帖子', true] ], menu_ID = []; for (let i=0;i -1) { // 帖子内 if (menu_value('menu_thread_pageLoading')) { curSite = DBSite.thread; - hidePgbtn(); // 隐藏帖子内的 [下一页] 按钮 + hidePgbtn(); // 隐藏帖子内的 [下一页] 按钮 } - showPosts(); // 自动显示帖子内被隐藏的回复 - blockUsers('thread'); // 屏蔽用户(黑名单) + showPosts(); // 自动显示帖子内被隐藏的回复 + blockUsers('thread'); // 屏蔽用户(黑名单) + if (menu_value('menu_onlineStatus')) onlineStatus(); // 显示是否在线 } else if (patt_forum.test(location.pathname) || location.search.indexOf('mod=forumdisplay') > -1) { // 各板块帖子列表 curSite = DBSite.forum; - if (menu_value('menu_delate255')) { // 自动隐藏阅读权限 255 的帖子 - delate255(); - setTimeout(delate255, 2000); // 为了避免有时候网页加载太慢时没有隐藏成功的问题 - } - blockUsers('forum'); // 屏蔽用户(黑名单) - blockKeywords(); // 屏蔽关键词(帖子标题) + if (menu_value('menu_collapsedNowPost')) collapsedNowPost(); // 收起当前帖子预览(左键左右两侧空白处) + if (menu_value('menu_delate255')) delate255(); // 自动隐藏阅读权限 255 的帖子 + blockUsers('forum'); // 屏蔽用户(黑名单) + blockKeywords(); // 屏蔽关键词(帖子标题) if (patt_forum.test(location.pathname)) blockDOMNodeInserted(); // 监听插入事件(针对的是:有新的回复主题,点击查看) - }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'); // 屏蔽用户(黑名单) + blockUsers('search'); // 屏蔽用户(黑名单) } else if(location.pathname === '/home.php' && location.search.indexOf('mod=space&do=notice&view=mypost') > -1) { // 消息(帖子/点评/提到) - blockUsers('notice'); // 屏蔽用户(黑名单) + blockUsers('notice'); // 屏蔽用户(黑名单) } else if(location.pathname === '/home.php' && location.search === '?mod=space&do=pm') { // 消息(私人聊天) - blockUsers('pm'); // 屏蔽用户(黑名单) + blockUsers('pm'); // 屏蔽用户(黑名单) } curSite.pageUrl = ""; // 下一页URL @@ -168,6 +169,18 @@ if(menu_value('menu_autoSignIn'))autoSignIn(); // 自动签到(访问空间 10 次 = 20 积分) + // 显示在线状态 + function onlineStatus() { + document.querySelectorAll('[id^="favatar"]').forEach(function(item){ // 遍历所有帖子 + let icon = (item.querySelector('[id^="userinfo"] > .i.y em').innerText === '当前在线') ? '🌝' : '🌚'; + let divStatus = document.createElement('div'); + divStatus.style = 'position: absolute;margin: -8px 0 0 8px;padding: 0 1px 1.2px;background-color: #ffffff;border-radius: 50%;'; + divStatus.innerText = icon; + let mochu = item.querySelector('.avatar'); + mochu.parentNode.insertBefore(divStatus,mochu); + }) + } + // 自动签到(访问空间 10 次 = 20 积分) function autoSignIn() { if (!loginStatus) return @@ -372,10 +385,23 @@ } + // 收起当前帖子预览(左键左右两侧空白处) + function collapsedNowPost() { + //if (!menu_value('menu_collapsedNowAnswer')) return + document.body.onclick = function(event){ + if (event.target==this) { + document.querySelectorAll('[id^="threadPreviewTR_"] .showhide').forEach(function (el) { + el.click() + }); + } + } + } + + // 自动隐藏阅读权限 255 的帖子 function delate255() { if (patt_forum.test(location.pathname) || location.search.indexOf('mod=forumdisplay') > -1){ - let tbody = document.querySelectorAll('tbody[id^="normalthread_"] .common .xw1'); + let tbody = document.querySelectorAll('tbody[id^="normalthread_"] .xw1'); Array.from(tbody).forEach(function (_this) { if (_this.innerText === '255') { _this.parentNode.parentNode.parentNode.remove();