mirror of
https://github.com/the1812/Bilibili-Evolved.git
synced 2025-11-04 21:22:45 +08:00
1 line
5.8 KiB
JavaScript
1 line
5.8 KiB
JavaScript
(()=>{return(e,t)=>{const n={red:"#e57373",pink:"#F06292",purple:"#BA68C8",deepPurple:"#9575CD",indigo:"#7986CB",blue:"#2196F3",lightBlue:"#00A0D8",cyan:"#00ACC1",teal:"#26A69A",green:"#81C784",lightGreen:"#9CCC65",orange:"#FF9800",deepOrange:"#FF7043",brown:"#A1887F",grey:"#757575",blueGrey:"#78909C"};const o=(()=>{const t=document.querySelector("html");const n=new ColorProcessor;return function(){t.style.setProperty("--theme-color",e.customStyleColor);for(let o=10;o<=90;o+=10){t.style.setProperty(`--theme-color-${o}`,n.rgbToString(n.hexToRgba(e.customStyleColor+o)))}}})();const i={forceWideMinWidth:e=>e,customStyleColor:t=>{const n=t.match(/^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$/);if(n){if(t.length<7){return`#${t[1]}${t[1]}${t[2]}${t[2]}${t[3]}${t[3]}`}else{return t}}else{return e.customStyleColor}},blurBackgroundOpacity:t=>{const n=t.match(/^([-\+]?\d+)(\.\d+)?$/);if(n){const e=parseFloat(t);if(e>=0&&e<=1){return t}}return e.blurBackgroundOpacity},defaultPlayerMode:t=>{if(Resource.manifest.useDefaultPlayerMode.dropdown.items.indexOf(t)!==-1){return t}return e.defaultPlayerMode},defaultVideoQuality:t=>{if(Resource.manifest.useDefaultVideoQuality.dropdown.items.indexOf(t)!==-1){return t}return e.defaultVideoQuality}};function s(e){let t=e.nextElementSibling;const n=[];while(t!==null&&!t.classList.contains("category")){n.push(t);t=t.nextElementSibling}return n}function r(e,t){const n=e.match(/^([\d]{1,2}):([\d]{1,2})$/);if(n&&n.length>=3){const e={hour:parseInt(n[1]),minute:parseInt(n[2])};(function(){while(this.minute<0){this.minute+=60;this.hour-=1}while(this.minute>=60){this.minute-=60;this.hour+=1}while(this.hour<0){this.hour+=24}while(this.hour>=24){this.hour-=24}}).call(e);return`${e.hour}:${e.minute<10?"0"+e.minute:e.minute}`}else{return t}}i.darkScheduleStart=(t=>r(t,e.darkScheduleStart));i.darkScheduleEnd=(t=>r(t,e.darkScheduleEnd));function c(e,t){const n=e.match(/^([-\+]?\d+)(\.\d+)?$/);if(n){const t=parseFloat(e);if(t>=0&&t<=1){return e}}return t}i.blurBackgroundOpacity=(t=>c(t,e.blurBackgroundOpacity));i.customControlBackgroundOpacity=(t=>c(t,e.customControlBackgroundOpacity));function u(e,t,n){$(`input[type='checkbox'][key='${e}']`).prop("checked",n).change();$(`input[type='text'][key='${e}']`).val(n);o()}function l(){for(const t in e){u(t,undefined,e[t])}}function a(){$(".gui-settings-mask").on("click",()=>{$(".gui-settings-widgets-box,.gui-settings-box,.gui-settings-mask").removeClass("opened")});$("input[key='customStyleColor']").on("input",()=>{const e=i.customStyleColor($("input[key='customStyleColor']").val());const n=t.color.hexToRgba(e+"70");$("div.custom-color-preview").css("background",e).css("box-shadow",`0px 2px 8px 1px rgba(${n.r},${n.g},${n.b},${n.a})`)});$("input[type='text'][key]").each((t,n)=>{$(n).attr("placeholder",e[$(n).attr("key")])});$("div.custom-color-preview").on("click",()=>{const e=$(".predefined-colors");e.toggleClass("opened")});$(".gui-settings-content ul li.category").on("click",e=>{e.currentTarget.classList.toggle("folded");s(e.currentTarget).forEach(e=>e.classList.toggle("folded"))});$(".gui-settings-dropdown>input").on("click",e=>{$(e.currentTarget).parent().toggleClass("opened")});onSettingsChange(u)}function d(){const t=()=>{$("input[type='checkbox'][key]").each((t,n)=>{e[$(n).attr("key")]=$(n).prop("checked")});$("input[type='text'][key]").each((t,n)=>{const o=$(n);const s=o.attr("key");const r=i[s](o.val());e[s]=r;o.val(r)});saveSettings(e)};$("input[type='checkbox'][key]").on("change",()=>t());$("input[type='text'][key]").on("change",()=>t())}function p(){const e={};$(`input[dependencies]`).each((t,n)=>{const o=$(n).attr("dependencies");if(o){e[$(n).attr("key")]=o}});const t=t=>{const n=t.prop("checked");for(const o in e){const i=e[o].split(" ");if(i.indexOf(t.attr("key"))!==-1){let e=true;if(n&&i.every(e=>$(`input[key='${e}']`).prop("checked"))){e=false}const t=$(`li:has(input[key='${o}'])`);const s=e?"addClass":"removeClass";t[s]("disabled");$(`input[key='${o}'][type='text']`).parent()[s]("disabled")}}};$(`input[type='checkbox'][key]`).on("change",e=>t($(e.target))).each((e,n)=>t($(n)))}function g(e){if($(".gui-settings").length===0){e.append(`<div class='gui-settings-icon-panel icons-enabled'>\n <div class='gui-settings-widgets' title='附加功能'>\n <i class="icon-widgets"></i>\n </div>\n <div class='gui-settings' title='设置'>\n <i class="icon-settings"></i>\n </div>\n </div>`);$(".gui-settings").on("click",()=>{$(".gui-settings-box,.gui-settings-mask").addClass("opened")});$(".gui-settings-widgets").on("click",()=>{$(".gui-settings-widgets-box,.gui-settings-mask").addClass("opened")})}t.applyStyle("guiSettingsStyle")}function y(){const e=$(".predefined-colors-grid");for(const t of Object.values(n)){$(`<div class='predefined-colors-grid-block'></div>`).appendTo(e).css("background",t).attr("data-color",t).on("click",e=>{$(`input[key='customStyleColor']`).val($(e.target).attr("data-color")).trigger("input").change();$("div.custom-color-preview").on("click")})}}function h(){if(e.blurSettingsPanel){$(".gui-settings-box").addClass("blur")}}function f(){if(typeof offlineData!=="undefined"){$("li:has(input[key=useCache])").addClass("disabled");$("input[key=useCache]").prop("disabled",true)}}function k(){$(".gui-settings-content ul li.category").each((e,t)=>{$(t).click()})}function b(){if(!CSS.supports("backdrop-filter","blur(24px)")&&!CSS.supports("-webkit-backdrop-filter","blur(24px)")){$("input[key=blurVideoControl]").prop("disabled",true);e.blurVideoControl=false;saveSettings(e)}}g($("body"));const m=t.data.guiSettingsDom.text;if(m){$("body").append(m);a();f();l();p();y();d();k();b()}new SpinQuery(()=>$("body"),e=>e.length>0&&!(unsafeWindow.parent.window===unsafeWindow),e=>$(".gui-settings-icon-panel").css("display","none")).start()}})(); |