|
18 | 18 | // ==/UserScript== |
19 | 19 |
|
20 | 20 | (function() { |
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 | | - 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; |
26 | | - if (menu_thread_pageLoading == null){menu_thread_pageLoading = false; GM_setValue('xiu2_menu_thread_pageLoading', menu_thread_pageLoading)}; |
27 | | - if (menu_autoReply == null){menu_autoReply = true; GM_setValue('xiu2_menu_autoReply', menu_autoReply)}; |
28 | | - 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)}; |
| 21 | + var menu_ALL = [ |
| 22 | + ['menu_thread_pageLoading', '自动回复', '自动回复', true], |
| 23 | + ['menu_autoReply', '清理置顶帖子', '清理置顶帖子', true], |
| 24 | + ['menu_cleanTopPost', '帖子内自动翻页', '帖子内自动翻页', true], |
| 25 | + ['menu_scrollToShowhide', '自动滚动至隐藏内容', '自动滚动至隐藏内容', true] |
| 26 | + ], menu_ID = []; |
| 27 | + for (let i=0;i<menu_ALL.length;i++){ // 如果读取到的值为 null 就写入默认值 |
| 28 | + if (GM_getValue(menu_ALL[i][0]) == null){GM_setValue(menu_ALL[i][0], menu_ALL[i][3])}; |
| 29 | + } |
30 | 30 | registerMenuCommand(); |
31 | 31 |
|
32 | 32 | // 注册脚本菜单 |
33 | 33 | function registerMenuCommand() { |
34 | | - let menu_thread_pageLoading_, menu_autoReply_, menu_cleanTopPost_, menu_scrollToShowhide_; |
35 | | - if (menu_feedBack_ID){ // 如果反馈菜单ID不是 null,则删除所有脚本菜单 |
36 | | - GM_unregisterMenuCommand(menu_thread_pageLoading_ID); |
37 | | - GM_unregisterMenuCommand(menu_autoReply_ID); |
38 | | - GM_unregisterMenuCommand(menu_cleanTopPost_ID); |
39 | | - GM_unregisterMenuCommand(menu_scrollToShowhide_ID); |
40 | | - GM_unregisterMenuCommand(menu_feedBack_ID); |
41 | | - menu_thread_pageLoading = GM_getValue('xiu2_menu_thread_pageLoading'); |
42 | | - menu_autoReply = GM_getValue('xiu2_menu_autoReply'); |
43 | | - menu_cleanTopPost = GM_getValue('xiu2_menu_cleanTopPost'); |
44 | | - menu_scrollToShowhide = GM_getValue('xiu2_menu_scrollToShowhide'); |
| 34 | + if (menu_ID.length > menu_ALL.length){ // 如果菜单ID数组多于菜单数组,说明不是首次添加菜单,需要卸载所有脚本菜单 |
| 35 | + for (let i=0;i<menu_ID.length;i++){ |
| 36 | + GM_unregisterMenuCommand(menu_ID[i]); |
| 37 | + } |
45 | 38 | } |
46 | | - |
47 | | - if (menu_thread_pageLoading){menu_thread_pageLoading_ = "√";}else{menu_thread_pageLoading_ = "×";} |
48 | | - if (menu_autoReply){menu_autoReply_ = "√";}else{menu_autoReply_ = "×";} |
49 | | - if (menu_cleanTopPost){menu_cleanTopPost_ = "√";}else{menu_cleanTopPost_ = "×";} |
50 | | - if (menu_scrollToShowhide){menu_scrollToShowhide_ = "√";}else{menu_scrollToShowhide_ = "×";} |
51 | | - |
52 | | - menu_autoReply_ID = GM_registerMenuCommand(`[ ${menu_autoReply_} ] 自动回复`, function(){menu_switch(menu_autoReply,'xiu2_menu_autoReply','自动回复')}); |
53 | | - menu_cleanTopPost_ID = GM_registerMenuCommand(`[ ${menu_cleanTopPost_} ] 清理置顶帖子`, function(){menu_switch(menu_cleanTopPost,'xiu2_menu_cleanTopPost','清理置顶帖子')}); |
54 | | - 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','自动滚动至隐藏内容')}); |
56 | | - menu_feedBack_ID = GM_registerMenuCommand('反馈 & 建议', function () {window.GM_openInTab('https://github.com/XIU2/UserScript#xiu2userscript', {active: true,insert: true,setParent: true});}); |
| 39 | + for (let i=0;i<menu_ALL.length;i++){ // 循环注册脚本菜单 |
| 40 | + menu_ALL[i][3] = GM_getValue(menu_ALL[i][0]); |
| 41 | + menu_ID[i] = GM_registerMenuCommand(`[ ${menu_ALL[i][3]?'√':'×'} ] ${menu_ALL[i][1]}`, function(){menu_switch(`${menu_ALL[i][3]}`,`${menu_ALL[i][0]}`,`${menu_ALL[i][2]}`)}); |
| 42 | + } |
| 43 | + menu_ID[menu_ID.length] = GM_registerMenuCommand('反馈 & 建议', function () {window.GM_openInTab('https://github.com/XIU2/UserScript#xiu2userscript', {active: true,insert: true,setParent: true});}); |
57 | 44 | } |
58 | 45 |
|
59 | 46 | // 菜单开关 |
60 | 47 | function menu_switch(menu_status, Name, Tips) { |
61 | | - if (menu_status){ |
| 48 | + if (menu_status == 'true'){ |
62 | 49 | GM_setValue(`${Name}`, false); |
63 | 50 | GM_notification({text: `已关闭 [${Tips}] 功能\n(刷新网页后生效)`, timeout: 3500}); |
64 | 51 | }else{ |
|
68 | 55 | registerMenuCommand(); // 重新注册脚本菜单 |
69 | 56 | }; |
70 | 57 |
|
| 58 | + // 返回菜单值 |
| 59 | + function menu_value(menuName) { |
| 60 | + for (let menu of menu_ALL) { |
| 61 | + if (menu[0] == menuName) { |
| 62 | + return menu[3] |
| 63 | + } |
| 64 | + } |
| 65 | + } |
| 66 | + |
| 67 | + |
71 | 68 | // 随机回复帖子的内容 |
72 | 69 | var replyList = [ |
73 | 70 | "感谢楼主分享的内容!", |
|
144 | 141 | // URL 判断 |
145 | 142 | if (patt_thread.test(location.pathname) || patt_thread_2.test(location.search)){ |
146 | 143 | // 帖子内 |
147 | | - if(menu_thread_pageLoading)curSite = DBSite.thread; |
148 | | - if(menu_autoReply)autoReply(); // 如果有隐藏内容,则自动回复 |
| 144 | + if(menu_value('menu_thread_pageLoading'))curSite = DBSite.thread; |
| 145 | + if(menu_value('menu_autoReply'))autoReply(); // 如果有隐藏内容,则自动回复 |
149 | 146 | pageLoading(); // 自动翻页 |
150 | | - if(menu_scrollToShowhide)setTimeout(function(){window.scrollTo(0,document.querySelector('.showhide').offsetTop)}, 500); // 滚动至隐藏内容 |
| 147 | + if(menu_value('menu_scrollToShowhide'))setTimeout(function(){window.scrollTo(0,document.querySelector('.showhide').offsetTop)}, 500); // 滚动至隐藏内容 |
151 | 148 | }else if (patt_forum.test(location.pathname) || patt_forum_2.test(location.search)){ |
152 | 149 | // 各板块帖子列表 |
153 | 150 | curSite = DBSite.forum; |
154 | | - if(menu_cleanTopPost)cleanTopPost(); // 清理置顶帖子 |
| 151 | + if(menu_value('menu_cleanTopPost'))cleanTopPost(); // 清理置顶帖子 |
155 | 152 | pageLoading(); // 自动翻页 |
156 | 153 | }else if (patt_guide.test(location.search)){ |
157 | 154 | // 导读帖子列表 |
|
204 | 201 | if (autoreply){ |
205 | 202 | writeReply(); |
206 | 203 | // 滚动至隐藏内容 |
207 | | - if(menu_scrollToShowhide){ |
| 204 | + if(menu_value('menu_scrollToShowhide')){ |
208 | 205 | let showhideTime=setInterval(function(){ |
209 | 206 | let showhide=document.querySelector('.showhide') |
210 | 207 | if(showhide){ |
|
0 commit comments