mirror of
https://github.com/the1812/Bilibili-Evolved.git
synced 2025-11-04 21:22:45 +08:00
1 line
5.2 KiB
JavaScript
1 line
5.2 KiB
JavaScript
(()=>{return(t,e)=>{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 i={forceWideMinWidth:t=>t,customStyleColor:e=>{const n=e.match(/^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$/);if(n){if(e.length<7){return`#${e[1]}${e[1]}${e[2]}${e[2]}${e[3]}${e[3]}`}else{return e}}else{return t.customStyleColor}},blurBackgroundOpacity:e=>{const n=e.match(/^([-\+]?\d+)(\.\d+)?$/);if(n){const t=parseFloat(e);if(t>=0&&t<=1){return e}}return t.blurBackgroundOpacity},defaultPlayerMode:e=>{if(["常规","宽屏","网页全屏"].indexOf(e)!==-1){return e}return t.defaultPlayerMode}};function o(t){let e=t.nextElementSibling;const n=[];while(e!==null&&!e.classList.contains("category")){n.push(e);e=e.nextElementSibling}return n}function s(t,e){const n=t.match(/^([\d]{1,2}):([\d]{1,2})$/);if(n&&n.length>=3){const t={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(t);return`${t.hour}:${t.minute<10?"0"+t.minute:t.minute}`}else{return e}}i.darkScheduleStart=(e=>s(e,t.darkScheduleStart));i.darkScheduleEnd=(e=>s(e,t.darkScheduleEnd));function c(t,e){const n=t.match(/^([-\+]?\d+)(\.\d+)?$/);if(n){const e=parseFloat(t);if(e>=0&&e<=1){return t}}return e}i.blurBackgroundOpacity=(e=>c(e,t.blurBackgroundOpacity));i.customControlBackgroundOpacity=(e=>c(e,t.customControlBackgroundOpacity));function r(t,e,n){$(`input[type='checkbox'][key='${t}']`).prop("checked",n);$(`input[type='text'][key='${t}']`).val(n)}function a(){for(const e in t){r(e,undefined,t[e])}}function u(){$(".gui-settings-mask").on("click",()=>{$(".gui-settings-widgets-box,.gui-settings-box,.gui-settings-mask").removeClass("opened")});$("input[key='customStyleColor']").on("input",()=>{const t=i.customStyleColor($("input[key='customStyleColor']").val());const n=e.color.hexToRgba(t+"70");$("div.custom-color-preview").css("background",t).css("box-shadow",`0px 2px 8px 1px rgba(${n.r},${n.g},${n.b},${n.a})`)});$("input[type='text'][key]").each((e,n)=>{$(n).attr("placeholder",t[$(n).attr("key")])});$("div.custom-color-preview").on("click",()=>{const t=$(".predefined-colors");t.toggleClass("opened")});$(".gui-settings-content ul li.category").on("click",t=>{t.currentTarget.classList.toggle("folded");o(t.currentTarget).forEach(t=>t.classList.toggle("folded"))});$(".gui-settings-dropdown>input").on("click",t=>{$(t.currentTarget).parent().toggleClass("opened")});onSettingsChange(r)}function l(){const e=()=>{$("input[type='checkbox'][key]").each((e,n)=>{t[$(n).attr("key")]=$(n).prop("checked")});$("input[type='text'][key]").each((e,n)=>{const o=$(n);const s=o.attr("key");const c=i[s](o.val());t[s]=c;o.val(c)});saveSettings(t)};$("input[type='checkbox'][key]").on("change",()=>e());$("input[type='text'][key]").on("change",()=>e())}function d(){const t={};$(`input[dependencies]`).each((e,n)=>{const i=$(n).attr("dependencies");if(i){t[$(n).attr("key")]=i}});const e=e=>{const n=e.prop("checked");for(const i in t){const o=t[i].split(" ");if(o.indexOf(e.attr("key"))!==-1){let t=true;if(n&&o.every(t=>$(`input[key='${t}']`).prop("checked"))){t=false}const e=$(`li:has(input[key='${i}'])`);const s=t?"addClass":"removeClass";e[s]("disabled");$(`input[key='${i}'][type='text']`).parent()[s]("disabled")}}};$(`input[type='checkbox'][key]`).on("change",t=>e($(t.target))).each((t,n)=>e($(n)))}function g(t){if($(".gui-settings").length===0){t.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")})}e.applyStyle("guiSettingsStyle")}function p(){const t=$(".predefined-colors-grid");for(const e of Object.values(n)){$(`<div class='predefined-colors-grid-block'></div>`).appendTo(t).css("background",e).attr("data-color",e).on("click",t=>{$(`input[key='customStyleColor']`).val($(t.target).attr("data-color")).trigger("input").change();$("div.custom-color-preview").on("click")})}}function h(){if(t.blurSettingsPanel){$(".gui-settings-box").addClass("blur")}}function y(){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((t,e)=>{$(e).click()})}g($("body"));const f=e.data.guiSettingsDom.text;if(f){$("body").append(f);u();y();a();d();p();l();h();k()}new SpinQuery(()=>$("body"),t=>t.length>0&&!(unsafeWindow.parent.window===unsafeWindow),t=>$(".gui-settings-icon-panel").css("display","none")).start()}})(); |