Skip to content

Commit d528973

Browse files
committed
新增 [收起预览帖子] 功能; 新增 [显示是否在线] 功能; 优化 [屏蔽阅读权限 255 帖子] 功能
1 parent c4b6f4f commit d528973

1 file changed

Lines changed: 46 additions & 20 deletions

File tree

Hostloc-Enhanced.user.js

Lines changed: 46 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
// ==UserScript==
22
// @name 全球主机交流论坛增强
3-
// @version 1.1.7
3+
// @version 1.1.8
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
@@ -26,9 +26,11 @@
2626
['menu_blockKeywords', '屏蔽关键词(帖子标题)', '屏蔽关键词(帖子标题)', false],
2727
['menu_customBlockKeywords', '自定义屏蔽关键词', '自定义屏蔽关键词', []],
2828
['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]
3234
], menu_ID = [];
3335
for (let i=0;i<menu_ALL.length;i++){ // 如果读取到的值为 null 就写入默认值
3436
if (GM_getValue(menu_ALL[i][0]) == null){GM_setValue(menu_ALL[i][0], menu_ALL[i][3])};
@@ -138,28 +140,27 @@
138140
if (patt_thread.test(location.pathname) || location.search.indexOf('mod=viewthread') > -1) { // 帖子内
139141
if (menu_value('menu_thread_pageLoading')) {
140142
curSite = DBSite.thread;
141-
hidePgbtn(); // 隐藏帖子内的 [下一页] 按钮
143+
hidePgbtn(); // 隐藏帖子内的 [下一页] 按钮
142144
}
143-
showPosts(); // 自动显示帖子内被隐藏的回复
144-
blockUsers('thread'); // 屏蔽用户(黑名单)
145+
showPosts(); // 自动显示帖子内被隐藏的回复
146+
blockUsers('thread'); // 屏蔽用户(黑名单)
147+
if (menu_value('menu_onlineStatus')) onlineStatus(); // 显示是否在线
145148
} else if (patt_forum.test(location.pathname) || location.search.indexOf('mod=forumdisplay') > -1) { // 各板块帖子列表
146149
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(); // 屏蔽关键词(帖子标题)
153154
if (patt_forum.test(location.pathname)) blockDOMNodeInserted(); // 监听插入事件(针对的是:有新的回复主题,点击查看)
154-
}else if (patt_guide.test(location.search)) { // 导读帖子列表
155+
}else if (patt_guide.test(location.search)) { // 导读帖子列表
155156
curSite = DBSite.guide;
156-
} else if(location.pathname === '/search.php') { // 搜索结果列表
157+
} else if(location.pathname === '/search.php') { // 搜索结果列表
157158
curSite = DBSite.search;
158-
blockUsers('search'); // 屏蔽用户(黑名单)
159+
blockUsers('search'); // 屏蔽用户(黑名单)
159160
} else if(location.pathname === '/home.php' && location.search.indexOf('mod=space&do=notice&view=mypost') > -1) { // 消息(帖子/点评/提到)
160-
blockUsers('notice'); // 屏蔽用户(黑名单)
161+
blockUsers('notice'); // 屏蔽用户(黑名单)
161162
} else if(location.pathname === '/home.php' && location.search === '?mod=space&do=pm') { // 消息(私人聊天)
162-
blockUsers('pm'); // 屏蔽用户(黑名单)
163+
blockUsers('pm'); // 屏蔽用户(黑名单)
163164
}
164165

165166
curSite.pageUrl = ""; // 下一页URL
@@ -168,6 +169,18 @@
168169
if(menu_value('menu_autoSignIn'))autoSignIn(); // 自动签到(访问空间 10 次 = 20 积分)
169170

170171

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+
171184
// 自动签到(访问空间 10 次 = 20 积分)
172185
function autoSignIn() {
173186
if (!loginStatus) return
@@ -372,10 +385,23 @@
372385
}
373386

374387

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+
375401
// 自动隐藏阅读权限 255 的帖子
376402
function delate255() {
377403
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');
379405
Array.from(tbody).forEach(function (_this) {
380406
if (_this.innerText === '255') {
381407
_this.parentNode.parentNode.parentNode.remove();

0 commit comments

Comments
 (0)