From dcd15ff0a32620e488833e98a602814ee0adc0ac Mon Sep 17 00:00:00 2001 From: xiu2 <54703944+XIU2@users.noreply.github.com> Date: Tue, 20 Jul 2021 12:20:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20[=E5=BC=BA=E5=88=B6?= =?UTF-8?q?=E5=BD=93=E5=89=8D=E7=BD=91=E7=AB=99=E5=90=AF=E7=94=A8=E6=8A=A4?= =?UTF-8?q?=E7=9C=BC=E6=A8=A1=E5=BC=8F]=20=E5=8A=9F=E8=83=BD;=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=20[=E5=AF=B9=E5=BD=93=E5=89=8D=E7=BD=91=E7=AB=99?= =?UTF-8?q?=E5=90=AF=E7=94=A8/=E7=A6=81=E7=94=A8]=20=E5=8A=9F=E8=83=BD;=20?= =?UTF-8?q?=E4=BC=98=E5=8C=96=20=E8=84=9A=E6=9C=AC=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DarkMode.user.js | 174 ++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 150 insertions(+), 24 deletions(-) diff --git a/DarkMode.user.js b/DarkMode.user.js index eac1c08..6d10fb7 100644 --- a/DarkMode.user.js +++ b/DarkMode.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name 护眼模式 -// @version 1.1.6 +// @version 1.2.0 // @author X.I.U // @description 简单有效的全网通用护眼模式、夜间模式、暗黑模式 // @match *://*/* @@ -26,19 +26,18 @@ 'use strict'; (function() { var menu_ALL = [ + ['menu_disable', '✅ 已启用 (点击对当前网站禁用)', '❎ 已禁用 (点击对当前网站启用)', []], ['menu_runDuringTheDay', '白天保持开启 (比晚上亮一点点)', '白天保持开启', true], - ['menu_autoRecognition', '排除自带暗黑模式的网页 (beta)', '排除自带暗黑模式的网页 (beta)', true], + ['menu_autoRecognition', '智能排除自带暗黑模式的网页 (beta)', '智能排除自带暗黑模式的网页 (beta)', true], + ['menu_forcedToEnable', '✅ 已强制当前网站启用护眼模式 (👆)', '❎ 未强制当前网站启用护眼模式 (👆)', []], ['menu_darkModeType', '点击切换模式', '点击切换模式', 1], - ['menu_customMode', '自定义当前模式', '自定义当前模式', '80|70'], - ['menu_customMode1', '自定义模式 1', '自定义模式 1', '80|70'], - ['menu_customMode2', '自定义模式 2', '自定义模式 2', '80|20|70|30'], - ['menu_customMode3', '自定义模式 3', '自定义模式 3', '80'] - ], menu_ID = [], websiteList = ['rarbgprx.org','fitgirl-repacks.site','masquerade.site','www.gamersky.com']; + ['menu_customMode', '自定义当前模式', '自定义当前模式', true], ['menu_customMode1',,,'80|70'], ['menu_customMode2',,,'80|20|70|30'], ['menu_customMode3',,,'80'] + ], menu_ID = []; for (let i=0;i 1) {addStyle();} // 注册脚本菜单 @@ -50,29 +49,66 @@ } for (let i=0;i 3){ // 避免在减少 raw 数组后,用户储存的数据大于数组而报错 - menu_ALL[i][3] = 1; - GM_setValue('menu_darkModeType', menu_ALL[i][3]); + if (menu_ALL[i][0] === 'menu_disable') + { // 启用/禁用护眼模式 (当前网站) + if (menu_disable('check')) { // 当前网站是否已存在禁用列表中 + menu_ID[i] = GM_registerMenuCommand(`${menu_ALL[i][2]}`, function(){menu_disable('del')}); + return + } else { + menu_ID[i] = GM_registerMenuCommand(`${menu_ALL[i][1]}`, function(){menu_disable('add')}); } - menu_ID[i] = GM_registerMenuCommand(`🔄 [ ${menu_ALL[i][3]} ] ${menu_ALL[i][1]}`, function(){menu_toggle(`${menu_ALL[i][3]}`,`${menu_ALL[i][0]}`)}); - } else if (menu_ALL[i][0] === 'menu_customMode') { - GM_setValue('menu_customMode', menu_ALL[i][3]); - menu_ID[i] = GM_registerMenuCommand(`✅ ${menu_ALL[i][1]}`, function(){menu_customMode()}); - } else if (menu_ALL[i][0] === 'menu_customMode1') { - GM_setValue('menu_customMode1', menu_ALL[i][3]); - } else if (menu_ALL[i][0] === 'menu_customMode2') { - GM_setValue('menu_customMode2', menu_ALL[i][3]); - } else if (menu_ALL[i][0] === 'menu_customMode3') { - GM_setValue('menu_customMode3', menu_ALL[i][3]); - } else { - 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]}`)}); + } + else if (menu_ALL[i][0] === 'menu_darkModeType') + { // 点击切换模式 + if (menu_ALL[i][3] > 3) { // 避免在减少 raw 数组后,用户储存的数据大于数组而报错 + menu_ALL[i][3] = 1; + GM_setValue(menu_ALL[i][0], menu_ALL[i][3]); + } + menu_ID[i] = GM_registerMenuCommand(`${menu_num(menu_ALL[i][3])} ${menu_ALL[i][1]}`, function(){menu_toggle(`${menu_ALL[i][3]}`,`${menu_ALL[i][0]}`)}); + } + else if (menu_ALL[i][0] === 'menu_customMode') + { // 自定义当前模式 + GM_setValue(menu_ALL[i][0], menu_ALL[i][3]); + menu_ID[i] = GM_registerMenuCommand(`#️⃣ ${menu_ALL[i][1]}`, function(){menu_customMode()}); + } + else if (menu_ALL[i][0] === 'menu_customMode1' || menu_ALL[i][0] === 'menu_customMode2' || menu_ALL[i][0] === 'menu_customMode3') + { // 当前模式值 + GM_setValue(menu_ALL[i][0], menu_ALL[i][3]); + } + else if (menu_ALL[i][0] === 'menu_forcedToEnable') + { // 强制当前网站启用护眼模式 + if (menu_value('menu_autoRecognition')) { // 自动排除自带暗黑模式的网页 (beta) + if (menu_forcedToEnable('check')) { // 当前网站是否已存在列表中 + menu_ID[i] = GM_registerMenuCommand(`${menu_ALL[i][1]}`, function(){menu_forcedToEnable('del')}); + } else { + menu_ID[i] = GM_registerMenuCommand(`${menu_ALL[i][2]}`, function(){menu_forcedToEnable('add')}); + } + } + } + else + { + 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]}`)}); } } menu_ID[menu_ID.length] = GM_registerMenuCommand('💬 反馈 & 建议', function () {window.GM_openInTab('https://github.com/XIU2/UserScript#xiu2userscript', {active: true,insert: true,setParent: true});window.GM_openInTab('https://greasyfork.org/zh-CN/scripts/412212/feedback', {active: true,insert: true,setParent: true});}); } + function menu_num(num) { + switch(num) { + case 1: + return '1️⃣' + break; + case 2: + return '2️⃣' + break; + case 3: + return '3️⃣' + break; + } + } + + // 自定义当前模式 function menu_customMode() { let newMods, tip, defaults, name; @@ -108,6 +144,94 @@ } + // 强制当前网站启用护眼模式 + function menu_forcedToEnable(type) { + switch(type) { + case 'check': + if(check()) return true + return false + break; + case 'add': + add(); + break; + case 'del': + del(); + break; + } + + function check() { // 存在返回真,不存在返回假 + let websiteList = menu_value('menu_forcedToEnable'); // 读取网站列表 + for (let num = 0;num