|
1 | 1 | // ==UserScript== |
2 | 2 | // @name 全球主机交流论坛增强 |
3 | | -// @version 1.1.7 |
| 3 | +// @version 1.1.8 |
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 |
|
26 | 26 | ['menu_blockKeywords', '屏蔽关键词(帖子标题)', '屏蔽关键词(帖子标题)', false], |
27 | 27 | ['menu_customBlockKeywords', '自定义屏蔽关键词', '自定义屏蔽关键词', []], |
28 | 28 | ['menu_thread_pageLoading', '帖子内自动翻页', '帖子内自动翻页', true], |
29 | | - ['menu_showhide', '自动显示隐藏回复', '自动显示隐藏回复', true], |
30 | | - ['menu_delate255', '自动隐藏阅读权限 255 的帖子', '自动隐藏阅读权限 255 的帖子', true], |
31 | | - ['menu_backToTop', '回到顶部(右键点击两侧空白处)', '回到顶部', true] |
| 29 | + ['menu_showhide', '显示隐藏回复', '显示隐藏回复', true], |
| 30 | + ['menu_backToTop', '快捷回到顶部(右键点击两侧空白处)', '快捷回到顶部', true], |
| 31 | + ['menu_collapsedNowPost', '收起预览帖子(左键点击两侧空白处)', '收起预览帖子', true], |
| 32 | + ['menu_onlineStatus', '显示是否在线', '显示是否在线', true], |
| 33 | + ['menu_delate255', '屏蔽阅读权限 255 帖子', '屏蔽阅读权限 255 帖子', true] |
32 | 34 | ], menu_ID = []; |
33 | 35 | for (let i=0;i<menu_ALL.length;i++){ // 如果读取到的值为 null 就写入默认值 |
34 | 36 | if (GM_getValue(menu_ALL[i][0]) == null){GM_setValue(menu_ALL[i][0], menu_ALL[i][3])}; |
|
138 | 140 | if (patt_thread.test(location.pathname) || location.search.indexOf('mod=viewthread') > -1) { // 帖子内 |
139 | 141 | if (menu_value('menu_thread_pageLoading')) { |
140 | 142 | curSite = DBSite.thread; |
141 | | - hidePgbtn(); // 隐藏帖子内的 [下一页] 按钮 |
| 143 | + hidePgbtn(); // 隐藏帖子内的 [下一页] 按钮 |
142 | 144 | } |
143 | | - showPosts(); // 自动显示帖子内被隐藏的回复 |
144 | | - blockUsers('thread'); // 屏蔽用户(黑名单) |
| 145 | + showPosts(); // 自动显示帖子内被隐藏的回复 |
| 146 | + blockUsers('thread'); // 屏蔽用户(黑名单) |
| 147 | + if (menu_value('menu_onlineStatus')) onlineStatus(); // 显示是否在线 |
145 | 148 | } else if (patt_forum.test(location.pathname) || location.search.indexOf('mod=forumdisplay') > -1) { // 各板块帖子列表 |
146 | 149 | curSite = DBSite.forum; |
147 | | - if (menu_value('menu_delate255')) { // 自动隐藏阅读权限 255 的帖子 |
148 | | - delate255(); |
149 | | - setTimeout(delate255, 2000); // 为了避免有时候网页加载太慢时没有隐藏成功的问题 |
150 | | - } |
151 | | - blockUsers('forum'); // 屏蔽用户(黑名单) |
152 | | - blockKeywords(); // 屏蔽关键词(帖子标题) |
| 150 | + if (menu_value('menu_collapsedNowPost')) collapsedNowPost(); // 收起当前帖子预览(左键左右两侧空白处) |
| 151 | + if (menu_value('menu_delate255')) delate255(); // 自动隐藏阅读权限 255 的帖子 |
| 152 | + blockUsers('forum'); // 屏蔽用户(黑名单) |
| 153 | + blockKeywords(); // 屏蔽关键词(帖子标题) |
153 | 154 | if (patt_forum.test(location.pathname)) blockDOMNodeInserted(); // 监听插入事件(针对的是:有新的回复主题,点击查看) |
154 | | - }else if (patt_guide.test(location.search)) { // 导读帖子列表 |
| 155 | + }else if (patt_guide.test(location.search)) { // 导读帖子列表 |
155 | 156 | curSite = DBSite.guide; |
156 | | - } else if(location.pathname === '/search.php') { // 搜索结果列表 |
| 157 | + } else if(location.pathname === '/search.php') { // 搜索结果列表 |
157 | 158 | curSite = DBSite.search; |
158 | | - blockUsers('search'); // 屏蔽用户(黑名单) |
| 159 | + blockUsers('search'); // 屏蔽用户(黑名单) |
159 | 160 | } else if(location.pathname === '/home.php' && location.search.indexOf('mod=space&do=notice&view=mypost') > -1) { // 消息(帖子/点评/提到) |
160 | | - blockUsers('notice'); // 屏蔽用户(黑名单) |
| 161 | + blockUsers('notice'); // 屏蔽用户(黑名单) |
161 | 162 | } else if(location.pathname === '/home.php' && location.search === '?mod=space&do=pm') { // 消息(私人聊天) |
162 | | - blockUsers('pm'); // 屏蔽用户(黑名单) |
| 163 | + blockUsers('pm'); // 屏蔽用户(黑名单) |
163 | 164 | } |
164 | 165 |
|
165 | 166 | curSite.pageUrl = ""; // 下一页URL |
|
168 | 169 | if(menu_value('menu_autoSignIn'))autoSignIn(); // 自动签到(访问空间 10 次 = 20 积分) |
169 | 170 |
|
170 | 171 |
|
| 172 | + // 显示在线状态 |
| 173 | + function onlineStatus() { |
| 174 | + document.querySelectorAll('[id^="favatar"]').forEach(function(item){ // 遍历所有帖子 |
| 175 | + let icon = (item.querySelector('[id^="userinfo"] > .i.y em').innerText === '当前在线') ? '🌝' : '🌚'; |
| 176 | + let divStatus = document.createElement('div'); |
| 177 | + divStatus.style = 'position: absolute;margin: -8px 0 0 8px;padding: 0 1px 1.2px;background-color: #ffffff;border-radius: 50%;'; |
| 178 | + divStatus.innerText = icon; |
| 179 | + let mochu = item.querySelector('.avatar'); |
| 180 | + mochu.parentNode.insertBefore(divStatus,mochu); |
| 181 | + }) |
| 182 | + } |
| 183 | + |
171 | 184 | // 自动签到(访问空间 10 次 = 20 积分) |
172 | 185 | function autoSignIn() { |
173 | 186 | if (!loginStatus) return |
|
372 | 385 | } |
373 | 386 |
|
374 | 387 |
|
| 388 | + // 收起当前帖子预览(左键左右两侧空白处) |
| 389 | + function collapsedNowPost() { |
| 390 | + //if (!menu_value('menu_collapsedNowAnswer')) return |
| 391 | + document.body.onclick = function(event){ |
| 392 | + if (event.target==this) { |
| 393 | + document.querySelectorAll('[id^="threadPreviewTR_"] .showhide').forEach(function (el) { |
| 394 | + el.click() |
| 395 | + }); |
| 396 | + } |
| 397 | + } |
| 398 | + } |
| 399 | + |
| 400 | + |
375 | 401 | // 自动隐藏阅读权限 255 的帖子 |
376 | 402 | function delate255() { |
377 | 403 | if (patt_forum.test(location.pathname) || location.search.indexOf('mod=forumdisplay') > -1){ |
378 | | - let tbody = document.querySelectorAll('tbody[id^="normalthread_"] .common .xw1'); |
| 404 | + let tbody = document.querySelectorAll('tbody[id^="normalthread_"] .xw1'); |
379 | 405 | Array.from(tbody).forEach(function (_this) { |
380 | 406 | if (_this.innerText === '255') { |
381 | 407 | _this.parentNode.parentNode.parentNode.remove(); |
|
0 commit comments