|
1 | 1 | // ==UserScript== |
2 | 2 | // @name 3DM论坛增强 |
3 | | -// @version 1.0.3 |
| 3 | +// @version 1.0.4 |
4 | 4 | // @author X.I.U |
5 | 5 | // @description 自动回复、自动无缝翻页、清理置顶帖子 |
6 | 6 | // @match *://bbs.3dmgame.com/* |
7 | 7 | // @icon https://bbs.3dmgame.com/favicon.ico |
8 | 8 | // @grant GM_xmlhttpRequest |
9 | 9 | // @grant GM_registerMenuCommand |
| 10 | +// @grant GM_unregisterMenuCommand |
10 | 11 | // @grant GM_openInTab |
11 | 12 | // @grant GM_getValue |
12 | 13 | // @grant GM_setValue |
|
17 | 18 | // ==/UserScript== |
18 | 19 |
|
19 | 20 | (function() { |
20 | | - // 开关帖子内自动翻页功能,true 为开启,false 为关闭,默认关闭。 |
21 | | - var thread_pageLoading = GM_getValue('xiu2_thread_pageLoading'); |
22 | | - if (thread_pageLoading == null){ |
23 | | - thread_pageLoading = false; |
24 | | - GM_setValue('xiu2_thread_pageLoading', false); |
25 | | - } |
| 21 | + var menu_thread_pageLoading = GM_getValue('xiu2_menu_thread_pageLoading'), |
| 22 | + 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; |
| 25 | + if (menu_thread_pageLoading == null){menu_thread_pageLoading = false; GM_setValue('xiu2_menu_thread_pageLoading', menu_thread_pageLoading)}; |
| 26 | + if (menu_autoReply == null){menu_autoReply = true; GM_setValue('xiu2_menu_autoReply', menu_autoReply)}; |
| 27 | + if (menu_cleanTopPost == null){menu_cleanTopPost = true; GM_setValue('xiu2_menu_cleanTopPost', menu_cleanTopPost)}; |
| 28 | + registerMenuCommand(); |
| 29 | + |
26 | 30 | // 注册脚本菜单 |
27 | | - GM_registerMenuCommand('开关 [帖子内自动翻页] 功能', function () { |
28 | | - if (thread_pageLoading){ |
29 | | - thread_pageLoading = false; |
30 | | - GM_notification(`已关闭 [帖子内自动翻页] 功能\n(刷新网页后生效)`); |
| 31 | + function registerMenuCommand() { |
| 32 | + var menu_thread_pageLoading_, menu_autoReply_, menu_cleanTopPost_; |
| 33 | + if (menu_feedBack_ID){ // 如果反馈菜单ID不是 null,则删除所有脚本菜单 |
| 34 | + GM_unregisterMenuCommand(menu_thread_pageLoading_ID); |
| 35 | + GM_unregisterMenuCommand(menu_autoReply_ID); |
| 36 | + GM_unregisterMenuCommand(menu_cleanTopPost_ID); |
| 37 | + GM_unregisterMenuCommand(menu_feedBack_ID); |
| 38 | + menu_thread_pageLoading = GM_getValue('xiu2_menu_thread_pageLoading'); |
| 39 | + menu_autoReply = GM_getValue('xiu2_menu_autoReply'); |
| 40 | + menu_cleanTopPost = GM_getValue('xiu2_menu_cleanTopPost'); |
| 41 | + } |
| 42 | + |
| 43 | + if (menu_thread_pageLoading){ |
| 44 | + menu_thread_pageLoading_ = "√"; |
| 45 | + }else{ |
| 46 | + menu_thread_pageLoading_ = "×"; |
| 47 | + } |
| 48 | + if (menu_autoReply){ |
| 49 | + menu_autoReply_ = "√"; |
| 50 | + }else{ |
| 51 | + menu_autoReply_ = "×"; |
| 52 | + } |
| 53 | + if (menu_cleanTopPost){ |
| 54 | + menu_cleanTopPost_ = "√"; |
31 | 55 | }else{ |
32 | | - thread_pageLoading = true; |
33 | | - GM_notification(`已开启 [帖子内自动翻页] 功能\n(刷新网页后生效)`); |
| 56 | + menu_cleanTopPost_ = "×"; |
34 | 57 | } |
35 | | - GM_setValue('xiu2_thread_pageLoading', thread_pageLoading); |
36 | | - }); |
37 | | - GM_registerMenuCommand('反馈 & 建议', function () {window.GM_openInTab('https://github.com/XIU2/UserScript#xiu2userscript', {active: true,insert: true,setParent: true});}); |
| 58 | + |
| 59 | + menu_autoReply_ID = GM_registerMenuCommand(`[ ${menu_autoReply_} ] 自动回复`, function(){menu_switch(menu_autoReply,'xiu2_menu_autoReply','自动回复')}); |
| 60 | + menu_cleanTopPost_ID = GM_registerMenuCommand(`[ ${menu_cleanTopPost_} ] 清理置顶帖子`, function(){menu_switch(menu_cleanTopPost,'xiu2_menu_cleanTopPost','清理置顶帖子')}); |
| 61 | + menu_thread_pageLoading_ID = GM_registerMenuCommand(`[ ${menu_thread_pageLoading_} ] 帖子内自动翻页`, function(){menu_switch(menu_thread_pageLoading,'xiu2_menu_thread_pageLoading','帖子内自动翻页')}); |
| 62 | + menu_feedBack_ID = GM_registerMenuCommand('反馈 & 建议', function () {window.GM_openInTab('https://github.com/XIU2/UserScript#xiu2userscript', {active: true,insert: true,setParent: true});}); |
| 63 | + } |
| 64 | + |
| 65 | + // 菜单开关 |
| 66 | + function menu_switch(menu_status, Name, Tips) { |
| 67 | + if (menu_status){ |
| 68 | + GM_setValue(`${Name}`, false); |
| 69 | + GM_notification(`已关闭 [${Tips}] 功能\n(刷新网页后生效)`); |
| 70 | + }else{ |
| 71 | + GM_setValue(`${Name}`, true); |
| 72 | + GM_notification(`已开启 [${Tips}] 功能\n(刷新网页后生效)`); |
| 73 | + } |
| 74 | + registerMenuCommand(); // 重新注册脚本菜单 |
| 75 | + }; |
38 | 76 |
|
39 | 77 | // 随机回复帖子的内容 |
40 | 78 | var replyList = [ |
|
100 | 138 | // URL 判断 |
101 | 139 | if (patt_thread.test(location.pathname) || patt_thread_2.test(location.search)){ |
102 | 140 | // 帖子内 |
103 | | - if(thread_pageLoading)curSite = DBSite.thread; |
104 | | - autoReply(); // 如果有隐藏内容,则自动回复 |
105 | | - pageLoading(); // 自动翻页 |
| 141 | + if(menu_thread_pageLoading)curSite = DBSite.thread; |
| 142 | + if(menu_autoReply)autoReply(); // 如果有隐藏内容,则自动回复 |
| 143 | + pageLoading(); // 自动翻页 |
106 | 144 | }else if (patt_forum.test(location.pathname) || patt_forum_2.test(location.search)){ |
107 | 145 | // 各板块帖子列表 |
108 | 146 | curSite = DBSite.forum; |
109 | | - cleanTop(); // 清理置顶帖子 |
110 | | - pageLoading(); // 自动翻页 |
| 147 | + if(menu_cleanTopPost)cleanTopPost(); // 清理置顶帖子 |
| 148 | + pageLoading(); // 自动翻页 |
111 | 149 | }else if (patt_guide.test(location.search)){ |
112 | 150 | // 导读帖子列表 |
113 | 151 | curSite = DBSite.guide; |
114 | | - pageLoading(); // 自动翻页 |
| 152 | + pageLoading(); // 自动翻页 |
115 | 153 | } |
116 | 154 |
|
117 | 155 |
|
|
179 | 217 |
|
180 | 218 |
|
181 | 219 | // 清理置顶帖子 |
182 | | - function cleanTop(){ |
| 220 | + function cleanTopPost(){ |
183 | 221 | var showhide = document.querySelectorAll("a.showhide.y"); |
184 | 222 | if (showhide.length > 0){ |
185 | 223 | showhide.forEach(el=>el.click()); |
|
0 commit comments