Skip to content

Commit 4daf196

Browse files
committed
新增 [自定义昼夜时间] 支持精确到分钟
1 parent 61ff1d0 commit 4daf196

1 file changed

Lines changed: 21 additions & 7 deletions

File tree

DarkMode.user.js

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
// @name:zh-CN 护眼模式
44
// @name:zh-TW 護眼模式
55
// @name:en Dark Mode
6-
// @version 1.4.1
6+
// @version 1.4.2
77
// @author X.I.U
88
// @description 简单有效的全网通用护眼模式(夜间模式、暗黑模式、深色模式)
99
// @description:zh-CN 简单有效的全网通用护眼模式(夜间模式、暗黑模式、深色模式)
@@ -35,13 +35,17 @@
3535
['menu_forcedToEnable', '✅ 已强制当前网站启用护眼模式 (👆)', '❌ 未强制当前网站启用护眼模式 (👆)', []],
3636
['menu_darkModeType', '点击切换模式', '点击切换模式', 2],
3737
['menu_customMode', '自定义当前模式', '自定义当前模式', true], ['menu_customMode1',,,'80|70'], ['menu_customMode2',,,'80|20|70|30'], ['menu_customMode3',,,'90'], ['menu_customMode3_exclude',,,'img, .img, video, [style*="background"][style*="url"], svg'],
38-
['menu_customTime', '自定义昼夜时间', '自定义昼夜时间', '6|18'],
38+
['menu_customTime', '自定义昼夜时间', '自定义昼夜时间', '6:00|18:00'],
3939
['menu_autoSwitch', '晚上自动切换模式', '晚上自动切换模式', ''],
4040
], menu_ID = [];
4141
for (let i=0;i<menu_ALL.length;i++){ // 如果读取到的值为 null 就写入默认值
4242
if (GM_getValue(menu_ALL[i][0]) == null){GM_setValue(menu_ALL[i][0], menu_ALL[i][3])};
4343
}
4444
registerMenuCommand();
45+
46+
// 自定义昼夜时间 过渡性调整(精确到分钟),过段时间移除
47+
if (GM_getValue('menu_customTime', '').indexOf(':') === -1) GM_setValue('menu_customTime', GM_getValue('menu_customTime', '6|18').replace('|',':00|') + ':00')
48+
4549
if (menu_ID.length > 1) {addStyle();}
4650

4751

@@ -141,7 +145,7 @@
141145
function getAutoSwitch() {
142146
let darkModeType = GM_getValue('menu_darkModeType'), hours = new Date().getHours(), time = GM_getValue('menu_customTime').split('|').map(Number);
143147
if (GM_getValue('menu_autoSwitch') != '') { // 晚上自动切换模式
144-
if (hours > time[0] && hours < time[1]) { // 白天
148+
if (isDaytime()) { // 白天
145149
darkModeType = GM_getValue('menu_autoSwitch').split('|')[0];
146150
} else { // 晚上
147151
darkModeType = GM_getValue('menu_autoSwitch').split('|')[1];
@@ -201,9 +205,9 @@
201205

202206
// 自定义昼夜时间
203207
function menu_customTime() {
204-
let newMods = prompt('自定义脚本内和白天/晚上相关的时间,修改后刷新网页生效~\n格式:6|18 (即 6:00 ~ 18:00 之间是白天时间)', GM_getValue('menu_customTime'));
208+
let newMods = prompt('自定义脚本内和白天/晚上相关的时间,修改后刷新网页生效~\n格式:6:01|18:30 (即 6:01 ~ 18:30 之间是白天时间)', GM_getValue('menu_customTime'));
205209
if (newMods === '') {
206-
GM_setValue('menu_customTime', '6|18');
210+
GM_setValue('menu_customTime', '6:00|18:00');
207211
registerMenuCommand(); // 重新注册脚本菜单
208212
} else if (newMods != null) {
209213
GM_setValue('menu_customTime', newMods);
@@ -340,7 +344,6 @@
340344
function addStyle() {
341345
let remove = false, style_Add = document.createElement('style'),
342346
hours = new Date().getHours(),
343-
time = GM_getValue('menu_customTime').split('|').map(Number),
344347
style_10 = menu_value('menu_customMode1').split('|'),
345348
style_20 = menu_value('menu_customMode2').split('|'),
346349
style_30 = menu_value('menu_customMode3').split('|'),
@@ -371,7 +374,7 @@
371374
}
372375

373376
// 白天
374-
if (hours > time[0] && hours < time[1]) {
377+
if (isDaytime()) {
375378
if (menu_value('menu_runDuringTheDay')) {
376379
style_12 = style_11
377380
style_22 = style_21
@@ -477,4 +480,15 @@
477480
let rgbValueArry = window.getComputedStyle(e).backgroundColor.replace(/rgba|rgb|\(|\)| /g, '').split (',')
478481
return parseInt(rgbValueArry[0] + rgbValueArry[1] + rgbValueArry[2])
479482
}
483+
484+
485+
// 判断当前是白天还是晚上
486+
function isDaytime() {
487+
let nowTime = new Date('2022-03-07 ' + new Date().getHours() + ':' + new Date().getMinutes() + ':00').getTime()/1000, time = GM_getValue('menu_customTime').split('|');
488+
time[0] = new Date('2022-03-07 ' + time[0] + ':00').getTime()/1000;
489+
time[1] = new Date('2022-03-07 ' + time[1] + ':00').getTime()/1000;
490+
491+
if (nowTime > time[0] && nowTime < time[1]) return true
492+
return false
493+
}
480494
})();

0 commit comments

Comments
 (0)