// ==UserScript== // @name 网页亮度调整 // @name:en Webpage brightness adjustment // @namespace mscststs // @version 0.36 // @description 用这个脚本来调整你的网页亮度 // @description:en Use this script to adjust the brightness of your page // @require https://greasyfork.org/scripts/373588-mscststs-eventbus/code/mscststs-EventBus.js?version=639557 // @author mscststs // @include /.*/ // @grant GM_setValue // @grant GM_getValue // @grant GM_addValueChangeListener // @grant GM_registerMenuCommand // @grant unsafeWindow // @license MIT License // @noframes // @contributionURL https://blve.mscststs.com/img/Pay.png // @contributionAmount 5 // @compatible firefox 旧版FF兼容性未考证,火狐量子版完全兼容 // @compatible chrome // @compatible opera // @compatible safari // @run-at document-body // @downloadURL none // ==/UserScript== (function() { 'use strict'; const Default_config={ globalBrightness: 0.9, SingleConfigMap:{ /* { [window.location.host] : 0.9, }*/ } } function isCN(){ let lang = navigator.language||navigator.userLanguage;//常规浏览器语言和IE浏览器 if(lang.indexOf('zh')>=0){ return true; }else{ return false; } } const CN_wordsMap = { MenuCmd:"打开亮度调整菜单", settingsTitle:"亮度调整", setAsDefault:"设为默认亮度", closeSettingWindow:"关闭设置窗口", DeafultSetText:"网页默认亮度已被设置为", } const EN_wordsMap = { MenuCmd:"Brightness adjustment menu", settingsTitle:"Brightness adjustment", setAsDefault:"Set As Default Brightness", closeSettingWindow:"Close the settings window", DeafultSetText:"The default brightness has been set to " } const wordsMap = isCN()?CN_wordsMap:EN_wordsMap; const body = document.querySelector("body"); let gm = new class{ constructor(){ this.key = "mscststs-brightness"; this.init(); } init(){ GM_registerMenuCommand(wordsMap.MenuCmd,()=>{ eve.emit("Cmd-OpenMenu"); }); GM_addValueChangeListener(this.key,(name, old_value, new_value, remote)=>{ eve.emit("SettingUpdated",new_value); }); } getNowBrightness(){ let config = this.getConfig(); return config.SingleConfigMap[window.location.host] || config.globalBrightness; } getConfig(){ //读取配置文件 return GM_getValue(this.key,Default_config); } setConfig(value){ GM_setValue(this.key,value); } setGlobalBrightness(value){ let config = this.getConfig(); config.globalBrightness = value; this.setConfig(config); } setHostBrightness(value,host = window.location.host){ let config = this.getConfig(); config.SingleConfigMap[host] = value; this.setConfig(config); } }(); function OpenMenuPage(){ if(document.querySelector("#helper_brightness")){ //当前Menu已存在 }else{ //Menu不存在,需要打开Menu let div = document.createElement("div"); div.id = "helper_brightness"; div.innerHTML = `
`+wordsMap.settingsTitle+`
`+gm.getNowBrightness()+`
` body.appendChild(div); let rangeController = document.querySelector("#helper_brightness_range"); let setAsDefaultBtn = document.querySelector("#helper_brightness_setAsDefault"); let closeSettingPage = document.querySelector("#helper_brightness_closeSettingPage"); let brightnessValue = document.querySelector("#brightness-value"); rangeController.addEventListener("input",(e)=>{ let value = e.target.value; brightnessValue.innerText = value; gm.setHostBrightness(value); }) setAsDefaultBtn.addEventListener("click",(e)=>{ //设为默认亮度 let value = rangeController.value; gm.setGlobalBrightness(value); alert(wordsMap.DeafultSetText+value+"!"); }) closeSettingPage.addEventListener("click",(e)=>{ CloseMenuPage(); }) } } function CloseMenuPage(){ let menu = document.querySelector("#helper_brightness"); if(menu){ menu.remove(); } } eve.on("Cmd-OpenMenu",()=>{ OpenMenuPage(); }) eve.on("SettingUpdated",()=>{ Init(); }) let CurrentBrightness = null; function Init(){ if(CurrentBrightness && CurrentBrightness == gm.getNowBrightness()){ //默认亮度未该表 }else{ CurrentBrightness = gm.getNowBrightness(); } let div = document.querySelector("#helper_BrightnessCover"); if(!div){ div=document.createElement("div"); div.id = "helper_BrightnessCover"; body.appendChild(div); } div.innerHTML = ` `; } Init(); //肮脏的按键绑定代码 let KEY = false; body.addEventListener("keydown",(e)=>{ if(e.keyCode==17){ KEY = true; } }) body.addEventListener("keyup",(e)=>{ if(e.keyCode==17){ KEY = false; } }) body.addEventListener("dblclick",(e)=>{ if(KEY){ eve.emit("Cmd-OpenMenu") } }) })();