// ==UserScript== // @name Bilibili Live Tasks Helper // @name:en Bilibili Live Tasks Helper // @name:zh Bilibili Live Tasks Helper // @namespace https://github.com/andywang425 // @version 7.1.9 // @author andywang425 // @description Enhancing the experience of watching Bilibili live streaming. // @description:en Enhancing the experience of watching Bilibili live streaming. // @description:zh 增强Bilibili直播观看体验。 // @license MIT // @copyright 2024, andywang425 (https://github.com/andywang425) // @icon data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNDEuMDY1IiBoZWlnaHQ9IjEyNy43NDciIHZpZXdCb3g9IjAgMCAzNy4zMjQgMzMuOCI+PHBhdGggZmlsbD0iIzIwYjBlMyIgZD0iTTg2Ljk2MiAxMTIuMzMyYTIuNjYxIDIuNjYxIDAgMCAxIDIuMjYyIDAgNS41MzYgNS41MzYgMCAwIDEgMS4zODQgMS4wMTFsNS4zMjMgNC42NThoMy44MDVsNS4zMjMtNC42NThhNS41ODkgNS41ODkgMCAwIDEgMS4zODQtMS4wMTEgMi42NjEgMi42NjEgMCAwIDEgMy41NCAyLjIwOSAyLjY2MSAyLjY2MSAwIDAgMS0uNTg2IDEuNzgzIDE0Ljg3NyAxNC44NzcgMCAwIDEtMS4xNzEgMS4wNjUgNy42OTEgNy42OTEgMCAwIDEtLjc0NS42MTJoMy4zMjZhNS42NDIgNS42NDIgMCAwIDEgMy45MTIgMS43NTYgNS42NjkgNS42NjkgMCAwIDEgMS43ODQgMy45MTJ2MTUuMzAzYTEwLjc3OCAxMC43NzggMCAwIDEtLjEzNCAyLjMxNSA1LjkwOCA1LjkwOCAwIDAgMS0yLjY2IDMuNzI2IDUuNzIyIDUuNzIyIDAgMCAxLTMuMDYxLjg1Mkg4Ni4yMTdhMTEuMjg0IDExLjI4NCAwIDAgMS0yLjM5Ni0uMTMzIDUuODgyIDUuODgyIDAgMCAxLTMuNjcyLTIuNjYyIDUuNjk1IDUuNjk1IDAgMCAxLS45MDUtMy4wNnYtMTUuMTQzYTExLjkyMyAxMS45MjMgMCAwIDEgMC0yLjIwOSA1Ljg1NSA1Ljg1NSAwIDAgMSA1LjMyMy00LjczN2gzLjQ4NmMtLjU1OS0uNC0xLjAzOC0uODc4LTEuNTQ0LTEuMzA0YTIuNjYxIDIuNjYxIDAgMCAxLS44NTEtMi4xODMgMi42NjEgMi42NjEgMCAwIDEgMS4zMDQtMi4xMDJtLS42MTIgMTAuMzI2YTIuNjYxIDIuNjYxIDAgMCAwLTIuMTAzIDEuOTE2IDMuNTkzIDMuNTkzIDAgMCAwIDAgMS4wMTF2MTIuNTg4YTIuNjYxIDIuNjYxIDAgMCAwIDEuODM3IDIuNjYyIDMuNTEzIDMuNTEzIDAgMCAwIDEuMTQ0LjE4NmgyMS42MzdhMi42NjEgMi42NjEgMCAwIDAgMi41MjgtMS41NyAzLjcyNiAzLjcyNiAwIDAgMCAuMjY2LTEuNzU3di0xMS43MWE0LjQ3MSA0LjQ3MSAwIDAgMCAwLTEuMjc3IDIuNjYxIDIuNjYxIDAgMCAwLTEuNzMtMS44MSA0LjI4NSA0LjI4NSAwIDAgMC0xLjY1LS4yMzlIODcuNjAxYTguODg5IDguODg5IDAgMCAwLTEuMjUxIDB6bTAgMCIgc3R5bGU9InN0cm9rZS13aWR0aDouMDMzMDcyOSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTc5LjE5MyAtMTEyLjA4KSIvPjxwYXRoIGQ9Ik04OC45NyAxMjguNjM2Yy4zNjMuMzc3Ljc0NS43NDcgMS4wODggMS4xNDIuNTk3LjY4NyAxLjExOCAxLjE5NyAxLjY2NiAxLjgwOS0uMTI5LTEuMTE3IDEuMzA0LTEuMTk4LjA3NC0xLjc1Ny0uNDA4LjQxNy0uOTQxLjg4NC0xLjM2IDEuMjIzLS4zOTIuMzE2LS44NjMuNjctMS4yMzUuOTUyLTEuOTA3IDEuNDQzLjIyNiA0LjA1MyAyLjEzIDIuNjA3IDAgMCAyLTEuNTM1IDIuODA3LTIuMzAxLjQ0LS40MTcuNjgtLjk1Ni43Mi0xLjU5Mi4wNC0uNjU0LS41MzUtMS4yNC0uNzk0LTEuNDk4LS45Mi0uOTE0LTEuNzQzLTEuOTY4LTIuNTUtMi44MTItMS41NzUtMS44LTQuMTIuNDI4LTIuNTQ2IDIuMjI3ek0xMDYuOTc5IDEyOC42MzZjLS4zNjMuMzc3LS43NDUuNzQ3LTEuMDg4IDEuMTQyLS41OTcuNjg3LTEuMTE4IDEuMTk3LTEuNjY2IDEuODA5LjEyOS0xLjExNy0xLjMwNC0xLjE5OC0uMDc0LTEuNzU3LjQwOC40MTcuOTQxLjg4NCAxLjM2IDEuMjIzLjM5Mi4zMTYuODYzLjY3IDEuMjM1Ljk1MiAxLjkwNyAxLjQ0My0uMjI2IDQuMDUzLTIuMTMgMi42MDcgMCAwLTItMS41MzUtMi44MDctMi4zMDEtLjQ0LS40MTctLjY4LS45NTYtLjcyLTEuNTkyLS4wNC0uNjU0LjUzNS0xLjI0Ljc5NC0xLjQ5OC45Mi0uOTE0IDEuNzQzLTEuOTY4IDIuNTUtMi44MTIgMS41NzUtMS44IDQuMTIuNDI4IDIuNTQ2IDIuMjI3eiIgc3R5bGU9ImZpbGw6IzIwYjBlMztmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6LjUyNDE1OTtzdHJva2UtZGFzaGFycmF5Om5vbmUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC03OS4xOTMgLTExMi4wOCkiLz48L3N2Zz4NCg== // @homepageURL https://github.com/andywang425/BLTH // @supportURL https://github.com/andywang425/BLTH/issues // @downloadURL https://raw.githubusercontent.com/andywang425/BLTH/master/dist/bilibili-live-tasks-helper.min.user.js // @updateURL https://raw.githubusercontent.com/andywang425/BLTH/master/dist/bilibili-live-tasks-helper.meta.js // @match *://live.bilibili.com/1* // @match *://live.bilibili.com/2* // @match *://live.bilibili.com/3* // @match *://live.bilibili.com/4* // @match *://live.bilibili.com/5* // @match *://live.bilibili.com/6* // @match *://live.bilibili.com/7* // @match *://live.bilibili.com/8* // @match *://live.bilibili.com/9* // @match *://live.bilibili.com/blanc/1* // @match *://live.bilibili.com/blanc/2* // @match *://live.bilibili.com/blanc/3* // @match *://live.bilibili.com/blanc/4* // @match *://live.bilibili.com/blanc/5* // @match *://live.bilibili.com/blanc/6* // @match *://live.bilibili.com/blanc/7* // @match *://live.bilibili.com/blanc/8* // @match *://live.bilibili.com/blanc/9* // @require https://unpkg.com/vue@3.5.10/dist/vue.global.prod.js // @require data:application/javascript,%3Bwindow.Vue%3DVue%3Bwindow.VueDemi%3DVue%3B // @require https://unpkg.com/element-plus@2.8.4/dist/index.full.min.js // @require https://unpkg.com/@element-plus/icons-vue@2.3.1/dist/index.iife.min.js // @require https://unpkg.com/pinia@2.2.3/dist/pinia.iife.prod.js // @require https://unpkg.com/vue-draggable-plus@0.5.3/dist/vue-draggable-plus.iife.js // @require https://unpkg.com/lodash@4.17.21/lodash.min.js // @require https://unpkg.com/hotkeys-js@3.13.7/dist/hotkeys.min.js // @require https://unpkg.com/luxon@3.5.0/build/global/luxon.min.js // @require https://unpkg.com/crypto-js@4.2.0/crypto-js.js // @resource element-plus/dist/index.css https://unpkg.com/element-plus@2.8.4/dist/index.css // @connect api.bilibili.com // @connect api.live.bilibili.com // @connect api.vc.bilibili.com // @connect passport.bilibili.com // @connect live.bilibili.com // @connect live-trace.bilibili.com // @grant GM_addStyle // @grant GM_getResourceText // @grant GM_getValue // @grant GM_setValue // @grant GM_xmlhttpRequest // @grant unsafeWindow // @run-at document-start // ==/UserScript== (e=>{if("function"==typeof GM_addStyle)return void GM_addStyle(e);const t=document.createElement("style");t.textContent=e,document.head.append(t)})(" .title[data-v-f383a843]{padding-left:20px;align-items:baseline;display:flex}.header-big-text[data-v-f383a843]{font-size:var(--big-text-size);align-self:unset}.header-small-text[data-v-f383a843]{font-size:var(--small-text-size);align-self:unset;margin-left:10px;--small-text-size: 18px}.collapse-btn[data-v-f383a843]{display:flex;justify-content:center;align-items:center;height:100%;float:left;cursor:pointer}#aside-el-menu[data-v-8ecf0b13]{height:100%}.avatar-wrap[data-v-584fbcd9]{width:80px;height:80px}.avatar[data-v-584fbcd9]{display:flex;justify-content:center;align-items:center;border-radius:50%}.radio-group[data-v-584fbcd9]{display:block;font-size:inherit}.label-text[data-v-1cb0d081]{color:var(--el-text-color-primary);line-height:32px}.base[data-v-24895187]{z-index:1003;position:absolute;background-color:#fff;border-bottom:1px solid #e3e5e7;border-left:1px solid #e3e5e7;border-right:1px solid #e3e5e7}.header[data-v-24895187]{position:relative;box-sizing:border-box;width:100%;font-size:var(--big-text-size);align-items:center;display:flex;border-bottom:1px solid #e3e5e7;height:60px;--big-text-size: 25px}.aside[data-v-24895187]{width:auto}.aside #aside-el-menu[data-v-24895187]:not(.el-menu--collapse){width:150px}.main[data-v-24895187]{--main-top-botton-padding: calc(var(--el-main-padding) * .625);padding-top:var(--main-top-botton-padding);padding-bottom:var(--main-top-botton-padding)}.fade-enter-active[data-v-24895187]{animation:fade-in linear .2s}.info-icon[data-v-38289ed3]{font-size:var(--el-font-size-base);cursor:pointer}.status-icon[data-v-b4254e0f]{font-size:var(--el-font-size-base)}.blth_btn{background-color:#23ade5;font-size:small;margin-inline-start:5px;color:#fff;border-radius:4px;border:none;padding:5px;cursor:pointer;box-shadow:0 0 2px #00000075;line-height:10px;margin-left:15px}.blth_btn:hover{background-color:#1097cc}.blth_btn:hover:active{background-color:#0e86b6;position:relative;top:1px}.el-message-box li{list-style:initial}@media screen and (min-width: 1930px){html[lab-style*=adaptive] .base{zoom:.9375}}@media screen and (min-width: 2058px){html[lab-style*=adaptive] .base{zoom:.75}}@media screen and (min-width: 2570px){html[lab-style*=adaptive] .base{zoom:calc(2 / 3)}}@media screen and (min-width: 3210px){html[lab-style*=adaptive] .base{zoom:.5}}@media screen and (min-width: 3850px){html[lab-style*=adaptive] .base{zoom:.46875}} "),async function(e,t,o,i,a,n,s,r,l){"use strict";function c(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e)for(const o in e)if("default"!==o){const i=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(t,o,i.get?i:{enumerable:!0,get:()=>e[o]})}return t.default=e,Object.freeze(t)}const d=c(i);var u=Object.defineProperty,m=(e,t,o)=>((e,t,o)=>t in e?u(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o)(e,"symbol"!=typeof t?t+"":t,o),h=(()=>"undefined"!=typeof GM_addStyle?GM_addStyle:void 0)(),g=(()=>"undefined"!=typeof GM_getValue?GM_getValue:void 0)(),p=(()=>"undefined"!=typeof GM_setValue?GM_setValue:void 0)(),f=(()=>"undefined"!=typeof GM_xmlhttpRequest?GM_xmlhttpRequest:void 0)(),v=(()=>"undefined"!=typeof unsafeWindow?unsafeWindow:void 0)();const w={ui:{isCollapse:!1,isShowPanel:!0,activeMenuIndex:"MainSiteTasks",panelWidthPercent:40,medalInfoPanelSortMode:!1},modules:{DailyTasks:{MainSiteTasks:{login:{enabled:!1,_lastCompleteTime:0},watch:{enabled:!1,_lastCompleteTime:0},coin:{enabled:!1,num:1,_lastCompleteTime:0},share:{enabled:!1,_lastCompleteTime:0}},LiveTasks:{sign:{enabled:!1,_lastCompleteTime:0},medalTasks:{light:{enabled:!1,mode:"danmu",danmuList:["(⌒▽⌒)","( ̄▽ ̄)","(=・ω・=)","(`・ω・´)","(〜 ̄△ ̄)〜","(・∀・)","(°∀°)ノ","╮( ̄▽ ̄)╭","_(:3」∠)_","(^・ω・^ )","(● ̄(エ) ̄●)","ε=ε=(ノ≧∇≦)ノ","⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄","←◡←","(●'◡'●)ノ♥"],_lastCompleteTime:0},watch:{enabled:!1,time:25,_watchingProgress:{},_lastWatchTime:0,_lastCompleteTime:0},isWhiteList:!1,roomidList:[]}},OtherTasks:{groupSign:{enabled:!1,_lastCompleteTime:0},silverToCoin:{enabled:!1,_lastCompleteTime:0},coinToSilver:{enabled:!1,num:1,_lastCompleteTime:0},getYearVipPrivilege:{enabled:!1,_nextReceiveTime:0}}},EnhanceExperience:{switchLiveStreamQuality:{enabled:!1,qualityDesc:"原画"},banp2p:{enabled:!1},noReport:{enabled:!1},noSleep:{enabled:!1},invisibility:{enabled:!1}},RemoveElement:{removePKBox:{enabled:!1},removeLiveWaterMark:{enabled:!1},removeShopPopover:{enabled:!1},removeGameParty:{enabled:!1},removeGiftPopover:{enabled:!1},removeMicPopover:{enabled:!1},removeComboCard:{enabled:!1},removeRank:{enabled:!1},removeHeaderStuff:{enabled:!1},removeFlipView:{enabled:!1},removeRecommendRoom:{enabled:!1},removeLiveMosaic:{enabled:!1}}},cache:{lastAliveHeartBeatTime:0}};class _{static mergeConfigs(e,t){const i=o.pick(e,o.keys(t));return o.defaults(i,t),o.forOwn(i,((e,i,a)=>{o.isPlainObject(e)&&o.isPlainObject(t[i])&&!o.isEmpty(t[i])&&(a[i]=this.mergeConfigs(e,t[i]))})),i}static setUiConfig(e){p("ui",e)}static getUiConfig(){return this.mergeConfigs(g("ui",{}),w.ui)}static setModuleConfig(e){p("modules",e)}static getModuleConfig(){return this.mergeConfigs(g("modules",{}),w.modules)}static setCache(e){p("cache",e)}static getCache(){return this.mergeConfigs(g("cache",{}),w.cache)}}const x={MainSiteTasks:"主站任务",LiveTasks:"直播任务",OtherTasks:"其它任务",EnhanceExperience:"体验优化",RemoveElement:"移除元素",ScriptSettings:"设置"},y=t.defineStore("ui",(()=>{const t=e.reactive(_.getUiConfig()),i=e.computed((()=>x[t.activeMenuIndex])),a=e.reactive({top:0,left:0,height:0,width:0}),n=e.reactive({x:0,y:0}),s=e.computed((()=>({top:`${a.top+n.y}px`,left:`${a.left+n.x}px`,height:`${a.height}px`,width:a.width*t.panelWidthPercent/100+"px"}))),r=e.computed((()=>t.isShowPanel?"隐藏控制面板":"显示控制面板")),l=e.computed((()=>a.height-60+"px"));return e.watch(t,o.debounce((e=>_.setUiConfig(e)),350)),{isShowPanelButtonText:r,activeMenuName:i,livePlayerRect:a,windowScrollPosition:n,panelStyle:s,scrollBarHeight:l,uiConfig:t,changeCollapse:function(){t.isCollapse=!t.isCollapse},changeShowPanel:function(){t.isShowPanel=!t.isShowPanel},setActiveMenuIndex:function(e){t.activeMenuIndex=e}}})),b={class:"title"},k=(e,t)=>{const o=e.__vccOpts||e;for(const[e,i]of t)o[e]=i;return o},C=k(e.defineComponent({__name:"PanelHeader",setup(t){const o=y();return(t,a)=>{const n=e.resolveComponent("el-icon"),s=e.resolveComponent("el-text");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",{class:"collapse-btn",onClick:a[0]||(a[0]=(...t)=>e.unref(o).changeCollapse&&e.unref(o).changeCollapse(...t))},[e.unref(o).uiConfig.isCollapse?(e.openBlock(),e.createBlock(n,{key:0},{default:e.withCtx((()=>[e.createVNode(e.unref(i.Expand))])),_:1})):(e.openBlock(),e.createBlock(n,{key:1},{default:e.withCtx((()=>[e.createVNode(e.unref(i.Fold))])),_:1}))]),e.createElementVNode("div",b,[e.createVNode(s,{tag:"b",class:"header-big-text"},{default:e.withCtx((()=>a[1]||(a[1]=[e.createTextVNode("控制面板")]))),_:1}),e.createVNode(s,{class:"header-small-text"},{default:e.withCtx((()=>[e.createTextVNode(e.toDisplayString(e.unref(o).activeMenuName),1)])),_:1})])],64)}}}),[["__scopeId","data-v-f383a843"]]),T=k(e.defineComponent({__name:"PanelAside",setup(t){const o=y(),i=[{icon:"Tasks",title:"每日任务",index:"DailyTasks",subs:[{title:"主站任务",index:"MainSiteTasks"},{title:"直播任务",index:"LiveTasks"},{title:"其它任务",index:"OtherTasks"}]},{icon:"Monitor",title:"体验优化",index:"EnhanceExperience"},{icon:"Scissor",title:"移除元素",index:"RemoveElement"},{icon:"Setting",title:"设置",index:"ScriptSettings"}];return(t,a)=>{const n=e.resolveComponent("el-icon"),s=e.resolveComponent("el-menu-item"),r=e.resolveComponent("el-sub-menu"),l=e.resolveComponent("el-menu");return e.openBlock(),e.createBlock(l,{"default-active":e.unref(o).uiConfig.activeMenuIndex,style:e.normalizeStyle({"min-height":e.unref(o).scrollBarHeight}),collapse:e.unref(o).uiConfig.isCollapse,"unique-opened":"",onSelect:a[0]||(a[0]=t=>e.unref(o).setActiveMenuIndex(t)),id:"aside-el-menu"},{default:e.withCtx((()=>[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(i,(t=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[t.subs?(e.openBlock(),e.createBlock(r,{index:t.index,key:t.index},{title:e.withCtx((()=>[e.createVNode(n,null,{default:e.withCtx((()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.icon)))])),_:2},1024),e.createElementVNode("span",null,e.toDisplayString(t.title),1)])),default:e.withCtx((()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.subs,(t=>(e.openBlock(),e.createBlock(s,{index:t.index,key:t.index},{default:e.withCtx((()=>[e.createTextVNode(e.toDisplayString(t.title),1)])),_:2},1032,["index"])))),128))])),_:2},1032,["index"])):(e.openBlock(),e.createBlock(s,{index:t.index,key:t.index},{title:e.withCtx((()=>[e.createTextVNode(e.toDisplayString(t.title),1)])),default:e.withCtx((()=>[e.createVNode(n,null,{default:e.withCtx((()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.icon)))])),_:2},1024)])),_:2},1032,["index"]))],64)))),64))])),_:1},8,["default-active","style","collapse"])}}}),[["__scopeId","data-v-8ecf0b13"]]);function V(e,t=0,o=5){const i=n.DateTime.fromMillis(e),a=n.DateTime.now().set({hour:t,minute:o,second:0,millisecond:0}),s=a.plus({days:1}),r=a.minus({days:1});return n.DateTime.now()>=a?i>=a&&i=r&&ii&&(i=i.plus({days:1}));const a=i.diff(o);return{ms:a.toMillis(),str:a.toFormat("h小时m分钟s秒").replace(/^0小时/,"").replace(/^0分钟/,"")}}function N(e,t,o,i){const a=n.DateTime.now(),s=n.DateTime.local(a.year,a.month,a.day,e,t);let r=n.DateTime.local(a.year,a.month,a.day,o,i);return s>r&&(r=r.plus({days:1})),a>=s&&asetTimeout(t,e)))}function B(e){return e.substring(e.lastIndexOf("/")+1).split(".")[0]}function D(e,t){return t?"string"==typeof t?e+"?"+t:e+"?"+new URLSearchParams(t).toString():e}function I(e){e.wts=P();const t=Object.keys(e).sort().map((t=>{const o=e[t].toString().replace(/[!'()*]/g,"");return`${encodeURIComponent(t)}=${encodeURIComponent(o)}`})).join("&");return t+"&w_rid="+a.MD5(t+A().wbiSalt).toString()}function L(e,t,i){o.forOwn(e,(function(e,a){const n=i?i+"."+a:a;o.isPlainObject(e)&&!o.isEmpty(e)?L(e,t,n):t(e,n)}))}function O(e){switch(e){case"document-start":return Promise.resolve();case"document-head":return new Promise((e=>{if(document.head)e();else{const t=new MutationObserver((()=>{document.head&&(t.disconnect(),e())}));t.observe(document.documentElement,{childList:!0})}}));case"document-body":return new Promise((e=>{if(document.body)e();else{const t=new MutationObserver((()=>{document.body&&(t.disconnect(),e())}));t.observe(document.documentElement,{childList:!0})}}));case"document-end":return new Promise((e=>{"loading"!==document.readyState?e():document.addEventListener("DOMContentLoaded",(()=>e()))}));case"window-load":return new Promise((e=>{"complete"===document.readyState?e():window.addEventListener("load",(()=>e()))}));default:return Promise.reject("Illegal moment")}}function $(e){return new Map(e.map(((e,t)=>[e,t])))}n.Settings.defaultZone="Asia/Shanghai";const A=t.defineStore("bili",(()=>{const t=e.ref(),o=e.ref(),i=e.ref(),a=e.ref(),n=e.ref(),s=e.ref(),r=e.ref(),l=e.computed((()=>{var e;return(null==(e=r.value)?void 0:e.filter((e=>0!==e.room_info.room_id)))??[]})),c=e.ref(),d=e.computed((()=>{if(!i.value)return"";const e=B(i.value.wbi_img.img_url)+B(i.value.wbi_img.sub_url);return[46,47,18,2,53,8,23,32,15,50,10,31,58,3,45,35,27,43,5,49,33,9,42,19,29,28,14,39,12,38,41,13,37,48,7,16,24,55,40,61,26,17,0,1,60,51,30,4,22,25,54,21,56,59,6,63,57,62,11,36,20,34,44,52].map((t=>e[t])).join("").slice(0,32)}));return{BilibiliLive:t,userInfo:i,giftConfig:a,cookies:o,dailyRewardInfo:n,dynamicVideos:s,fansMedals:r,filteredFansMedals:l,fansMedalsStatus:c,wbiSalt:d}}));let z=class{constructor(e,t){m(this,"url_prefix"),m(this,"origin"),this.url_prefix=e??"",this.origin=t??"https://bilibili.com"}get(e,t,i){return e=D(this.url_prefix+e,t),new Promise(((t,a)=>{const n={method:"GET",url:e,responseType:"json",headers:{Accept:"application/json, text/plain, */*",Referer:this.origin,Origin:this.origin,"Sec-Fetch-Site":"same-site"},onload:function(e){t(e.response)},onerror:function(e){a(new Error(JSON.stringify(e)))}},s=o.defaultsDeep(i,n);f(s)}))}post(e,t,i){const a={Accept:"application/json, text/plain, */*",Referer:this.origin,Origin:this.origin,"Sec-Fetch-Site":"same-site","Content-Type":"application/x-www-form-urlencoded"};return t instanceof FormData?delete a["Content-Type"]:"object"==typeof t&&(t=new URLSearchParams(t).toString()),e=D(this.url_prefix+e,null==i?void 0:i.params),null==i||delete i.params,new Promise(((n,s)=>{const r={method:"POST",url:e,data:t,responseType:"json",headers:a,onload:function(e){n(e.response)},onerror:function(e){s(new Error(JSON.stringify(e)))}},l=o.defaultsDeep(i,r);f(l)}))}};const U={live:new z("https://api.live.bilibili.com","https://live.bilibili.com"),liveTrace:new z("https://live-trace.bilibili.com","https://live.bilibili.com"),passport:new z("https://passport.bilibili.com","https://passport.bilibili.com/"),main:new z("https://api.bilibili.com","https://www.bilibili.com"),vc:new z("https://api.vc.bilibili.com","https://message.bilibili.com/"),raw:new z},j={roomGiftConfig:(e=0,t=0,o=0,i="pc")=>U.live.get("/xlive/web-room/v1/giftPanel/roomGiftConfig",{platform:i,room_id:e,area_parent_id:t,area_id:o}),doSign:()=>U.live.get("/xlive/web-ucenter/v1/sign/DoSign"),getSignInfo:()=>U.live.get("/xlive/web-ucenter/v1/sign/WebGetSignInfo"),fansMedalPanel:(e,t=10)=>U.live.get("/xlive/app-ucenter/v1/fansMedal/panel",{page:e,page_size:t}),sendMsg:(e,t,i=0,a=1,n=0,s=25,r=16777215,l=0,c=0,d=0,u="",m='{"appId":100,"platform":5}')=>{const h=A().cookies.bili_jct;return U.live.post("/msg/send",function(e){const t=new FormData;return o.forEach(e,((e,o)=>t.append(o,e.toString()))),t}({bubble:l,msg:e,color:r,mode:a,room_type:i,jumpfrom:n,reply_mid:c,reply_attr:d,replay_dmid:u,statistics:m,fontsize:s,rnd:P(),roomid:t,csrf:h,csrf_token:h}))},likeReport:(e,t,o=1,i="")=>{const a=A(),n=a.cookies.bili_jct,s=a.BilibiliLive.UID;return U.live.post("/xlive/app-ucenter/v1/like_info_v3/like/likeReportV3",{click_time:o,room_id:e,uid:s,anchor_id:t,csrf_token:n,csrf:n,visit_id:i})},getInfoByRoom:(e,t="444.8")=>U.live.get("/xlive/web-room/v1/index/getInfoByRoom",I({room_id:e,web_location:t})),getUserTaskProgress:(e=11153765)=>{const t=A().cookies.bili_jct;return U.live.get("/xlive/app-ucenter/v1/userTask/GetUserTaskProgress",{target_id:e,csrf:t,ts:P()})},userTaskReceiveRewards:(e=11153765)=>{const t=A().cookies.bili_jct;return U.live.post("/xlive/app-ucenter/v1/userTask/UserTaskReceiveRewards",{actionKey:"csrf",target_id:e,csrf:t,ts:P()})},silver2coin:(e="")=>{const t=A().cookies.bili_jct;return U.live.post("/xlive/revenue/v1/wallet/silver2coin",{csrf:t,csrf_token:t,visit_id:e})},coin2silver:(e,t="pc",o="")=>{const i=A().cookies.bili_jct;return U.live.post("/xlive/revenue/v1/wallet/coin2silver",{num:e,csrf:i,csrf_token:i,platform:t,visit_id:o})},wearMedal:(e,t="")=>{const o=A().cookies.bili_jct;return U.live.post("/xlive/web-room/v1/fansMedal/wear",{medal_id:e,csrf_token:o,csrf:o,visit_id:t})}},H={E:(e,t,o,i=0,a=[],n="")=>{const s=A().cookies.bili_jct;return U.liveTrace.post("/xlive/data-interface/v1/x25Kn/E",{id:JSON.stringify(e),device:JSON.stringify(t),ruid:o,ts:M(),is_patch:i,heart_beat:JSON.stringify(a),ua:navigator.userAgent,csrf_token:s,csrf:s,visit_id:n})},X:(e,t,o,i,a,n,s,r,l="")=>{const c=A().cookies.bili_jct;return U.liveTrace.post("/xlive/data-interface/v1/x25Kn/X",{s:e,id:JSON.stringify(t),device:JSON.stringify(o),ruid:i,ets:a,benchmark:n,time:s,ts:r,ua:navigator.userAgent,csrf_token:c,csrf:c,visit_id:l})}},F={nav:()=>U.main.get("/x/web-interface/nav"),reward:()=>U.main.get("/x/member/web/exp/reward"),dynamicAll:(e="video",t=1,o=-480,i="web",a="itemOpusStyle,listOnlyfans,opusBigCover,onlyfansVote,decorationCard,onlyfansAssetsV2,forwardListHidden,ugcDelete",n="333.1365",s='{"platform":"web","device":"pc"}',r='{"spm_id":"333.1365"}')=>U.main.get("/x/polymer/web-dynamic/v1/feed/all",{timezone_offset:o,type:e,platform:i,page:t,features:a,web_location:n,x_bili_device_req_json:s,x_bili_web_req_json:r},{Origin:"https://t.bilibili.com",Referer:"https://t.bilibili.com/"}),videoHeartbeat:(e,t=1e9,o=3,i=0,a=2,n=1,s=61,r=62,l=62,c="https://t.bilibili.com/?tab=video",d=64,u=180,m=62,h=62,g=0,p="333.788.0.0",f="333.1365.list.card_archive.click",v=E().replaceAll("-",""),w='{"player_version":"4.8.43"}',_=1315873)=>{const x=A(),y=P(),b=A().userInfo.mid;return U.main.post("/x/click-interface/web/heartbeat",{start_ts:y,mid:b,aid:e,cid:t,type:o,sub_type:i,dt:a,play_type:n,realtime:s,played_time:r,real_played_time:l,refer_url:c,quality:d,video_duration:u,last_play_progress_time:m,max_play_progress_time:h,outer:g,spmid:p,from_spmid:f,session:v,extra:w,csrf:x.cookies.bili_jct},{params:I({w_start_ts:y,w_mid:b,w_aid:e,w_dt:a,w_realtime:s,w_played_time:r,w_real_played_time:l,w_video_duration:u,w_last_play_progress_time:m,web_location:_})})},share:(e,t="pc_client_normal",o=2,i=0,a=1,n="")=>{const s=A().cookies.bili_jct;return U.main.post("/x/web-interface/share/add",{eab_x:o,ramval:i,referer:n,source:t,aid:e,ga:a,csrf:s})},coinAdd:(e,t,o=0,i=!0,a=2,n=6,s="web_normal",r=1)=>{const l=A().cookies.bili_jct;return U.main.post("/x/web-interface/coin/add ",{aid:e,multiply:t,select_like:o,cross_domain:i,eab_x:a,ramval:n,source:s,ga:r,csrf:l})},videoRelation:(e,t="")=>U.main.get("/x/web-interface/archive/relation",{aid:e,bvid:t}),vip:{myPrivilege:(e="333.33")=>U.main.get("/x/vip/privilege/my",{web_location:e},{headers:{Referer:"https://account.bilibili.com/account/big/myPackage",Origin:"https://account.bilibili.com"}}),receivePrivilege:(e,t="web")=>{const o=A().cookies.bili_jct;return U.main.post("/x/vip/privilege/receive",{type:e,platform:t,csrf:o},{headers:{Referer:"https://account.bilibili.com/account/big/myPackage",Origin:"https://account.bilibili.com"}})},addExperience:()=>{const e=A(),t=e.BilibiliLive.UID,o=e.cookies.buvid3,i=e.cookies.bili_jct;return U.main.post("/x/vip/experience/add",{mid:t,buvid:o,csrf:i},{headers:{Referer:"https://account.bilibili.com/big",Origin:"https://account.bilibili.com"}})}}},q={myGroups:(e=0,t="web")=>U.vc.get("/link_group/v1/member/my_groups",{build:e,mobi_app:t}),signIn:(e,t)=>U.vc.get("/link_setting/v1/link_setting/sign_in",{group_id:e,owner_id:t})};class G{constructor(e){m(this,"NAME","BLTH"),m(this,"prefix_title_str"),m(this,"title"),this.title=e,this.prefix_title_str=e.split("_").join("][")}get prefix(){return[`%c${this.NAME}%c[${(new Date).toLocaleString()}]%c[${this.prefix_title_str}]%c:`,"font-weight: bold; color: white; background-color: #23ade5; padding: 1px 4px; border-radius: 4px;","font-weight: bold; color: #0920e6;","font-weight: bold;",""]}log(...e){console.log(...this.prefix,...e)}error(...e){console.error(...this.prefix,...e)}warn(...e){console.warn(...this.prefix,...e)}}class W{constructor(e){m(this,"moduleName"),m(this,"logger"),m(this,"moduleStore",et()),m(this,"config"),this.moduleName=e,this.logger=new G(this.moduleName)}isEnabled(){var e;return(null==(e=this.config)?void 0:e.enabled)??!0}set status(e){throw new Error("Method not implemented.")}run(){throw new Error("Method not implemented.")}}m(W,"runOnMultiplePages",!1),m(W,"runAt","document-body"),m(W,"onFrame","target"),m(W,"runAfterDefault",!0);class K extends Error{constructor(e,t){super(t),m(this,"name","ModuleError"),m(this,"moduleName"),this.moduleName=e}}class X extends K{constructor(e,t){super(e,t),m(this,"name","ModuleCriticalError"),m(this,"moduleName"),this.moduleName=e}}class J{static getAll(){if(""===document.cookie)return{};const e=document.cookie.split("; "),t={};for(const o of e){const[e,i]=o.split("=",2);t[decodeURIComponent(e)]=decodeURIComponent(i)}return t}static get(e,t){const o=this.getAll();if(Array.isArray(e)){const i={};for(const a of e)i[a]=o[a]?o[a]:t;return i}return o[e]?o[e]:t}static getAsync(e,t=300,o){return new Promise(((i,a)=>{let n=[...e];const s=this.get(n);if(n=n.filter((e=>!s[e])),0===n.length)return void i(s);let r;const l=setInterval((()=>{Object.assign(s,this.get(n)),n=n.filter((e=>!s[e])),0===n.length&&(o&&clearTimeout(r),clearInterval(l),i(s))}),t);o&&(r=setTimeout((()=>{clearInterval(l),a(new Error(`获取以下 cookie 超时:${n}`))}),o))}))}}class Q extends W{getBilibiliLive(){return this.logger.log("unsafeWindow.BilibiliLive",v.BilibiliLive),new Promise(((e,t)=>{0===v.BilibiliLive.UID?(v.BilibiliLive=new Proxy(v.BilibiliLive,{set:(t,o,i)=>(t[o]=i,"UID"===o&&(v.BilibiliLive=t,e(v.BilibiliLive)),!0)}),setTimeout((()=>t(new Error("获取 BilibiliLive 超时"))),1e4)):e(v.BilibiliLive)}))}async run(){try{A().BilibiliLive=await this.getBilibiliLive()}catch(e){throw new X(this.moduleName,e.message)}}}m(Q,"runOnMultiplePages",!0);const Y=Object.freeze(Object.defineProperty({__proto__:null,Default_BilibiliLive:Q,Default_Cookies:class extends W{getCookies(){return J.getAsync(["bili_jct","LIVE_BUVID","buvid3"],300,1e4)}async run(){try{A().cookies=await this.getCookies()}catch(e){throw new X(this.moduleName,e.message)}}},Default_DailyRewardInfo:class extends W{async getDailyRewardInfo(){try{const e=await F.reward();if(this.logger.log("BAPI.main.reward response",e),0===e.code)return e.data;throw new Error(`响应 code 不为 0: ${e.message}`)}catch(e){throw new K(this.moduleName,`获取主站每日任务完成情况出错: ${e.message}`)}}async run(){const e=A(),t=this.moduleStore.moduleConfig.DailyTasks.MainSiteTasks;Object.values(t).some((e=>e.enabled&&!V(e._lastCompleteTime,0,4)))&&(e.dailyRewardInfo=await this.getDailyRewardInfo()),setTimeout((()=>this.run().catch((e=>this.logger.error(e)))),S(0,4).ms)}},Default_DynamicVideos:class extends W{async getDynamicVideos(){try{const e=await F.dynamicAll("video");if(this.logger.log("BAPI.main.dynamicAll response",e),0===e.code)return e.data.items;throw new Error(`响应 code 不为 0: ${e.message}`)}catch(e){throw new K(this.moduleName,`获取主站每日任务完成情况出错: ${e.message}`)}}async run(){const e=A(),t=this.moduleStore.moduleConfig.DailyTasks.MainSiteTasks;[t.watch,t.share,t.coin].some((e=>e.enabled&&!V(e._lastCompleteTime,0,4)))&&(e.dynamicVideos=await this.getDynamicVideos()),setTimeout((()=>this.run().catch((e=>this.logger.error(e)))),S(0,4).ms)}},Default_FansMetals:class extends W{async getFansMetals(e=1/0){const t=[];let i=1;try{const a=await j.fansMedalPanel(1);if(this.logger.log("BAPI.live.fansMedalPanel(1) response",a),0!==a.code)throw new Error(`获取粉丝勋章列表第1页失败: ${a.message}`);i=a.data.page_info.total_page,t.push(...a.data.special_list,...a.data.list);for(let n=2;n<=Math.min(i,e);n++){const e=await j.fansMedalPanel(n);if(this.logger.log(`BAPI.live.fansMedalPanel(${n}) response`,e),0!==a.code)return this.logger.error(`获取粉丝勋章列表第${n}页失败,提前结束获取`,a.message),t;t.push(...e.data.list),await R(o.random(300,500))}return t}catch(e){throw A().fansMedalsStatus="error",new K(this.moduleName,`获取粉丝勋章列表出错: ${e.message}`)}}async run(){const e=A(),t=et().emitter;t.off("Default_FansMedals"),t.on("Default_FansMedals",(async()=>{e.fansMedalsStatus="loading",e.fansMedals=await this.getFansMetals(1/0),e.fansMedalsStatus="loaded"}));const o=this.moduleStore.moduleConfig.DailyTasks.LiveTasks.medalTasks;[o.light,o.watch].some((e=>e.enabled&&!V(e._lastCompleteTime,0,4)))&&(e.fansMedalsStatus="loading",e.fansMedals=await this.getFansMetals(),e.fansMedalsStatus="loaded"),setTimeout((()=>this.run().catch((e=>this.logger.error(e)))),S(0,4).ms)}},Default_UserInfo:class extends W{async getUserInfo(){try{const e=await F.nav();if(this.logger.log("BAPI.main.nav response",e),0===e.code)return e.data;throw new Error(`响应 code 不为 0: ${e.message}`)}catch(e){throw new X(this.moduleName,`获取用户信息出错: ${e.message}`)}}async run(){A().userInfo=await this.getUserInfo(),setTimeout((()=>this.run().catch((e=>this.logger.error(e)))),S(0,4).ms)}}},Symbol.toStringTag,{value:"Module"}));class Z extends W{waitForFansMedals(){return new Promise((o=>{const{fansMedalsStatus:i}=t.storeToRefs(A());if("loaded"===i.value)o(!0);else{const t=e.watch(i,(e=>{"loaded"===e?(t(),o(!0)):"error"===e&&(t(),o(!1))}))}}))}}class ee{constructor(e,t,o,i,a){m(this,"logger",new G("RoomHeart")),m(this,"config"),m(this,"watchedSeconds"),m(this,"timer"),m(this,"areaID"),m(this,"parentID"),m(this,"roomID"),m(this,"ruid"),m(this,"seq",0),m(this,"buvid",A().cookies.LIVE_BUVID),m(this,"uuid",E()),m(this,"device",[this.buvid,this.uuid]),m(this,"ua",navigator.userAgent),m(this,"heartBeatInterval"),m(this,"secretKey"),m(this,"secretRule"),m(this,"timestamp"),this.roomID=e,this.areaID=t,this.parentID=o,this.ruid=i,this.watchedSeconds=a,this.config=et().moduleConfig.DailyTasks.LiveTasks.medalTasks.watch}set status(e){et().moduleStatus.DailyTasks.LiveTasks.medalTasks.watch=e}get id(){return[this.parentID,this.areaID,this.seq,this.roomID]}updateProgress(){this.watchedSeconds+=this.heartBeatInterval,et().moduleConfig.DailyTasks.LiveTasks.medalTasks.watch._watchingProgress[this.roomID]=this.watchedSeconds}start(){return this.buvid?this.E():(this.logger.error(`缺少buvid,无法为直播间 ${this.roomID} 执行观看直播任务,请尝试刷新页面`),Promise.resolve())}async E(){try{const e=await H.E(this.id,this.device,this.ruid);if(this.logger.log(`BAPI.liveTrace.E(${this.id}, ${this.device}, ${this.ruid}) response`,e),0===e.code)return this.seq+=1,({heartbeat_interval:this.heartBeatInterval,secret_key:this.secretKey,secret_rule:this.secretRule,timestamp:this.timestamp}=e.data),await R(1e3*this.heartBeatInterval),this.X();this.logger.error(`BAPI.liveTrace.E(${this.id}, ${this.device}, ${this.ruid}) 失败`,e.message)}catch(e){this.logger.error(`BAPI.liveTrace.E(${this.id}, ${this.device}, ${this.ruid}) 出错`,e)}}async X(){if(N(23,59,0,5))this.logger.log(`即将或刚刚发生跨天,停止直播间 ${this.roomID} 的X心跳`);else try{const e={id:JSON.stringify(this.id),device:JSON.stringify(this.device),ets:this.timestamp,benchmark:this.secretKey,time:this.heartBeatInterval,ts:M(),ua:this.ua},t=this.spyder(JSON.stringify(e),this.secretRule),o=await H.X(t,this.id,this.device,this.ruid,this.timestamp,this.secretKey,this.heartBeatInterval,e.ts);if(this.logger.log(`BAPI.liveTrace.X(${t}, ${this.id}, ${this.device}, ${this.ruid}, ${this.timestamp}, ${this.secretKey}, ${this.heartBeatInterval}, ${e.ts}) response`,o),0===o.code)return this.seq+=1,this.updateProgress(),this.watchedSeconds>=60*this.config.time?void clearTimeout(this.timer):(({heartbeat_interval:this.heartBeatInterval,secret_key:this.secretKey,secret_rule:this.secretRule,timestamp:this.timestamp}=o.data),await R(1e3*this.heartBeatInterval),this.X());this.logger.error(`BAPI.liveTrace.X(${t}, ${this.id}, ${this.device}, ${this.ruid}, ${this.timestamp}, ${this.secretKey}, ${this.heartBeatInterval}) 失败`,o.message)}catch(e){this.logger.error(`BAPI.liveTrace.X(s, ${this.id}, ${this.device}, ${this.ruid}, ${this.timestamp}, ${this.secretKey}, ${this.heartBeatInterval}) 出错`,e)}}spyder(e,t){const o=JSON.parse(e),[i,n,s,r]=JSON.parse(o.id),[l,c]=JSON.parse(o.device),d=o.benchmark,u={platform:"web",parent_id:i,area_id:n,seq_id:s,room_id:r,buvid:l,uuid:c,ets:o.ets,time:o.time,ts:o.ts};let m=JSON.stringify(u);for(const e of t)switch(e){case 0:default:m=a.HmacMD5(m,d).toString(a.enc.Hex);break;case 1:m=a.HmacSHA1(m,d).toString(a.enc.Hex);break;case 2:m=a.HmacSHA256(m,d).toString(a.enc.Hex);break;case 3:m=a.HmacSHA224(m,d).toString(a.enc.Hex);break;case 4:m=a.HmacSHA512(m,d).toString(a.enc.Hex);break;case 5:m=a.HmacSHA384(m,d).toString(a.enc.Hex)}return m}}class te extends Z{constructor(){super(...arguments),m(this,"medalTasksConfig",this.moduleStore.moduleConfig.DailyTasks.LiveTasks.medalTasks),m(this,"config",this.medalTasksConfig.watch)}set status(e){this.moduleStore.moduleStatus.DailyTasks.LiveTasks.medalTasks.watch=e}getRoomidUidList(){const e=A().filteredFansMedals.filter((e=>e.medal.level<20&&(this.medalTasksConfig.isWhiteList?this.medalTasksConfig.roomidList.includes(e.room_info.room_id):!this.medalTasksConfig.roomidList.includes(e.room_info.room_id)))).map((e=>[e.room_info.room_id,e.medal.target_id])).slice(0,199);if(this.medalTasksConfig.isWhiteList){const t=$(this.medalTasksConfig.roomidList);return e.sort(((e,o)=>t.get(e[0])-t.get(o[0])))}return e}async getAreaInfo(e){try{const t=await j.getInfoByRoom(e);if(this.logger.log(`BAPI.live.getInfoByRoom(${e}) response`,t),0===t.code){const e=t.data.room_info;return[e.area_id,e.parent_area_id]}return[-1,-1]}catch(t){return this.logger.error(`获取指定直播间的 area_id 和 parent_area_id(roomid = ${e}) 出错`,t),[-1,-1]}}async run(){if(this.logger.log("观看直播模块开始运行"),V(this.config._lastCompleteTime))N(0,0,0,5)?this.logger.log("昨天的观看直播任务已经完成过了,等到今天的00:05再执行"):(this.logger.log("今天已经完成过观看直播任务了"),this.status="done");else{if(!await this.waitForFansMedals())return this.logger.error("粉丝勋章数据不存在,不执行观看直播任务"),void(this.status="error");this.status="running",V(this.config._lastWatchTime,0,0)?o.forOwn(this.config._watchingProgress,((e,t,o)=>{o[t]-=e%300})):this.config._watchingProgress={},this.config._lastWatchTime=M();const e=this.getRoomidUidList();if(e.length>0){let t;for(t=0;t0&&n>0&&(!this.config._watchingProgress[o]||this.config._watchingProgress[o]<60*this.config.time)){if(N(23,55,0,5)){this.logger.log("即将或刚刚发生跨天,提早结束本轮观看直播任务");break}this.logger.log(`开始直播间${o}的观看直播任务`),await new ee(o,a,n,i,this.config._watchingProgress[o]??0).start()}}t===e.length&&(this.config._lastCompleteTime=M(),this.logger.log("观看直播任务已完成"),this.status="done")}else this.status="done",this.config._lastCompleteTime=M()}const e=S();setTimeout((()=>this.run()),e.ms),this.logger.log("距离观看直播模块下次运行时间:",e.str)}}m(te,"runAt","window-load");const oe=document.querySelector.bind(document);document.querySelectorAll.bind(document);const ie=document.createElement.bind(document);const ae=()=>window.self===window.top;class ne extends W{constructor(){super(...arguments),m(this,"config",this.moduleStore.moduleConfig.EnhanceExperience.switchLiveStreamQuality)}async waitForPlayer(){return new Promise(((e,t)=>{const o=v.top?v.top:v,i=setInterval((()=>{o.livePlayer&&Object.hasOwn(o.livePlayer,"switchQuality")&&Object.hasOwn(o.livePlayer,"getPlayerInfo")&&(clearInterval(i),clearTimeout(a),e(o.livePlayer))}),200),a=setTimeout((()=>{clearInterval(i),clearTimeout(a),t("等待播放器超时")}),1e4)}))}switchQuality(e){const t=e.getPlayerInfo();0===t.liveStatus?this.logger.log("当前直播间未开播,无需切换画质"):setTimeout((()=>{const o=t.qualityCandidates.find((({desc:e})=>e===this.config.qualityDesc));o?t.quality!==o.qn?(e.switchQuality(o.qn),this.logger.log(`已将画质切换为${this.config.qualityDesc}`,o)):this.logger.log("当前画质已经是目标画质了,无需切换画质"):this.logger.log("当前直播不支持目标画质,保持默认画质")}),ae()?2500:5e3)}async run(){this.logger.log("自动切换画质模块开始运行");try{const e=await this.waitForPlayer();this.switchQuality(e)}catch(e){this.logger.error("自动切换画质模块出错",e)}}}m(ne,"runOnMultiplePages",!0),m(ne,"runAt","window-load"),m(ne,"runAfterDefault",!1);class se extends W{constructor(){super(...arguments),m(this,"config",this.moduleStore.moduleConfig.EnhanceExperience.banp2p)}banP2P(){const e=["RTCPeerConnection","mozRTCPeerConnection","webkitRTCPeerConnection"];for(const t of e)Object.hasOwn(v,t)&&Object.defineProperty(v,t,{value:class{constructor(){}addEventListener(){}removeEventListener(){}createDataChannel(){return{close:function(){}}}createOffer(){return Promise.resolve()}setLocalDescription(){return Promise.resolve()}close(){}setRemoteDescription(){return Promise.resolve()}createAnswer(){}},enumerable:!1,writable:!1,configurable:!1})}run(){this.logger.log("禁用P2P模块开始运行");try{this.banP2P()}catch(e){this.logger.error("禁用P2P失败",e)}}}m(se,"runOnMultiplePages",!0),m(se,"runAt","document-start"),m(se,"onFrame","all"),m(se,"runAfterDefault",!1);var re=["load","loadend","timeout","error","readystatechange","abort"],le="__origin_xhr";function ce(e,t){var o={};for(var i in e)o[i]=e[i];return o.target=o.currentTarget=t,o}var de=re[0],ue=re[1],me=re[2],he=re[3],ge=re[4],pe=re[5],fe="prototype";function ve(e,t){return function(e,t){var o=e.onRequest,i=e.onResponse,a=e.onError;function n(e){var t=e.responseType;if(!t||"text"===t)return e.responseText;var o=e.response;if("json"===t&&!o)try{return JSON.parse(e.responseText)}catch(e){console.warn(e)}return o}function s(e,t){var o=new ke(e),a={response:n(t),status:t.status,statusText:t.statusText,config:e.config,headers:e.resHeader||e.getAllResponseHeaders().split("\r\n").reduce((function(e,t){if(""===t)return e;var o=t.split(":");return e[o.shift()]=function(e){return e.replace(/^\s+|\s+$/g,"")}(o.join(":")),e}),{})};if(!i)return o.resolve(a);i(a,o)}function r(e,t,o,i){var n=new Ce(e);o={config:e.config,error:o,type:i},a?a(o,n):n.next(o)}function l(){return!0}function c(e){return function(t,o){return r(t,this,o,e),!0}}function d(e,t){return 4===e.readyState&&0!==e.status?s(e,t):4!==e.readyState&&_e(e,ge),!0}var{originXhr:u,unHook:m}=function(e,t){var o=(t=t||window).XMLHttpRequest,i=!0,a=function(){for(var e=new o,t=0;t(e.onRequest&&Pe.push(e.onRequest),e.onResponse&&Me.push(e.onResponse),Ne||((e=>{e.fetch=async(e,t)=>{for(const o of Pe){const i=new Ve;if(await o.apply(v,[{input:e,init:t},i]),i._resolve)return i._resolve;if(i._error)throw i._error;if(!i._next)break;e=i._input,t=i._init}let o=await Te.apply(v,[e,t]);for(const e of Me){const t=new Se;if(await e.apply(v,[o,t]),t._resolve)return t._resolve;if(t._error)throw t._error;if(!t._next)break;o=t._response}return o}})(t),Ne=!0),{unProxy:()=>{e.onRequest&&Pe.splice(Pe.findIndex((t=>t===e.onRequest)),1),e.onResponse&&Me.splice(Me.findIndex((t=>t===e.onResponse)),1)},unHook:()=>{t.fetch=Te,Pe=[],Me=[]},originFetch:Te}),Re=class e extends W{constructor(){super(...arguments),m(this,"config",this.moduleStore.moduleConfig.EnhanceExperience.noReport)}static isTargetURL(e){return e.includes("//data.bilibili.com")||e.includes("//data.bilivideo.com")}hookProperties(e){Object.defineProperty(e.navigator,"sendBeacon",{value:()=>!0}),Object.defineProperties(e,{reportObserver:{get:()=>({reportCustomData:function(){}}),set(){}},reportConfig:{get:()=>({}),set(){}}})}ajaxHook(){const t={onRequest:(t,o)=>{e.isTargetURL(t.url)?o.resolve({config:t,status:200,headers:{"Content-Type":"text/plain; charset=utf-8"},response:"ok"}):o.next(t)}},o={onRequest(t,o){const i="string"==typeof(a=t.input)?a:a instanceof URL?a.toString():a instanceof Request?a.url:"Incorrect input";var a;e.isTargetURL(i)?o.resolve(new Response("ok")):o.next(t)},onResponse(e,t){t.next(e)}};ve(t,v),Ee(o,v)}run(){this.logger.log("拦截日志数据上报模块开始运行");try{this.hookProperties(v),this.ajaxHook()}catch(e){this.logger.error("拦截日志数据上报失败",e)}}};m(Re,"runOnMultiplePages",!0),m(Re,"runAt","document-start"),m(Re,"onFrame","all"),m(Re,"runAfterDefault",!1);let Be=Re;class De extends W{constructor(){super(...arguments),m(this,"config",this.moduleStore.moduleConfig.EnhanceExperience.noSleep)}run(){this.logger.log("屏蔽挂机检测模块开始运行"),setInterval((()=>{document.dispatchEvent(new MouseEvent("mousemove"))}),3e5)}}m(De,"runOnMultiplePages",!0),m(De,"runAt","window-load"),m(De,"runAfterDefault",!1);class Ie extends W{constructor(){super(...arguments),m(this,"config",this.moduleStore.moduleConfig.EnhanceExperience.invisibility)}run(){this.logger.log("隐身入场模块开始运行"),ve({onRequest:(e,t)=>{e.url.includes("//api.live.bilibili.com/xlive/web-room/v1/index/getInfoByUser")&&(e.url=e.url.replace("not_mock_enter_effect=0","not_mock_enter_effect=1")),t.next(e)}},v)}}m(Ie,"runOnMultiplePages",!0),m(Ie,"runAt","document-start"),m(Ie,"runAfterDefault",!1),m(Ie,"onFrame","all");class Le extends W{constructor(){super(...arguments),m(this,"config",this.moduleStore.moduleConfig.RemoveElement.removePKBox)}removePKNode(){h("#awesome-pk-vm { display: none !important }")}removePKToast(){const e=["主播即将结束PK","连线断开中"];new MutationObserver((t=>{for(const o of t)o.addedNodes.forEach((t=>{t instanceof HTMLElement&&t.classList.contains("link-toast")&&e.some((e=>{var o;return null==(o=t.textContent)?void 0:o.includes(e)}))&&(t.style.display="none")}))})).observe(document.body,{childList:!0})}async run(){this.logger.log("移除大乱斗元素模块开始运行"),this.removePKNode(),this.removePKToast()}}m(Le,"runOnMultiplePages",!0);class Oe extends W{constructor(){super(...arguments),m(this,"config",this.moduleStore.moduleConfig.RemoveElement.removeLiveWaterMark)}async run(){this.logger.log("移除直播间水印模块开始运行"),h(".web-player-icon-roomStatus { display: none !important }")}}m(Oe,"runOnMultiplePages",!0);class $e extends W{constructor(){super(...arguments),m(this,"config",this.moduleStore.moduleConfig.RemoveElement.removeShopPopover)}async run(){this.logger.log("移除直播间小橙车弹窗模块开始运行"),h(".shop-popover { display: none !important }")}}m($e,"runOnMultiplePages",!0);class Ae extends W{constructor(){super(...arguments),m(this,"config",this.moduleStore.moduleConfig.RemoveElement.removeGameParty)}async run(){this.logger.log("移除直播间幻星派对标志模块开始运行"),h("#game-id { display: none !important }")}}m(Ae,"runMultiple",!0);class ze extends W{constructor(){super(...arguments),m(this,"config",this.moduleStore.moduleConfig.RemoveElement.removeGiftPopover)}async run(){this.logger.log("移除礼物赠送提示弹窗模块开始运行"),h(".function-card { display: none !important }")}}m(ze,"runOnMultiplePages",!0);class Ue extends W{constructor(){super(...arguments),m(this,"config",this.moduleStore.moduleConfig.RemoveElement.removeMicPopover)}async run(){this.logger.log("移除连麦状态提示模块开始运行"),h(".lin-mic-cntr { display: none !important }")}}m(Ue,"runOnMultiplePages",!0);class je extends W{constructor(){super(...arguments),m(this,"config",this.moduleStore.moduleConfig.RemoveElement.removeComboCard)}async run(){this.logger.log("移除直播间相同弹幕连续提示模块开始运行"),h("#combo-card { display: none !important }")}}m(je,"runOnMultiplePages",!0);class He extends W{constructor(){super(...arguments),m(this,"config",this.moduleStore.moduleConfig.RemoveElement.removeRank)}async run(){this.logger.log("移除排行榜模块开始运行"),h(".popular-and-hot-rank { display: none !important }")}}m(He,"runOnMultiplePages",!0);class Fe extends W{constructor(){super(...arguments),m(this,"config",this.moduleStore.moduleConfig.RemoveElement.removeHeaderStuff)}async run(){this.logger.log("移除活动入口模块开始运行"),h(".header-info-ctnr .rows-ctnr .lower-row .right-ctnr { display: none !important }")}}m(Fe,"runOnMultiplePages",!0);class qe extends W{constructor(){super(...arguments),m(this,"config",this.moduleStore.moduleConfig.RemoveElement.removeFlipView)}async run(){this.logger.log("移除礼物栏下方广告模块开始运行"),h(".flip-view { display: none !important }")}}m(qe,"runOnMultiplePages",!0);class Ge extends W{constructor(){super(...arguments),m(this,"config",this.moduleStore.moduleConfig.RemoveElement.removeRecommendRoom)}async run(){this.logger.log("移除礼物栏下方推荐直播间模块开始运行"),h(".room-info-ctnr { display: none !important }")}}m(Ge,"runOnMultiplePages",!0);class We extends W{constructor(){super(...arguments),m(this,"config",this.moduleStore.moduleConfig.RemoveElement.removeLiveMosaic)}async run(){this.logger.log("移除直播间马赛克模块开始运行"),h("#web-player-module-area-mask-panel { opacity: 0 !important }")}}m(We,"runOnMultiplePages",!0);const Ke=Object.freeze(Object.defineProperty({__proto__:null,DailyTask_LiveTask_LightTask:class extends Z{constructor(){super(...arguments),m(this,"medalTasksConfig",this.moduleStore.moduleConfig.DailyTasks.LiveTasks.medalTasks),m(this,"config",this.medalTasksConfig.light)}set status(e){this.moduleStore.moduleStatus.DailyTasks.LiveTasks.medalTasks.light=e}getRoomidTargetidList(){const e=A().filteredFansMedals.filter((e=>e.medal.level<20&&(this.medalTasksConfig.isWhiteList?this.medalTasksConfig.roomidList.includes(e.room_info.room_id):!this.medalTasksConfig.roomidList.includes(e.room_info.room_id))&&0===e.medal.is_lighted)).map((e=>[e.room_info.room_id,e.medal.target_id]));if(this.medalTasksConfig.isWhiteList){const t=$(this.medalTasksConfig.roomidList);return e.sort(((e,o)=>t.get(e[0])-t.get(o[0])))}return e}async like(e,t,o){try{const i=await j.likeReport(e,t,o);this.logger.log(`BAPI.live.likeReport(${e}, ${t}, ${o})`,i),0===i.code?this.logger.log(`点亮熄灭勋章-点赞 房间号 = ${e} 主播UID = ${t} 点赞次数 = ${o} 成功`):this.logger.error(`点亮熄灭勋章-点赞 房间号 = ${e} 主播UID = ${t} 点赞次数 = ${o} 失败`,i.message)}catch(i){this.logger.error(`点亮熄灭勋章-点赞 房间号 = ${e} 主播UID = ${t} 点赞次数 = ${o} 出错`,i)}}async sendDanmu(e,t){try{const o=await j.sendMsg(e,t);this.logger.log(`BAPI.live.sendMsg(${e}, ${t})`,o),0===o.code?"k"===o.msg?this.logger.warn(`点亮熄灭勋章-发送弹幕 在直播间 ${t} 发送弹幕 ${e} 异常,弹幕可能包含屏蔽词`):this.logger.log(`点亮熄灭勋章-发送弹幕 在直播间 ${t} 发送弹幕 ${e} 成功`):this.logger.error(`点亮熄灭勋章-发送弹幕 在直播间 ${t} 发送弹幕 ${e} 失败`,o.message)}catch(o){this.logger.error(`点亮熄灭勋章-发送弹幕 在直播间 ${t} 发送弹幕 ${e} 出错`,o)}}async run(){if(this.logger.log("点亮熄灭勋章模块开始运行"),V(this.config._lastCompleteTime))N(0,0,0,5)?this.logger.log("昨天的给点亮熄灭勋章任务已经完成过了,等到今天的00:05再执行"):(this.logger.log("今天已经完成过点亮熄灭勋章任务了"),this.status="done");else{if(!await this.waitForFansMedals())return this.logger.error("粉丝勋章数据不存在,不执行点亮熄灭勋章任务"),void(this.status="error");this.status="running";const e=this.getRoomidTargetidList();if(e.length>0)for(let t=0;tthis.run()),e.ms),this.logger.log("距离点亮熄灭勋章模块下次运行时间:",e.str)}},DailyTask_LiveTask_SignTask:class extends W{constructor(){super(...arguments),m(this,"config",this.moduleStore.moduleConfig.DailyTasks.LiveTasks.sign)}set status(e){this.moduleStore.moduleStatus.DailyTasks.LiveTasks.sign=e}async getSignInfo(){try{const e=await j.getSignInfo();return this.logger.log("BAPI.live.getSignInfo response",e),0===e.code?e.data:(this.logger.error("获取直播签到信息失败",e.message),null)}catch(e){return this.logger.error("获取直播签到信息出错",e),null}}async sign(){try{const e=await j.doSign();this.logger.log("BAPI.live.doSign response",e),0===e.code?(this.logger.log("直播签到成功,获得奖励:",e.data.text),this.config._lastCompleteTime=M(),this.status="done",this.logger.log("直播签到任务已完成")):(this.logger.error("直播签到失败",e.message),this.status="error")}catch(e){this.logger.error("执行直播签到任务出错",e),this.status="error"}}async run(){if(this.logger.log("直播签到模块开始运行"),V(this.config._lastCompleteTime))N(0,0,0,5)?this.logger.log("昨天的直播签到任务已经完成过了,等到今天的00:05再执行"):(this.logger.log("今天已经完成过直播签到任务了"),this.status="done");else{this.status="running";const e=await this.getSignInfo();e?0===e.status?await this.sign():(this.config._lastCompleteTime=M(),this.status="done"):await this.sign()}const e=S();setTimeout((()=>this.run()),e.ms),this.logger.log("距离直播签到模块下次运行时间:",e.str)}},DailyTask_LiveTask_WatchTask:te,DailyTask_MainSiteTask_CoinTask:class extends W{constructor(){super(...arguments),m(this,"config",this.moduleStore.moduleConfig.DailyTasks.MainSiteTasks.coin),m(this,"MAX_COIN",1)}set status(e){this.moduleStore.moduleStatus.DailyTasks.MainSiteTasks.coin=e}getDynamicVideoIds(){return A().dynamicVideos.map((e=>{const t=e.modules.module_dynamic.major.archive;return{aid:t.aid,bvid:t.bvid}}))}async getVideoCoinInfo(e,t){try{const o=await F.videoRelation(e,t);return this.logger.log(`BAPI.main.videoRelation(${e}, ${t}) response`,o),0===o.code?o.data.coin:(this.logger.error(`获取视频投币信息失败 aid = ${e} bvid = ${t}`,o.message),0)}catch(o){return this.logger.error(`获取视频投币信息出错 aid = ${e} bvid = ${t}`,o),0}}async coinDynamicVideos(e){const t=this.getDynamicVideoIds();for(const{aid:o,bvid:i}of t){const t=await this.getVideoCoinInfo(o,i),a=this.MAX_COIN-t;if(a>0){const t=Math.min(a,e),i=await this.coin(o,t);if(0===i){if(0===(e-=t)){this.logger.log("每日投币任务已完成"),this.config._lastCompleteTime=M(),this.status="done";break}}else if(1===i){this.logger.warn("硬币余额不足,每日投币任务终止"),this.status="error";break}}}e>0&&(this.logger.warn("硬币余额不足,每日投币任务终止"),this.status="error")}async coin(e,t){try{const o=await F.coinAdd(e,t);return this.logger.log(`BAPI.main.coinAdd(${e}) response`,o),0===o.code?(this.logger.log(`投币成功 视频aid = ${e} 投币数量num = ${t}`),0):-104===o.code?(this.logger.warn("硬币余额不足,每日投币任务终止"),1):(this.logger.error(`投币失败 视频aid = ${e} 投币数量num = ${t}`,o.message),2)}catch(o){return this.logger.error(`投币出错 视频aid = ${e} 投币数量num = ${t}`,o),3}}runCheck(){const e=A();return e.dailyRewardInfo?!!e.dynamicVideos||(this.logger.error("动态视频数据不存在,不执行每日投币任务"),this.status="error",!1):(this.logger.error("主站每日任务完成情况不存在,不执行每日投币任务"),this.status="error",!1)}async run(){if(this.logger.log("每日投币模块开始运行"),V(this.config._lastCompleteTime))N(0,0,0,5)?this.logger.log("昨天的每日投币任务已经完成过了,等到今天的00:05再执行"):(this.logger.log("今天已经完成过每日投币任务了"),this.status="done");else{if(!this.runCheck())return;const e=A();this.status="running";const t=e.dailyRewardInfo.coins/10;if(t(e.userInfo.money??5)?(this.logger.log("硬币余额不足,不执行每日投币任务"),this.status="done"):await this.coinDynamicVideos(o)}else this.config._lastCompleteTime=M(),this.status="done",this.logger.log("每日投币任务已完成")}const e=S();setTimeout((()=>this.run()),e.ms),this.logger.log("距离每日投币模块下次运行时间:",e.str)}},DailyTask_MainSiteTask_LoginTask:class extends W{constructor(){super(...arguments),m(this,"config",this.moduleStore.moduleConfig.DailyTasks.MainSiteTasks.login)}set status(e){this.moduleStore.moduleStatus.DailyTasks.MainSiteTasks.login=e}async login(){return this.logger.log("每日登录任务已完成"),this.config._lastCompleteTime=M(),this.status="done",Promise.resolve()}async run(){if(this.logger.log("每日登录模块开始运行"),V(this.config._lastCompleteTime))N(0,0,0,5)?this.logger.log("昨天的每日登录任务已经完成过了,等到今天的00:05再执行"):(this.logger.log("今天已经完成过每日登录任务了"),this.status="done");else{const e=A();if(!e.dailyRewardInfo)return this.logger.error("主站每日任务完成情况不存在,不执行每日登录任务"),void(this.status="error");this.status="running",e.dailyRewardInfo.login?(this.config._lastCompleteTime=M(),this.status="done"):await this.login()}const e=S();setTimeout((()=>this.run()),e.ms),this.logger.log("距离每日登录模块下次运行时间:",e.str)}},DailyTask_MainSiteTask_ShareTask:class extends W{constructor(){super(...arguments),m(this,"config",this.moduleStore.moduleConfig.DailyTasks.MainSiteTasks.share)}set status(e){this.moduleStore.moduleStatus.DailyTasks.MainSiteTasks.share=e}getAid(){return A().dynamicVideos[0].modules.module_dynamic.major.archive.aid}async share(e){try{const t=await F.share(e);this.logger.log(`BAPI.main.share(${e}) response`,t),0===t.code||71e3===t.code?(this.logger.log("每日分享视频任务已完成"),this.config._lastCompleteTime=M(),this.status="done"):(this.logger.error("分享视频失败",t.message),this.status="error")}catch(e){this.logger.error("执行每日分享视频任务出错",e),this.status="error"}}runCheck(){const e=A();return e.dailyRewardInfo?!!e.dynamicVideos||(this.logger.error("动态视频数据不存在,不执行每日分享视频任务"),this.status="error",!1):(this.logger.error("主站每日任务完成情况不存在,不执行每日分享视频任务"),this.status="error",!1)}async run(){if(this.logger.log("每日分享视频模块开始运行"),V(this.config._lastCompleteTime))N(0,0,0,5)?this.logger.log("昨天的每日分享任务已经完成过了,等到今天的00:05再执行"):(this.logger.log("今天已经完成过每日分享任务了"),this.status="done");else{if(!this.runCheck())return;const e=A();if(this.status="running",e.dailyRewardInfo.share)this.config._lastCompleteTime=M(),this.status="done",this.logger.log("每日分享视频任务已完成");else{const e=this.getAid();await this.share(e)}}const e=S();setTimeout((()=>this.run()),e.ms),this.logger.log("距离每日分享视频模块下次运行时间:",e.str)}},DailyTask_MainSiteTask_WatchTask:class extends W{constructor(){super(...arguments),m(this,"config",this.moduleStore.moduleConfig.DailyTasks.MainSiteTasks.watch)}set status(e){this.moduleStore.moduleStatus.DailyTasks.MainSiteTasks.watch=e}getAid(){return Number(A().dynamicVideos[0].modules.module_dynamic.major.archive.aid)}async watch(e){try{const t=await F.videoHeartbeat(e,o.random(1e9,2e9));this.logger.log(`BAPI.main.videoHeartbeat(${e}) response`,t),0===t.code?(this.logger.log("每日观看视频任务已完成"),this.config._lastCompleteTime=M(),this.status="done"):(this.logger.error("发送观看视频心跳失败",t.message),this.status="error")}catch(e){this.logger.error("执行每日观看视频任务出错",e),this.status="error"}}runCheck(){const e=A();return e.dailyRewardInfo?!!e.dynamicVideos||(this.logger.error("动态视频数据不存在,不执行每日观看视频任务"),this.status="error",!1):(this.logger.error("主站每日任务完成情况不存在,不执行每日观看视频任务"),this.status="error",!1)}async run(){if(this.logger.log("每日观看视频模块开始运行"),V(this.config._lastCompleteTime))N(0,0,0,5)?this.logger.log("昨天的每日观看视频任务已经完成过了,等到今天的00:05再执行"):(this.logger.log("今天已经完成过每日观看视频任务了"),this.status="done");else{if(!this.runCheck())return;const e=A();if(this.status="running",e.dailyRewardInfo.watch)this.config._lastCompleteTime=M(),this.status="done",this.logger.log("每日观看视频任务已完成");else{const e=this.getAid();await this.watch(e)}}const e=S();setTimeout((()=>this.run()),e.ms),this.logger.log("距离每日观看视频模块下次运行时间:",e.str)}},DailyTask_OtherTask_CoinToSilverTask:class extends W{constructor(){super(...arguments),m(this,"config",this.moduleStore.moduleConfig.DailyTasks.OtherTasks.coinToSilver)}set status(e){this.moduleStore.moduleStatus.DailyTasks.OtherTasks.coinToSilver=e}async exchange(){try{const e=await j.coin2silver(this.config.num);this.logger.log(`BAPI.live.coin2silver{${this.config.num}} response`,e),0===e.code?(this.logger.log("硬币换银瓜子已完成,获得银瓜子:",e.data.silver),this.config._lastCompleteTime=M(),this.status="done"):(this.logger.error("硬币换银瓜子失败",e.message),this.status="error")}catch(e){this.logger.error("硬币换银瓜子出错",e),this.status="error"}}async run(){this.logger.log("硬币换银瓜子模块开始运行"),V(this.config._lastCompleteTime)?N(0,0,0,5)?this.logger.log("昨天的硬币换银瓜子任务已经完成过了,等到今天的00:05再执行"):(this.logger.log("今天已经完成过硬币换银瓜子任务了"),this.status="done"):(this.status="running",await this.exchange());const e=S();setTimeout((()=>this.run()),e.ms),this.logger.log("硬币换银瓜子模块下次运行时间:",e.str)}},DailyTask_OtherTask_GetYearVipPrivilegeTask:class extends W{constructor(){super(...arguments),m(this,"config",this.moduleStore.moduleConfig.DailyTasks.OtherTasks.getYearVipPrivilege),m(this,"type2Name",{1:"年度专享B币赠送",2:"年度专享会员购优惠券",3:"年度专享漫画礼包 - 漫画福利券",4:"大会员专享会员购包邮券",5:"年度专享漫画礼包 - 漫画商城优惠券",6:"大会员专享会员体验卡",7:"大会员专享课堂优惠券",15:"年度专享会员购星光宝盒88折券",16:"大会员专享会员购10魔晶",17:"年度专享游戏优惠券"})}set status(e){this.moduleStore.moduleStatus.DailyTasks.OtherTasks.getYearVipPrivilege=e}async myPrivilege(){try{const e=await F.vip.myPrivilege();if(this.logger.log("BAPI.main.vip.myPrivilege response",e),0===e.code)return e.data.list;this.logger.error("获取年度大会员权益信息失败",e.message),this.status="error"}catch(e){this.logger.error("获取年度大会员权益信息出错",e),this.status="error"}}async receivePrivilege(e){try{const t=await F.vip.receivePrivilege(e);this.logger.log(`BAPI.main.vip.receivePrivilege(${e}) response`,t),0===t.code?this.logger.log(`领取年度大会员权益(type = ${e}, ${this.type2Name[e]??"未知"})成功`):this.logger.error(`领取年度大会员权益(type = ${e}, ${this.type2Name[e]??"未知"})失败`,t.message)}catch(t){this.logger.error(`领取年度大会员权益(type = ${e}, ${this.type2Name[e]??"未知"})出错`,t)}}async addExperience(){try{const e=await F.vip.addExperience();this.logger.log("BAPI.main.vip.addExperience response",e),0===e.code?this.logger.log("领取年度大会员权益(type = 9,专属等级加速包(10主站经验))成功"):this.logger.error("领取年度大会员权益(type = 9,专属等级加速包(10主站经验))失败",e.message)}catch(e){this.logger.error("领取年度大会员权益(type = 9,专属等级加速包(10主站经验))出错",e)}}isYearVip(){const e=A().userInfo;return 1===e.vip.status&&2===e.vip.type||(this.logger.log("当前账号不是年度大会员,不领取权益"),!1)}async run(){if(this.logger.log("领取年度大会员权益模块开始运行"),this.isYearVip()){if(P()>=this.config._nextReceiveTime){this.status="running";const t=await this.myPrivilege();if(t){for(const o of t)if(8!==o.type&&14!==o.type){if(0===o.state)9===o.type?await this.addExperience():await this.receivePrivilege(o.type);else if(1===o.state)this.logger.log(`该权益(type = ${o.type})已经领取过了`);else if(9===o.type){const t=this.moduleStore.moduleConfig.DailyTasks.MainSiteTasks.watch;t.enabled?(this.logger.log("等待观看视频任务完成后再领取专属等级加速包(10主站经验)..."),e.watch((()=>t._lastCompleteTime),(()=>R(3e3).then((()=>this.addExperience()))),{once:!0})):this.logger.warn("领取专属等级加速包(10主站经验)前需要观看任意一个视频,请打开【主站任务】中的【每日观看视频】,或是在运行脚本前手动观看")}await R(200)}this.status="done",this.config._nextReceiveTime=Math.min(...t.map((e=>e.period_end_unix)))}}const t=this.config._nextReceiveTime-P()+3e5;t<86400?(this.logger.log("领取年度大会员权益模块下次运行时间:",n.DateTime.fromSeconds(this.config._nextReceiveTime).toJSDate()),setTimeout((()=>this.run()),1e3*t)):this.logger.log("距离下次领取年度大会员权益的时间超过一天,不计划下次运行")}}},DailyTask_OtherTask_GroupSignTask:class extends W{constructor(){super(...arguments),m(this,"config",this.moduleStore.moduleConfig.DailyTasks.OtherTasks.groupSign)}set status(e){this.moduleStore.moduleStatus.DailyTasks.OtherTasks.groupSign=e}async getGroupidOwneruidList(){try{const e=await q.myGroups();if(this.logger.log("BAPI.vc.myGroups response",e),0===e.code)return e.data.list.map((e=>[e.group_id,e.owner_uid]));this.logger.error("获取应援团信息失败",e.message),this.status="error"}catch(e){this.logger.error("获取应援团信息出错",e),this.status="error"}}async sign(e,t){try{const o=await q.signIn(e,t);this.logger.log(`BAPI.vc.signIn(${e}, ${t}) response`,o),0===o.code?this.logger.log(`应援团签到 应援团ID = ${e} 拥有者UID = ${t} 成功, 粉丝勋章亲密度+${o.data.add_num}`):this.logger.error(`应援团签到 应援团ID = ${e} 拥有者UID = ${t} 失败`,o.message)}catch(o){this.logger.error(`应援团签到 应援团ID = ${e} 拥有者UID = ${t} 出错`,o)}}async run(){if(this.logger.log("应援团签到模块开始运行"),V(this.config._lastCompleteTime,8,5))N(0,0,8,5)?this.logger.log("昨天的应援团签到任务已经完成过了,等到今天早上八点零五分再次执行"):(this.logger.log("今天已经完成过应援团签到任务了"),this.status="done");else{this.status="running";const e=await this.getGroupidOwneruidList();if(e){for(const[t,o]of e)await this.sign(t,o),await R(2e3);this.config._lastCompleteTime=M(),this.logger.log("应援团签到任务已完成"),this.status="done"}}const e=S(8,5);setTimeout((()=>this.run()),e.ms),this.logger.log("距离应援团签到模块下次运行时间:",e.str)}},DailyTask_OtherTask_SilverToCoinTask:class extends W{constructor(){super(...arguments),m(this,"config",this.moduleStore.moduleConfig.DailyTasks.OtherTasks.silverToCoin)}set status(e){this.moduleStore.moduleStatus.DailyTasks.OtherTasks.silverToCoin=e}async exchange(){try{const e=await j.silver2coin();this.logger.log("BAPI.live.silver2coin response",e),0===e.code?(this.logger.log("银瓜子换硬币已完成,获得硬币:",e.data.coin),this.config._lastCompleteTime=M(),this.status="done"):403===e.code?(this.logger.log("每天最多只能用银瓜子兑换1个硬币"),this.config._lastCompleteTime=M(),this.status="done"):(this.logger.error("银瓜子换硬币失败",e.message),this.status="error")}catch(e){this.logger.error("银瓜子换硬币出错",e),this.status="error"}}run(){this.logger.log("银瓜子换硬币模块开始运行"),V(this.config._lastCompleteTime)?N(0,0,0,5)?this.logger.log("昨天的银瓜子换硬币任务已经完成过了,等到今天的00:05再执行"):(this.logger.log("今天已经完成过银瓜子换硬币任务了"),this.status="done"):(this.status="running",this.exchange());const e=S();setTimeout((()=>this.run()),e.ms),this.logger.log("银瓜子换硬币模块下次运行时间:",e.str)}},EnhanceExperience_BanP2P:se,EnhanceExperience_Invisibility:Ie,EnhanceExperience_NoReport:Be,EnhanceExperience_NoSleep:De,EnhanceExperience_SwitchLiveStreamQuality:ne,RemoveElement_RemoveComboCard:je,RemoveElement_RemoveFlipView:qe,RemoveElement_RemoveGameParty:Ae,RemoveElement_RemoveGiftPopover:ze,RemoveElement_RemoveHeaderStuff:Fe,RemoveElement_RemoveLiveMosaic:We,RemoveElement_RemoveLiveWaterMark:Oe,RemoveElement_RemoveMicPopover:Ue,RemoveElement_RemovePKBox:Le,RemoveElement_RemoveRank:He,RemoveElement_RemoveRecommendRoom:Ge,RemoveElement_RemoveShopPopover:$e},Symbol.toStringTag,{value:"Module"}));function Xe(e){const t={all:o=(o=e)||new Map,on:function(e,t){var i=o.get(e);i?i.push(t):o.set(e,[t])},off:function(e,t){var i=o.get(e);i&&(t?i.splice(i.indexOf(t)>>>0,1):o.set(e,[]))},emit:function(e,t){var i=o.get(e);i&&i.slice().map((function(e){e(t)})),(i=o.get("*"))&&i.slice().map((function(o){o(e,t)}))}};var o;return{...t,once(e,o){t.on(e,(function i(a){t.off(e,i),o(a)}))}}}const Je=t.defineStore("cache",(()=>{const t=e.reactive(_.getCache()),o=e.ref("Main");return e.watch(t,(e=>_.setCache(e))),{cache:t,currentScriptType:o,startMainBLTHAliveHeartBeat:function(){t.lastAliveHeartBeatTime=Date.now();const e=setInterval((()=>t.lastAliveHeartBeatTime=Date.now()),5e3);window.addEventListener("unload",(()=>{clearInterval(e),t.lastAliveHeartBeatTime=0}))},checkCurrentScriptType:function(){0!==t.lastAliveHeartBeatTime&&Date.now()-t.lastAliveHeartBeatTime<8e3?null===sessionStorage.getItem("main_blth_flag")?o.value="Other":o.value="SubMain":(o.value="Main",sessionStorage.setItem("main_blth_flag","🚩"))}}})),Qe={DailyTasks:{MainSiteTasks:{login:"",watch:"",coin:"",share:""},LiveTasks:{sign:"",medalTasks:{light:"",watch:""}},OtherTasks:{groupSign:"",silverToCoin:"",coinToSilver:"",getYearVipPrivilege:""}}},Ye=[];function Ze(e,t){const o=new e(t);if(o.isEnabled())return o.run()}const et=t.defineStore("module",(()=>{const t=e.reactive(_.getModuleConfig()),i=Xe(),a=e.reactive(Qe);return e.watch(t,o.debounce((e=>_.setModuleConfig(e)),250,{leading:!0,trailing:!0})),function e(){setTimeout((()=>{L(a,((e,t)=>{o.set(a,t,"")})),e()}),S(0,0).ms)}(),{moduleConfig:t,emitter:i,moduleStatus:a,loadModules:function(e){const t=Je();if("unknown"===e)for(const[e,o]of Object.entries(Ke))("all"===o.onFrame||"top"===o.onFrame&&ae())&&(o.runOnMultiplePages||"Other"!==t.currentScriptType)&&(o.runAfterDefault||(O(o.runAt).then((()=>Ze(o,e))),Ye.push(e)));else{const e={},o=function(){const e=Je(),t=[];for(const[o,i]of Object.entries(Y))(i.runOnMultiplePages||"Other"!==e.currentScriptType)&&t.push(Ze(i,o));return Promise.allSettled(t)}();for(const[o,i]of Object.entries(Ke))("target"===i.onFrame||"top"===i.onFrame&&ae()&&!Ye.includes(o)||"all"===i.onFrame&&!Ye.includes(o))&&(i.runOnMultiplePages||"Other"!==t.currentScriptType)&&(i.runAfterDefault?e[o]=i:O(i.runAt).then((()=>Ze(i,o))));o.then((t=>{for(const e of t)if("rejected"===e.status){const t=e.reason;if(t instanceof X)return void new G(t.moduleName).error(t.message);if(!(t instanceof K))return void new G("ModuleStore").error(`意外错误: ${t.message}`);new G(t.moduleName).error(t.message)}for(const[t,o]of Object.entries(e))O(o.runAt).then((()=>Ze(o,t)))}))}}}})),tt={DailyTasks:{MainSiteTasks:{login:{title:"每日登录",message:"完成主站的每日登录任务。"},watch:{title:"每日观看视频",message:e.h("p",[e.h("div","完成主站的每日观看视频任务。"),e.h("div","从动态中选取视频观看,会产生观看历史记录。")])},coin:{title:"每日投币",message:e.h("p",[e.h("div","完成主站的每日投币任务。"),e.h("div","从动态中选取视频投币,会根据你今天已经投过的币的数量计算还要投几个币。")])},share:{title:"每日分享视频",message:e.h("p",[e.h("div","完成主站的每日分享视频任务。"),e.h("div","不会真的分享到某处。")])}},LiveTasks:{sign:{title:"直播签到",message:e.h("p",[e.h("div","完成直播签到任务。")])},medalTasks:{list:{title:"黑白名单 / 排序模式",message:e.h("p",[e.h("div","为了更精细地控制为哪些粉丝勋章执行点亮熄灭勋章和观看直播任务,你可以使用黑名单或白名单模式。"),e.h("div",[e.h("li",[e.h("span","黑名单:仅为"),e.h("strong","不在"),e.h("span","名单中的粉丝勋章执行任务。")]),e.h("li",[e.h("span","白名单:仅为"),e.h("strong","在"),e.h("span","名单中的粉丝勋章执行任务。")])]),e.h("div","点击编辑名单按钮,然后使用第一列的多选框即可编辑名单中的粉丝勋章。"),e.h("div","使用白名单模式时,可点击【编辑名单】窗口右下角的按钮即可从【常规模式】切换到【排序模式】。"),e.h("div","在排序模式下,你可以调整脚本执行观看任务的粉丝勋章顺序。"),e.h("div",[e.h("li","使用鼠标拖拽表格中的行来调整顺序。"),e.h("li","拖拽行至表格的顶部和底部可以触发滚动。")])])},light:{main:{title:"点亮熄灭勋章",message:e.h("p",[e.h("div","在你的每个已熄灭的粉丝勋章对应的直播间完成点亮任务,从而点亮粉丝勋章。"),e.h("div","支持两种点亮方式,可自由选择:"),e.h("div",[e.h("li",[e.h("span","点赞(不推荐):点赞30次")]),e.h("li",[e.h("strong","发送弹幕(推荐):"),e.h("span","发送弹幕1条")])])])},like:{title:"点赞",message:e.h("p",[e.h("div","在已熄灭粉丝勋章对应的直播间给主播点赞,点亮粉丝勋章。"),e.h("div",[e.h("li",[e.h("span","点赞次数为略微超过任务要求的随机值。")]),e.h("li",[e.h("span","部分直播间无法完成该任务,原因未知。")])]),e.h("div",[e.h("strong","注意:"),e.h("span","点赞只能点亮正在直播的直播间对应的粉丝勋章。")])])},danmu:{title:"发送弹幕",message:e.h("p",[e.h("div","在已熄灭粉丝勋章对应的直播间发送一条弹幕,点亮粉丝勋章。"),e.h("div",[e.h("span","点击编辑弹幕按钮编辑发送的弹幕,脚本会从中按顺序循环抽取弹幕发送。"),e.h("span","部分直播间无法完成该任务,可能的原因有:"),e.h("div",[e.h("li","你被禁言了"),e.h("li","发言有粉丝勋章等级要求"),e.h("li",[e.h("span","特殊直播间(比如"),e.h("a",{href:"https://live.bilibili.com/54",rel:"noreferrer",target:"_blank"},"54"),e.h("span",")")])])])])}},watch:{title:"观看直播",message:e.h("p",[e.h("div","完成粉丝勋章的观看直播任务。"),e.h("div",[e.h("li","部分直播间因为没有设置直播分区导致任务无法完成。"),e.h("li","主播当前是否开播不会影响该任务的完成。"),e.h("li","根据目前的亲密度规则,将每个直播间的观看时长设置为25分钟即可获得全部亲密度。")]),e.h("div",[e.h("strong","注意:"),e.h("span","使用本功能时不能以任何方式观看直播(网页、APP、电视),否则可能无法获得任何亲密度。")])])}}},OtherTasks:{groupSign:{title:"应援团签到",message:"完成应援团签到任务。"},silverToCoin:{title:"银瓜子换硬币",message:e.h("p",[e.h("div","把银瓜子兑换为硬币。"),e.h("div","具体兑换规则请点击直播间页面的“立即充值→银瓜子商店”查看。")])},coinToSilver:{title:"硬币换银瓜子",message:e.h("p",[e.h("div","把硬币兑换为银瓜子。"),e.h("div","具体兑换规则请点击直播间页面的“立即充值→银瓜子商店”查看。")])},getYearVipPrivilege:{title:"领取年度大会员权益",message:e.h("p",[e.h("div","自动领取年度大会员权益。"),e.h("div",[e.h("span","具体权益请前往"),e.h("a",{href:"https://account.bilibili.com/account/big/myPackage",rel:"noreferrer",target:"_blank"},"卡券包"),e.h("span","查看。")])])}}},EnhanceExperience:{switchLiveStreamQuality:{title:"自动切换画质",message:e.h("p",[e.h("div","打开直播间后自动把播放器切换到指定画质。"),e.h("div","如果指定画质不存在,则还是使用B站的默认画质。")])},banp2p:{title:"禁用P2P",message:e.h("p",[e.h("div","禁用直播流的P2P上传/下载"),e.h("div","B站使用WebRTC技术把许多浏览器点对点(P2P)地连接起来,实现视频流和音频流的传输。这样做是为了减轻B站服务器的压力,但是会占用你一定的上行带宽(大约几百kb每秒)。如果你不想被占用上行带宽,可以开启该功能。若开启后发现观看直播时有明显卡顿,请关闭。")])},noReport:{title:"拦截日志数据上报",message:e.h("p",[e.h("div","禁止B站上报日志数据。"),e.h("div",[e.h("span","B站会实时地上报大量日志信息,比如直播观看情况、代码报错等等。开启本功能后绝大多数日志上报都会被劫持或拦截并返回一个成功的响应。相比于带有广告拦截功能的浏览器拓展,比如"),e.h("a",{href:"https://github.com/gorhill/uBlock",rel:"noreferrer",target:"_blank"},"uBlock Origin"),e.h("span",",本功能会通过劫持的方式从根源上阻止部分日志上报,并模拟成功的响应来尽可能地减少B站代码的报错。理论上来说这样做会有更好的性能表现。")])])},noSleep:{title:"屏蔽挂机检测",message:e.h("p",[e.h("div","屏蔽B站直播间的挂机检测。"),e.h("div","如果长时间没有操作,会提示“检测到您已离开当前屏幕,倒计时后即将暂停播放”。开启本功能后即可避免这种情况。")])},invisibility:{title:"隐身入场",message:e.h("p",[e.h("div","进入直播间时其他人不会收到提示,但还是会出现在高能用户榜单上。")])}},RemoveElement:{removePKBox:{title:"移除大乱斗元素",message:"移除直播间的大乱斗元素(进度条,弹出的提示等)。"},removeLiveWaterMark:{title:"移除直播间水印",message:"移除直播画面左上角的水印。"},removeShopPopover:{title:"移除直播间小橙车弹窗",message:"移除直播间左上角的小橙车弹窗。"},removeGameParty:{title:"移除直播间幻星派对标志",message:"移除直播间右下角的幻星派对标志。"},removeGiftPopover:{title:"移除礼物赠送提示弹窗",message:"移除直播间右下角的礼物赠送提示弹窗(赠送一个牛蛙牛蛙支持主播)。"},removeMicPopover:{title:"移除连麦状态提示",message:"移除直播间左上角的连麦提示弹窗(连线功能只能在手机端使用,快使用手机登录吧~)。"},removeComboCard:{title:"移除直播间相同弹幕连续提示",message:"移除直播间相同弹幕连续提示。"},removeRank:{title:"移除排行榜",message:"移除直播画面上方的人气榜/航海榜,赠送人气票的入口也在这里。"},removeHeaderStuff:{title:"移除直播画面上方杂项",message:"移除直播画面上方各种杂七杂八的东西,比如排行榜、活动轮播图等。"},removeFlipView:{title:"移除礼物栏下方广告",message:"移除礼物栏下方广告。"},removeRecommendRoom:{title:"移除礼物栏下方推荐直播间",message:"移除礼物栏下方推荐直播间。"},removeLiveMosaic:{title:"移除直播间马赛克",message:"移除部分直播间特有的马赛克。"}}},ot=e.defineComponent({__name:"MainSiteTasks",setup(t){const o=et(),i=o.moduleConfig.DailyTasks.MainSiteTasks,a=o.moduleStatus.DailyTasks.MainSiteTasks;return(t,o)=>{const n=e.resolveComponent("el-switch"),s=e.resolveComponent("Info"),r=e.resolveComponent("TaskStatus"),l=e.resolveComponent("el-space"),c=e.resolveComponent("el-row"),d=e.resolveComponent("el-option"),u=e.resolveComponent("el-select"),m=e.resolveComponent("el-text"),h=e.resolveComponent("el-divider"),g=e.resolveComponent("el-link");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(c,null,{default:e.withCtx((()=>[e.createVNode(l,{wrap:"",size:[8,0]},{default:e.withCtx((()=>[e.createVNode(n,{modelValue:e.unref(i).login.enabled,"onUpdate:modelValue":o[0]||(o[0]=t=>e.unref(i).login.enabled=t),"active-text":"每日登录"},null,8,["modelValue"]),e.createVNode(s,{item:e.unref(tt).DailyTasks.MainSiteTasks.login},null,8,["item"]),e.createVNode(r,{status:e.unref(a).login},null,8,["status"])])),_:1})])),_:1}),e.createVNode(c,null,{default:e.withCtx((()=>[e.createVNode(l,{wrap:"",size:[8,0]},{default:e.withCtx((()=>[e.createVNode(n,{modelValue:e.unref(i).watch.enabled,"onUpdate:modelValue":o[1]||(o[1]=t=>e.unref(i).watch.enabled=t),"active-text":"每日观看视频"},null,8,["modelValue"]),e.createVNode(s,{item:e.unref(tt).DailyTasks.MainSiteTasks.watch},null,8,["item"]),e.createVNode(r,{status:e.unref(a).watch},null,8,["status"])])),_:1})])),_:1}),e.createVNode(c,null,{default:e.withCtx((()=>[e.createVNode(l,{wrap:"",size:[8,0]},{default:e.withCtx((()=>[e.createVNode(n,{modelValue:e.unref(i).coin.enabled,"onUpdate:modelValue":o[2]||(o[2]=t=>e.unref(i).coin.enabled=t),"active-text":"每日投币"},null,8,["modelValue"]),e.createVNode(u,{modelValue:e.unref(i).coin.num,"onUpdate:modelValue":o[3]||(o[3]=t=>e.unref(i).coin.num=t),placeholder:"Select",style:{width:"64px"}},{default:e.withCtx((()=>[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(5,(t=>e.createVNode(d,{key:t,label:t,value:t},null,8,["label","value"]))),64))])),_:1},8,["modelValue"]),e.createVNode(m,null,{default:e.withCtx((()=>o[5]||(o[5]=[e.createTextVNode("个")]))),_:1}),e.createVNode(s,{item:e.unref(tt).DailyTasks.MainSiteTasks.coin},null,8,["item"]),e.createVNode(r,{status:e.unref(a).coin},null,8,["status"])])),_:1})])),_:1}),e.createVNode(c,null,{default:e.withCtx((()=>[e.createVNode(l,{wrap:"",size:[8,0]},{default:e.withCtx((()=>[e.createVNode(n,{modelValue:e.unref(i).share.enabled,"onUpdate:modelValue":o[4]||(o[4]=t=>e.unref(i).share.enabled=t),"active-text":"每日分享视频"},null,8,["modelValue"]),e.createVNode(s,{item:e.unref(tt).DailyTasks.MainSiteTasks.share},null,8,["item"]),e.createVNode(r,{status:e.unref(a).share},null,8,["status"])])),_:1})])),_:1}),e.createVNode(h),e.createVNode(c,null,{default:e.withCtx((()=>[e.createVNode(m,null,{default:e.withCtx((()=>[e.createVNode(m,null,{default:e.withCtx((()=>o[6]||(o[6]=[e.createTextVNode("  主站每日任务的完成情况可在")]))),_:1}),e.createVNode(g,{rel:"noreferrer",type:"primary",href:"https://account.bilibili.com/account/home",target:"_blank",style:{"vertical-align":"unset"}},{default:e.withCtx((()=>o[7]||(o[7]=[e.createTextVNode("个人中心")]))),_:1}),e.createVNode(m,null,{default:e.withCtx((()=>o[8]||(o[8]=[e.createTextVNode("查看。")]))),_:1}),e.createVNode(m,null,{default:e.withCtx((()=>o[9]||(o[9]=[e.createTextVNode("数据更新可能有一定的延时。")]))),_:1})])),_:1})])),_:1})])}}}),it={class:"avatar-wrap"},at=k(e.defineComponent({__name:"LiveTasks",setup(t){const o=et(),a=A(),n=y(),l=.55*screen.height,c=.5*screen.height,d=o.moduleConfig.DailyTasks.LiveTasks,u=o.moduleStatus.DailyTasks.LiveTasks,m=e.ref(!1),h=e.computed((()=>d.medalTasks.light.danmuList.map((e=>({content:e}))))),g=()=>{s.ElMessageBox.prompt("请输入新增的弹幕内容","新增弹幕",{confirmButtonText:"确认",cancelButtonText:"取消",inputPattern:/^.{1,30}$/,inputErrorMessage:"弹幕内容不得为空且长度不能超过30",lockScroll:!1}).then((({value:e})=>{d.medalTasks.light.danmuList.push(e)})).catch((()=>{}))},p=e.ref(!1),f=e.computed({get(){const e=a.filteredFansMedals.map((e=>({avatar:e.anchor_info.avatar,nick_name:e.anchor_info.nick_name,medal_name:e.medal.medal_name,medal_level:e.medal.level,roomid:e.room_info.room_id})));if(n.uiConfig.medalInfoPanelSortMode){const t=e.filter((e=>d.medalTasks.isWhiteList?d.medalTasks.roomidList.includes(e.roomid):!d.medalTasks.roomidList.includes(e.roomid))),o=$(d.medalTasks.roomidList);return t.sort(((e,t)=>o.get(e.roomid)-o.get(t.roomid)))}return e},set(e){d.medalTasks.roomidList=e.map((e=>e.roomid))}}),v=e.ref(!1);let w=!0;const _=async()=>{p.value=!0,w&&(w=!1,await e.nextTick(),a.fansMedals?b(f.value):(v.value=!0,e.watch(f,(t=>{e.nextTick((()=>{b(t),v.value=!1}))}),{once:!0}),o.emitter.emit("Default_FansMedals",{module:"LiveTasks"})))},x=e.ref(),b=e=>{e&&d.medalTasks.roomidList.forEach(((t,o)=>{var i;const a=e.find((e=>e.roomid===t));a?null==(i=x.value)||i.toggleRowSelection(a,!0):d.medalTasks.roomidList.splice(o,1)}))};function k(e){d.medalTasks.roomidList=e.map((e=>e.roomid))}function C(e){var t,o;null==(t=x.value)||t.toggleRowSelection(e);const i=null==(o=x.value)?void 0:o.getSelectionRows();d.medalTasks.roomidList=i.map((e=>e.roomid))}return(t,o)=>{const a=e.resolveComponent("el-switch"),w=e.resolveComponent("Info"),y=e.resolveComponent("TaskStatus"),T=e.resolveComponent("el-space"),V=e.resolveComponent("el-row"),S=e.resolveComponent("el-divider"),N=e.resolveComponent("SemiSelect"),P=e.resolveComponent("el-icon"),M=e.resolveComponent("el-radio"),E=e.resolveComponent("el-button"),R=e.resolveComponent("el-radio-group"),B=e.resolveComponent("el-option"),D=e.resolveComponent("el-select"),I=e.resolveComponent("el-text"),L=e.resolveComponent("el-link"),O=e.resolveComponent("el-table-column"),$=e.resolveComponent("el-dialog"),A=e.resolveComponent("el-image"),z=e.resolveDirective("loading");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(V,null,{default:e.withCtx((()=>[e.createVNode(T,{wrap:"",size:[8,0]},{default:e.withCtx((()=>[e.createVNode(a,{modelValue:e.unref(d).sign.enabled,"onUpdate:modelValue":o[0]||(o[0]=t=>e.unref(d).sign.enabled=t),"active-text":"直播签到"},null,8,["modelValue"]),e.createVNode(w,{item:e.unref(tt).DailyTasks.LiveTasks.sign},null,8,["item"]),e.createVNode(y,{status:e.unref(u).sign},null,8,["status"])])),_:1})])),_:1}),e.createVNode(S),e.createVNode(V,null,{default:e.withCtx((()=>[e.createVNode(T,{wrap:"",size:[8,0]},{default:e.withCtx((()=>[e.createVNode(a,{modelValue:e.unref(d).medalTasks.light.enabled,"onUpdate:modelValue":o[1]||(o[1]=t=>e.unref(d).medalTasks.light.enabled=t),"active-text":"点亮熄灭勋章"},null,8,["modelValue"]),e.createVNode(w,{item:e.unref(tt).DailyTasks.LiveTasks.medalTasks.light.main},null,8,["item"]),e.createVNode(y,{status:e.unref(u).medalTasks.light},null,8,["status"])])),_:1})])),_:1}),e.createVNode(V,null,{default:e.withCtx((()=>[e.createVNode(R,{modelValue:e.unref(d).medalTasks.light.mode,"onUpdate:modelValue":o[3]||(o[3]=t=>e.unref(d).medalTasks.light.mode=t),class:"radio-group"},{default:e.withCtx((()=>[e.createVNode(V,null,{default:e.withCtx((()=>[e.createVNode(T,{wrap:"",size:[8,0]},{default:e.withCtx((()=>[e.createVNode(P,null,{default:e.withCtx((()=>[e.createVNode(N)])),_:1}),e.createVNode(M,{value:"like"},{default:e.withCtx((()=>o[14]||(o[14]=[e.createTextVNode("点赞")]))),_:1}),e.createVNode(w,{item:e.unref(tt).DailyTasks.LiveTasks.medalTasks.light.like},null,8,["item"])])),_:1})])),_:1}),e.createVNode(V,null,{default:e.withCtx((()=>[e.createVNode(T,{wrap:"",size:[8,0]},{default:e.withCtx((()=>[e.createVNode(P,null,{default:e.withCtx((()=>[e.createVNode(N)])),_:1}),e.createVNode(M,{value:"danmu"},{default:e.withCtx((()=>o[15]||(o[15]=[e.createTextVNode("发送弹幕")]))),_:1}),e.createVNode(E,{type:"primary",size:"small",icon:e.unref(i.Edit),onClick:o[2]||(o[2]=e=>m.value=!m.value)},{default:e.withCtx((()=>o[16]||(o[16]=[e.createTextVNode("编辑弹幕 ")]))),_:1},8,["icon"]),e.createVNode(w,{item:e.unref(tt).DailyTasks.LiveTasks.medalTasks.light.danmu},null,8,["item"])])),_:1})])),_:1})])),_:1},8,["modelValue"])])),_:1}),e.createVNode(V,null,{default:e.withCtx((()=>[e.createVNode(T,{wrap:"",size:[8,0]},{default:e.withCtx((()=>[e.createVNode(a,{modelValue:e.unref(d).medalTasks.watch.enabled,"onUpdate:modelValue":o[4]||(o[4]=t=>e.unref(d).medalTasks.watch.enabled=t),"active-text":"观看直播"},null,8,["modelValue"]),e.createVNode(D,{modelValue:e.unref(d).medalTasks.watch.time,"onUpdate:modelValue":o[5]||(o[5]=t=>e.unref(d).medalTasks.watch.time=t),placeholder:"Select",style:{width:"70px"}},{default:e.withCtx((()=>[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(6,(t=>e.createVNode(B,{key:t,label:5*t,value:5*t},null,8,["label","value"]))),64))])),_:1},8,["modelValue"]),e.createVNode(I,null,{default:e.withCtx((()=>o[17]||(o[17]=[e.createTextVNode("分钟 / 直播间")]))),_:1}),e.createVNode(w,{item:e.unref(tt).DailyTasks.LiveTasks.medalTasks.watch},null,8,["item"]),e.createVNode(y,{status:e.unref(u).medalTasks.watch},null,8,["status"])])),_:1})])),_:1}),e.createVNode(V,null,{default:e.withCtx((()=>[e.createVNode(T,{wrap:"",size:[8,0]},{default:e.withCtx((()=>[e.createVNode(a,{modelValue:e.unref(d).medalTasks.isWhiteList,"onUpdate:modelValue":o[6]||(o[6]=t=>e.unref(d).medalTasks.isWhiteList=t),"active-text":"白名单","inactive-text":"黑名单",onChange:o[7]||(o[7]=t=>!t&&(e.unref(n).uiConfig.medalInfoPanelSortMode=!1))},null,8,["modelValue"]),e.createVNode(E,{type:"primary",size:"small",icon:e.unref(i.Edit),onClick:_},{default:e.withCtx((()=>o[18]||(o[18]=[e.createTextVNode("编辑名单 ")]))),_:1},8,["icon"]),e.createVNode(w,{item:e.unref(tt).DailyTasks.LiveTasks.medalTasks.list},null,8,["item"])])),_:1})])),_:1}),e.createVNode(S),e.createVNode(V,null,{default:e.withCtx((()=>[e.createVNode(I,null,{default:e.withCtx((()=>o[19]||(o[19]=[e.createTextVNode("直播任务相关信息可在")]))),_:1}),e.createVNode(L,{rel:"noreferrer",type:"primary",href:"https://link.bilibili.com/p/help/index#/audience-fans-medal",target:"_blank"},{default:e.withCtx((()=>o[20]||(o[20]=[e.createTextVNode("帮助中心 ")]))),_:1}),e.createVNode(I,null,{default:e.withCtx((()=>o[21]||(o[21]=[e.createTextVNode("查看。")]))),_:1})])),_:1}),o[25]||(o[25]=e.createElementVNode("br",null,null,-1)),e.createVNode($,{modelValue:m.value,"onUpdate:modelValue":o[8]||(o[8]=e=>m.value=e),title:"编辑弹幕内容","lock-scroll":!1,width:"40%"},{footer:e.withCtx((()=>[e.createVNode(E,{type:"primary",onClick:g},{default:e.withCtx((()=>o[24]||(o[24]=[e.createTextVNode("新增弹幕")]))),_:1})])),default:e.withCtx((()=>[e.createVNode(e.unref(s.ElTable),{data:h.value,"max-height":c},{default:e.withCtx((()=>[e.createVNode(O,{type:"index",width:"80"}),e.createVNode(O,{prop:"content",label:"弹幕内容"}),e.createVNode(O,{label:"操作",width:"220",align:"center"},{default:e.withCtx((t=>[e.createVNode(E,{text:"",icon:e.unref(i.Edit),onClick:e=>{return o=t.$index,i=t.row,void s.ElMessageBox.prompt("请输入新的弹幕内容","修改弹幕",{confirmButtonText:"确认",cancelButtonText:"取消",inputPattern:/^.{1,30}$/,inputErrorMessage:"弹幕内容不得为空且长度不能超过30",inputValue:i.content,lockScroll:!1}).then((({value:e})=>{d.medalTasks.light.danmuList[o]=e})).catch((()=>{}));var o,i}},{default:e.withCtx((()=>o[22]||(o[22]=[e.createTextVNode(" 修改 ")]))),_:2},1032,["icon","onClick"]),e.createVNode(E,{text:"",icon:e.unref(i.Delete),type:"danger",onClick:e=>{return o=t.$index,void(1!==d.medalTasks.light.danmuList.length?d.medalTasks.light.danmuList.splice(o,1):s.ElMessage.warning({message:"至少要有一条弹幕",appendTo:".el-dialog"}));var o}},{default:e.withCtx((()=>o[23]||(o[23]=[e.createTextVNode(" 删除 ")]))),_:2},1032,["icon","onClick"])])),_:1})])),_:1},8,["data"])])),_:1},8,["modelValue"]),e.createVNode($,{modelValue:p.value,"onUpdate:modelValue":o[13]||(o[13]=e=>p.value=e),title:"编辑粉丝勋章名单","lock-scroll":!1},{footer:e.withCtx((()=>[e.createVNode(a,{disabled:!e.unref(d).medalTasks.isWhiteList,modelValue:e.unref(n).uiConfig.medalInfoPanelSortMode,"onUpdate:modelValue":o[11]||(o[11]=t=>e.unref(n).uiConfig.medalInfoPanelSortMode=t),"inactive-text":"常规模式","active-text":"排序模式",onChange:o[12]||(o[12]=t=>!t&&e.nextTick((()=>b(f.value))))},null,8,["disabled","modelValue"])])),default:e.withCtx((()=>[e.createVNode(e.unref(r.VueDraggable),{modelValue:f.value,"onUpdate:modelValue":o[10]||(o[10]=e=>f.value=e),target:"#draggable-fans-medal-table table tbody",disabled:!e.unref(n).uiConfig.medalInfoPanelSortMode,animation:150,"scroll-sensitivity":36,"scroll-speed":8},{default:e.withCtx((()=>[e.withDirectives((e.openBlock(),e.createBlock(e.unref(s.ElTable),{id:"draggable-fans-medal-table",ref_key:"medalInfoTableRef",ref:x,data:f.value,"max-height":l,"empty-text":"没有粉丝勋章",onSelect:k,onSelectAll:k,onRowClick:C,"row-key":e=>e.roomid.toString()},{default:e.withCtx((()=>[e.unref(n).uiConfig.medalInfoPanelSortMode?(e.openBlock(),e.createBlock(O,{key:1,type:"index",align:"center",width:"80"})):(e.openBlock(),e.createBlock(O,{key:0,type:"selection",align:"center",width:"80"})),e.createVNode(O,{prop:"avatar",label:"头像",width:"100"},{default:e.withCtx((t=>[e.createElementVNode("div",it,[e.createVNode(A,{src:t.row.avatar,loading:"lazy",referrerpolicy:"origin",class:"avatar"},{error:e.withCtx((()=>[e.createVNode(A,{src:"//i0.hdslb.com/bfs/face/member/noface.jpg",referrerpolicy:"origin",class:"avatar"})])),_:2},1032,["src"])])])),_:1}),e.createVNode(O,{prop:"nick_name",label:"昵称"}),e.createVNode(O,{prop:"medal_name",label:"粉丝勋章"}),e.createVNode(O,{prop:"medal_level",label:"等级",width:"80",sortable:""}),e.createVNode(O,{prop:"roomid",label:"房间号"},{default:e.withCtx((t=>[e.createVNode(L,{href:"https://live.bilibili.com/"+t.row.roomid+"?visit_id=",rel:"noreferrer",type:"primary",target:"_blank",onClick:o[9]||(o[9]=e.withModifiers((()=>{}),["stop"]))},{default:e.withCtx((()=>[e.createTextVNode(e.toDisplayString(t.row.roomid),1)])),_:2},1032,["href"])])),_:1})])),_:1},8,["data","row-key"])),[[z,v.value]])])),_:1},8,["modelValue","disabled"])])),_:1},8,["modelValue"])])}}}),[["__scopeId","data-v-584fbcd9"]]),nt=e.defineComponent({__name:"OtherTasks",setup(t){const o=et(),i=o.moduleConfig.DailyTasks.OtherTasks,a=o.moduleStatus.DailyTasks.OtherTasks;return(t,o)=>{const n=e.resolveComponent("el-switch"),s=e.resolveComponent("Info"),r=e.resolveComponent("TaskStatus"),l=e.resolveComponent("el-space"),c=e.resolveComponent("el-row"),d=e.resolveComponent("el-text"),u=e.resolveComponent("el-option"),m=e.resolveComponent("el-select"),h=e.resolveComponent("el-divider");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(c,null,{default:e.withCtx((()=>[e.createVNode(l,{wrap:""},{default:e.withCtx((()=>[e.createVNode(n,{modelValue:e.unref(i).groupSign.enabled,"onUpdate:modelValue":o[0]||(o[0]=t=>e.unref(i).groupSign.enabled=t),"active-text":"应援团签到"},null,8,["modelValue"]),e.createVNode(s,{item:e.unref(tt).DailyTasks.OtherTasks.groupSign},null,8,["item"]),e.createVNode(r,{status:e.unref(a).groupSign},null,8,["status"])])),_:1})])),_:1}),e.createVNode(c,null,{default:e.withCtx((()=>[e.createVNode(l,{wrap:""},{default:e.withCtx((()=>[e.createVNode(n,{modelValue:e.unref(i).silverToCoin.enabled,"onUpdate:modelValue":o[1]||(o[1]=t=>e.unref(i).silverToCoin.enabled=t),"active-text":"银瓜子换硬币"},null,8,["modelValue"]),e.createVNode(s,{item:e.unref(tt).DailyTasks.OtherTasks.silverToCoin},null,8,["item"]),e.createVNode(r,{status:e.unref(a).silverToCoin},null,8,["status"])])),_:1})])),_:1}),e.createVNode(c,null,{default:e.withCtx((()=>[e.createVNode(l,{wrap:"",size:[8,0]},{default:e.withCtx((()=>[e.createVNode(n,{modelValue:e.unref(i).coinToSilver.enabled,"onUpdate:modelValue":o[2]||(o[2]=t=>e.unref(i).coinToSilver.enabled=t),"active-text":"硬币换银瓜子"},null,8,["modelValue"]),e.createVNode(d,null,{default:e.withCtx((()=>o[5]||(o[5]=[e.createTextVNode("花费硬币")]))),_:1}),e.createVNode(m,{modelValue:e.unref(i).coinToSilver.num,"onUpdate:modelValue":o[3]||(o[3]=t=>e.unref(i).coinToSilver.num=t),placeholder:"Select",style:{width:"64px"}},{default:e.withCtx((()=>[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(50,(t=>e.createVNode(u,{key:t,label:t,value:t},null,8,["label","value"]))),64))])),_:1},8,["modelValue"]),e.createVNode(d,null,{default:e.withCtx((()=>o[6]||(o[6]=[e.createTextVNode("个")]))),_:1}),e.createVNode(s,{item:e.unref(tt).DailyTasks.OtherTasks.coinToSilver},null,8,["item"]),e.createVNode(r,{status:e.unref(a).coinToSilver},null,8,["status"])])),_:1})])),_:1}),e.createVNode(c,null,{default:e.withCtx((()=>[e.createVNode(l,{wrap:"",size:[8,0]},{default:e.withCtx((()=>[e.createVNode(n,{modelValue:e.unref(i).getYearVipPrivilege.enabled,"onUpdate:modelValue":o[4]||(o[4]=t=>e.unref(i).getYearVipPrivilege.enabled=t),"active-text":"领取年度大会员权益"},null,8,["modelValue"]),e.createVNode(s,{item:e.unref(tt).DailyTasks.OtherTasks.getYearVipPrivilege},null,8,["item"]),e.createVNode(r,{status:e.unref(a).getYearVipPrivilege},null,8,["status"])])),_:1})])),_:1}),e.createVNode(h)])}}}),st=e.defineComponent({__name:"EnhanceExperience",setup(t){const o=et().moduleConfig.EnhanceExperience,i=["原画","蓝光PRO","蓝光","超清PRO","超清","高清"];return(t,a)=>{const n=e.resolveComponent("el-switch"),s=e.resolveComponent("el-option"),r=e.resolveComponent("el-select"),l=e.resolveComponent("Info"),c=e.resolveComponent("el-space"),d=e.resolveComponent("el-row"),u=e.resolveComponent("el-divider");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(d,null,{default:e.withCtx((()=>[e.createVNode(c,{wrap:"",size:[8,0]},{default:e.withCtx((()=>[e.createVNode(n,{modelValue:e.unref(o).switchLiveStreamQuality.enabled,"onUpdate:modelValue":a[0]||(a[0]=t=>e.unref(o).switchLiveStreamQuality.enabled=t),"active-text":"自动切换画质"},null,8,["modelValue"]),e.createVNode(r,{modelValue:e.unref(o).switchLiveStreamQuality.qualityDesc,"onUpdate:modelValue":a[1]||(a[1]=t=>e.unref(o).switchLiveStreamQuality.qualityDesc=t),placeholder:"Select",style:{width:"110px"}},{default:e.withCtx((()=>[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(i,(t=>e.createVNode(s,{key:t,label:t,value:t},null,8,["label","value"]))),64))])),_:1},8,["modelValue"]),e.createVNode(l,{item:e.unref(tt).EnhanceExperience.switchLiveStreamQuality},null,8,["item"])])),_:1})])),_:1}),e.createVNode(d,null,{default:e.withCtx((()=>[e.createVNode(c,{wrap:"",size:[8,0]},{default:e.withCtx((()=>[e.createVNode(n,{modelValue:e.unref(o).banp2p.enabled,"onUpdate:modelValue":a[2]||(a[2]=t=>e.unref(o).banp2p.enabled=t),"active-text":"禁用P2P"},null,8,["modelValue"]),e.createVNode(l,{item:e.unref(tt).EnhanceExperience.banp2p},null,8,["item"])])),_:1})])),_:1}),e.createVNode(d,null,{default:e.withCtx((()=>[e.createVNode(c,{wrap:"",size:[8,0]},{default:e.withCtx((()=>[e.createVNode(n,{modelValue:e.unref(o).noReport.enabled,"onUpdate:modelValue":a[3]||(a[3]=t=>e.unref(o).noReport.enabled=t),"active-text":"拦截日志数据上报"},null,8,["modelValue"]),e.createVNode(l,{item:e.unref(tt).EnhanceExperience.noReport},null,8,["item"])])),_:1})])),_:1}),e.createVNode(d,null,{default:e.withCtx((()=>[e.createVNode(c,{wrap:"",size:[8,0]},{default:e.withCtx((()=>[e.createVNode(n,{modelValue:e.unref(o).noSleep.enabled,"onUpdate:modelValue":a[4]||(a[4]=t=>e.unref(o).noSleep.enabled=t),"active-text":"屏蔽挂机检测"},null,8,["modelValue"]),e.createVNode(l,{item:e.unref(tt).EnhanceExperience.noSleep},null,8,["item"])])),_:1})])),_:1}),e.createVNode(d,null,{default:e.withCtx((()=>[e.createVNode(c,{wrap:"",size:[8,0]},{default:e.withCtx((()=>[e.createVNode(n,{modelValue:e.unref(o).invisibility.enabled,"onUpdate:modelValue":a[5]||(a[5]=t=>e.unref(o).invisibility.enabled=t),"active-text":"隐身入场"},null,8,["modelValue"]),e.createVNode(l,{item:e.unref(tt).EnhanceExperience.invisibility},null,8,["item"])])),_:1})])),_:1}),e.createVNode(u)])}}}),rt=e.defineComponent({__name:"RemoveElement",setup(t){const o=et().moduleConfig.RemoveElement;return(t,i)=>{const a=e.resolveComponent("el-switch"),n=e.resolveComponent("Info"),s=e.resolveComponent("el-space"),r=e.resolveComponent("el-row"),l=e.resolveComponent("el-divider");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(r,null,{default:e.withCtx((()=>[e.createVNode(s,{wrap:"",size:[8,0]},{default:e.withCtx((()=>[e.createVNode(a,{modelValue:e.unref(o).removePKBox.enabled,"onUpdate:modelValue":i[0]||(i[0]=t=>e.unref(o).removePKBox.enabled=t),"active-text":"移除大乱斗元素"},null,8,["modelValue"]),e.createVNode(n,{item:e.unref(tt).RemoveElement.removePKBox},null,8,["item"])])),_:1})])),_:1}),e.createVNode(r,null,{default:e.withCtx((()=>[e.createVNode(s,{wrap:"",size:[8,0]},{default:e.withCtx((()=>[e.createVNode(a,{modelValue:e.unref(o).removeLiveWaterMark.enabled,"onUpdate:modelValue":i[1]||(i[1]=t=>e.unref(o).removeLiveWaterMark.enabled=t),"active-text":"移除直播间水印"},null,8,["modelValue"]),e.createVNode(n,{item:e.unref(tt).RemoveElement.removeLiveWaterMark},null,8,["item"])])),_:1})])),_:1}),e.createVNode(r,null,{default:e.withCtx((()=>[e.createVNode(s,{wrap:"",size:[8,0]},{default:e.withCtx((()=>[e.createVNode(a,{modelValue:e.unref(o).removeShopPopover.enabled,"onUpdate:modelValue":i[2]||(i[2]=t=>e.unref(o).removeShopPopover.enabled=t),"active-text":"移除直播间小橙车弹窗"},null,8,["modelValue"]),e.createVNode(n,{item:e.unref(tt).RemoveElement.removeShopPopover},null,8,["item"])])),_:1})])),_:1}),e.createVNode(r,null,{default:e.withCtx((()=>[e.createVNode(s,{wrap:"",size:[8,0]},{default:e.withCtx((()=>[e.createVNode(a,{modelValue:e.unref(o).removeGameParty.enabled,"onUpdate:modelValue":i[3]||(i[3]=t=>e.unref(o).removeGameParty.enabled=t),"active-text":"移除直播间幻星派对标志"},null,8,["modelValue"]),e.createVNode(n,{item:e.unref(tt).RemoveElement.removeGameParty},null,8,["item"])])),_:1})])),_:1}),e.createVNode(r,null,{default:e.withCtx((()=>[e.createVNode(s,{wrap:"",size:[8,0]},{default:e.withCtx((()=>[e.createVNode(a,{modelValue:e.unref(o).removeGiftPopover.enabled,"onUpdate:modelValue":i[4]||(i[4]=t=>e.unref(o).removeGiftPopover.enabled=t),"active-text":"移除礼物赠送提示弹窗"},null,8,["modelValue"]),e.createVNode(n,{item:e.unref(tt).RemoveElement.removeGiftPopover},null,8,["item"])])),_:1})])),_:1}),e.createVNode(r,null,{default:e.withCtx((()=>[e.createVNode(s,{wrap:"",size:[8,0]},{default:e.withCtx((()=>[e.createVNode(a,{modelValue:e.unref(o).removeMicPopover.enabled,"onUpdate:modelValue":i[5]||(i[5]=t=>e.unref(o).removeMicPopover.enabled=t),"active-text":"移除连麦状态提示"},null,8,["modelValue"]),e.createVNode(n,{item:e.unref(tt).RemoveElement.removeMicPopover},null,8,["item"])])),_:1})])),_:1}),e.createVNode(r,null,{default:e.withCtx((()=>[e.createVNode(s,{wrap:"",size:[8,0]},{default:e.withCtx((()=>[e.createVNode(a,{modelValue:e.unref(o).removeComboCard.enabled,"onUpdate:modelValue":i[6]||(i[6]=t=>e.unref(o).removeComboCard.enabled=t),"active-text":"移除直播间相同弹幕连续提示"},null,8,["modelValue"]),e.createVNode(n,{item:e.unref(tt).RemoveElement.removeComboCard},null,8,["item"])])),_:1})])),_:1}),e.createVNode(r,null,{default:e.withCtx((()=>[e.createVNode(s,{wrap:"",size:[8,0]},{default:e.withCtx((()=>[e.createVNode(a,{modelValue:e.unref(o).removeRank.enabled,"onUpdate:modelValue":i[7]||(i[7]=t=>e.unref(o).removeRank.enabled=t),"active-text":"移除排行榜"},null,8,["modelValue"]),e.createVNode(n,{item:e.unref(tt).RemoveElement.removeRank},null,8,["item"])])),_:1})])),_:1}),e.createVNode(r,null,{default:e.withCtx((()=>[e.createVNode(s,{wrap:"",size:[8,0]},{default:e.withCtx((()=>[e.createVNode(a,{modelValue:e.unref(o).removeHeaderStuff.enabled,"onUpdate:modelValue":i[8]||(i[8]=t=>e.unref(o).removeHeaderStuff.enabled=t),"active-text":"移除直播画面上方杂项"},null,8,["modelValue"]),e.createVNode(n,{item:e.unref(tt).RemoveElement.removeHeaderStuff},null,8,["item"])])),_:1})])),_:1}),e.createVNode(r,null,{default:e.withCtx((()=>[e.createVNode(s,{wrap:"",size:[8,0]},{default:e.withCtx((()=>[e.createVNode(a,{modelValue:e.unref(o).removeFlipView.enabled,"onUpdate:modelValue":i[9]||(i[9]=t=>e.unref(o).removeFlipView.enabled=t),"active-text":"移除礼物栏下方广告"},null,8,["modelValue"]),e.createVNode(n,{item:e.unref(tt).RemoveElement.removeFlipView},null,8,["item"])])),_:1})])),_:1}),e.createVNode(r,null,{default:e.withCtx((()=>[e.createVNode(s,{"wrap:size":"[8, 0]"},{default:e.withCtx((()=>[e.createVNode(a,{modelValue:e.unref(o).removeRecommendRoom.enabled,"onUpdate:modelValue":i[10]||(i[10]=t=>e.unref(o).removeRecommendRoom.enabled=t),"active-text":"移除礼物栏下方推荐直播间"},null,8,["modelValue"]),e.createVNode(n,{item:e.unref(tt).RemoveElement.removeRecommendRoom},null,8,["item"])])),_:1})])),_:1}),e.createVNode(r,null,{default:e.withCtx((()=>[e.createVNode(s,{wrap:"",size:[8,0]},{default:e.withCtx((()=>[e.createVNode(a,{modelValue:e.unref(o).removeLiveMosaic.enabled,"onUpdate:modelValue":i[11]||(i[11]=t=>e.unref(o).removeLiveMosaic.enabled=t),"active-text":"移除直播间马赛克"},null,8,["modelValue"]),e.createVNode(n,{item:e.unref(tt).RemoveElement.removeLiveMosaic},null,8,["item"])])),_:1})])),_:1}),e.createVNode(l)])}}}),lt=k(e.defineComponent({__name:"ScriptSettings",setup(t){const o=y().uiConfig;return(t,i)=>{const a=e.resolveComponent("el-text"),n=e.resolveComponent("el-slider"),s=e.resolveComponent("el-space"),r=e.resolveComponent("el-row");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(r,{align:"middle"},{default:e.withCtx((()=>[e.createVNode(s,{wrap:"",size:[16,0]},{default:e.withCtx((()=>[e.createVNode(a,{class:"label-text"},{default:e.withCtx((()=>i[1]||(i[1]=[e.createTextVNode("控制面板宽度")]))),_:1}),e.createVNode(n,{style:{width:"150px"},class:"slider",modelValue:e.unref(o).panelWidthPercent,"onUpdate:modelValue":i[0]||(i[0]=t=>e.unref(o).panelWidthPercent=t),min:30,max:60},null,8,["modelValue"])])),_:1})])),_:1})])}}}),[["__scopeId","data-v-1cb0d081"]]),ct=e.defineComponent({components:{MainSiteTasks:ot,LiveTasks:at,OtherTasks:nt,EnhanceExperience:st,RemoveElement:rt,ScriptSettings:lt}}),dt=e.defineComponent({...ct,__name:"PanelMain",setup(t){const o=y();return(t,i)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(o).uiConfig.activeMenuIndex)))}}),ut=k(e.defineComponent({__name:"App",setup(t){const i=y(),a=new G("App.vue");let n,s,r=i.uiConfig.isShowPanel;function c(){const e=n.getBoundingClientRect();i.livePlayerRect.top=e.top,i.livePlayerRect.left=e.left,i.livePlayerRect.height=e.height,i.livePlayerRect.width=e.width,i.windowScrollPosition.x=v.scrollX,i.windowScrollPosition.y=v.scrollY}i.uiConfig.isShowPanel=!1;const d=o.throttle((function(){i.changeShowPanel(),s.innerText=i.isShowPanelButtonText}),300);if(n=oe("#live-player-ctnr"),n){c(),function(e,t,o=5e3){return new Promise(((i,a)=>{const n=e.querySelector(t);if(n)return void i(n);const s=new MutationObserver((()=>{const o=e.querySelector(t);o&&(clearTimeout(r),s.disconnect(),i(o))}));s.observe(e,{childList:!0,subtree:!0});const r=setTimeout((()=>{s.disconnect(),a(new Error(`无法在${o}毫秒内找到${e.localName}的子节点${t}`))}),o)}))}(oe("#player-ctnr"),".left-ctnr.left-header-area",1e4).then((e=>{var t;s=ie("button"),s.setAttribute("class","blth_btn"),s.onclick=d,s.innerText=i.isShowPanelButtonText,e.append(s),ae()||l("alt+b",{element:null==(t=window.top)?void 0:t.document.documentElement},d),l("alt+b",d)})).catch((e=>a.error(e))),window.addEventListener("resize",(()=>c()));const e=new MutationObserver((()=>c()));e.observe(document.body,{attributes:!0}),e.observe(document.documentElement,{attributes:!0}),r&&(i.uiConfig.isShowPanel=!0)}else a.error("livePlayer not found");return(t,o)=>{const a=e.resolveComponent("el-header"),n=e.resolveComponent("el-aside"),s=e.resolveComponent("el-scrollbar"),r=e.resolveComponent("el-main"),l=e.resolveComponent("el-container"),c=e.resolveComponent("el-collapse-transition");return e.openBlock(),e.createBlock(c,null,{default:e.withCtx((()=>[e.withDirectives(e.createVNode(l,{style:e.normalizeStyle(e.unref(i).panelStyle),class:"base"},{default:e.withCtx((()=>[e.createVNode(a,{class:"header"},{default:e.withCtx((()=>[e.createVNode(C)])),_:1}),e.createVNode(l,null,{default:e.withCtx((()=>[e.createVNode(n,{class:"aside"},{default:e.withCtx((()=>[e.createVNode(T)])),_:1}),e.createVNode(r,{class:"main"},{default:e.withCtx((()=>[e.createVNode(s,{height:e.unref(i).scrollBarHeight},{default:e.withCtx((()=>[(e.openBlock(),e.createBlock(e.KeepAlive,null,[e.createVNode(e.Transition,{name:"fade",mode:"out-in"},{default:e.withCtx((()=>[e.createVNode(dt)])),_:1})],1024))])),_:1},8,["height"])])),_:1})])),_:1})])),_:1},8,["style"]),[[e.vShow,e.unref(i).uiConfig.isShowPanel]])])),_:1})}}}),[["__scopeId","data-v-24895187"]]);(e=>{const t=GM_getResourceText(e);GM_addStyle(t)})("element-plus/dist/index.css");const mt={xmlns:"http://www.w3.org/2000/svg",width:"128",height:"128",class:"icon",viewBox:"0 0 1024 1024"};const ht=k({},[["render",function(t,o){return e.openBlock(),e.createElementBlock("svg",mt,o[0]||(o[0]=[e.createElementVNode("path",{d:"M831.825 63.94H191.94c-70.692 0-128 57.308-128 128v639.885c0 70.692 57.308 128 128 128h639.885c70.692 0 128-57.308 128-128V191.94c0-70.692-57.308-128-128-128zM895.885 832a63.835 63.835 0 0 1-63.973 63.886H192.088c-17.112 0-33.27-6.575-45.372-18.676S127.88 849.112 127.88 832V192a64.236 64.236 0 0 1 64.208-64.12h639.824A64.038 64.038 0 0 1 895.885 192v640z"},null,-1),e.createElementVNode("path",{d:"M791.998 351.852H536a31.97 31.97 0 0 0 0 63.94h256a31.97 31.97 0 0 0 0-63.94zm0 256.121H536a31.97 31.97 0 0 0 0 63.94h256a31.97 31.97 0 0 0 0-63.94zm-447.996-79.975c-61.856 0-111.986 50.144-111.986 111.985S282.16 751.97 344.002 751.97s111.985-50.144 111.985-111.986-50.13-111.985-111.985-111.985zm33.982 145.982a48.045 48.045 0 1 1 14.088-33.982 47.746 47.746 0 0 1-14.088 33.986zm39.412-376.586L311.999 402.787l-41.391-41.395a31.97 31.97 0 1 0-45.213 45.213l63.997 64.002a31.97 31.97 0 0 0 45.214 0l128-128a31.97 31.97 0 0 0-45.21-45.213z"},null,-1)]))}]]),gt=k(e.defineComponent({__name:"InfoIcon",props:{item:{}},setup(t){const o=t,i=()=>{const{title:e,message:t}=o.item;s.ElMessageBox({title:e,message:t,lockScroll:!1,autofocus:!0,confirmButtonText:"OK"}).catch((()=>{}))};return(t,o)=>{const a=e.resolveComponent("el-icon");return e.openBlock(),e.createBlock(a,{class:"info-icon",onClick:i},{default:e.withCtx((()=>o[0]||(o[0]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"128",height:"128",class:"icon",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"#276BC0",d:"M512.67 959.47c-246.343 0-446.76-200.632-446.76-447.24S266.326 64.98 512.67 64.98s446.76 200.642 446.76 447.25-200.416 447.24-446.76 447.24zm0-829.04c-210.291 0-381.38 171.283-381.38 381.8s171.089 381.79 381.38 381.79 381.381-171.273 381.381-381.79-171.09-381.8-381.38-381.8z"}),e.createElementVNode("path",{fill:"#276BC0",d:"M447.29 317.172a63.891 63.959 0 1 0 130.76 0 63.891 63.959 0 1 0-130.76 0Zm64.907 503.047c-30.093 0-54.235-24.416-54.235-54.541V482.062c0-30.126 24.142-54.541 54.235-54.541 30.094 0 54.236 24.416 54.236 54.541v283.616c0 30.125-24.142 54.54-54.236 54.54z"})],-1)]))),_:1})}}}),[["__scopeId","data-v-38289ed3"]]),pt=k(e.defineComponent({__name:"TaskStatusIcon",props:{status:{}},setup:t=>(t,o)=>{const i=e.resolveComponent("Loading"),a=e.resolveComponent("el-icon"),n=e.resolveComponent("Select"),s=e.resolveComponent("CloseBold");return"running"===t.status?(e.openBlock(),e.createBlock(a,{key:0,class:"status-icon is-loading"},{default:e.withCtx((()=>[e.createVNode(i)])),_:1})):"done"===t.status?(e.openBlock(),e.createBlock(a,{key:1,class:"status-icon",style:{color:"#1ab059"}},{default:e.withCtx((()=>[e.createVNode(n)])),_:1})):"error"===t.status?(e.openBlock(),e.createBlock(a,{key:2,class:"status-icon",style:{color:"#ff6464"}},{default:e.withCtx((()=>[e.createVNode(s)])),_:1})):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-b4254e0f"]]),ft=Object.freeze(Object.defineProperty({__proto__:null,Info:gt,TaskStatus:pt,Tasks:ht},Symbol.toStringTag,{value:"Module"})),vt=new G("Main");vt.log("document.readyState",document.readyState);const wt=t.createPinia(),_t=Je(wt),xt=et(wt);if(_t.checkCurrentScriptType(),vt.log("当前脚本的类型为",_t.currentScriptType),"Main"===_t.currentScriptType&&_t.startMainBLTHAliveHeartBeat(),xt.loadModules("unknown"),await O("document-body"),document.head.innerHTML.includes("BilibiliLive")){const t=e.createApp(ut);t.use(s),t.use(wt);for(const[e,o]of Object.entries(d))t.component(e,o);for(const[e,o]of Object.entries(ft))t.component(e,o);xt.loadModules("yes"),await O("document-end");const o=ie("div");o.id="BLTH",document.body.append(o),t.mount(o)}}(Vue,Pinia,_,ElementPlusIconsVue,CryptoJS,luxon,ElementPlus,VueDraggablePlus,hotkeys);