Skip to content

Commit d90fcf9

Browse files
committed
新增 自动回复后滚动至隐藏内容(默认开启)
1 parent 5b4ca30 commit d90fcf9

1 file changed

Lines changed: 32 additions & 15 deletions

File tree

3dm-Enhanced.user.js

Lines changed: 32 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
// ==UserScript==
22
// @name 3DM论坛增强
3-
// @version 1.0.5
3+
// @version 1.0.6
44
// @author X.I.U
5-
// @description 自动回复、自动无缝翻页、清理置顶帖子
5+
// @description 自动回复、自动无缝翻页、清理置顶帖子
66
// @match *://bbs.3dmgame.com/*
77
// @icon https://bbs.3dmgame.com/favicon.ico
88
// @grant GM_xmlhttpRequest
@@ -20,33 +20,39 @@
2020
(function() {
2121
var menu_thread_pageLoading = GM_getValue('xiu2_menu_thread_pageLoading'),
2222
menu_autoReply = GM_getValue('xiu2_menu_autoReply'),
23-
menu_cleanTopPost = GM_getValue('xiu2_menu_cleanTopPost');
24-
var menu_thread_pageLoading_ID, menu_autoReply_ID, menu_cleanTopPost_ID, menu_feedBack_ID;
23+
menu_cleanTopPost = GM_getValue('xiu2_menu_cleanTopPost'),
24+
menu_scrollToShowhide = GM_getValue('xiu2_menu_scrollToShowhide');
25+
var menu_thread_pageLoading_ID, menu_autoReply_ID, menu_cleanTopPost_ID, menu_scrollToShowhide_ID, menu_feedBack_ID;
2526
if (menu_thread_pageLoading == null){menu_thread_pageLoading = false; GM_setValue('xiu2_menu_thread_pageLoading', menu_thread_pageLoading)};
2627
if (menu_autoReply == null){menu_autoReply = true; GM_setValue('xiu2_menu_autoReply', menu_autoReply)};
2728
if (menu_cleanTopPost == null){menu_cleanTopPost = true; GM_setValue('xiu2_menu_cleanTopPost', menu_cleanTopPost)};
29+
if (menu_scrollToShowhide == null){menu_scrollToShowhide = true; GM_setValue('xiu2_menu_scrollToShowhide', menu_scrollToShowhide)};
2830
registerMenuCommand();
2931

3032
// 注册脚本菜单
3133
function registerMenuCommand() {
32-
var menu_thread_pageLoading_, menu_autoReply_, menu_cleanTopPost_;
34+
let menu_thread_pageLoading_, menu_autoReply_, menu_cleanTopPost_, menu_scrollToShowhide_;
3335
if (menu_feedBack_ID){ // 如果反馈菜单ID不是 null,则删除所有脚本菜单
3436
GM_unregisterMenuCommand(menu_thread_pageLoading_ID);
3537
GM_unregisterMenuCommand(menu_autoReply_ID);
3638
GM_unregisterMenuCommand(menu_cleanTopPost_ID);
39+
GM_unregisterMenuCommand(menu_scrollToShowhide_ID);
3740
GM_unregisterMenuCommand(menu_feedBack_ID);
3841
menu_thread_pageLoading = GM_getValue('xiu2_menu_thread_pageLoading');
3942
menu_autoReply = GM_getValue('xiu2_menu_autoReply');
4043
menu_cleanTopPost = GM_getValue('xiu2_menu_cleanTopPost');
44+
menu_scrollToShowhide = GM_getValue('xiu2_menu_scrollToShowhide');
4145
}
4246

4347
if (menu_thread_pageLoading){menu_thread_pageLoading_ = "√";}else{menu_thread_pageLoading_ = "×";}
4448
if (menu_autoReply){menu_autoReply_ = "√";}else{menu_autoReply_ = "×";}
4549
if (menu_cleanTopPost){menu_cleanTopPost_ = "√";}else{menu_cleanTopPost_ = "×";}
50+
if (menu_scrollToShowhide){menu_scrollToShowhide_ = "√";}else{menu_scrollToShowhide_ = "×";}
4651

4752
menu_autoReply_ID = GM_registerMenuCommand(`[ ${menu_autoReply_} ] 自动回复`, function(){menu_switch(menu_autoReply,'xiu2_menu_autoReply','自动回复')});
4853
menu_cleanTopPost_ID = GM_registerMenuCommand(`[ ${menu_cleanTopPost_} ] 清理置顶帖子`, function(){menu_switch(menu_cleanTopPost,'xiu2_menu_cleanTopPost','清理置顶帖子')});
4954
menu_thread_pageLoading_ID = GM_registerMenuCommand(`[ ${menu_thread_pageLoading_} ] 帖子内自动翻页`, function(){menu_switch(menu_thread_pageLoading,'xiu2_menu_thread_pageLoading','帖子内自动翻页')});
55+
menu_scrollToShowhide_ID = GM_registerMenuCommand(`[ ${menu_scrollToShowhide_} ] 自动滚动至隐藏内容`, function(){menu_switch(menu_scrollToShowhide,'xiu2_menu_scrollToShowhide','自动滚动至隐藏内容')});
5056
menu_feedBack_ID = GM_registerMenuCommand('反馈 & 建议', function () {window.GM_openInTab('https://github.com/XIU2/UserScript#xiu2userscript', {active: true,insert: true,setParent: true});});
5157
}
5258

@@ -127,7 +133,7 @@
127133
curSite.pageUrl = "";
128134

129135
// URL 匹配正则表达式
130-
var patt_thread = /\/thread-\d+-\d+\-\d+.html/,
136+
let patt_thread = /\/thread-\d+-\d+\-\d+.html/,
131137
patt_thread_2 = /mod\=viewthread/,
132138
patt_forum = /\/forum-\d+-\d+\.html/,
133139
patt_forum_2 = /mod\=forumdisplay/,
@@ -141,6 +147,7 @@
141147
if(menu_thread_pageLoading)curSite = DBSite.thread;
142148
if(menu_autoReply)autoReply(); // 如果有隐藏内容,则自动回复
143149
pageLoading(); // 自动翻页
150+
if(menu_scrollToShowhide)setTimeout(`window.scrollTo(0,document.querySelector('.showhide').offsetTop)`, 500); // 滚动至隐藏内容
144151
}else if (patt_forum.test(location.pathname) || patt_forum_2.test(location.search)){
145152
// 各板块帖子列表
146153
curSite = DBSite.forum;
@@ -155,9 +162,9 @@
155162

156163
// 判断是否登陆
157164
function checkLogin(){
158-
var checklogin = document.querySelectorAll('.wp.h_menu p a');
165+
let checklogin = document.querySelectorAll('.wp.h_menu p a');
159166
if (checklogin){
160-
for (var value of checklogin) {
167+
for (let value of checklogin) {
161168
if (value.innerHTML == "退出"){
162169
loginStatus = true;
163170
}
@@ -171,11 +178,11 @@
171178
if (curSite.SiteTypeID > 0){
172179
windowScroll(function (direction, e) {
173180
if (direction === "down") { // 下滑才准备翻页
174-
var scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;
181+
let scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;
175182
let scrollDelta = 666;
176183
if (document.documentElement.scrollHeight <= document.documentElement.clientHeight + scrollTop + scrollDelta) {
177184
if (curSite.SiteTypeID === SiteType.FORUM) { // 如果是各版块帖子列表则直接点下一页就行了
178-
var autopbn = document.querySelector('#autopbn');
185+
let autopbn = document.querySelector('#autopbn');
179186
if (autopbn && autopbn.innerText == "下一页 »"){ // 如果已经在加载中了,就忽略
180187
autopbn.click();
181188
}
@@ -193,10 +200,20 @@
193200
function autoReply(){
194201
if (loginStatus){
195202
// 存在隐藏内容,则自动回复
196-
var autoreply = document.querySelector('.locked a');
203+
let autoreply = document.querySelector('.locked a');
197204
if (autoreply){
198205
writeReply();
199-
setTimeout(`window.scrollTo(0,0)`, 1000);
206+
// 滚动至隐藏内容
207+
if(menu_scrollToShowhide){
208+
let showhideTime=setInterval(function(){
209+
let showhide=document.querySelector('.showhide')
210+
if(showhide){
211+
clearInterval(showhideTime)
212+
window.scrollTo(0,showhide.offsetTop)
213+
}}, 100)
214+
}else{
215+
setTimeout(`window.scrollTo(0,0)`, 1000);
216+
}
200217
}
201218
}
202219

@@ -205,10 +222,10 @@
205222

206223
// 写入自动回复内容
207224
function writeReply(){
208-
var textarea = document.getElementById("fastpostmessage");
225+
let textarea = document.getElementById("fastpostmessage");
209226
if (textarea){
210227
textarea.value = textarea.value + replyList[Math.floor((Math.random()*replyList.length))] + replyList[Math.floor((Math.random()*replyList.length))];
211-
var fastpostsubmit = document.getElementById("fastpostsubmit");
228+
let fastpostsubmit = document.getElementById("fastpostsubmit");
212229
if (fastpostsubmit){
213230
fastpostsubmit.click();
214231
}
@@ -218,7 +235,7 @@
218235

219236
// 清理置顶帖子
220237
function cleanTopPost(){
221-
var showhide = document.querySelectorAll("a.showhide.y");
238+
let showhide = document.querySelectorAll("a.showhide.y");
222239
if (showhide.length > 0){
223240
showhide.forEach(el=>el.click());
224241
}

0 commit comments

Comments
 (0)