From 33c3b3a989c64fd7514d9be3e7ac62e175ba6fd8 Mon Sep 17 00:00:00 2001 From: the1812 Date: Mon, 7 Oct 2019 12:03:07 +0800 Subject: [PATCH] Fix simplify liveroom not work with guard danmakus --- bilibili-evolved.offline.user.js | 8 ++++---- bilibili-evolved.preview-offline.user.js | 8 ++++---- bilibili-evolved.preview.user.js | 6 +++--- bilibili-evolved.user.js | 6 +++--- min/bundle.json | 6 +++--- min/bundle.zip | Bin 1376324 -> 1376304 bytes min/dark-important.min.css | 2 +- min/download-video.min.html | 2 +- min/simplify-liveroom.min.css | 2 +- .../simplify-liveroom/simplify-liveroom.scss | 8 ++++++-- 10 files changed, 26 insertions(+), 22 deletions(-) diff --git a/bilibili-evolved.offline.user.js b/bilibili-evolved.offline.user.js index 29300d9fd..77d68b7e9 100644 --- a/bilibili-evolved.offline.user.js +++ b/bilibili-evolved.offline.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name Bilibili Evolved (Offline) -// @version 443.82 +// @version 447.84 // @description Bilibili Evolved 的离线版, 所有功能都已内置于脚本中. // @author Grant Howard, Coulomb-G // @copyright 2019, Grant Howard (https://github.com/the1812) & Coulomb-G (https://github.com/Coulomb-G) @@ -1056,7 +1056,7 @@ offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/m offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/custom-navbar.min.html"] = `

顶栏布局

边缘间距: 设定两侧边缘处的间距, 单位为百分比, 100%为整个顶栏的宽度. 允许设置的范围为 0% ~ 40%
{{boundsPadding}}%
顺序与显示: 在左侧的条状图标上拖动可以改变它们的顺序, 或者按住名字一会再拖动也可以调顺序. 点击右侧的眼睛图标可以显示/隐藏它们.
`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/custom-navbar.min.js"] = (()=>{return(i,t)=>{if(isIframe()){return}document.body.style.setProperty("--navbar-bounds-padding",`0 ${i.customNavbarBoundsPadding}%`);document.body.style.setProperty("--navbar-blur-opacity",i.customNavbarBlurOpacity||.7);addSettingsListener("customNavbarBlurOpacity",i=>{document.body.style.setProperty("--navbar-blur-opacity",i)});let e=true;const a={widget:{content:`\n
\n\n顶栏布局\n
`,condition:()=>e,success:async()=>{await SpinQuery.select(".custom-navbar-settings");await t.importAsync("slip");const{debounce:e}=await t.importAsync("debounce");const a=document.querySelector("#custom-navbar-settings");a.addEventListener("click",async()=>{const i=dq(".custom-navbar-settings");if(i){i.classList.toggle("show");document.querySelector(".gui-settings-mask").click()}});a.addEventListener("mouseover",()=>{const t={blank1:"弹性空白1",logo:"Logo",category:"主站",rankingLink:"排行",drawingLink:"相簿",musicLink:"音频",gamesIframe:"游戏中心",livesIframe:"直播",shopLink:"会员购",mangaLink:"漫画",blank2:"弹性空白2",search:"搜索框",userInfo:"用户信息",messages:"消息",activities:"动态",bangumi:"订阅",watchlaterList:"稍后再看",favoritesList:"收藏",historyList:"历史",upload:"投稿入口",blank3:"弹性空白3"};Vue.component("order-item",{props:["item"],template:`\n
  • \n\n{{item.displayName}}\n\n
  • \n`,methods:{hidden(){return i.customNavbarHidden.includes(this.item.name)},viewBorder(i){const t=document.querySelector(`.custom-navbar li[data-name='${this.item.name}']`);if(t!==null){t.classList[i?"add":"remove"]("view-border")}},toggleHidden(){const t=this.hidden();if(t===false){i.customNavbarHidden.push(this.item.name);i.customNavbarHidden=i.customNavbarHidden}else{const t=i.customNavbarHidden.indexOf(this.item.name);if(t===-1){return}i.customNavbarHidden.splice(t,1);i.customNavbarHidden=i.customNavbarHidden}this.$forceUpdate();const e=document.querySelector(`.custom-navbar li[data-name='${this.item.name}']`);if(e!==null){e.style.display=t?"flex":"none"}}}});const a=e(t=>{i.customNavbarBoundsPadding=t;document.body.style.setProperty("--navbar-bounds-padding",`0 ${t}%`)},200);new Vue({el:".custom-navbar-settings",mounted(){const t=document.querySelector(".custom-navbar-settings .order-list");const e=({sourceItem:e,targetItem:a,orderBefore:s,orderAfter:n})=>{if(s===n){return}const l=Object.entries(i.customNavbarOrder).filter(([i])=>i in customNavbarDefaultOrders);const o=l.sort((i,t)=>i[1]-t[1]).map(i=>i[0]);if(s=n;t--){const e=o[t];i.customNavbarOrder[e]=t+1;document.querySelector(`.custom-navbar li[data-name='${e}']`).style.order=t+1}}i.customNavbarOrder[o[s]]=n;document.querySelector(`.custom-navbar li[data-name='${o[s]}']`).style.order=n;i.customNavbarOrder=i.customNavbarOrder;t.insertBefore(e,a)};new Slip(t);t.addEventListener("slip:beforewait",i=>{if(i.target.classList.contains("mdi-menu")){i.preventDefault()}},false);t.addEventListener("slip:beforeswipe",i=>i.preventDefault(),false);t.addEventListener("slip:reorder",i=>{e({sourceItem:i.target,targetItem:i.detail.insertBefore,orderBefore:i.detail.originalIndex,orderAfter:i.detail.spliceIndex});return false},false)},computed:{orderList(){const e=Object.entries(i.customNavbarOrder);return e.filter(i=>i[0]in t).sort((i,t)=>i[1]-t[1]).map(i=>{return{displayName:t[i[0]],name:i[0],order:i[1]}})}},data:{boundsPadding:i.customNavbarBoundsPadding},watch:{boundsPadding(i){a(i)}},methods:{close(){document.querySelector(".custom-navbar-settings").classList.remove("show")},restoreDefault(){if(typeof customNavbarDefaultOrders==="undefined"){Toast.error("未找到默认值设定, 请更新您的脚本.");return}if(confirm("确定要恢复默认顶栏布局吗? 恢复后页面将刷新.")){this.boundsPadding=5;i.customNavbarOrder=customNavbarDefaultOrders;location.reload()}}}})},{once:true})}},unload:()=>{const i=document.querySelectorAll(".custom-navbar,.custom-navbar-settings");i.forEach(i=>i.style.display="none");t.removeStyle("customNavbarStyle")},reload:()=>{const i=document.querySelectorAll(".custom-navbar,.custom-navbar-settings");i.forEach(i=>i.style.display="flex");t.applyImportantStyle("customNavbarStyle")}};const s=(i,t,e)=>{e.classList[t?"add":"remove"](i)};const n=i=>{document.querySelector(".custom-navbar").classList[i?"add":"remove"]("dark");document.querySelector(".custom-navbar-settings").classList[i?"add":"remove"]("dark")};addSettingsListener("allNavbarFill",i=>s("all-navbar-fill",i,document.body));s("all-navbar-fill",i.allNavbarFill,document.body);const l=["//www.bilibili.com","//t.bilibili.com","//search.bilibili.com","//space.bilibili.com","//account.bilibili.com","//pay.bilibili.com","//member.bilibili.com","//big.bilibili.com","//message.bilibili.com","//app.bilibili.com","//passport.bilibili.com","//game.bilibili.com","//live.bilibili.com/blackboard/"];const o=["//t.bilibili.com/lottery/h5/index/#/result","//member.bilibili.com/video/upload","//space.bilibili.com/ajax/","//www.bilibili.com/h5/comment/"];if(!l.some(i=>document.URL.includes(i))||o.some(i=>document.URL.includes(i))){e=false;return a}document.body.classList.add("custom-navbar-loading");let c={};let r={};let d;class m{constructor(){this.html=``;this.popupHtml=``;this.flex=`0 0 auto`;this.disabled=false;this.requestedPopup=false;this.initialPopup=null;this.onPopup=null;this.href=null;this.notifyCount=0;this.touch=i.touchNavBar;this.active=false}get name(){return"undefined"}get order(){return i.customNavbarOrder[this.name]}get hidden(){return i.customNavbarHidden.includes(this.name)}async setNotifyCount(i){const t=await SpinQuery.select(`.custom-navbar li[data-name='${this.name}'] .notify-count`);if(!t||!i){t.innerHTML="";return}t.innerHTML=i}}class u extends m{constructor(i){super();this.number=i;this.flex="1 0 auto";this.disabled=true}get name(){return"blank"+this.number}}class p extends m{constructor(){super();this.getLogo();this.href=`https://www.bilibili.com/`;this.touch=false;addSettingsListener("customNavbarSeasonLogo",()=>this.getLogo())}async getLogo(){if(i.customNavbarSeasonLogo){const i=await Ajax.getJson("https://api.bilibili.com/x/web-show/res/locs?pf=0&ids=142");if(i.code===0){this.html=``;return}}this.html=``}get name(){return"logo"}}class b extends m{constructor(i,t,e){super();this.linkName=e;this.html=i;this.href=t;this.touch=false;this.active=document.URL.startsWith(t)}get name(){return this.linkName+"Link"}}class h extends m{constructor(){super();this.href="https://member.bilibili.com/v2#/upload/video/frame";this.html=`\n\n\n\n
    投稿
    `;this.popupHtml=`\n\n`}get name(){return"upload"}}class v extends m{constructor(){super();this.href="https://message.bilibili.com/";this.html="消息";this.popupHtml=`\n\n`;this.requestedPopup=true;this.active=document.URL.startsWith("https://message.bilibili.com/");this.init()}get name(){return"messages"}async init(){const i=await Ajax.getJsonWithCredentials("https://message.bilibili.com/api/notify/query.notify.count.do");const t=await SpinQuery.select("#message-list");const e=[...t.querySelectorAll("a[data-name]")];const a=e.map(i=>i.getAttribute("data-name"));if(i.code!==0){return}let s=a.reduce((t,e)=>t+i.data[e],0);if(!s){return}await this.setNotifyCount(s);a.forEach((t,a)=>{const s=i.data[t];if(s>0){e[a].setAttribute("data-count",s)}else{e[a].removeAttribute("data-count")}});e.forEach(i=>{i.addEventListener("click",()=>{const t=i.getAttribute("data-count");i.removeAttribute("data-count");s-=t;this.setNotifyCount(s)})})}}class w extends m{constructor(){super();this.html=`主站`;this.popupHtml=`\n\n`;const i=async()=>{const i=await Ajax.getJson("https://api.bilibili.com/x/web-interface/online");if(parseInt(i.code)!==0){throw new Error(`[自定义顶栏] 分区投稿信息获取失败: ${i.message}`)}const t=i.data.region_count;await SpinQuery.select("#custom-navbar-home-popup");return{"动画":{icon:"douga",count:t[1],link:`https://www.bilibili.com/v/douga/`,subRegions:{"MAD·AMV":`https://www.bilibili.com/v/douga/mad/`,"MMD·3D":`https://www.bilibili.com/v/douga/mmd/`,"短片·手书·配音":`https://www.bilibili.com/v/douga/voice/`,"综合":`https://www.bilibili.com/v/douga/other/`}},"番剧":{icon:"anime",count:t[13],link:`https://www.bilibili.com/anime/`,subRegions:{"连载动画":`https://www.bilibili.com/v/anime/serial/`,"完结动画":`https://www.bilibili.com/v/anime/finish/`,"资讯":`https://www.bilibili.com/v/anime/information/`,"官方延伸":`https://www.bilibili.com/v/anime/offical/`,"新番时间表":`https://www.bilibili.com/anime/timeline/`}},"国创":{icon:"guochuang",count:t[167],link:`https://www.bilibili.com/guochuang/`,subRegions:{"国产动画":`https://www.bilibili.com/v/guochuang/chinese/`,"国产原创相关":`https://www.bilibili.com/v/guochuang/original/`,"布袋戏":`https://www.bilibili.com/v/guochuang/puppetry/`,"资讯":`https://www.bilibili.com/v/guochuang/information/`,"新番时间表":`https://www.bilibili.com/guochuang/timeline/`,"国产动画索引":`https://www.bilibili.com/guochuang/index/`}},"音乐":{icon:"music",count:t[3],link:`https://www.bilibili.com/v/music/`,subRegions:{"原创音乐":"https://www.bilibili.com/v/music/original/","翻唱":"https://www.bilibili.com/v/music/cover/","VOCALOID·UTAU":"https://www.bilibili.com/v/music/vocaloid/","电音":"https://www.bilibili.com/v/music/electronic/","演奏":"https://www.bilibili.com/v/music/perform/",MV:"https://www.bilibili.com/v/music/mv/","音乐现场":"https://www.bilibili.com/v/music/live/","音乐综合":"https://www.bilibili.com/v/music/other/","音频":"https://www.bilibili.com/audio/home?musicType=music"}},"舞蹈":{icon:"dance",count:t[129],link:`https://www.bilibili.com/v/dance/`,subRegions:{"宅舞":"https://www.bilibili.com/v/dance/otaku/","三次元舞蹈":"https://www.bilibili.com/v/dance/three_d/","舞蹈教程":"https://www.bilibili.com/v/dance/demo/"}},"游戏":{icon:"game",count:t[4],link:`https://www.bilibili.com/v/game/`,subRegions:{"单机游戏":"https://www.bilibili.com/v/game/stand_alone/","电子竞技":"https://www.bilibili.com/v/game/esports/","手机游戏":"https://www.bilibili.com/v/game/mobile/","网络游戏":"https://www.bilibili.com/v/game/online/","桌游棋牌":"https://www.bilibili.com/v/game/board/",GMV:"https://www.bilibili.com/v/game/gmv/","音游":"https://www.bilibili.com/v/game/music/",Mugen:"https://www.bilibili.com/v/game/mugen/","游戏赛事":"https://www.bilibili.com/v/game/match/"}},"科技":{icon:"technology",count:t[36],link:`https://www.bilibili.com/v/technology/`,subRegions:{"趣味科普人文":"https://www.bilibili.com/v/technology/fun/","野生技术协会":"https://www.bilibili.com/v/technology/wild/","演讲·公开课":"https://www.bilibili.com/v/technology/speech_course/","星海":"https://www.bilibili.com/v/technology/military/","机械":"https://www.bilibili.com/v/technology/mechanical/","汽车":"https://www.bilibili.com/v/technology/automobile/"}},"数码":{icon:"digital",count:t[188],link:`https://www.bilibili.com/v/digital/`,subRegions:{"手机平板":"https://www.bilibili.com/v/digital/mobile/","电脑装机":"https://www.bilibili.com/v/digital/pc/","摄影摄像":"https://www.bilibili.com/v/digital/photography/","影音智能":"https://www.bilibili.com/v/digital/intelligence_av/"}},"生活":{icon:"life",count:t[160],link:`https://www.bilibili.com/v/life/`,subRegions:{"搞笑":"https://www.bilibili.com/v/life/funny/","日常":"https://www.bilibili.com/v/life/daily/","美食圈":"https://www.bilibili.com/v/life/food/","动物圈":"https://www.bilibili.com/v/life/animal/","手工":"https://www.bilibili.com/v/life/handmake/","绘画":"https://www.bilibili.com/v/life/painting/","运动":"https://www.bilibili.com/v/life/sports/","其他":"https://www.bilibili.com/v/life/other/"}},"鬼畜":{icon:"kichiku",count:t[119],link:`https://www.bilibili.com/v/kichiku/`,subRegions:{"鬼畜调教":"https://www.bilibili.com/v/kichiku/guide/","音MAD":"https://www.bilibili.com/v/kichiku/mad/","人力VOCALOID":"https://www.bilibili.com/v/kichiku/manual_vocaloid/","教程演示":"https://www.bilibili.com/v/kichiku/course/"}},"时尚":{icon:"fashion",count:t[155],link:`https://www.bilibili.com/v/fashion/`,subRegions:{"美妆":"https://www.bilibili.com/v/fashion/makeup/","服饰":"https://www.bilibili.com/v/fashion/clothing/","健身":"https://www.bilibili.com/v/fashion/aerobics/","T台":"https://www.bilibili.com/v/fashion/catwalk/","风尚标":"https://www.bilibili.com/v/fashion/trends/"}},"广告":{icon:"ad",count:t[165],link:`https://www.bilibili.com/v/ad/ad/`},"娱乐":{icon:"ent",count:t[5],link:`https://www.bilibili.com/v/ent/`,subRegions:{"综艺":"https://www.bilibili.com/v/ent/variety/","明星":"https://www.bilibili.com/v/ent/star/","Korea相关":"https://www.bilibili.com/v/ent/korea/"}},"影视":{icon:"cinephile",count:t[181],link:`https://www.bilibili.com/v/cinephile/`,subRegions:{"影视杂谈":"https://www.bilibili.com/v/cinephile/cinecism/","影视剪辑":"https://www.bilibili.com/v/cinephile/montage/","短片":"https://www.bilibili.com/v/cinephile/shortfilm/","预告·资讯":"https://www.bilibili.com/v/cinephile/trailer_info/","特摄":"https://www.bilibili.com/v/cinephile/tokusatsu/"}},"放映厅":{icon:"cinema",count:t[177]+t[23]+t[11],link:`https://www.bilibili.com/cinema/`,subRegions:{"纪录片":"https://www.bilibili.com/documentary/","电影":"https://www.bilibili.com/movie/","电视剧":"https://www.bilibili.com/tv/"}},"专栏":{icon:"read",count:``,link:`https://www.bilibili.com/read/home`},"直播":{icon:"zhibo",count:``,link:`https://live.bilibili.com`,subRegions:{"全部直播":"https://live.bilibili.com/all?visit_id=5icxsa0kmts0","游戏直播":"https://live.bilibili.com/p/eden/area-tags?parentAreaId=2&areaId=0&visit_id=5icxsa0kmts0#/2/0","手游直播":"https://live.bilibili.com/p/eden/area-tags?parentAreaId=3&areaId=0&visit_id=5icxsa0kmts0#/3/0","娱乐直播":"https://live.bilibili.com/p/eden/area-tags?parentAreaId=1&areaId=0&visit_id=5icxsa0kmts0#/1/0","电台直播":"https://live.bilibili.com/p/eden/area-tags?parentAreaId=5&areaId=0&visit_id=5icxsa0kmts0#/5/0","绘画直播":"https://live.bilibili.com/p/eden/area-tags?parentAreaId=4&areaId=0&visit_id=5icxsa0kmts0#/4/0"}},"小黑屋":{icon:"blackroom",count:``,link:`https://www.bilibili.com/blackroom/`},"话题":{icon:"topic",count:``,link:`https://www.bilibili.com/blackboard/topic_list.html`},"活动":{icon:"activit",count:``,link:`https://www.bilibili.com/blackboard/x/act_list`}}};this.initialPopup=(async()=>{new Vue({el:await SpinQuery.select("#custom-navbar-home-popup"),data:{info:[],loading:true},async mounted(){try{this.info=Object.entries(await i())}finally{this.loading=false}}})})}get name(){return"category"}}class g extends m{constructor(){super();this.noPadding=true;this.href="https://space.bilibili.com";this.html=`\n
    \n\n\n
    \n`;this.popupHtml=`\n\n`;this.requestedPopup=true;this.init()}get name(){return"userInfo"}async init(){const i=await SpinQuery.select(".custom-navbar .user-info-panel");new Vue({el:i,data:{...c},computed:{userType(){if(!this.isLogin){return"未登录"}if(this.level_info.current_level===0){return"注册会员"}if(this.vipStatus===1){if(this.vipType===1){return this.vip_theme_type?"小会员":"大会员"}else if(this.vipType===2){return this.vip_theme_type?"年度小会员":"年度大会员"}}return"正式会员"},levelProgressStyle(){const i=(this.level_info.current_exp-this.level_info.current_min)/(this.level_info.next_exp-this.level_info.current_min);return{transform:`scaleX(${i})`}}}});const t=await SpinQuery.select(".custom-navbar .user-face-container .user-face");if(c.isLogin){const i=c.face.replace("http","https");const e=68;const a=[1,1.25,1.5,1.75,2,2.25,2.5,2.75,3,3.25,3.5,3.75,4];t.setAttribute("srcset",a.map(t=>{return`${i}@${parseInt(e*t)}w_${parseInt(e*t)}h.jpg ${t}x`}).join(","));if(c.pendant.image){const i=await SpinQuery.select(".custom-navbar .user-face-container .user-pendant");const t=c.pendant.image.replace("http","https");const e=116;i.setAttribute("srcset",a.reduce((i,a)=>{return i+`, ${t}@${parseInt(e*a)}w_${parseInt(e*a)}h.png ${a}x`},""))}}else{t.setAttribute("src","https://static.hdslb.com/images/akari.jpg")}}}class f extends m{constructor(){super();this.disabled=true;this.html=`\n\n\n`;this.init()}async init(){const e=await SpinQuery.select("#custom-navbar-search");const a=e.querySelector("input[name='keyword']");e.addEventListener("submit",t=>{if(a.value===""){if(!i.hideTopSearch){e.querySelector(".recommended-target").click()}t.preventDefault();return false}const s=i.searchHistory.find(i=>i.keyword===a.value);if(s){s.count++}else{i.searchHistory.push({count:1,keyword:a.value})}i.searchHistory=i.searchHistory;return true});if(!i.hideTopSearch){const i=await Ajax.getJson("https://api.bilibili.com/x/web-interface/search/default");if(i.code===0){a.setAttribute("placeholder",i.data.show_name);let t;if(i.data.url!==""){t=i.data.url}else if(i.data.name.startsWith("av")){t=`https://www.bilibili.com/${i.data.name}`}else{t=`https://search.bilibili.com/all?keyword=${i.data.name}`}e.querySelector(".recommended-target").setAttribute("href",t)}else{console.error("[自定义顶栏] 获取搜索推荐词失败")}}const s=new Vue({el:dq(".popup.search-list"),data:{items:[],isHistory:true},methods:{submit(i){a.value=i;e.submit();raiseEvent(e,"submit")},nextItem(i){const t=dq(`.custom-navbar .search-list-item:nth-child(${i+2})`);if(t){t.focus()}},previousItem(i){const t=dq(`.custom-navbar .search-list-item:nth-child(${i})`);if(t){t.focus()}else{a.focus();return}},deleteItem(t,e){i.searchHistory.splice(i.searchHistory.findIndex(i=>i.keyword===t.value),1);i.searchHistory=i.searchHistory;this.items.splice(e,1)},clearSearchHistory(){i.searchHistory=[];this.items=[]}}});const{debounce:n}=await t.importAsync("debounce");let l="";const o=async()=>{const t=a.value;s.isHistory=t==="";if(s.isHistory){s.items=i.searchHistory.sort((i,t)=>t.count-i.count).map(i=>{return{value:i.keyword,html:i.keyword}}).slice(0,10)}else{const i=`https://s.search.bilibili.com/main/suggest?func=suggest&suggest_type=accurate&sub_type=tag&main_ver=v1&highlight=&userid=${c.mid}&bangumi_acc_num=1&special_acc_num=1&topic_acc_num=1&upuser_acc_num=3&tag_num=10&special_num=10&bangumi_num=10&upuser_num=3&term=${t}`;l=i;const e=await Ajax.getJson(i);if(e.code!==0||l!==i){return}const a=e.result.tag;if(a===undefined){s.items=[];return}s.items=a.map(i=>{return{value:i.value,html:i.name.replace(/suggest_high_light/g,"suggest-highlight")}})}};o();const r=n(o,200);let d=false;a.addEventListener("compositionstart",()=>d=true);a.addEventListener("compositionend",()=>{d=false;raiseEvent(a,"input")});a.addEventListener("input",()=>{if(!d){r()}});a.addEventListener("keydown",i=>{if(i.key==="ArrowDown"&&s.items.length>0){i.preventDefault();dq(".custom-navbar .search-list-item:first-child").focus()}})}get name(){return"search"}}class y extends m{constructor(i,t,{src:e,width:a,height:s,lazy:n,iframeName:l}){super();this.iframeName=l;this.html=i;this.href=t;this.popupHtml=`\n\n`;this.noPadding=true;this.requestedPopup=n?false:true;this.touch=false;this.transparent=true}get name(){return this.iframeName+"Iframe"}}class _ extends y{constructor(...t){super(...t);this.touch=i.touchNavBar;this.getNotifyCount()}getApiUrl(){return null}getCount(){return 0}async getNotifyCount(){const i=await SpinQuery.select(`.custom-navbar li[data-name='${this.name}'] .notify-count`);const t=await Ajax.getJsonWithCredentials(this.getApiUrl());const e=this.getCount(t);if(t.code===0&&e){i.innerHTML=e;this.initialPopup=(()=>{i.innerHTML=""})}}}let k=()=>{};let x=()=>{};const $=({dataObject:i,apiUrl:e,name:a,handleJson:s,template:n})=>{return{template:n,components:{"dpi-img":()=>t.importAsync("dpi-img.vue")},methods:{handleJson:s,async fetchData(i=false){try{const t=await Ajax.getJsonWithCredentials(e);if(t.code!==0){throw new Error(t.message)}await this.handleJson(t)}catch(t){if(i===true){return}logError(`加载${a}动态失败, error = ${t}`)}finally{this.loading=false}}},data(){return Object.assign({loading:true},i)},mounted(){this.fetchData();k=(async()=>await this.fetchData(true))},destroyed(){k=(()=>{})}}};class L extends m{constructor(){super();this.noPadding=true;this.href=i.oldTweets?"https://www.bilibili.com/account/dynamic":"https://t.bilibili.com/";this.html="动态";this.popupHtml=`\n
    \n\n
    \n\n\n\n\x3c!-- 查看更多 --\x3e\n
    \n
    \n`;this.active=document.URL.replace(/\?.*$/,"")==="https://t.bilibili.com/";this.initialPopup=(()=>{this.init()});this.onPopup=(()=>{this.setNotifyCount(0)});this.getNotifyCount();setInterval(async()=>{await this.getNotifyCount();await x();await k()},L.updateInterval)}static get updateInterval(){return 5*60*1e3}static getLatestID(){return document.cookie.replace(new RegExp(`(?:(?:^|.*;\\s*)bp_t_offset_${c.mid}\\s*\\=\\s*([^;]*).*$)|^.*$`),"$1")}static setLatestID(i){const t=L.getLatestID();if(L.compareID(i,t)<0){return}document.cookie=`bp_t_offset_${c.mid}=${i};path=/;domain=.bilibili.com;max-age=${60*60*24*30}`}static compareID(i,t){if(i===t){return 0}if(i.length>t.length){return 1}if(t.length>i.length){return-1}return i>t===true?1:-1}static isNewID(i){return L.compareID(i,d)>0}static updateLatestID(i){const[t]=[...i.map(i=>i.id)].sort(L.compareID).reverse();L.setLatestID(t)}async getNotifyCount(){const i=`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_num?rsp_type=1&uid=${c.mid}&update_num_dy_id=${L.getLatestID()}&type_list=8,64,512`;const t=await Ajax.getJsonWithCredentials(i);if(t.code!==0){return}this.setNotifyCount(t.data.update_num)}async init(){Vue.component("activity-loading",{template:`\n
    \n加载中...\n
    `,props:["loading"]});Vue.component("activity-empty",{template:`\n
    空空如也哦 = ̄ω ̄=
    `});this.popupVM=new Vue({el:await SpinQuery.select(".activity-popup"),data:{tabs:[{name:"视频",component:"video-activity",moreUrl:"https://t.bilibili.com/?tab=8",get notifyApi(){return`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_num?rsp_type=1&uid=${c.mid}&update_num_dy_id=${L.getLatestID()}&type_list=8`},notifyCount:null},{name:"番剧",component:"bangumi-activity",moreUrl:"https://t.bilibili.com/?tab=512",get notifyApi(){return`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_num?rsp_type=1&uid=${c.mid}&update_num_dy_id=${L.getLatestID()}&type_list=512`},notifyCount:null},{name:"专栏",component:"column-activity",moreUrl:"https://t.bilibili.com/?tab=64",get notifyApi(){return`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_num?rsp_type=1&uid=${c.mid}&update_num_dy_id=${L.getLatestID()}&type_list=64`},notifyCount:null},{name:"直播",component:"live-activity",moreUrl:"https://link.bilibili.com/p/center/index#/user-center/follow/1",notifyCount:null}],selectedTab:"视频"},components:{"activity-tabs":{props:["items","tab"],template:`\n\n`,methods:{changeTab(i){if(this.tab===i.name){window.open(i.moreUrl,"_blank")}this.$emit("update:tab",i.name)}}},"video-activity":Object.assign($({dataObject:{leftCards:[],rightCards:[]},apiUrl:`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=${c.mid}&type_list=8`,name:"视频",template:`\n
    \n\n\n
    \n\n
    \n
    \n\n
    \n
    \n`,handleJson:async function(i){const{getWatchlaterList:e}=await t.importAsync("watchlater-api");const a=await e();const s=i.data.cards.map(i=>{const t=JSON.parse(i.card);return{coverUrl:t.pic,title:t.title,timeNumber:t.duration,time:formatDuration(t.duration),description:t.desc,aid:t.aid,videoUrl:`https://www.bilibili.com/av${t.aid}`,faceUrl:i.desc.user_profile.info.face,upName:i.desc.user_profile.info.uname,upUrl:`https://space.bilibili.com/${i.desc.user_profile.info.uid}`,id:i.desc.dynamic_id_str,watchlater:a.includes(t.aid),get new(){return L.isNewID(this.id)}}});this.leftCards=s.filter((i,t)=>t%2===0);this.rightCards=s.filter((i,t)=>t%2===1);if(this.leftCards.length!==this.rightCards.length){this.leftCards.pop()}L.updateLatestID(s)}}),{components:{"video-card":{props:["card","watchlaterInit"],data(){return{watchlater:this.watchlaterInit}},components:{"dpi-img":()=>t.importAsync("dpi-img.vue")},methods:{async toggleWatchlater(){try{this.watchlater=!this.watchlater;const{toggleWatchlater:i}=await t.importAsync("watchlater-api");await i(this.card.aid,this.watchlater)}catch(i){logError(i);this.watchlater=!this.watchlater}}},async mounted(){await t.importAsync("watchlater-api")},template:`\n\n
    \n\n
    {{card.time}}
    \n
    {{watchlater ? '已添加' : '稍后再看'}}
    \n
    \n

    {{card.title}}

    \n
    \n\n{{card.upName}}\n\n\n`}}}),"bangumi-activity":$({dataObject:{cards:[]},apiUrl:`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=${c.mid}&type_list=512`,name:"番剧",template:`\n\n`,handleJson:async function(i){this.cards=i.data.cards.map(i=>{const t=JSON.parse(i.card);return{title:t.apiSeasonInfo.title,coverUrl:t.apiSeasonInfo.cover,epCoverUrl:t.cover,epTitle:t.new_desc,url:t.url,id:i.desc.dynamic_id_str,get new(){return L.isNewID(this.id)}}});L.updateLatestID(this.cards)}}),"column-activity":$({dataObject:{cards:[]},apiUrl:`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=${c.mid}&type_list=64`,name:"专栏",template:`\n
    \n\n\n\n\n

    {{card.title}}

    \n
    {{card.description}}
    \n\n
    \n`,handleJson:async function(i){this.cards=i.data.cards.map(i=>{const t=JSON.parse(i.card);return{covers:t.image_urls,originalCovers:t.origin_image_urls,upName:t.author.name,faceUrl:t.author.face,upUrl:`https://space.bilibili.com/${t.author.mid}`,title:t.title,description:t.summary,url:`https://www.bilibili.com/read/cv${t.id}`,id:i.desc.dynamic_id_str,get new(){return L.isNewID(this.id)}}});L.updateLatestID(this.cards)}}),"live-activity":$({dataObject:{cards:[]},apiUrl:`https://api.live.bilibili.com/relation/v1/feed/feed_list?page=1&pagesize=24`,name:"直播",template:`\n\n`,handleJson:async function(i){this.cards=i.data.list.map(i=>{return{faceUrl:i.face,title:i.title,name:i.uname,id:i.roomid,url:i.link}})}})},computed:{content(){return this.tabs.find(i=>i.name===this.selectedTab).component},viewMoreUrl(){return this.tabs.find(i=>i.name===this.selectedTab).moreUrl}},mounted(){x=(async()=>{for(const i of this.tabs){if(i.notifyApi){const t=await Ajax.getJsonWithCredentials(i.notifyApi);if(t.code!==0||!t.data.update_num||this.selectedTab===i.name){continue}i.notifyCount=t.data.update_num}}});x()},destroyed(){x=(()=>{})},watch:{selectedTab(i){this.tabs.find(t=>t.name===i).notifyCount=null}}})}get name(){return"activities"}}class N extends m{constructor({mainUrl:i,name:t,apiUrl:e,listName:a,listMap:s}){super();this.href=i;this.listName=a;this.html=t;this.noPadding=true;this.requestedPopup=false;this.popupHtml=`\n
      \n
    1. 加载中...
    2. \n
    \n`;this.initialPopup=(async()=>{if(!s){return}const n=await SpinQuery.select(`.video-list.${a}`);if(n===null){return}const l=await Ajax.getJsonWithCredentials(e);let o="";if(l.code!==0){logError(`加载${t}信息失败. 错误码: ${l.code} ${l.message}`)}else{o=s(l).join("")}n.insertAdjacentHTML("beforeend",o+`\n
  • 查看更多
  • \n`);n.classList.add("loaded")})}get name(){return this.listName+"List"}}class C extends N{constructor(){super({name:"稍后再看",mainUrl:"https://www.bilibili.com/watchlater/#/list",apiUrl:"https://api.bilibili.com/x/v2/history/toview/web",listName:"watchlater",listMap:t=>{if(!t.data.list){return[`
  • 空空如也哦 = ̄ω ̄=
  • `]}return t.data.list.slice(0,6).map(t=>{const e=(()=>{if(t.pages===undefined){return i.watchLaterRedirect?`https://www.bilibili.com/video/av${t.aid}`:`https://www.bilibili.com/watchlater/#/av${t.aid}`}const e=t.pages.map(i=>i.cid);const a=t.cid===0?1:e.indexOf(t.cid)+1;return i.watchLaterRedirect?`https://www.bilibili.com/video/av${t.aid}?p=${a}`:`https://www.bilibili.com/watchlater/#/av${t.aid}/p${a}`})();return`
  • ${t.title}
  • `})}});this.active=document.URL.startsWith("https://www.bilibili.com/watchlater/")}}class I extends N{constructor(){super({name:"收藏",mainUrl:`https://space.bilibili.com/${c.mid}/favlist`,apiUrl:"https://api.bilibili.com/medialist/gateway/coll/resource/recent",listName:"favorites",listMap:i=>{if(!i.data||i.data.length===0){return[`
  • 空空如也哦 = ̄ω ̄=
  • `]}return i.data.map(i=>{return`\n
  • \n${i.title}\n
  • `})}});this.active=document.URL.replace(/\?.*$/,"")===`https://space.bilibili.com/${c.mid}/favlist`}}class A extends N{constructor(){super({name:"历史",mainUrl:"https://www.bilibili.com/account/history",apiUrl:"https://api.bilibili.com/x/v2/history?pn=1&ps=6",listName:"history",listMap:i=>{if(!i.data||i.data.length===0){return[`
  • 空空如也哦 = ̄ω ̄=
  • `]}return i.data.map(i=>{let t=[];let e="";const a=i.page?i.page.page:1;let s=i.progress>=0?i.progress/i.duration:1;if(isNaN(s)){s=0}if(a!==1){t.push(`p=${a}`);e+=`看到第${a}话`}if(i.progress>0&&i.progress\n\n${i.title}\n${e}\n
    \n
    \n
    \n
    \n`})}});this.active=document.URL.replace(/\?.*$/,"")==="https://www.bilibili.com/account/history"}}class S extends m{constructor(){super();this.noPadding=true;this.href=`https://space.bilibili.com/${c.mid}/bangumi`;this.html="订阅";this.active=[`https://space.bilibili.com/${c.mid}/bangumi`,`https://space.bilibili.com/${c.mid}/cinema`,`https://space.bilibili.com/${c.mid}/subs`].includes(document.URL.replace(/\?.*$/,""));this.popupHtml=`\n
    \n\n
    \n\n\n\n\n
    \n
    `;this.initialPopup=(()=>{this.init()})}async init(){new Vue({el:await SpinQuery.select(".custom-navbar .subscriptions"),data:{bangumi:true},components:{"bangumi-subscriptions":{props:["type"],components:{"dpi-img":()=>t.importAsync("dpi-img.vue")},template:`\n
    \n
    \n\n加载中...\n
    \n
    空空如也哦 = ̄ω ̄=
    \n\n\n\n\n
    \n`,data(){return{loading:true,cards:[]}},async mounted(){try{const i=await Ajax.getJsonWithCredentials(`https://api.bilibili.com/x/space/bangumi/follow/list?type=${this.type!=="bangumi"?"2":"1"}&pn=1&ps=16&vmid=${c.mid}`);if(i.code!==0){logError(`加载订阅信息失败: ${i.message}`);return}this.cards=i.data.list.map(i=>{return{title:i.title,coverUrl:i.square_cover.replace("http:","https:"),latest:i.new_ep.index_show,progress:i.progress,id:i.season_id,playUrl:`https://www.bilibili.com/bangumi/play/ss${i.season_id}`,mediaUrl:`https://www.bilibili.com/bangumi/media/md${i.media_id}`}})}finally{this.loading=false}}}}})}get name(){return"bangumi"}}(async()=>{const e=await t.importAsync("customNavbarHtml");const a=await Ajax.getJsonWithCredentials("https://api.bilibili.com/x/web-interface/nav");c=a.data;d=L.getLatestID();document.body.insertAdjacentHTML("beforeend",e);addSettingsListener("useDarkStyle",n);n(i.useDarkStyle);["Fill","Shadow","Compact","Blur"].forEach(t=>{addSettingsListener("customNavbar"+t,i=>s(t.toLowerCase(),i,document.querySelector(".custom-navbar")));s(t.toLowerCase(),i["customNavbar"+t],document.querySelector(".custom-navbar"))});SpinQuery.condition(()=>dq("#banner_link,.international-header .bili-banner"),i=>i===null?null:i.style.backgroundImage,i=>{Observer.attributes(i,()=>{const t=document.querySelectorAll(".custom-navbar .blur-layer");t.forEach(t=>{t.style.backgroundImage=i.style.backgroundImage;t.setAttribute("data-image",i.style.backgroundImage)})})});const l=[new u(1),new p,new w,new b("排行","https://www.bilibili.com/ranking","ranking"),new b("相簿","https://h.bilibili.com","drawing"),new b("音频","https://www.bilibili.com/audio/home/","music"),new y("游戏中心","https://game.bilibili.com/",{src:`https://www.bilibili.com/page-proxy/game-nav.html`,width:`680px`,height:`260px`,lazy:true,iframeName:"games"}),new y("直播","https://live.bilibili.com",{src:`https://live.bilibili.com/blackboard/dropdown-menu.html`,width:`528px`,height:`266px`,lazy:true,iframeName:"lives"}),new b("会员购","https://show.bilibili.com","shop"),new b("漫画","https://manga.bilibili.com","manga"),new u(2),new f,new g];if(c.isLogin){l.push(new v,new S,new L,new C,new I,new A)}l.push(new h,new u(3));new Vue({el:".custom-navbar",data:{components:l},methods:{requestPopup(i){if(!i.requestedPopup&&!i.disabled&&!i.active){this.$set(i,`requestedPopup`,true);i.initialPopup&&i.initialPopup()}i.onPopup&&i.onPopup()}},mounted(){document.body.classList.remove("custom-navbar-loading")}})})();return a}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/danmaku-converter.min.js"] = (()=>{return(t,e)=>{class r{constructor({content:t,time:e,type:r,fontSize:i,color:n}){this.content=t;this.time=e;this.startTime=parseFloat(e);this.type=parseInt(r);this.fontSize=parseFloat(i);this.color=parseInt(n)}}class i extends r{constructor({content:t,time:e,type:r,fontSize:i,color:n,timeStamp:a,pool:s,userHash:o,rowId:l}){super({content:t,time:e,type:r,fontSize:i,color:n});this.timeStamp=parseInt(a);this.pool=parseInt(s);this.userHash=o;this.rowId=parseInt(l);this.pDataArray=[e,r,i,n,a,s,o,l]}text(){const t=this.pDataArray.join(",");return`${this.content}`}static parse(t){const e=t.getAttribute("p");const[r,n,a,s,o,l,c,h]=e.split(",");const u=t.innerHTML;return new i({content:u,time:r,type:n,fontSize:a,color:s,timeStamp:o,pool:l,userHash:c,rowId:h})}}class n{constructor(t){this.xml=t;const e=(new DOMParser).parseFromString(t,"application/xml").documentElement;this.danmakus=[...e.querySelectorAll("d[p]")].map(t=>i.parse(t))}}var a;(function(t){t[t["Normal"]=1]="Normal";t[t["Normal2"]=2]="Normal2";t[t["Normal3"]=3]="Normal3";t[t["Bottom"]=4]="Bottom";t[t["Top"]=5]="Top";t[t["Reversed"]=6]="Reversed";t[t["Special"]=7]="Special";t[t["Special2"]=8]="Special2"})(a||(a={}));class s extends r{constructor({content:t,time:e,type:r,fontSize:i,color:n,typeTag:a,colorTag:s,endTime:o}){super({content:t,time:e,type:r,fontSize:i,color:n});this.typeTag=a;this.colorTag=s;this.endTime=o}text(t){let e=t[this.fontSize];if(!e){e=t[25]}const r=t[this.fontSize].match(/Style:(.*?),/)[1].trim();return`Dialogue: 0,${this.time},${this.endTime},${r},,0,0,0,,{${this.typeTag}${this.colorTag}}${this.content}`}}class o{constructor(t,e,r,i,n){this.danmakus=t;this.title=e;this.fontStyles=r;this.blockTypes=i;this.resolution=n}generateAss(){const t=`\n[Script Info]\n; Script generated by Bilibili Evolved Danmaku Converter\n; https://github.com/the1812/Bilibili-Evolved/\nTitle: ${this.title}\nScriptType: v4.00+\nPlayResX: ${this.resolution.x}\nPlayResY: ${this.resolution.y}\nTimer: 10.0000\nWrapStyle: 2\nScaledBorderAndShadow: no\n\n[V4+ Styles]\nFormat: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding\n${Object.values(this.fontStyles).join("\n")}\n\n[Events]\nFormat: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text\n`.trim();return t+"\n"+this.danmakus.map(t=>t.text(this.fontStyles)).filter(t=>t!=="").join("\n")}}class l{constructor(t,e,r,i){this.horizontalStack=[];this.horizontalTrack=[];this.verticalStack=[];this.verticalTrack=[];this.resolution=e;this.duration=r;this.canvas=document.createElement("canvas");this.context=this.canvas.getContext("2d");this.fontSizes={30:`64px ${t}`,25:`52px ${t}`,18:`36px ${t}`,45:`90px ${t}`};this.bottomMarginPercent=i;this.generateTracks()}generateTracks(){const t=52;this.danmakuHeight=t;this.trackHeight=l.margin*2+t;this.trackCount=parseInt(fixed(this.resolution.y*(1-this.bottomMarginPercent)/this.trackHeight,0))}getTextSize(t){this.context.font=this.fontSizes[t.fontSize];const e=this.context.measureText(t.content);const r=e.width/2;return[r,this.danmakuHeight/2]}getTags(t,{targetTrack:e,initTrackNumber:r,nextTrackNumber:i,willOverlay:n,getTrackItem:a,getTag:s}){const[o,c]=this.getTextSize(t);const h=o*2;const u=this.duration(t)*h/(this.resolution.x+h)+l.nextDanmakuDelay;let m=r;let p=null;do{p=e.find(t=>n(t,m,h));m+=i}while(p&&m<=this.trackCount&&m>=0);if(m>this.trackCount||m<0){return`\\pos(0,-999)`}m-=i;e.push(a(m,h,u));return s({trackNumber:m,x:o,y:c})}getHorizontalTags(t){return this.getTags(t,{targetTrack:this.horizontalTrack,initTrackNumber:0,nextTrackNumber:1,willOverlay:(e,r,i)=>{if(e.trackNumber!==r){return false}if(e.widtht.startTime}},getTrackItem:(e,r,i)=>{return{width:r,start:t.startTime,visible:t.startTime+i,end:t.startTime+this.duration(t),trackNumber:e}},getTag:({trackNumber:e,x:r,y:i})=>{return`\\move(${this.resolution.x+r},${e*this.trackHeight+l.margin+i},${-r},${e*this.trackHeight+l.margin+i},0,${this.duration(t)*1e3})`}})}getVerticalTags(t){const e=l.danmakuType[t.type]==="top";return this.getTags(t,{targetTrack:this.verticalTrack,initTrackNumber:e?0:this.trackCount-1,nextTrackNumber:e?1:-1,willOverlay:(e,r)=>{if(e.trackNumber!==r){return false}return e.end>t.startTime},getTrackItem:e=>{return{start:t.startTime,end:t.startTime+this.duration(t),trackNumber:e}},getTag:({trackNumber:t,y:r})=>{if(e){return`\\pos(${this.resolution.x/2},${t*this.trackHeight+l.margin+r})`}else{return`\\pos(${this.resolution.x/2},${this.resolution.y-l.margin-r-(this.trackCount-1-t)*this.trackHeight})`}}})}push(t){let e="";let r=[];switch(l.danmakuType[t.type]){case"normal":case"reversed":{e=this.getHorizontalTags(t);r=this.horizontalStack;break}case"top":case"bottom":{e=this.getVerticalTags(t);r=this.verticalStack;break}case"special":default:{return{tags:`\\pos(0,-999)`}}}const i={tags:e};r.push(i);return i}}l.danmakuType={[a.Normal]:"normal",[a.Normal2]:"normal",[a.Normal3]:"normal",[a.Bottom]:"bottom",[a.Top]:"top",[a.Reversed]:"reversed",[a.Special]:"special",[a.Special2]:"special"};l.margin=4;l.nextDanmakuDelay=.05;class c{constructor({title:t,font:e,alpha:r,duration:i,blockTypes:n,resolution:a,bottomMarginPercent:s,bold:o}){this.title=t;this.font=e;this.alpha=Math.round(r*100).toString(16).toUpperCase();this.duration=i;this.blockTypes=n;this.resolution=a;this.bold=o;this.danmakuStack=new l(e,a,i,s)}get fontStyles(){return{30:`Style: Large,${this.font},64,&H${this.alpha}FFFFFF,&H${this.alpha}FFFFFF,&H${this.alpha}000000,&H${this.alpha}000000,${this.bold?"1":"0"},0,0,0,100,100,0,0,1,1.2,0,5,0,0,0,0`,25:`Style: Medium,${this.font},52,&H${this.alpha}FFFFFF,&H${this.alpha}FFFFFF,&H${this.alpha}000000,&H${this.alpha}000000,${this.bold?"1":"0"},0,0,0,100,100,0,0,1,1.2,0,5,0,0,0,0`,18:`Style: Small,${this.font},36,&H${this.alpha}FFFFFF,&H${this.alpha}FFFFFF,&H${this.alpha}000000,&H${this.alpha}000000,${this.bold?"1":"0"},0,0,0,100,100,0,0,1,1.2,0,5,0,0,0,0`,45:`Style: ExtraLarge,${this.font},90,&H${this.alpha}FFFFFF,&H${this.alpha}FFFFFF,&H${this.alpha}000000,&H${this.alpha}000000,${this.bold?"1":"0"},0,0,0,100,100,0,0,1,1.2,0,5,0,0,0,0`}}convertToAssDocument(t){const e=new n(t);const r=[];for(const t of e.danmakus.sort((t,e)=>t.startTime-e.startTime)){if(this.blockTypes.indexOf(t.type)!==-1||this.blockTypes.indexOf("color")!==-1&&t.color!==c.white){continue}const[e,i]=this.convertTime(t.startTime,this.duration(t));r.push(new s({content:this.convertText(t.content),time:e,endTime:i,type:t.type.valueOf().toString(),fontSize:t.fontSize.toString(),color:t.color.toString(),typeTag:this.convertType(t),colorTag:this.convertColor(t.color)}))}return new o(r,this.title,this.fontStyles,this.blockTypes,this.resolution)}convertText(t){const e={"{":"{","}":"}","&":"&","<":"<",">":">",""":'"',"'":"'"};for(const[r,i]of Object.entries(e)){t=t.replace(new RegExp(r,"g"),i)}return t}convertType(t){return this.danmakuStack.push(t).tags}convertColor(t){if(t===c.white){return""}const e=t.toString(16);const r=e.substring(0,2);const i=e.substring(2,4);const n=e.substring(4,6);return`\\c&H${n}${i}${r}&`}convertTime(t,e){function r(t){const[e,r="00"]=String(t).split(".");return`${e.padStart(2,"0")}.${r.substr(0,2).padEnd(2,"0")}`}function i(t){let e=0;let i=0;while(t>=60){t-=60;i++}while(i>=60){i-=60;e++}return`${e}:${String(i).padStart(2,"0")}:${r(t)}`}return[i(t),i(t+e)]}}c.white=16777215;return{export:{AssDanmaku:s,AssDanmakuDocument:o,Danmaku:r,DanmakuConverter:c,DanmakuStack:l,XmlDanmaku:i,XmlDanmakuDocument:n}}}})(); -offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/dark-important.min.css"] = `#disable-popup-modal .vip-exchange .months button.disabled,#vip-exchange-modal .vip-exchange .months button.disabled,.action-row .publish-btn.disabled,.action-row .publish-btn.publishing,.action-row .sch-pub-btn.disabled,.action-row .sch-pub-btn.publishing,.app-body .section-block,.bl-button--primary:disabled,.link-footer,.live-skin-coloration-area .live-skin-separate-area,.live-skin-coloration-area .live-skin-separate-area-hover:hover,.payment-active,.player-auxiliary-area .player-auxiliary-bscrollbar .bscroll-indicator,.tab-list .tab-item.active:before{background-color:#222!important}.app-body .section-block.with-bottom-radius,.app-body .section-block.with-radius,.bb-comment .no-login .comment-submit,.common .bb-comment .no-login .comment-submit,.container .pagination,.coupon-content-con .coupon-btn-disable,.customize-wrp .select,.f-list-hover:hover,.fjw-case-detail .ban-detail .content-box .video-model,.game-groom-m .num,.main-container .media-info .media-right .media-tool-bar .btn-follow.active,.main-container .pay-bar .vip .btn-pay.active,.open-dialog-masker .open-dialog-content .open-footer .btn-normal.disabled,.open-dialog-masker .open-dialog-content .open-footer .btn-normal.disabled:hover,.pagination-container li.pagination,.status_box .status_btn.disabled,.wrapper .elec-btn.disabled{background-color:#444!important}.danmaku-wrap .player-auxiliary-area .player-auxiliary-danmaku-wrap .bscroll-indicator{background-color:#555!important}.danmaku-wrap .player-auxiliary-area .player-auxiliary-danmaku-wrap .bscroll-vertical-scrollbar.mousedown,.danmaku-wrap .player-auxiliary-area .player-auxiliary-danmaku-wrap:hover .bscroll-vertical-scrollbar,.m-recommend-item div.box,.player-auxiliary-area .player-auxiliary-bscrollbar .bscroll-vertical-scrollbar,.player-auxiliary-area .player-auxiliary-bscrollbar .bscroll-vertical-scrollbar.mousedown,.player-auxiliary-area .player-auxiliary-bscrollbar:hover .bscroll-vertical-scrollbar{background-color:transparent!important}.live-skin-coloration-area .live-skin-normal-a-text,.live-skin-coloration-area .live-skin-normal-a-text:link,.live-skin-coloration-area .live-skin-normal-a-text:visited,.live-skin-coloration-area .live-skin-normal-text,.open-dialog-masker .open-dialog-content .open-footer .btn-normal.disabled,.open-dialog-masker .open-dialog-content .open-footer .btn-normal.disabled:hover,.status_box .status_btn.disabled,blockquote *,blockquote .color-blue-01,blockquote .color-blue-02,blockquote .color-blue-03,blockquote .color-blue-04,blockquote .color-gray-01,blockquote .color-gray-02,blockquote .color-gray-03,blockquote .color-gray-04,blockquote .color-green-01,blockquote .color-green-02,blockquote .color-green-03,blockquote .color-green-04,blockquote .color-lblue-01,blockquote .color-lblue-02,blockquote .color-lblue-03,blockquote .color-lblue-04,blockquote .color-pink-01,blockquote .color-pink-02,blockquote .color-pink-03,blockquote .color-pink-04,blockquote .color-purple-01,blockquote .color-purple-02,blockquote .color-purple-03,blockquote .color-purple-04,blockquote .color-yellow-01,blockquote .color-yellow-02,blockquote .color-yellow-03,blockquote .color-yellow-04{color:#aaa!important}#app .sticky-bar .bar-content .message,.bb-comment .no-login .comment-submit,.bp-popup-panel .title-ctnr .popup-title,.commnent-screen-wrap .el-input__inner,.common .bb-comment .no-login .comment-submit,.coupon-content-con .coupon-btn-disable,.cover .disabled-cover,.customize-wrp .select,.el-input__inner,.home-page .sticky-bar .bar-content .message,.invitation-record-warp .invtable .inputdone,.live-room-app .guard-rank-cntr .tabs.isHundred .item.active,.live-room-app .guard-rank-cntr.hundred .live-skin-highlight-text,.live-room-app .guard-rank-cntr.hundred .live-skin-main-a-text,.live-room-app .guard-rank-cntr.hundred .page-box .live-skin-main-text,.live-room-app .guard-rank-cntr.thousand .live-skin-highlight-text,.live-room-app .guard-rank-cntr.thousand .live-skin-main-a-text,.live-room-app .guard-rank-cntr.thousand .page-box .live-skin-main-text,.live-skin-coloration-area .live-skin-highlight-text,.live-skin-coloration-area .live-skin-main-text,.manga-detail .episode-list-component .episode-list .list-data .list-item.last-read,.popup-content-ctnr .bl-button--ghost,.s-paging>ul>a.current,.s-paging>ul>span.current,.score-info .go-movie,.tag-list li.tag-item.on{color:#eee!important}.bb-comment .no-login .comment-submit,.commnent-screen-wrap .el-input__inner,.common .bb-comment .no-login .comment-submit,.el-input__inner,.enter-failure .password-input .pink-border,.link-footer,.live-skin-coloration-area .live-skin-highlight-border,.live-skin-coloration-area .live-skin-separate-border,.popup-content-ctnr .bl-button--ghost:hover,.score-info .go-movie,.select-box-v2-container .select-box-v2-controller-disabled,.song-info .info-wrap .type-list .item-list .type-item.active,.tabs-bar,.ui-input-textarea.focus,.user-setting-warp .el-radio-button__orig-radio:checked+.el-radio-button__inner{border-color:transparent!important}#app .sticky-bar .bar-content .message:hover,.app-layout .style-section .tag-block .tag-containers .style-tag.selected,.container .video-panel .play-all .bilifont,.detail-wrp .detail-content[data-v-00c9b213] p a span,.drop-list-v2-container .drop-list-v2-item-selected .drop-list-v2-item-cont p.item-cont-main,.edit-button:hover>.icon-font,.edit-button:hover>span .left-nav-item-childed:hover,.el-select-dropdown__item.selected,.home-page .sticky-bar .bar-content .message:hover,.im-popup .bp-popup-panel .title-ctnr .popup-title,.left-nav-wrapper .active,.left-nav-wrapper .active .left-nav-item-child,.left-nav-wrapper .advice-btn:hover,.left-nav-wrapper .left-nav-item.active,.left-nav-wrapper .left-nav-item.active i.active,.left-nav-wrapper .left-nav-list.on .left-nav-item,.left-nav-wrapper .left-nav-list.on .left-nav-item .icon,.live-room-app .guard-rank-cntr.hundred .live-skin-main-a-text:hover,.live-room-app .guard-rank-cntr.thousand .live-skin-main-a-text:hover,.live-skin-coloration-area .live-skin-highlight-text,.live-skin-coloration-area .live-skin-normal-a-text:hover,.live-skin-normal-a-text:active,.manga-detail .episode-list-component .episode-list .list-header .header-item.selected,.more-data a:hover,.other a a:hover,.r-con .members-info .up-card .info-name.is-vip:hover,.rank-item .content .info .detail a a:hover,.rank-item .content .more-data:hover,.rank-item .content .other a:hover,.room-info-down-row .icon-label.hover-text-blue:hover .label,.room-introduction .edit-button:hover>.icon-font,.room-introduction .edit-button:hover>span,.up-info .u-info .name .username.is-vip:hover,.voucher-ing .voucher-left-money,.voucher-ing .voucher-left-money:before,.voucher-no-used .voucher-left-money,.voucher-no-used .voucher-left-money:before{color:var(--theme-color)!important}.aside-ctnr .author-info .communicate-btn,.live-skin-coloration-area .room-info-ctnr .info-section .live-skin-highlight-border,.manga-detail .episode-list-component .episode-list .list-data .list-item.last-read,.page-list-box .page-input:focus,.page-list-box .page-input:hover,.popup-content-ctnr .bl-button--ghost,.season-timeline .season-group.today,.season-timeline .season-group.today .group-time::before,.tag-list li.tag-item.on,.tag-list li.tag-item:hover{border-color:var(--theme-color)!important}.bg-blue,.el-date-table td.current:not(.disabled),.el-date-table td.end-date,.el-date-table td.start-date,.face-g-list#my-g-list .face-g-block .my-mp-block .mp-info .btn-white,.face-g-tab li.current,.live-skin-coloration-area .live-skin-highlight-bg,.popup-content-ctnr .bl-button--ghost:hover,.popup-content-ctnr .bl-button--primary,.season-timeline .season-group.today.is-published .group-time::before,.security-list .child-list li a.bg-blue:hover,.song-info .info-wrap .type-list .item-list .type-item.active,.tag-list li.tag-item.on,.user-my-btn .el-button--primary,.user-setting-warp .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:var(--theme-color)!important}.current .tab-btn-link,.el-date-table td.current:not(.disabled),.el-date-table td.end-date,.el-date-table td.start-date,.face-g-tab li.current,.popup-content-ctnr .bl-button--ghost:hover,.style-section .tag-block .tag-containers .style-tag:active{color:var(--foreground-color)!important}#bilibiliPlayer{box-shadow:0 4px 8px 0 #0004}`; +offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/dark-important.min.css"] = `#disable-popup-modal .vip-exchange .months button.disabled,#vip-exchange-modal .vip-exchange .months button.disabled,.action-row .publish-btn.disabled,.action-row .publish-btn.publishing,.action-row .sch-pub-btn.disabled,.action-row .sch-pub-btn.publishing,.app-body .section-block,.bl-button--primary:disabled,.link-footer,.live-skin-coloration-area .live-skin-separate-area,.live-skin-coloration-area .live-skin-separate-area-hover:hover,.payment-active,.player-auxiliary-area .player-auxiliary-bscrollbar .bscroll-indicator,.tab-list .tab-item.active:before{background-color:#222!important}.app-body .section-block.with-bottom-radius,.app-body .section-block.with-radius,.bb-comment .no-login .comment-submit,.common .bb-comment .no-login .comment-submit,.container .pagination,.coupon-content-con .coupon-btn-disable,.customize-wrp .select,.f-list-hover:hover,.fjw-case-detail .ban-detail .content-box .video-model,.game-groom-m .num,.main-container .media-info .media-right .media-tool-bar .btn-follow.active,.main-container .pay-bar .vip .btn-pay.active,.open-dialog-masker .open-dialog-content .open-footer .btn-normal.disabled,.open-dialog-masker .open-dialog-content .open-footer .btn-normal.disabled:hover,.pagination-container li.pagination,.status_box .status_btn.disabled,.wrapper .elec-btn.disabled{background-color:#444!important}.danmaku-wrap .player-auxiliary-area .player-auxiliary-danmaku-wrap .bscroll-indicator{background-color:#555!important}.danmaku-wrap .player-auxiliary-area .player-auxiliary-danmaku-wrap .bscroll-vertical-scrollbar.mousedown,.danmaku-wrap .player-auxiliary-area .player-auxiliary-danmaku-wrap:hover .bscroll-vertical-scrollbar,.m-recommend-item div.box,.player-auxiliary-area .player-auxiliary-bscrollbar .bscroll-vertical-scrollbar,.player-auxiliary-area .player-auxiliary-bscrollbar .bscroll-vertical-scrollbar.mousedown,.player-auxiliary-area .player-auxiliary-bscrollbar:hover .bscroll-vertical-scrollbar{background-color:transparent!important}.live-skin-coloration-area .live-skin-normal-a-text,.live-skin-coloration-area .live-skin-normal-a-text:link,.live-skin-coloration-area .live-skin-normal-a-text:visited,.live-skin-coloration-area .live-skin-normal-text,.open-dialog-masker .open-dialog-content .open-footer .btn-normal.disabled,.open-dialog-masker .open-dialog-content .open-footer .btn-normal.disabled:hover,.status_box .status_btn.disabled,blockquote *,blockquote .color-blue-01,blockquote .color-blue-02,blockquote .color-blue-03,blockquote .color-blue-04,blockquote .color-gray-01,blockquote .color-gray-02,blockquote .color-gray-03,blockquote .color-gray-04,blockquote .color-green-01,blockquote .color-green-02,blockquote .color-green-03,blockquote .color-green-04,blockquote .color-lblue-01,blockquote .color-lblue-02,blockquote .color-lblue-03,blockquote .color-lblue-04,blockquote .color-pink-01,blockquote .color-pink-02,blockquote .color-pink-03,blockquote .color-pink-04,blockquote .color-purple-01,blockquote .color-purple-02,blockquote .color-purple-03,blockquote .color-purple-04,blockquote .color-yellow-01,blockquote .color-yellow-02,blockquote .color-yellow-03,blockquote .color-yellow-04{color:#aaa!important}#app .sticky-bar .bar-content .message,.bb-comment .no-login .comment-submit,.bp-popup-panel .title-ctnr .popup-title,.commnent-screen-wrap .el-input__inner,.common .bb-comment .no-login .comment-submit,.coupon-content-con .coupon-btn-disable,.cover .disabled-cover,.customize-wrp .select,.el-input__inner,.home-page .sticky-bar .bar-content .message,.invitation-record-warp .invtable .inputdone,.live-room-app .guard-rank-cntr .tabs.isHundred .item.active,.live-room-app .guard-rank-cntr.hundred .live-skin-highlight-text,.live-room-app .guard-rank-cntr.hundred .live-skin-main-a-text,.live-room-app .guard-rank-cntr.hundred .page-box .live-skin-main-text,.live-room-app .guard-rank-cntr.thousand .live-skin-highlight-text,.live-room-app .guard-rank-cntr.thousand .live-skin-main-a-text,.live-room-app .guard-rank-cntr.thousand .page-box .live-skin-main-text,.live-skin-coloration-area .live-skin-highlight-text,.live-skin-coloration-area .live-skin-main-text,.manga-detail .episode-list-component .episode-list .list-data .list-item.last-read,.popup-content-ctnr .bl-button--ghost,.s-paging>ul>a.current,.s-paging>ul>span.current,.score-info .go-movie,.tag-list li.tag-item.on{color:#eee!important}#rank-list-vm .tabs.isHundred .item,.bb-comment .no-login .comment-submit,.commnent-screen-wrap .el-input__inner,.common .bb-comment .no-login .comment-submit,.el-input__inner,.enter-failure .password-input .pink-border,.link-footer,.live-skin-coloration-area .live-skin-highlight-border,.live-skin-coloration-area .live-skin-separate-border,.popup-content-ctnr .bl-button--ghost:hover,.score-info .go-movie,.select-box-v2-container .select-box-v2-controller-disabled,.song-info .info-wrap .type-list .item-list .type-item.active,.tabs-bar,.ui-input-textarea.focus,.user-setting-warp .el-radio-button__orig-radio:checked+.el-radio-button__inner{border-color:transparent!important}#app .sticky-bar .bar-content .message:hover,.app-layout .style-section .tag-block .tag-containers .style-tag.selected,.container .video-panel .play-all .bilifont,.detail-wrp .detail-content[data-v-00c9b213] p a span,.drop-list-v2-container .drop-list-v2-item-selected .drop-list-v2-item-cont p.item-cont-main,.edit-button:hover>.icon-font,.edit-button:hover>span .left-nav-item-childed:hover,.el-select-dropdown__item.selected,.home-page .sticky-bar .bar-content .message:hover,.im-popup .bp-popup-panel .title-ctnr .popup-title,.left-nav-wrapper .active,.left-nav-wrapper .active .left-nav-item-child,.left-nav-wrapper .advice-btn:hover,.left-nav-wrapper .left-nav-item.active,.left-nav-wrapper .left-nav-item.active i.active,.left-nav-wrapper .left-nav-list.on .left-nav-item,.left-nav-wrapper .left-nav-list.on .left-nav-item .icon,.live-room-app .guard-rank-cntr.hundred .live-skin-main-a-text:hover,.live-room-app .guard-rank-cntr.thousand .live-skin-main-a-text:hover,.live-skin-coloration-area .live-skin-highlight-text,.live-skin-coloration-area .live-skin-normal-a-text:hover,.live-skin-normal-a-text:active,.manga-detail .episode-list-component .episode-list .list-header .header-item.selected,.more-data a:hover,.other a a:hover,.r-con .members-info .up-card .info-name.is-vip:hover,.rank-item .content .info .detail a a:hover,.rank-item .content .more-data:hover,.rank-item .content .other a:hover,.room-info-down-row .icon-label.hover-text-blue:hover .label,.room-introduction .edit-button:hover>.icon-font,.room-introduction .edit-button:hover>span,.up-info .u-info .name .username.is-vip:hover,.voucher-ing .voucher-left-money,.voucher-ing .voucher-left-money:before,.voucher-no-used .voucher-left-money,.voucher-no-used .voucher-left-money:before{color:var(--theme-color)!important}.aside-ctnr .author-info .communicate-btn,.live-skin-coloration-area .room-info-ctnr .info-section .live-skin-highlight-border,.manga-detail .episode-list-component .episode-list .list-data .list-item.last-read,.page-list-box .page-input:focus,.page-list-box .page-input:hover,.popup-content-ctnr .bl-button--ghost,.season-timeline .season-group.today,.season-timeline .season-group.today .group-time::before,.tag-list li.tag-item.on,.tag-list li.tag-item:hover{border-color:var(--theme-color)!important}.bg-blue,.el-date-table td.current:not(.disabled),.el-date-table td.end-date,.el-date-table td.start-date,.face-g-list#my-g-list .face-g-block .my-mp-block .mp-info .btn-white,.face-g-tab li.current,.live-skin-coloration-area .live-skin-highlight-bg,.popup-content-ctnr .bl-button--ghost:hover,.popup-content-ctnr .bl-button--primary,.season-timeline .season-group.today.is-published .group-time::before,.security-list .child-list li a.bg-blue:hover,.song-info .info-wrap .type-list .item-list .type-item.active,.tag-list li.tag-item.on,.user-my-btn .el-button--primary,.user-setting-warp .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:var(--theme-color)!important}.current .tab-btn-link,.el-date-table td.current:not(.disabled),.el-date-table td.end-date,.el-date-table td.start-date,.face-g-tab li.current,.popup-content-ctnr .bl-button--ghost:hover,.style-section .tag-block .tag-containers .style-tag:active{color:var(--foreground-color)!important}#bilibiliPlayer{box-shadow:0 4px 8px 0 #0004}`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/dark-navbar.min.css"] = `#link-navbar-vm>.link-navbar .nav-item:hover,.bili-header-m .nav-menu .nav-con .nav-item:hover,.link-navbar .nav-item:hover,.nav-header-wrapper .nav-header .nav-header-search-bar,.right-part>.shortcuts-ctnr .shortcut-item:hover,.search-bar-ctnr .search-bar,.shortcuts-ctnr .shortcut-item:hover,.uns_box ul.menu li:not(.b-post):hover,.z_top .z_top_nav ul li:hover{background-color:#222!important}#app>.link-navbar,#app>.nav-header-wrapper,#link-navbar-vm>.link-navbar,#navbar-vm>.link-navbar,.b-header-mask-wrp .b-header-mask,.bili-header-m .nav-menu .nav-mask,.bili-header-m .nav-menu.blur-black .nav-mask,.link-navbar{background-color:#444!important}.z_top .i-link:hover,.z_top .z_top_nav ul li.home:hover{background-color:transparent!important}#app>.nav-header-wrapper>.nav-header{background:0 0!important}#app>.link-navbar .main-ctnr .nav-logo,#app>.link-navbar .nav-item.selected .label,#app>.link-navbar .nav-item:hover .icon-font,#app>.nav-header-wrapper>.nav-header .nav-header-mainsite,#app>.nav-header-wrapper>.nav-header .order-center,#link-navbar-vm>.link-navbar .main-ctnr .nav-logo,#link-navbar-vm>.link-navbar .nav-item:hover,.bili-header-m .nav-menu .nav-con .nav-item .t,.link-navbar .main-ctnr .custom-link>a,.link-navbar .main-ctnr .nav-logo,.my-link-btn .label,.nav-header-wrapper .nav-header .nav-header-search-bar,.right-part>.shortcuts-ctnr,.right-part>.shortcuts-ctnr .shortcut-item:hover,.search-bar-ctnr .search-bar input,.shortcut-item .list-item span,.shortcuts-ctnr .shortcut-item,.uns_box li.u-i a.i-link,.z_top a,.z_top.b-header-blur .uns_box li.u-i a.i-link,.z_top.b-header-blur .z_top_nav li a.i-link{color:#eee!important}.search-bar-ctnr .search-bar .placeholder,.search-bar-ctnr .search-bar .search-btn,.search-bar-ctnr .search-bar input::placeholder{color:#878787!important}.uns_box li.u-i:hover a.i-link,.z_top .i-link:hover{color:var(--theme-color)}.link-navbar,.link-navbar-ctnr{box-shadow:none!important}.link-navbar .main-ctnr .nav-logo::before,.nav-header-wrapper .nav-header .order-icon{filter:brightness(0) invert(1)!important}.search-bar-ctnr .search-bar{border-color:transparent!important;box-shadow:0 2px 10px 1px #0002}`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/dark-schedule.min.js"] = (()=>{return(e,t)=>{class i{constructor(...e){if(e.length===0){const e=new Date;this.hour=e.getHours();this.minute=e.getMinutes()}else if(e.length===1){const[t]=e;[this.hour,this.minute]=t.split(":").slice(0,2).map(e=>this.validatePart(e));this.normalize()}else if(v.length===2){[this.hour,this.minute]=e}}validatePart(e){const t=parseInt(e);if(!isNaN(t)&&t>=0&&t<=59){return t}else{return null}}normalize(){while(this.minute<0){this.minute+=60;this.hour-=1}while(this.minute>=60){this.minute-=60;this.hour+=1}while(this.hour<0){this.hour+=24}while(this.hour>=24){this.hour-=24}}lessThan(e){if(this.houre.hour||this.hour===e.hour&&this.minute>e.minute){return true}return false}equals(e){return this.hour===e.hour&&this.minute===e.minute}isInRange(e,t){if(e.equals(t)){return false}let i=this.greaterThan(e)&&this.lessThan(t);if(e.greaterThan(t)){i=this.greaterThan(e)||this.lessThan(t)}const s=i||this.equals(e);return s}static millisecondsBefore(e){const t=new i;const s=(new Date).getSeconds();const r=1e3*(t.hour*3600+t.minute*60+s);const n=1e3*(e.hour*3600+e.minute*60);let h=n-r;if(t.greaterThan(e)||t.equals(e)&&s!==0){h+=24*3600*1e3}return h}}function s(){if(e.darkSchedule){const t=new i(e.darkScheduleStart);const r=new i(e.darkScheduleEnd);const n=new i;const h=n.isInRange(t,r);if(e.useDarkStyle!==h){e.useDarkStyle=h}let u=0;if(h){u=i.millisecondsBefore(r)}else{u=i.millisecondsBefore(t)}if(u!==0){setTimeout(()=>s(),u)}}}fullyLoaded(()=>s());return{export:{ScheduleTime:i}}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/dark-styles.min.js"] = (()=>{return(e,t)=>{const l=()=>{SpinQuery.select(".custom-scrollbar").then(e=>e&&e.classList.remove("custom-scrollbar"))};const r=()=>{document.body.classList.add("dark");l();t.applyStyle("scrollbarStyle");t.applyImportantStyle("darkStyleNavBar");t.applyStyle("darkStyle");t.applyImportantStyle("darkStyleImportant")};r();return{reload:r,unload:()=>{document.body.classList.remove("dark");t.removeStyle("scrollbarStyle");t.removeStyle("darkStyleNavBar");t.removeStyle("darkStyle");t.removeStyle("darkStyleImportant")}}}})(); @@ -1072,7 +1072,7 @@ offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/m offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/download-audio.min.js"] = (()=>{return(e,t)=>{class n{constructor(){this.sid=null;this.progress=null}async getDownloadUrl(){const e=`https://www.bilibili.com/audio/music-service-c/web/url?sid=${this.sid}&privilege=2&quality=2`;const t=await Ajax.getJsonWithCredentials(e);if(t.code===0){return t.data.cdns.shift()}else{logError("获取下载链接失败, 请确保当前账号有下载权限.","下载音频",1e4);return null}}async download(){const e=await this.getDownloadUrl();return new Promise((t,n)=>{const s=new XMLHttpRequest;s.open("GET",e);s.responseType="blob";s.addEventListener("load",()=>t(s.response));s.addEventListener("error",()=>n(s.status));s.addEventListener("progress",e=>this.progress&&this.progress(100*e.loaded/e.total));s.send()})}}const s="下载音频";return{export:n,widget:{content:`\n\n\n${s}\n\n`,condition:()=>document.URL.includes("bilibili.com/audio"),success:async()=>{await SpinQuery.select(()=>document.querySelector("#app"));const e=document.querySelector("#download-audio");const t=e.querySelector("span");const o=new n;o.progress=(e=>{t.innerHTML=`${Math.round(e)}%`});const i=document.querySelector("#download-audio-link");e.addEventListener("click",async e=>{if(o.sid===null||e.target===i){return}const n=await o.download();t.innerHTML=s;const r=i.getAttribute("href");if(r){URL.revokeObjectURL(r)}i.setAttribute("href",URL.createObjectURL(n));const d=(()=>{const e=document.querySelector(".song-title");if(e){return e.getAttribute("title")}else{return"神秘音频"}})();i.setAttribute("download",d+".m4a");i.click()});Observer.childList("#app",()=>{const t=document.URL.match(/bilibili\.com\/audio\/au([\d]+)/);if(t&&t[1]){e.disabled=false;o.sid=t[1]}else{e.disabled=true}})}}}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/download-danmaku.min.js"] = (()=>{return(t,e)=>{const{getFriendlyTitle:n}=e.import("title");const{DanmakuInfo:i}=e.import("video-info");const{DanmakuConverter:a}=e.import("danmaku-converter");async function o(t){const e=n();let i={title:e};try{await loadDanmakuSettingsPanel();const t=t=>{const e=parseFloat(dq(t).style.transform.replace(/translateX\(([\d\.]+)/,"$1"));const n={0:0,44:1,94:2,144:3,188:4}[e];return n};i.font=dq(".bilibili-player-video-danmaku-setting-right-font .bui-select-result").innerText;i.alpha=parseFloat(dq(".bilibili-player-setting-opacity .bui-bar").style.transform.replace(/scaleX\(([\d\.]+)\)/,"$1"));i.duration=(()=>{const e=[18,14,10,8,6][t(".bilibili-player-setting-speedplus .bui-thumb")];return t=>{switch(t.type){case 4:case 5:return 4;default:return e}}})();i.blockTypes=(()=>{let t=[];const e={".bilibili-player-block-filter-type[ftype=scroll]":[1,2,3],".bilibili-player-block-filter-type[ftype=top]":[5],".bilibili-player-block-filter-type[ftype=bottom]":[4],".bilibili-player-block-filter-type[ftype=color]":["color"]};for(const[n,i]of Object.entries(e)){if(dq(n).classList.contains("disabled")){t=t.concat(i)}}return t.concat(7,8)})();const e=[1.4,1.2,1,.8,.6][t(".bilibili-player-setting-fontsize .bui-thumb")];i.resolution={x:1920*e,y:1080*e};i.bottomMarginPercent=[.75,.5,.25,0,0][t(".bilibili-player-setting-area .bui-thumb")];if(i.bottomMarginPercent===0&&dq(".bilibili-player-video-danmaku-setting-left-preventshade input").checked){i.bottomMarginPercent=.15}i.bold=dq(".bilibili-player-video-danmaku-setting-right-font-bold input").checked}catch(t){i={font:"微软雅黑",alpha:.6,duration:t=>{switch(t.type){case 4:case 5:return 4;default:return 6}},blockTypes:[7,8],resolution:{x:1920,y:1080},bottomMarginPercent:.15,bold:false}}const o=new a(i);const l=o.convertToAssDocument(t);return l.generateAss()}async function l(t,e){const a=n();const l=new i((unsafeWindow||window).cid);await l.fetchInfo();const r=await(async()=>{if(t===true){return new Blob([await o(l.rawXML)],{type:"text/plain"})}else{return new Blob([l.rawXML],{type:"text/plain"})}})();const s=URL.createObjectURL(r);const c=dq("#danmaku-link");const d=c.getAttribute("href");if(d){URL.revokeObjectURL(d)}clearTimeout(e);dq("#download-danmaku>span").innerHTML="下载弹幕";c.setAttribute("download",`${a}.${t?"ass":"xml"}`);c.setAttribute("href",s);c.click()}return{export:{downloadDanmaku:l,convertToAss:o},widget:{content:`\n\n\n下载弹幕\n\n`,condition:async()=>{let t=await SpinQuery.select(()=>(unsafeWindow||window).cid);return Boolean(t)},success:()=>{const t=document.querySelector("#danmaku-link");dq("#download-danmaku").addEventListener("click",e=>{if(e.target!==t){const t=setTimeout(()=>dq("#download-danmaku>span").innerHTML="请稍侯...",200);l(e.shiftKey,t)}})}}}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/download-video.min.css"] = `.download-video{--download-video-background:white;--download-video-foreground:black;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.95);background:var(--download-video-background);color:var(--download-video-foreground);box-shadow:rgba(0,0,0,.2) 0 4px 8px 0;z-index:10001;pointer-events:none;opacity:0;padding:16px;width:300px;display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;max-height:90%}.download-video,.download-video *{transition:.2s ease-out;-webkit-tap-highlight-color:transparent!important}.download-video.opened{pointer-events:initial;opacity:1;transform:translate(-50%,-50%) scale(1)}body.dark .download-video{--download-video-background:#222;--download-video-foreground:#eee}.round-corner .download-video,.round-corner .download-video .episode-list .v-checkbox,.round-corner .download-video .rpc-settings{border-radius:var(--large-corner-radius)}.round-corner .download-video .button,.round-corner .download-video .cover,.round-corner .download-video .direct-download .progress .background,.round-corner .download-video .direct-download .progress .foreground,.round-corner .download-video .rpc-settings input[type=text],.round-corner .download-video .title,.round-corner .download-video button{border-radius:var(--corner-radius)}.download-video .cover{width:240px;min-height:135px;background-color:#8882}.download-video .header{display:flex;justify-content:space-between;align-items:center}.download-video h1{font-size:16pt;font-weight:700;color:var(--download-video-foreground)}.download-video .header .mdi-close{font-size:16pt;color:var(--download-video-foreground);cursor:pointer}.download-video .header .mdi-close:hover{color:var(--theme-color)}.download-video .info{display:flex;flex-direction:column;align-items:center;margin-top:12px}.download-video .title{display:flex;flex-direction:column;justify-content:space-between;align-items:stretch;margin-top:12px}.download-video .title .bold{width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.download-video .title .size{font-size:10pt;color:var(--download-video-foreground);align-self:center;display:flex;align-items:center;height:24px}.download-video .bold{color:var(--download-video-foreground);font-weight:700;font-size:12pt}.download-video .option-item{display:flex;justify-content:space-between;align-items:center;padding-top:12px;font-size:10pt}.download-video .tabs{display:flex;padding-top:12px;font-size:10pt}.download-video .tabs .tab{padding:6px 12px;border-bottom:2px solid transparent;cursor:pointer}.download-video .tabs .tab.active{color:var(--theme-color);border-bottom-color:var(--theme-color)}.download-video .separator{height:1px;background:#8884;width:100%;margin:12px 0;flex-shrink:0}.download-video h2{font-size:12pt;font-weight:700;color:var(--download-video-foreground)}.download-video .direct-download{display:flex;flex-direction:column;align-items:start;justify-content:space-between}.download-video .button,.download-video button{border:none;outline:0!important;padding:6px 16px;font-size:10pt;cursor:pointer;background:#8884;color:var(--download-video-foreground)}.download-video .button:hover,.download-video button:hover{background:#8886}.download-video .primary{background:var(--theme-color);color:var(--foreground-color);align-self:center}.download-video .primary:hover{background:var(--theme-color-90)}.download-video .busy .button,.download-video .busy .primary,.download-video .busy button,.download-video button:disabled{background-color:#0001;color:#8884;cursor:not-allowed}.download-video .busy .button,.download-video .busy button{cursor:wait!important}.download-video .direct-download .progress{align-self:stretch;display:flex;align-items:center;margin-top:8px}.download-video .direct-download .progress .background{flex-grow:1;height:4px;background:#8884;margin-right:4px;position:relative}.download-video .direct-download .progress .background .foreground{position:absolute;top:0;left:0;height:4px;background:linear-gradient(to right,var(--theme-color),var(--theme-color-60))}.download-video .direct-download .progress .percent{width:50px;text-align:right}.download-video .actions{display:flex;flex-wrap:wrap;justify-content:space-between;margin:8px -4px 0}.download-video .actions>*{margin:4px;flex-grow:1;flex-basis:calc(50% - 16px);display:flex;justify-content:center;align-items:center}.download-video i.mdi-alert-circle{font-size:14pt;color:#ff9800}.download-video .size-warning{position:relative;padding:0 8px}.download-video .size-warning-tip{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);background:var(--download-video-background);color:var(--download-video-foreground);border:1px dashed var(--theme-color);z-index:2;font-size:10pt;width:200px;padding:8px;box-shadow:rgba(0,0,0,.2) 0 4px 8px 0;pointer-events:none;opacity:0}.download-video .size-warning:hover .size-warning-tip{opacity:1}.download-video .episode-list .v-checkbox{padding:4px 8px;margin:4px 0;position:relative;background-color:transparent}.download-video .episode-list .v-checkbox.checked{background-color:#8882}.download-video .episode-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.download-video .episode-list{overflow:auto;max-height:320px}.download-video button.list-tool{padding:4px;line-height:1;font-size:12pt;margin:0 4px}.download-video .episode-header h2{flex-grow:1}.download-video .selected-count{width:64px;text-align:right}.download-video .aria2-rpc .mdi{margin-left:8px;font-size:14pt;line-height:1}.download-video .aria2-rpc{position:relative}.download-video .rpc-settings{position:absolute;display:flex;flex-direction:column;align-items:stretch;color:var(--download-video-foreground);background:#fff;bottom:120%;left:50%;cursor:initial;box-shadow:rgba(0,0,0,.2) 0 4px 8px 0;transform-origin:bottom;transform:translateX(-50%) scale(.9);opacity:0;pointer-events:none;padding:8px;z-index:3;transition:.3s cubic-bezier(.18,.89,.32,1.28);width:100%}body.dark .download-video .rpc-settings{background:#282828}.download-video .rpc-settings>*{margin:8px}.download-video .rpc-settings.show{opacity:1;transform:translateX(-50%) scale(1);pointer-events:initial}.download-video .rpc-settings input[type=text]{background:0 0;color:var(--download-video-foreground);border:1px solid #8884;padding:4px;margin-left:8px}.download-video .rpc-settings input[type=text]:focus{border-color:var(--theme-color)}.download-video .rpc-settings .operations{display:flex;align-items:center;justify-content:space-evenly}.download-video .rpc-settings-item{display:flex;align-items:center;justify-content:space-between;white-space:nowrap}.download-video .rpc-settings-item input[type=text]{flex-grow:1;margin-left:24px}.download-video button.cancel-download,.download-video button.start-download{margin-top:8px}.download-video .direct-download-header{align-self:stretch;display:flex;justify-content:space-between;align-items:center}body.dark .download-video .direct-download .progress .foreground{background:linear-gradient(to right,var(--theme-color-70),var(--theme-color))}`; -offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/download-video.min.html"] = `

    下载视频

    单个视频
    批量导出
    警告: 过大的视频大小会在直接下载时占用大量内存, 并可能导致浏览器标签页崩溃. 请考虑降低清晰度或使用导出选项.
    预计大小: {{displaySize}}
    格式
    清晰度
    弹幕

    直接下载

    {{speed}}
    {{progressPercent}}%

    选集

    {{selectedEpisodeCount}}/{{episodeList.length}}

    导出

    {{showRpcSettings ? '取消' : 'aria2 RPC'}}

    aria2 RPC

    配置

    主机
    端口
    密钥
    限速
    默认路径
    路径
    最终路径: {{rpcSettings.baseDir + rpcSettings.dir}}
    方法
    开始下载
    {{saveRpcSettingsText}}
    `; +offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/download-video.min.html"] = `

    下载视频

    单个视频
    批量导出
    警告: 过大的视频大小会在直接下载时占用大量内存, 并可能导致浏览器标签页崩溃. 请考虑降低清晰度或使用导出选项.
    预计大小: {{displaySize}}
    格式
    清晰度
    弹幕

    直接下载

    {{speed}}
    {{progressPercent}}%

    选集

    {{selectedEpisodeCount}}/{{episodeList.length}}

    导出

    {{showRpcSettings ? '取消' : 'aria2 RPC'}}

    aria2 RPC

    配置

    主机
    端口
    密钥
    限速
    默认路径
    路径
    最终路径: {{rpcSettings.baseDir + rpcSettings.dir}}
    方法
    开始下载
    {{saveRpcSettingsText}}
    `; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/download-video.min.js"] = (()=>{return(e,t)=>{const{getFriendlyTitle:s}=t.import("title");const{VideoInfo:a,DanmakuInfo:i}=t.import("video-info");class n{constructor(){this.menuClasses=["quality","action","progress"];[this.currentMenuClass]=this.menuClasses}get menuPanel(){return document.querySelector(".download-video-panel")}addMenuClass(){this.menuPanel.classList.remove(...this.menuClasses);this.menuPanel.classList.add(this.currentMenuClass);return this.currentMenuClass}resetMenuClass(){[this.currentMenuClass]=this.menuClasses;this.addMenuClass()}nextMenuClass(){const e=this.menuClasses.indexOf(this.currentMenuClass)+1;const t=this.menuClasses[e>=this.menuClasses.length?0:e];this.currentMenuClass=t;this.addMenuClass();return t}closeMenu(){this.menuPanel.classList.remove("opened");setTimeout(()=>this.resetMenuClass(),200)}addError(){this.menuPanel.classList.add("error")}removeError(){this.menuPanel.classList.remove("error");this.resetMenuClass()}async getDashUrl(e){throw new Error("video dash is not supported")}async getUrl(e){if(e){return`https://api.bilibili.com/x/player/playurl?avid=${r.aid}&cid=${r.cid}&qn=${e}&otype=json`}else{return`https://api.bilibili.com/x/player/playurl?avid=${r.aid}&cid=${r.cid}&otype=json`}}}class o extends n{async getDashUrl(e){if(e){return`https://api.bilibili.com/pgc/player/web/playurl?avid=56995872&cid=99547543&qn=${e}&otype=json&fourk=1&fnval=16`}else{return`https://api.bilibili.com/pgc/player/web/playurl?avid=56995872&cid=99547543&otype=json&fourk=1&fnval=16`}}async getUrl(e){if(e){return`https://api.bilibili.com/pgc/player/web/playurl?avid=${r.aid}&cid=${r.cid}&qn=${e}&otype=json`}else{return`https://api.bilibili.com/pgc/player/web/playurl?avid=${r.aid}&cid=${r.cid}&qn=&otype=json`}}}const r={entity:new n,aid:"",cid:""};let l=[];let c=null;class d{constructor(e,t,s){this.quality=e;this.internalName=t;this.displayName=s}async downloadInfo(e=false){const t=new h(this);await t.fetchVideoInfo(e);return t}static parseFormats(e){const t=e.accept_quality;const s=e.accept_format.split(",");const a=e.accept_description;const i=t.map((e,t)=>{return new d(e,s[t],a[t])});return i}static async getAvailableDashFormats(){const e=await r.entity.getDashUrl();const t=await Ajax.getJsonWithCredentials(e);if(t.code!==0){throw new Error("获取清晰度信息失败.")}return d.parseFormats(t.result)}static async getAvailableFormats(){const e=await r.entity.getUrl();const t=await Ajax.getJsonWithCredentials(e);if(t.code!==0){throw new Error("获取清晰度信息失败.")}const s=t.data||t.result||t;return d.parseFormats(s)}}class h{constructor(e,t){this.fragmentSplitFactor=6*2;this.workingXhr=null;this.progressMap=new Map;this.format=e;this.fragments=t||[];this.videoSpeed=new u(this)}get totalSize(){return this.fragments.map(e=>e.size).reduce((e,t)=>e+t)}async fetchVideoInfo(e=false){if(!e){const e=await r.entity.getUrl(this.format.quality);const t=await Ajax.getTextWithCredentials(e);const s=JSON.parse(t.replace(/http:/g,"https:"));const a=s.data||s.result||s;if(a.quality!==this.format.quality){throw new Error("获取下载链接失败, 请确认当前账号有下载权限后重试.")}const i=a.durl;this.fragments=i.map(e=>{return{length:e.length,size:e.size,url:e.url,backupUrls:e.backup_url}})}else{const{dashToFragment:e,getDashInfo:s}=await t.importAsync("video-dash");const a=await s(r.aid,r.cid,this.format.quality);const i=a.videoDashes.sort(descendingSort(e=>e.bandWidth))[0];const n=a.audioDashes.sort(descendingSort(e=>e.bandWidth))[0];this.fragments=[e(i),e(n)]}return this.fragments}updateProgress(){const e=this.progressMap?[...this.progressMap.values()].reduce((e,t)=>e+t,0)/this.totalSize:0;if(e>1||e<0){console.error(`[下载视频] 进度异常: ${e}`,this.progressMap.values())}this.progress&&this.progress(e)}cancelDownload(){this.videoSpeed.stopMeasure();if(this.workingXhr!==null){this.workingXhr.forEach(e=>e.abort())}else{logError("Cancel Download Failed: forEach in this.workingXhr not found.")}}downloadFragment(e){const t=[];this.workingXhr=[];this.progressMap=new Map;this.updateProgress();let s;if(e.size<=96*1024*1024){s=e.size/this.fragmentSplitFactor}else{s=16*1024*1024}let a=0;const i=e=>[...this.progressMap.keys()].indexOf(e)+1;while(a{const a=new XMLHttpRequest;a.open("GET",e.url);a.responseType="arraybuffer";a.withCredentials=false;a.addEventListener("progress",e=>{console.log(`[下载视频] 视频片段${i(a)}下载进度: ${e.loaded}/${r} bytes loaded, ${o}`);this.progressMap.set(a,e.loaded);this.updateProgress()});a.addEventListener("load",()=>{if((""+a.status)[0]==="2"){console.log(`[下载视频] 视频片段${i(a)}下载完成`);t(a.response)}else{s(`视频片段${i(a)}请求失败, response = ${a.status}`)}});a.addEventListener("abort",()=>s("canceled"));a.addEventListener("error",()=>{console.error(`[下载视频] 视频片段${i(a)}下载失败: ${o}`);this.progressMap.set(a,0);this.updateProgress();a.open("GET",e.url);a.setRequestHeader("Range",o);a.send()});a.setRequestHeader("Range",o);this.progressMap.set(a,0);a.send();this.workingXhr.push(a)}));a=Math.round(a+s)+1}return Promise.all(t)}async copyUrl(){const e=this.fragments.map(e=>e.url).reduce((e,t)=>e+"\r\n"+t);GM_setClipboard(e,"text")}async showUrl(){const e=this.fragments.map(e=>`\n${e.url}\n`).reduce((e,t)=>e+"\r\n"+t);Toast.success(e,"显示链接")}static downloadBlob(e,t){const s=document.createElement("a");let a;if(typeof e==="string"){a=e}else{a=URL.createObjectURL(e)}s.setAttribute("href",a);s.setAttribute("download",t);document.body.appendChild(s);s.click();s.remove();URL.revokeObjectURL(a)}async exportData(e=false){const t=JSON.stringify([{fragments:this.fragments,title:s(),totalSize:this.fragments.map(e=>e.size).reduce((e,t)=>e+t),referer:document.URL.replace(window.location.search,"")}]);if(e){GM_setClipboard(t,"text")}else{const e=new Blob([t],{type:"text/json"});const a=await this.downloadDanmaku();if(a!==null){const t=new JSZip;t.file(`${s()}.json`,e);t.file(s()+"."+this.danmakuOption.toLowerCase(),a);h.downloadBlob(await t.generateAsync({type:"blob"}),`${s()}.zip`)}else{h.downloadBlob(e,`${s()}.json`)}}}async exportAria2(a=false){if(a){const a=await this.downloadDanmaku();if(a!==null){h.downloadBlob(new Blob([a]),`${s()}.${this.danmakuOption==="ASS"?"ass":"xml"}`)}const i=e.aria2RpcOption;const n=this.fragments.map((e,t)=>{let a="";if(this.fragments.length>1){a=" - "+(t+1)}const n=[];if(i.secretKey!==""){n.push(`token:${i.secretKey}`)}n.push([e.url]);n.push({referer:document.URL.replace(window.location.search,""),"user-agent":UserAgent,out:`${s()}${a}${this.extension(e)}`,split:this.fragmentSplitFactor,dir:i.baseDir+i.dir||undefined,"max-download-limit":i.maxDownloadLimit||undefined});const o=encodeURIComponent(`${s()}${a}`);return{params:n,id:o}});const{sendRpc:o}=await t.importAsync("aria2-rpc");await o(n)}else{const e=`\n# Generated by Bilibili Evolved Video Export\n# https://github.com/the1812/Bilibili-Evolved/\n${this.fragments.map((e,t)=>{let a="";if(this.fragments.length>1){a=" - "+(t+1)}return`\n${e.url}\nreferer=${document.URL.replace(window.location.search,"")}\nuser-agent=${UserAgent}\nout=${s()}${a}${this.extension(e)}\nsplit=${this.fragmentSplitFactor}\n`.trim()}).join("\n")}\n`.trim();const t=new Blob([e],{type:"text/plain"});const a=await this.downloadDanmaku();if(a!==null){const e=new JSZip;e.file(`${s()}.txt`,t);e.file(s()+"."+this.danmakuOption.toLowerCase(),a);h.downloadBlob(await e.generateAsync({type:"blob"}),`${s()}.zip`)}else{h.downloadBlob(t,`${s()}.txt`)}}}extension(e){const t=e||this.fragments[0];const s=[".flv",".mp4",".m4s"].find(e=>t.url.includes(e));if(s){return s}else{console.warn("No extension detected.");return".flv"}}makeBlob(e,t){return new Blob(Array.isArray(e)?e:[e],{type:this.extension(t)===".flv"?"video/x-flv":"video/mp4"})}cleanUpOldBlobUrl(){const e=dq("a#video-complete").getAttribute("href");if(e&&!dq(`.link[href="${e}"]`)){URL.revokeObjectURL(e)}dqa(".toast-card-header").filter(e=>e.innerText.includes("下载视频")).forEach(e=>e.querySelector(".toast-card-dismiss").click())}async downloadDanmaku(){if(this.danmakuOption!=="无"){const e=new i(r.cid);await e.fetchInfo();if(this.danmakuOption==="XML"){return e.rawXML}else{const{convertToAss:s}=await t.importAsync("download-danmaku");return s(e.rawXML)}}else{return null}}async downloadSingle(e){const t=await this.downloadDanmaku();const[a]=e;if(t===null){const e=this.makeBlob(a);const t=s()+this.extension();return{blob:e,filename:t}}else{const e=new JSZip;e.file(s()+this.extension(),this.makeBlob(a));e.file(s()+"."+this.danmakuOption.toLowerCase(),t);const i=await e.generateAsync({type:"blob"});const n=s()+".zip";return{blob:i,filename:n}}}async downloadMultiple(e){const t=new JSZip;const a=s();if(e.length>1){e.forEach((e,s)=>{const i=this.fragments[s];t.file(`${a} - ${s+1}${this.extension(i)}`,this.makeBlob(e,i))})}else{const[s]=e;t.file(`${a}${this.extension()}`,this.makeBlob(s))}const i=await this.downloadDanmaku();if(i!==null){t.file(s()+"."+this.danmakuOption.toLowerCase(),i)}const n=await t.generateAsync({type:"blob"});const o=a+".zip";return{blob:n,filename:o}}async download(){const e=[];this.videoSpeed.startMeasure();for(const t of this.fragments){const s=await this.downloadFragment(t);e.push(s)}if(e.length<1){throw new Error("下载失败.")}let{blob:t,filename:s}=await(async()=>{if(e.length===1){return await this.downloadSingle(e)}else{return await this.downloadMultiple(e)}})();this.cleanUpOldBlobUrl();const a=URL.createObjectURL(t);this.progress&&this.progress(0);this.videoSpeed.stopMeasure();return{url:a,filename:s}}}class u{constructor(e){this.lastProgress=0;this.measureInterval=1e3;this.workingDownloader=e}startMeasure(){this.intervalTimer=setInterval(()=>{const e=this.workingDownloader.progressMap?[...this.workingDownloader.progressMap.values()].reduce((e,t)=>e+t,0):0;const t=e-this.lastProgress;if(this.speedUpdate!==undefined){this.speedUpdate(formatFileSize(t)+"/s")}this.lastProgress=e},this.measureInterval)}stopMeasure(){clearInterval(this.intervalTimer)}}async function p(){const e=await SpinQuery.select(()=>(unsafeWindow||window).aid);const t=await SpinQuery.select(()=>(unsafeWindow||window).cid);if(!(e&&t)){return false}r.aid=e;r.cid=t;if(document.URL.indexOf("bangumi")!==-1){r.entity=new o}else{r.entity=new n}try{l=await d.getAvailableFormats()}catch(e){return false}return true}async function f(){c=l[0];t.applyStyle("downloadVideoStyle");dq("#download-video").addEventListener("click",()=>{dq(".download-video").classList.toggle("opened");dq(".gui-settings-mask").click()});dq("#download-video").addEventListener("mouseover",()=>{document.body.insertAdjacentHTML("beforeend",t.import("downloadVideoHtml"));m()},{once:true})}async function m(){let n;const o=new Map;const u=new Vue({el:".download-video",components:{VDropdown:()=>t.importAsync("v-dropdown.vue"),VCheckbox:()=>t.importAsync("v-checkbox.vue"),RpcProfiles:()=>t.importAsync("aria2-rpc-profiles.vue")},data:{downloadSingle:true,coverUrl:EmptyImageUrl,aid:r.aid,cid:r.cid,dashModel:{value:e.downloadVideoFormat,items:["flv","dash"]},qualityModel:{value:c.displayName,items:l.map(e=>e.displayName)},danmakuModel:{value:e.downloadVideoDefaultDanmaku,items:["无","XML","ASS"]},progressPercent:0,size:"获取大小中",blobUrl:"",episodeList:[],downloading:false,speed:"",batch:false,rpcSettings:e.aria2RpcOption,showRpcSettings:false,busy:false,saveRpcSettingsText:"保存配置",enableDash:e.enableDashDownload},computed:{displaySize(){if(typeof this.size==="string"){return this.size}return formatFileSize(this.size)},sizeWarning(){if(typeof this.size==="string"){return false}return this.size>1073741824},selectedEpisodeCount(){return this.episodeList.filter(e=>e.checked).length},dash(){return this.dashModel.value==="dash"}},methods:{close(){this.$el.classList.remove("opened")},danmakuOptionChange(){e.downloadVideoDefaultDanmaku=this.danmakuModel.value},async dashChange(){const e=this.dashModel.value;let t=[];if(e==="flv"){t=await d.getAvailableFormats()}else{t=await d.getAvailableDashFormats()}l=t;[c]=e;this.qualityModel.items=t.map(e=>e.displayName);[this.qualityModel.value]=this.qualityModel.items},async formatChange(){const e=this.getFormat();const t=o.get(e);if(t){this.size=t;return}try{this.size="获取大小中";const t=await e.downloadInfo(this.dash);this.size=t.totalSize;o.set(e,this.size)}catch(e){this.size="获取大小失败"}},getFormat(){const e=l.find(e=>e.displayName===this.qualityModel.value);if(!e){console.error(`No format found. model value = ${this.qualityModel.value}`);return null}return e},async exportData(e){if(this.busy===true){return}try{this.busy=true;if(!this.downloadSingle){await this.exportBatchData(e);return}const t=this.getFormat();const s=await t.downloadInfo(this.dash);s.danmakuOption=this.danmakuModel.value;switch(e){case"copyLink":await s.copyUrl();Toast.success("已复制链接到剪贴板.","下载视频",3e3);break;case"showLink":await s.showUrl();break;case"aria2":await s.exportAria2(false);break;case"aria2RPC":await s.exportAria2(true);break;case"copyVLD":await s.exportData(true);Toast.success("已复制VLD数据到剪贴板.","下载视频",3e3);break;case"exportVLD":await s.exportData(false);break;default:break}}catch(e){logError(e)}finally{this.busy=false}},async exportBatchData(e){const a=this.episodeList;if(a.every(e=>e.checked===false)){Toast.info("请至少选择1集或以上的数量!","批量导出",3e3);return}const n=e=>{const t=a.find(t=>t.cid===e.cid);if(t===undefined){return false}return t.checked};const o=this.getFormat();if(this.danmakuModel.value!=="无"){const e=Toast.info("下载弹幕中...","批量导出");const s=new JSZip;try{if(this.danmakuModel.value==="XML"){for(const e of a.filter(n)){const t=new i(e.cid);await t.fetchInfo();s.file(e.title+".xml",t.rawXML)}}else{const{convertToAss:e}=await t.importAsync("download-danmaku");for(const t of a.filter(n)){const a=new i(t.cid);await a.fetchInfo();s.file(t.title+".ass",await e(a.rawXML))}}h.downloadBlob(await s.generateAsync({type:"blob"}),this.cid+".danmakus.zip")}catch(e){logError(`弹幕下载失败`)}finally{e.dismiss()}}const r=Toast.info("获取链接中...","批量导出");this.batchExtractor.itemFilter=n;let l;try{switch(e){case"aria2":l=await this.batchExtractor.collectAria2(o,r);h.downloadBlob(new Blob([l],{type:"text/plain"}),s(false)+".txt");return;case"aria2RPC":await this.batchExtractor.collectAria2(o,r,true);Toast.success(`成功发送了批量请求.`,"aria2 RPC",3e3);return;case"copyVLD":GM_setClipboard(await this.batchExtractor.collectData(o,r),{mimetype:"text/plain"});Toast.success("已复制批量vld数据到剪贴板.","批量导出",3e3);return;case"exportVLD":l=await this.batchExtractor.collectData(o,r);h.downloadBlob(new Blob([l],{type:"text/json"}),s(false)+".json");return;default:return}}catch(e){logError(e)}finally{r.dismiss()}},async checkBatch(){const e=["/www.bilibili.com/bangumi","/www.bilibili.com/video/av"];if(!e.some(e=>document.URL.includes(e))){this.batch=false;this.episodeList=[];return}const{BatchExtractor:s}=await t.importAsync("batch-download");if(await s.test()!==true){this.batch=false;this.episodeList=[];return}this.batchExtractor=new s;this.batch=true;this.episodeList=(await this.batchExtractor.getItemList()).map((e,t)=>{return{aid:e.aid,cid:e.cid,title:e.title,index:t,checked:true}})},cancelDownload(){if(n){n.cancelDownload()}},async startDownload(){const e=this.getFormat();try{this.downloading=true;const t=await e.downloadInfo(this.dash);t.videoSpeed.speedUpdate=(e=>this.speed=e);t.danmakuOption=this.danmakuModel.value;t.progress=(e=>{this.progressPercent=Math.trunc(e*100)});n=t;const s=await t.download();const a=document.getElementById("video-complete");a.setAttribute("href",s.url);a.setAttribute("download",s.filename);a.click();Toast.success(`下载完成: ${s.filename} 再次保存`,"下载视频")}catch(e){if(e!=="canceled"){logError(e)}this.progressPercent=0}finally{this.downloading=false;this.speed=""}},selectAllEpisodes(){this.episodeList.forEach(e=>e.checked=true)},unselectAllEpisodes(){this.episodeList.forEach(e=>e.checked=false)},inverseAllEpisodes(){this.episodeList.forEach(e=>e.checked=!e.checked)},toggleRpcSettings(){this.showRpcSettings=!this.showRpcSettings},saveRpcSettings(){if(this.rpcSettings.host===""){this.rpcSettings.host="127.0.0.1"}if(this.rpcSettings.port===""){this.rpcSettings.port="6800"}e.aria2RpcOption=this.rpcSettings;const t=e.aria2RpcOptionProfiles.find(t=>t.name===e.aria2RpcOptionSelectedProfile);if(t){Object.assign(t,this.rpcSettings);e.aria2RpcOptionProfiles=e.aria2RpcOptionProfiles}this.saveRpcSettingsText="已保存";setTimeout(()=>this.saveRpcSettingsText="保存配置",2e3)},updateProfile(t){e.aria2RpcOption=this.rpcSettings=_.omit(t,"name")}}});Observer.videoChange(async()=>{u.close();u.batch=false;u.downloadSingle=true;const e=dq("#download-video");const t=await p();e.style.display=t?"flex":"none";if(!t){return}u.aid=r.aid;u.cid=r.cid;const s=new a(r.aid);await s.fetchInfo();u.coverUrl=s.coverUrl.replace("http:","https:");l=await d.getAvailableFormats();[c]=l;u.qualityModel={value:c.displayName,items:l.map(e=>e.displayName)};u.formatChange();await u.checkBatch()})}return{widget:{content:`\n`,condition:p,success:f}}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/dpi-img.vue.min.js"] = (()=>{return(t,e)=>{const i=``;return{export:Object.assign({template:i},{props:["size","src","blur"],computed:{srcset(){if(!this.src||!this.size){return null}return getDpiSourceSet(this.src,this.size)},width(){if(typeof this.size==="object"&&"width"in this.size){return this.size.width}return null},height(){if(typeof this.size==="object"&&"height"in this.size){return this.size.height}return null}}})}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/expand-danmaku.min.js"] = (()=>{return(e,a)=>{if(typeof isEmbeddedPlayer!=="undefined"&&isEmbeddedPlayer()){return}Observer.videoChange(async()=>{const e=await SpinQuery.select(".bui-collapse-wrap");if(e&&e.classList.contains("bui-collapse-wrap-folded")){const e=await SpinQuery.select(".bui-collapse-header");e.click()}})}})(); @@ -1159,7 +1159,7 @@ offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/m offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/simplify-home.min.css"] = `#app>.bili-wrapper,#app>.elevator-module,.bili-header-m .head-banner .head-content .head-logo,.international-footer,.international-header .b-wrap,.international-home>:not(.international-header){display:none!important}`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/simplify-home.min.js"] = (()=>{return(e,i)=>{(async()=>{if(document.URL.replace(window.location.search,"")!=="https://www.bilibili.com/"){i.removeStyle("simplifyHomeStyle");return}document.body.insertAdjacentHTML("beforeend",`\n\n`);const m=new Vue({el:"simplify-home",components:{SimplifyHome:()=>i.importAsync("simplify-home.vue")},data:{homeStyle:e.simplifyHomeStyle}});addSettingsListener("simplifyHomeStyle",e=>m.homeStyle=e,false)})()}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/simplify-home.vue.min.js"] = (()=>{return(e,m)=>{const o=`
    `;m.applyStyleFromText(`.simplify-home{margin-top:32px;display:flex;align-items:center;justify-content:center}.simplify-home .simplify-home-component{max-width:100%}html{scroll-behavior:smooth}`,"simplify-home-style");return{export:Object.assign({template:o},{components:{"minimal-home":()=>m.importAsync("minimal-home.vue"),"simple-home":()=>m.importAsync("simple-home.vue")},computed:{activeComponent(){return this.homeStyle==="清爽"?"simple-home":"minimal-home"}},props:{homeStyle:String}})}}})(); -offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/simplify-liveroom.min.css"] = `.simplify-eventsBanner .activity-pushing-out,.simplify-fansMedal .fans-medal-item-ctnr,.simplify-giftMessage .chat-item.gift-item,.simplify-giftPanel .gift-control-panel .wish-icon,.simplify-giftPanel .gift-control-panel .wish-tip,.simplify-giftPanel .gift-panel,.simplify-giftPanel .gift-panel-switch,.simplify-giftPanel .gift-section.guard-ent,.simplify-giftPanel .seeds-wrap>.dp-i-block>.item:not(.seeds),.simplify-guard i.guard-icon,.simplify-guardPurchase .chat-item.guard-buy,.simplify-popup .chat-popups-section,.simplify-popup .link-popup-ctnr,.simplify-systemMessage .announcement-wrapper,.simplify-systemMessage .system-msg,.simplify-title .title-label,.simplify-userLevel .user-level-icon,.simplify-vip .vip-icon,.simplify-welcomeMessage .welcome-guard,.simplify-welcomeMessage .welcome-msg{display:none!important}.simplify-giftPanel .gift-control-panel,.simplify-giftPanel .gift-control-section{height:48px!important}.simplify-giftPanel .treasure-box{display:flex!important;align-items:center!important;padding:10px 0 0 16px!important}.simplify-giftPanel .treasure-box .box-icon{width:24px!important;height:24px!important;background-position:0 -2.5px!important}.simplify-giftPanel .treasure-box .box-icon.open{background-position:0 -1px!important}.simplify-giftPanel .treasure-box .count-down{margin-left:12px!important;padding:4px 8px!important;max-width:unset!important}.simplify-giftPanel .treasure-box .awarding-panel{bottom:42px!important}.simplify-giftPanel .gift-control-panel .right-part{height:48px!important;display:flex!important;justify-content:flex-end!important}.simplify-giftPanel .gift-control-panel .right-part>.dp-table-cell{display:flex!important;align-items:center!important}.simplify-giftPanel .gift-control-panel .right-part>.dp-table-cell .supporting-info{transform:translateY(-2px)!important}.simplify-skin #gift-control-vm,.simplify-skin #head-info-vm,.simplify-skin #rank-list-ctnr-box{background-image:none!important}.simplify-guard .guard-danmaku::before{border-image:none!important;background-color:transparent!important}.simplify-guard .guard-danmaku::before .guard-danmaku{margin:0!important;padding:4px 5px!important}.simplify-guard .guard-danmaku::before .guard-danmaku::after{background-image:none!important}.simplify-guard [class*=guard-level-]::after{display:none!important}.simplify-liveroom-settings>ul>li{padding:8px 12px;display:flex;align-items:center}.simplify-liveroom-settings>ul>li:hover{background:rgba(0,0,0,.16)}.round-corner .simplify-liveroom-settings>ul>li{border-radius:var(--corner-radius)}`; +offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/simplify-liveroom.min.css"] = `.simplify-eventsBanner .activity-pushing-out,.simplify-fansMedal .fans-medal-item-ctnr,.simplify-giftMessage .chat-item.gift-item,.simplify-giftPanel .gift-control-panel .wish-icon,.simplify-giftPanel .gift-control-panel .wish-tip,.simplify-giftPanel .gift-panel,.simplify-giftPanel .gift-panel-switch,.simplify-giftPanel .gift-section.guard-ent,.simplify-giftPanel .seeds-wrap>.dp-i-block>.item:not(.seeds),.simplify-guard i.guard-icon,.simplify-guardPurchase .chat-item.guard-buy,.simplify-popup .chat-popups-section,.simplify-popup .link-popup-ctnr,.simplify-systemMessage .announcement-wrapper,.simplify-systemMessage .system-msg,.simplify-title .title-label,.simplify-userLevel .user-level-icon,.simplify-vip .vip-icon,.simplify-welcomeMessage .welcome-guard,.simplify-welcomeMessage .welcome-msg{display:none!important}.simplify-giftPanel .gift-control-panel,.simplify-giftPanel .gift-control-section{height:48px!important}.simplify-giftPanel .treasure-box{display:flex!important;align-items:center!important;padding:10px 0 0 16px!important}.simplify-giftPanel .treasure-box .box-icon{width:24px!important;height:24px!important;background-position:0 -2.5px!important}.simplify-giftPanel .treasure-box .box-icon.open{background-position:0 -1px!important}.simplify-giftPanel .treasure-box .count-down{margin-left:12px!important;padding:4px 8px!important;max-width:unset!important}.simplify-giftPanel .treasure-box .awarding-panel{bottom:42px!important}.simplify-giftPanel .gift-control-panel .right-part{height:48px!important;display:flex!important;justify-content:flex-end!important}.simplify-giftPanel .gift-control-panel .right-part>.dp-table-cell{display:flex!important;align-items:center!important}.simplify-giftPanel .gift-control-panel .right-part>.dp-table-cell .supporting-info{transform:translateY(-2px)!important}.simplify-skin #gift-control-vm,.simplify-skin #head-info-vm,.simplify-skin #rank-list-ctnr-box{background-image:none!important}.simplify-guard .guard-danmaku::before{border-image:none!important;background-color:transparent!important}.simplify-guard .guard-danmaku::before .guard-danmaku{margin:0!important;padding:4px 5px!important}.simplify-guard .guard-danmaku::before .guard-danmaku::after{background-image:none!important}.simplify-guard [class*=guard-level-]{padding:0!important;margin:0!important}.simplify-guard [class*=guard-level-]::after{display:none!important}.simplify-liveroom-settings>ul>li{padding:8px 12px;display:flex;align-items:center}.simplify-liveroom-settings>ul>li:hover{background:rgba(0,0,0,.16)}.round-corner .simplify-liveroom-settings>ul>li{border-radius:var(--corner-radius)}`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/simplify-liveroom.min.js"] = (()=>{return(e,i)=>{const s={vip:"老爷图标",fansMedal:"粉丝勋章",title:"活动头衔",userLevel:"用户等级",guard:"舰长图标",systemMessage:"全区广播",welcomeMessage:"欢迎信息",giftMessage:"礼物弹幕",guardPurchase:"上舰提示",giftPanel:"付费礼物",eventsBanner:"活动横幅",popup:"抽奖提示",skin:"房间皮肤"};class t{constructor(i,s){this.skinDisabled=e.simplifyLiveroomSettings.skin;this.skinSelectors=i;this.skinClass=s;i.forEach(e=>{SpinQuery.select(e,i=>{Observer.attributes(e,e=>{e.forEach(e=>{if(e.attributeName==="class"){if(this.skinDisabled&&i.classList.contains(s)){i.classList.remove(s)}else if(!this.skinDisabled&&!i.classList.contains(s)){i.classList.add(s)}}})})})})}setSkin(e){this.skinDisabled=!e;this.skinSelectors.forEach(i=>{SpinQuery.select(i,i=>i.classList[e?"add":"remove"](this.skinClass))})}}const n=[new t(["#head-info-vm","#gift-control-vm","#rank-list-vm","#rank-list-ctnr-box",".gift-panel.base-panel",".gift-panel.extend-panel",".seeds-wrap>div:first-child",".gift-section>div:last-child",".z-gift-package>div>div",".right-action"],"live-skin-coloration-area"),new t([".rank-list-ctnr .tabs"],"isHundred"),new t([".rank-list-ctnr .tab-content > div"],"hundred")];const a=(e,i)=>{document.body.classList[e?"add":"remove"](`simplify-${i}`);if(i==="skin"){n.forEach(i=>i.setSkin(!e))}};const c=()=>document.URL.startsWith(`https://live.bilibili.com/`);if(c()){Object.keys(s).forEach(i=>{const s=e.simplifyLiveroomSettings[i];a(s,i)})}return{widget:{condition:c,content:`\n
    \n\n简化直播间\n\n
    \n`,success:()=>{const i=document.querySelector("#simplify-liveroom");const t=document.querySelector(".gui-settings-mask");i.addEventListener("click",e=>{const i=document.querySelector(".simplify-liveroom-settings");if(i.contains(e.target)||e.target===i){return}i.classList.toggle("opened")});i.addEventListener("mouseenter",()=>t.classList.add("transparent"));i.addEventListener("mouseleave",()=>t.classList.remove("transparent"));new Vue({el:".simplify-liveroom-settings",data:{items:Object.entries(s).map(([i,s])=>{const t=e.simplifyLiveroomSettings[i];a(t,i);return{key:i,name:s,checked:t}})},methods:{itemClick(i){i.checked=!i.checked;a(i.checked,i.key);e.simplifyLiveroomSettings=Object.assign(e.simplifyLiveroomSettings,{[i.key]:i.checked})}}})}}}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/skip-charge-list.min.css"] = `.bilibili-player .bilibili-player-area .bilibili-player-electric-panel{display:none!important}`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/skip-charge-list.min.js"] = (()=>{return(e,i)=>{async function n(){const e=await SpinQuery.select(()=>document.querySelector("video"));e&&e.addEventListener("ended",async()=>{const e=await SpinQuery.select(()=>document.querySelector(".bilibili-player-electric-panel-jump"));e&&e.click()})}if(Observer.videoChange){Observer.videoChange(n)}else{Observer.childList("#bofqi",n)}}})(); diff --git a/bilibili-evolved.preview-offline.user.js b/bilibili-evolved.preview-offline.user.js index 140a32024..cbc2efecd 100644 --- a/bilibili-evolved.preview-offline.user.js +++ b/bilibili-evolved.preview-offline.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name Bilibili Evolved (Preview Offline) -// @version 443.82 +// @version 447.84 // @description Bilibili Evolved 的预览离线版, 可以抢先体验新功能, 并且所有功能都已内置于脚本中. // @author Grant Howard, Coulomb-G // @copyright 2019, Grant Howard (https://github.com/the1812) & Coulomb-G (https://github.com/Coulomb-G) @@ -1056,7 +1056,7 @@ offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/m offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/custom-navbar.min.html"] = `

    顶栏布局

    边缘间距: 设定两侧边缘处的间距, 单位为百分比, 100%为整个顶栏的宽度. 允许设置的范围为 0% ~ 40%
    {{boundsPadding}}%
    顺序与显示: 在左侧的条状图标上拖动可以改变它们的顺序, 或者按住名字一会再拖动也可以调顺序. 点击右侧的眼睛图标可以显示/隐藏它们.
    `; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/custom-navbar.min.js"] = (()=>{return(i,t)=>{if(isIframe()){return}document.body.style.setProperty("--navbar-bounds-padding",`0 ${i.customNavbarBoundsPadding}%`);document.body.style.setProperty("--navbar-blur-opacity",i.customNavbarBlurOpacity||.7);addSettingsListener("customNavbarBlurOpacity",i=>{document.body.style.setProperty("--navbar-blur-opacity",i)});let e=true;const a={widget:{content:`\n
    \n\n顶栏布局\n
    `,condition:()=>e,success:async()=>{await SpinQuery.select(".custom-navbar-settings");await t.importAsync("slip");const{debounce:e}=await t.importAsync("debounce");const a=document.querySelector("#custom-navbar-settings");a.addEventListener("click",async()=>{const i=dq(".custom-navbar-settings");if(i){i.classList.toggle("show");document.querySelector(".gui-settings-mask").click()}});a.addEventListener("mouseover",()=>{const t={blank1:"弹性空白1",logo:"Logo",category:"主站",rankingLink:"排行",drawingLink:"相簿",musicLink:"音频",gamesIframe:"游戏中心",livesIframe:"直播",shopLink:"会员购",mangaLink:"漫画",blank2:"弹性空白2",search:"搜索框",userInfo:"用户信息",messages:"消息",activities:"动态",bangumi:"订阅",watchlaterList:"稍后再看",favoritesList:"收藏",historyList:"历史",upload:"投稿入口",blank3:"弹性空白3"};Vue.component("order-item",{props:["item"],template:`\n
  • \n\n{{item.displayName}}\n\n
  • \n`,methods:{hidden(){return i.customNavbarHidden.includes(this.item.name)},viewBorder(i){const t=document.querySelector(`.custom-navbar li[data-name='${this.item.name}']`);if(t!==null){t.classList[i?"add":"remove"]("view-border")}},toggleHidden(){const t=this.hidden();if(t===false){i.customNavbarHidden.push(this.item.name);i.customNavbarHidden=i.customNavbarHidden}else{const t=i.customNavbarHidden.indexOf(this.item.name);if(t===-1){return}i.customNavbarHidden.splice(t,1);i.customNavbarHidden=i.customNavbarHidden}this.$forceUpdate();const e=document.querySelector(`.custom-navbar li[data-name='${this.item.name}']`);if(e!==null){e.style.display=t?"flex":"none"}}}});const a=e(t=>{i.customNavbarBoundsPadding=t;document.body.style.setProperty("--navbar-bounds-padding",`0 ${t}%`)},200);new Vue({el:".custom-navbar-settings",mounted(){const t=document.querySelector(".custom-navbar-settings .order-list");const e=({sourceItem:e,targetItem:a,orderBefore:s,orderAfter:n})=>{if(s===n){return}const l=Object.entries(i.customNavbarOrder).filter(([i])=>i in customNavbarDefaultOrders);const o=l.sort((i,t)=>i[1]-t[1]).map(i=>i[0]);if(s=n;t--){const e=o[t];i.customNavbarOrder[e]=t+1;document.querySelector(`.custom-navbar li[data-name='${e}']`).style.order=t+1}}i.customNavbarOrder[o[s]]=n;document.querySelector(`.custom-navbar li[data-name='${o[s]}']`).style.order=n;i.customNavbarOrder=i.customNavbarOrder;t.insertBefore(e,a)};new Slip(t);t.addEventListener("slip:beforewait",i=>{if(i.target.classList.contains("mdi-menu")){i.preventDefault()}},false);t.addEventListener("slip:beforeswipe",i=>i.preventDefault(),false);t.addEventListener("slip:reorder",i=>{e({sourceItem:i.target,targetItem:i.detail.insertBefore,orderBefore:i.detail.originalIndex,orderAfter:i.detail.spliceIndex});return false},false)},computed:{orderList(){const e=Object.entries(i.customNavbarOrder);return e.filter(i=>i[0]in t).sort((i,t)=>i[1]-t[1]).map(i=>{return{displayName:t[i[0]],name:i[0],order:i[1]}})}},data:{boundsPadding:i.customNavbarBoundsPadding},watch:{boundsPadding(i){a(i)}},methods:{close(){document.querySelector(".custom-navbar-settings").classList.remove("show")},restoreDefault(){if(typeof customNavbarDefaultOrders==="undefined"){Toast.error("未找到默认值设定, 请更新您的脚本.");return}if(confirm("确定要恢复默认顶栏布局吗? 恢复后页面将刷新.")){this.boundsPadding=5;i.customNavbarOrder=customNavbarDefaultOrders;location.reload()}}}})},{once:true})}},unload:()=>{const i=document.querySelectorAll(".custom-navbar,.custom-navbar-settings");i.forEach(i=>i.style.display="none");t.removeStyle("customNavbarStyle")},reload:()=>{const i=document.querySelectorAll(".custom-navbar,.custom-navbar-settings");i.forEach(i=>i.style.display="flex");t.applyImportantStyle("customNavbarStyle")}};const s=(i,t,e)=>{e.classList[t?"add":"remove"](i)};const n=i=>{document.querySelector(".custom-navbar").classList[i?"add":"remove"]("dark");document.querySelector(".custom-navbar-settings").classList[i?"add":"remove"]("dark")};addSettingsListener("allNavbarFill",i=>s("all-navbar-fill",i,document.body));s("all-navbar-fill",i.allNavbarFill,document.body);const l=["//www.bilibili.com","//t.bilibili.com","//search.bilibili.com","//space.bilibili.com","//account.bilibili.com","//pay.bilibili.com","//member.bilibili.com","//big.bilibili.com","//message.bilibili.com","//app.bilibili.com","//passport.bilibili.com","//game.bilibili.com","//live.bilibili.com/blackboard/"];const o=["//t.bilibili.com/lottery/h5/index/#/result","//member.bilibili.com/video/upload","//space.bilibili.com/ajax/","//www.bilibili.com/h5/comment/"];if(!l.some(i=>document.URL.includes(i))||o.some(i=>document.URL.includes(i))){e=false;return a}document.body.classList.add("custom-navbar-loading");let c={};let r={};let d;class m{constructor(){this.html=``;this.popupHtml=``;this.flex=`0 0 auto`;this.disabled=false;this.requestedPopup=false;this.initialPopup=null;this.onPopup=null;this.href=null;this.notifyCount=0;this.touch=i.touchNavBar;this.active=false}get name(){return"undefined"}get order(){return i.customNavbarOrder[this.name]}get hidden(){return i.customNavbarHidden.includes(this.name)}async setNotifyCount(i){const t=await SpinQuery.select(`.custom-navbar li[data-name='${this.name}'] .notify-count`);if(!t||!i){t.innerHTML="";return}t.innerHTML=i}}class u extends m{constructor(i){super();this.number=i;this.flex="1 0 auto";this.disabled=true}get name(){return"blank"+this.number}}class p extends m{constructor(){super();this.getLogo();this.href=`https://www.bilibili.com/`;this.touch=false;addSettingsListener("customNavbarSeasonLogo",()=>this.getLogo())}async getLogo(){if(i.customNavbarSeasonLogo){const i=await Ajax.getJson("https://api.bilibili.com/x/web-show/res/locs?pf=0&ids=142");if(i.code===0){this.html=``;return}}this.html=``}get name(){return"logo"}}class b extends m{constructor(i,t,e){super();this.linkName=e;this.html=i;this.href=t;this.touch=false;this.active=document.URL.startsWith(t)}get name(){return this.linkName+"Link"}}class h extends m{constructor(){super();this.href="https://member.bilibili.com/v2#/upload/video/frame";this.html=`\n\n\n\n
    投稿
    `;this.popupHtml=`\n\n`}get name(){return"upload"}}class v extends m{constructor(){super();this.href="https://message.bilibili.com/";this.html="消息";this.popupHtml=`\n\n`;this.requestedPopup=true;this.active=document.URL.startsWith("https://message.bilibili.com/");this.init()}get name(){return"messages"}async init(){const i=await Ajax.getJsonWithCredentials("https://message.bilibili.com/api/notify/query.notify.count.do");const t=await SpinQuery.select("#message-list");const e=[...t.querySelectorAll("a[data-name]")];const a=e.map(i=>i.getAttribute("data-name"));if(i.code!==0){return}let s=a.reduce((t,e)=>t+i.data[e],0);if(!s){return}await this.setNotifyCount(s);a.forEach((t,a)=>{const s=i.data[t];if(s>0){e[a].setAttribute("data-count",s)}else{e[a].removeAttribute("data-count")}});e.forEach(i=>{i.addEventListener("click",()=>{const t=i.getAttribute("data-count");i.removeAttribute("data-count");s-=t;this.setNotifyCount(s)})})}}class w extends m{constructor(){super();this.html=`主站`;this.popupHtml=`\n\n`;const i=async()=>{const i=await Ajax.getJson("https://api.bilibili.com/x/web-interface/online");if(parseInt(i.code)!==0){throw new Error(`[自定义顶栏] 分区投稿信息获取失败: ${i.message}`)}const t=i.data.region_count;await SpinQuery.select("#custom-navbar-home-popup");return{"动画":{icon:"douga",count:t[1],link:`https://www.bilibili.com/v/douga/`,subRegions:{"MAD·AMV":`https://www.bilibili.com/v/douga/mad/`,"MMD·3D":`https://www.bilibili.com/v/douga/mmd/`,"短片·手书·配音":`https://www.bilibili.com/v/douga/voice/`,"综合":`https://www.bilibili.com/v/douga/other/`}},"番剧":{icon:"anime",count:t[13],link:`https://www.bilibili.com/anime/`,subRegions:{"连载动画":`https://www.bilibili.com/v/anime/serial/`,"完结动画":`https://www.bilibili.com/v/anime/finish/`,"资讯":`https://www.bilibili.com/v/anime/information/`,"官方延伸":`https://www.bilibili.com/v/anime/offical/`,"新番时间表":`https://www.bilibili.com/anime/timeline/`}},"国创":{icon:"guochuang",count:t[167],link:`https://www.bilibili.com/guochuang/`,subRegions:{"国产动画":`https://www.bilibili.com/v/guochuang/chinese/`,"国产原创相关":`https://www.bilibili.com/v/guochuang/original/`,"布袋戏":`https://www.bilibili.com/v/guochuang/puppetry/`,"资讯":`https://www.bilibili.com/v/guochuang/information/`,"新番时间表":`https://www.bilibili.com/guochuang/timeline/`,"国产动画索引":`https://www.bilibili.com/guochuang/index/`}},"音乐":{icon:"music",count:t[3],link:`https://www.bilibili.com/v/music/`,subRegions:{"原创音乐":"https://www.bilibili.com/v/music/original/","翻唱":"https://www.bilibili.com/v/music/cover/","VOCALOID·UTAU":"https://www.bilibili.com/v/music/vocaloid/","电音":"https://www.bilibili.com/v/music/electronic/","演奏":"https://www.bilibili.com/v/music/perform/",MV:"https://www.bilibili.com/v/music/mv/","音乐现场":"https://www.bilibili.com/v/music/live/","音乐综合":"https://www.bilibili.com/v/music/other/","音频":"https://www.bilibili.com/audio/home?musicType=music"}},"舞蹈":{icon:"dance",count:t[129],link:`https://www.bilibili.com/v/dance/`,subRegions:{"宅舞":"https://www.bilibili.com/v/dance/otaku/","三次元舞蹈":"https://www.bilibili.com/v/dance/three_d/","舞蹈教程":"https://www.bilibili.com/v/dance/demo/"}},"游戏":{icon:"game",count:t[4],link:`https://www.bilibili.com/v/game/`,subRegions:{"单机游戏":"https://www.bilibili.com/v/game/stand_alone/","电子竞技":"https://www.bilibili.com/v/game/esports/","手机游戏":"https://www.bilibili.com/v/game/mobile/","网络游戏":"https://www.bilibili.com/v/game/online/","桌游棋牌":"https://www.bilibili.com/v/game/board/",GMV:"https://www.bilibili.com/v/game/gmv/","音游":"https://www.bilibili.com/v/game/music/",Mugen:"https://www.bilibili.com/v/game/mugen/","游戏赛事":"https://www.bilibili.com/v/game/match/"}},"科技":{icon:"technology",count:t[36],link:`https://www.bilibili.com/v/technology/`,subRegions:{"趣味科普人文":"https://www.bilibili.com/v/technology/fun/","野生技术协会":"https://www.bilibili.com/v/technology/wild/","演讲·公开课":"https://www.bilibili.com/v/technology/speech_course/","星海":"https://www.bilibili.com/v/technology/military/","机械":"https://www.bilibili.com/v/technology/mechanical/","汽车":"https://www.bilibili.com/v/technology/automobile/"}},"数码":{icon:"digital",count:t[188],link:`https://www.bilibili.com/v/digital/`,subRegions:{"手机平板":"https://www.bilibili.com/v/digital/mobile/","电脑装机":"https://www.bilibili.com/v/digital/pc/","摄影摄像":"https://www.bilibili.com/v/digital/photography/","影音智能":"https://www.bilibili.com/v/digital/intelligence_av/"}},"生活":{icon:"life",count:t[160],link:`https://www.bilibili.com/v/life/`,subRegions:{"搞笑":"https://www.bilibili.com/v/life/funny/","日常":"https://www.bilibili.com/v/life/daily/","美食圈":"https://www.bilibili.com/v/life/food/","动物圈":"https://www.bilibili.com/v/life/animal/","手工":"https://www.bilibili.com/v/life/handmake/","绘画":"https://www.bilibili.com/v/life/painting/","运动":"https://www.bilibili.com/v/life/sports/","其他":"https://www.bilibili.com/v/life/other/"}},"鬼畜":{icon:"kichiku",count:t[119],link:`https://www.bilibili.com/v/kichiku/`,subRegions:{"鬼畜调教":"https://www.bilibili.com/v/kichiku/guide/","音MAD":"https://www.bilibili.com/v/kichiku/mad/","人力VOCALOID":"https://www.bilibili.com/v/kichiku/manual_vocaloid/","教程演示":"https://www.bilibili.com/v/kichiku/course/"}},"时尚":{icon:"fashion",count:t[155],link:`https://www.bilibili.com/v/fashion/`,subRegions:{"美妆":"https://www.bilibili.com/v/fashion/makeup/","服饰":"https://www.bilibili.com/v/fashion/clothing/","健身":"https://www.bilibili.com/v/fashion/aerobics/","T台":"https://www.bilibili.com/v/fashion/catwalk/","风尚标":"https://www.bilibili.com/v/fashion/trends/"}},"广告":{icon:"ad",count:t[165],link:`https://www.bilibili.com/v/ad/ad/`},"娱乐":{icon:"ent",count:t[5],link:`https://www.bilibili.com/v/ent/`,subRegions:{"综艺":"https://www.bilibili.com/v/ent/variety/","明星":"https://www.bilibili.com/v/ent/star/","Korea相关":"https://www.bilibili.com/v/ent/korea/"}},"影视":{icon:"cinephile",count:t[181],link:`https://www.bilibili.com/v/cinephile/`,subRegions:{"影视杂谈":"https://www.bilibili.com/v/cinephile/cinecism/","影视剪辑":"https://www.bilibili.com/v/cinephile/montage/","短片":"https://www.bilibili.com/v/cinephile/shortfilm/","预告·资讯":"https://www.bilibili.com/v/cinephile/trailer_info/","特摄":"https://www.bilibili.com/v/cinephile/tokusatsu/"}},"放映厅":{icon:"cinema",count:t[177]+t[23]+t[11],link:`https://www.bilibili.com/cinema/`,subRegions:{"纪录片":"https://www.bilibili.com/documentary/","电影":"https://www.bilibili.com/movie/","电视剧":"https://www.bilibili.com/tv/"}},"专栏":{icon:"read",count:``,link:`https://www.bilibili.com/read/home`},"直播":{icon:"zhibo",count:``,link:`https://live.bilibili.com`,subRegions:{"全部直播":"https://live.bilibili.com/all?visit_id=5icxsa0kmts0","游戏直播":"https://live.bilibili.com/p/eden/area-tags?parentAreaId=2&areaId=0&visit_id=5icxsa0kmts0#/2/0","手游直播":"https://live.bilibili.com/p/eden/area-tags?parentAreaId=3&areaId=0&visit_id=5icxsa0kmts0#/3/0","娱乐直播":"https://live.bilibili.com/p/eden/area-tags?parentAreaId=1&areaId=0&visit_id=5icxsa0kmts0#/1/0","电台直播":"https://live.bilibili.com/p/eden/area-tags?parentAreaId=5&areaId=0&visit_id=5icxsa0kmts0#/5/0","绘画直播":"https://live.bilibili.com/p/eden/area-tags?parentAreaId=4&areaId=0&visit_id=5icxsa0kmts0#/4/0"}},"小黑屋":{icon:"blackroom",count:``,link:`https://www.bilibili.com/blackroom/`},"话题":{icon:"topic",count:``,link:`https://www.bilibili.com/blackboard/topic_list.html`},"活动":{icon:"activit",count:``,link:`https://www.bilibili.com/blackboard/x/act_list`}}};this.initialPopup=(async()=>{new Vue({el:await SpinQuery.select("#custom-navbar-home-popup"),data:{info:[],loading:true},async mounted(){try{this.info=Object.entries(await i())}finally{this.loading=false}}})})}get name(){return"category"}}class g extends m{constructor(){super();this.noPadding=true;this.href="https://space.bilibili.com";this.html=`\n
    \n\n\n
    \n`;this.popupHtml=`\n\n`;this.requestedPopup=true;this.init()}get name(){return"userInfo"}async init(){const i=await SpinQuery.select(".custom-navbar .user-info-panel");new Vue({el:i,data:{...c},computed:{userType(){if(!this.isLogin){return"未登录"}if(this.level_info.current_level===0){return"注册会员"}if(this.vipStatus===1){if(this.vipType===1){return this.vip_theme_type?"小会员":"大会员"}else if(this.vipType===2){return this.vip_theme_type?"年度小会员":"年度大会员"}}return"正式会员"},levelProgressStyle(){const i=(this.level_info.current_exp-this.level_info.current_min)/(this.level_info.next_exp-this.level_info.current_min);return{transform:`scaleX(${i})`}}}});const t=await SpinQuery.select(".custom-navbar .user-face-container .user-face");if(c.isLogin){const i=c.face.replace("http","https");const e=68;const a=[1,1.25,1.5,1.75,2,2.25,2.5,2.75,3,3.25,3.5,3.75,4];t.setAttribute("srcset",a.map(t=>{return`${i}@${parseInt(e*t)}w_${parseInt(e*t)}h.jpg ${t}x`}).join(","));if(c.pendant.image){const i=await SpinQuery.select(".custom-navbar .user-face-container .user-pendant");const t=c.pendant.image.replace("http","https");const e=116;i.setAttribute("srcset",a.reduce((i,a)=>{return i+`, ${t}@${parseInt(e*a)}w_${parseInt(e*a)}h.png ${a}x`},""))}}else{t.setAttribute("src","https://static.hdslb.com/images/akari.jpg")}}}class f extends m{constructor(){super();this.disabled=true;this.html=`\n\n\n`;this.init()}async init(){const e=await SpinQuery.select("#custom-navbar-search");const a=e.querySelector("input[name='keyword']");e.addEventListener("submit",t=>{if(a.value===""){if(!i.hideTopSearch){e.querySelector(".recommended-target").click()}t.preventDefault();return false}const s=i.searchHistory.find(i=>i.keyword===a.value);if(s){s.count++}else{i.searchHistory.push({count:1,keyword:a.value})}i.searchHistory=i.searchHistory;return true});if(!i.hideTopSearch){const i=await Ajax.getJson("https://api.bilibili.com/x/web-interface/search/default");if(i.code===0){a.setAttribute("placeholder",i.data.show_name);let t;if(i.data.url!==""){t=i.data.url}else if(i.data.name.startsWith("av")){t=`https://www.bilibili.com/${i.data.name}`}else{t=`https://search.bilibili.com/all?keyword=${i.data.name}`}e.querySelector(".recommended-target").setAttribute("href",t)}else{console.error("[自定义顶栏] 获取搜索推荐词失败")}}const s=new Vue({el:dq(".popup.search-list"),data:{items:[],isHistory:true},methods:{submit(i){a.value=i;e.submit();raiseEvent(e,"submit")},nextItem(i){const t=dq(`.custom-navbar .search-list-item:nth-child(${i+2})`);if(t){t.focus()}},previousItem(i){const t=dq(`.custom-navbar .search-list-item:nth-child(${i})`);if(t){t.focus()}else{a.focus();return}},deleteItem(t,e){i.searchHistory.splice(i.searchHistory.findIndex(i=>i.keyword===t.value),1);i.searchHistory=i.searchHistory;this.items.splice(e,1)},clearSearchHistory(){i.searchHistory=[];this.items=[]}}});const{debounce:n}=await t.importAsync("debounce");let l="";const o=async()=>{const t=a.value;s.isHistory=t==="";if(s.isHistory){s.items=i.searchHistory.sort((i,t)=>t.count-i.count).map(i=>{return{value:i.keyword,html:i.keyword}}).slice(0,10)}else{const i=`https://s.search.bilibili.com/main/suggest?func=suggest&suggest_type=accurate&sub_type=tag&main_ver=v1&highlight=&userid=${c.mid}&bangumi_acc_num=1&special_acc_num=1&topic_acc_num=1&upuser_acc_num=3&tag_num=10&special_num=10&bangumi_num=10&upuser_num=3&term=${t}`;l=i;const e=await Ajax.getJson(i);if(e.code!==0||l!==i){return}const a=e.result.tag;if(a===undefined){s.items=[];return}s.items=a.map(i=>{return{value:i.value,html:i.name.replace(/suggest_high_light/g,"suggest-highlight")}})}};o();const r=n(o,200);let d=false;a.addEventListener("compositionstart",()=>d=true);a.addEventListener("compositionend",()=>{d=false;raiseEvent(a,"input")});a.addEventListener("input",()=>{if(!d){r()}});a.addEventListener("keydown",i=>{if(i.key==="ArrowDown"&&s.items.length>0){i.preventDefault();dq(".custom-navbar .search-list-item:first-child").focus()}})}get name(){return"search"}}class y extends m{constructor(i,t,{src:e,width:a,height:s,lazy:n,iframeName:l}){super();this.iframeName=l;this.html=i;this.href=t;this.popupHtml=`\n\n`;this.noPadding=true;this.requestedPopup=n?false:true;this.touch=false;this.transparent=true}get name(){return this.iframeName+"Iframe"}}class _ extends y{constructor(...t){super(...t);this.touch=i.touchNavBar;this.getNotifyCount()}getApiUrl(){return null}getCount(){return 0}async getNotifyCount(){const i=await SpinQuery.select(`.custom-navbar li[data-name='${this.name}'] .notify-count`);const t=await Ajax.getJsonWithCredentials(this.getApiUrl());const e=this.getCount(t);if(t.code===0&&e){i.innerHTML=e;this.initialPopup=(()=>{i.innerHTML=""})}}}let k=()=>{};let x=()=>{};const $=({dataObject:i,apiUrl:e,name:a,handleJson:s,template:n})=>{return{template:n,components:{"dpi-img":()=>t.importAsync("dpi-img.vue")},methods:{handleJson:s,async fetchData(i=false){try{const t=await Ajax.getJsonWithCredentials(e);if(t.code!==0){throw new Error(t.message)}await this.handleJson(t)}catch(t){if(i===true){return}logError(`加载${a}动态失败, error = ${t}`)}finally{this.loading=false}}},data(){return Object.assign({loading:true},i)},mounted(){this.fetchData();k=(async()=>await this.fetchData(true))},destroyed(){k=(()=>{})}}};class L extends m{constructor(){super();this.noPadding=true;this.href=i.oldTweets?"https://www.bilibili.com/account/dynamic":"https://t.bilibili.com/";this.html="动态";this.popupHtml=`\n
    \n\n
    \n\n\n\n\x3c!-- 查看更多 --\x3e\n
    \n
    \n`;this.active=document.URL.replace(/\?.*$/,"")==="https://t.bilibili.com/";this.initialPopup=(()=>{this.init()});this.onPopup=(()=>{this.setNotifyCount(0)});this.getNotifyCount();setInterval(async()=>{await this.getNotifyCount();await x();await k()},L.updateInterval)}static get updateInterval(){return 5*60*1e3}static getLatestID(){return document.cookie.replace(new RegExp(`(?:(?:^|.*;\\s*)bp_t_offset_${c.mid}\\s*\\=\\s*([^;]*).*$)|^.*$`),"$1")}static setLatestID(i){const t=L.getLatestID();if(L.compareID(i,t)<0){return}document.cookie=`bp_t_offset_${c.mid}=${i};path=/;domain=.bilibili.com;max-age=${60*60*24*30}`}static compareID(i,t){if(i===t){return 0}if(i.length>t.length){return 1}if(t.length>i.length){return-1}return i>t===true?1:-1}static isNewID(i){return L.compareID(i,d)>0}static updateLatestID(i){const[t]=[...i.map(i=>i.id)].sort(L.compareID).reverse();L.setLatestID(t)}async getNotifyCount(){const i=`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_num?rsp_type=1&uid=${c.mid}&update_num_dy_id=${L.getLatestID()}&type_list=8,64,512`;const t=await Ajax.getJsonWithCredentials(i);if(t.code!==0){return}this.setNotifyCount(t.data.update_num)}async init(){Vue.component("activity-loading",{template:`\n
    \n加载中...\n
    `,props:["loading"]});Vue.component("activity-empty",{template:`\n
    空空如也哦 = ̄ω ̄=
    `});this.popupVM=new Vue({el:await SpinQuery.select(".activity-popup"),data:{tabs:[{name:"视频",component:"video-activity",moreUrl:"https://t.bilibili.com/?tab=8",get notifyApi(){return`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_num?rsp_type=1&uid=${c.mid}&update_num_dy_id=${L.getLatestID()}&type_list=8`},notifyCount:null},{name:"番剧",component:"bangumi-activity",moreUrl:"https://t.bilibili.com/?tab=512",get notifyApi(){return`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_num?rsp_type=1&uid=${c.mid}&update_num_dy_id=${L.getLatestID()}&type_list=512`},notifyCount:null},{name:"专栏",component:"column-activity",moreUrl:"https://t.bilibili.com/?tab=64",get notifyApi(){return`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_num?rsp_type=1&uid=${c.mid}&update_num_dy_id=${L.getLatestID()}&type_list=64`},notifyCount:null},{name:"直播",component:"live-activity",moreUrl:"https://link.bilibili.com/p/center/index#/user-center/follow/1",notifyCount:null}],selectedTab:"视频"},components:{"activity-tabs":{props:["items","tab"],template:`\n\n`,methods:{changeTab(i){if(this.tab===i.name){window.open(i.moreUrl,"_blank")}this.$emit("update:tab",i.name)}}},"video-activity":Object.assign($({dataObject:{leftCards:[],rightCards:[]},apiUrl:`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=${c.mid}&type_list=8`,name:"视频",template:`\n
    \n\n\n
    \n\n
    \n
    \n\n
    \n
    \n`,handleJson:async function(i){const{getWatchlaterList:e}=await t.importAsync("watchlater-api");const a=await e();const s=i.data.cards.map(i=>{const t=JSON.parse(i.card);return{coverUrl:t.pic,title:t.title,timeNumber:t.duration,time:formatDuration(t.duration),description:t.desc,aid:t.aid,videoUrl:`https://www.bilibili.com/av${t.aid}`,faceUrl:i.desc.user_profile.info.face,upName:i.desc.user_profile.info.uname,upUrl:`https://space.bilibili.com/${i.desc.user_profile.info.uid}`,id:i.desc.dynamic_id_str,watchlater:a.includes(t.aid),get new(){return L.isNewID(this.id)}}});this.leftCards=s.filter((i,t)=>t%2===0);this.rightCards=s.filter((i,t)=>t%2===1);if(this.leftCards.length!==this.rightCards.length){this.leftCards.pop()}L.updateLatestID(s)}}),{components:{"video-card":{props:["card","watchlaterInit"],data(){return{watchlater:this.watchlaterInit}},components:{"dpi-img":()=>t.importAsync("dpi-img.vue")},methods:{async toggleWatchlater(){try{this.watchlater=!this.watchlater;const{toggleWatchlater:i}=await t.importAsync("watchlater-api");await i(this.card.aid,this.watchlater)}catch(i){logError(i);this.watchlater=!this.watchlater}}},async mounted(){await t.importAsync("watchlater-api")},template:`\n\n
    \n\n
    {{card.time}}
    \n
    {{watchlater ? '已添加' : '稍后再看'}}
    \n
    \n

    {{card.title}}

    \n
    \n\n{{card.upName}}\n\n\n`}}}),"bangumi-activity":$({dataObject:{cards:[]},apiUrl:`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=${c.mid}&type_list=512`,name:"番剧",template:`\n\n`,handleJson:async function(i){this.cards=i.data.cards.map(i=>{const t=JSON.parse(i.card);return{title:t.apiSeasonInfo.title,coverUrl:t.apiSeasonInfo.cover,epCoverUrl:t.cover,epTitle:t.new_desc,url:t.url,id:i.desc.dynamic_id_str,get new(){return L.isNewID(this.id)}}});L.updateLatestID(this.cards)}}),"column-activity":$({dataObject:{cards:[]},apiUrl:`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=${c.mid}&type_list=64`,name:"专栏",template:`\n
    \n\n\n\n\n

    {{card.title}}

    \n
    {{card.description}}
    \n\n
    \n`,handleJson:async function(i){this.cards=i.data.cards.map(i=>{const t=JSON.parse(i.card);return{covers:t.image_urls,originalCovers:t.origin_image_urls,upName:t.author.name,faceUrl:t.author.face,upUrl:`https://space.bilibili.com/${t.author.mid}`,title:t.title,description:t.summary,url:`https://www.bilibili.com/read/cv${t.id}`,id:i.desc.dynamic_id_str,get new(){return L.isNewID(this.id)}}});L.updateLatestID(this.cards)}}),"live-activity":$({dataObject:{cards:[]},apiUrl:`https://api.live.bilibili.com/relation/v1/feed/feed_list?page=1&pagesize=24`,name:"直播",template:`\n\n`,handleJson:async function(i){this.cards=i.data.list.map(i=>{return{faceUrl:i.face,title:i.title,name:i.uname,id:i.roomid,url:i.link}})}})},computed:{content(){return this.tabs.find(i=>i.name===this.selectedTab).component},viewMoreUrl(){return this.tabs.find(i=>i.name===this.selectedTab).moreUrl}},mounted(){x=(async()=>{for(const i of this.tabs){if(i.notifyApi){const t=await Ajax.getJsonWithCredentials(i.notifyApi);if(t.code!==0||!t.data.update_num||this.selectedTab===i.name){continue}i.notifyCount=t.data.update_num}}});x()},destroyed(){x=(()=>{})},watch:{selectedTab(i){this.tabs.find(t=>t.name===i).notifyCount=null}}})}get name(){return"activities"}}class N extends m{constructor({mainUrl:i,name:t,apiUrl:e,listName:a,listMap:s}){super();this.href=i;this.listName=a;this.html=t;this.noPadding=true;this.requestedPopup=false;this.popupHtml=`\n
      \n
    1. 加载中...
    2. \n
    \n`;this.initialPopup=(async()=>{if(!s){return}const n=await SpinQuery.select(`.video-list.${a}`);if(n===null){return}const l=await Ajax.getJsonWithCredentials(e);let o="";if(l.code!==0){logError(`加载${t}信息失败. 错误码: ${l.code} ${l.message}`)}else{o=s(l).join("")}n.insertAdjacentHTML("beforeend",o+`\n
  • 查看更多
  • \n`);n.classList.add("loaded")})}get name(){return this.listName+"List"}}class C extends N{constructor(){super({name:"稍后再看",mainUrl:"https://www.bilibili.com/watchlater/#/list",apiUrl:"https://api.bilibili.com/x/v2/history/toview/web",listName:"watchlater",listMap:t=>{if(!t.data.list){return[`
  • 空空如也哦 = ̄ω ̄=
  • `]}return t.data.list.slice(0,6).map(t=>{const e=(()=>{if(t.pages===undefined){return i.watchLaterRedirect?`https://www.bilibili.com/video/av${t.aid}`:`https://www.bilibili.com/watchlater/#/av${t.aid}`}const e=t.pages.map(i=>i.cid);const a=t.cid===0?1:e.indexOf(t.cid)+1;return i.watchLaterRedirect?`https://www.bilibili.com/video/av${t.aid}?p=${a}`:`https://www.bilibili.com/watchlater/#/av${t.aid}/p${a}`})();return`
  • ${t.title}
  • `})}});this.active=document.URL.startsWith("https://www.bilibili.com/watchlater/")}}class I extends N{constructor(){super({name:"收藏",mainUrl:`https://space.bilibili.com/${c.mid}/favlist`,apiUrl:"https://api.bilibili.com/medialist/gateway/coll/resource/recent",listName:"favorites",listMap:i=>{if(!i.data||i.data.length===0){return[`
  • 空空如也哦 = ̄ω ̄=
  • `]}return i.data.map(i=>{return`\n
  • \n${i.title}\n
  • `})}});this.active=document.URL.replace(/\?.*$/,"")===`https://space.bilibili.com/${c.mid}/favlist`}}class A extends N{constructor(){super({name:"历史",mainUrl:"https://www.bilibili.com/account/history",apiUrl:"https://api.bilibili.com/x/v2/history?pn=1&ps=6",listName:"history",listMap:i=>{if(!i.data||i.data.length===0){return[`
  • 空空如也哦 = ̄ω ̄=
  • `]}return i.data.map(i=>{let t=[];let e="";const a=i.page?i.page.page:1;let s=i.progress>=0?i.progress/i.duration:1;if(isNaN(s)){s=0}if(a!==1){t.push(`p=${a}`);e+=`看到第${a}话`}if(i.progress>0&&i.progress\n\n${i.title}\n${e}\n
    \n
    \n
    \n
    \n`})}});this.active=document.URL.replace(/\?.*$/,"")==="https://www.bilibili.com/account/history"}}class S extends m{constructor(){super();this.noPadding=true;this.href=`https://space.bilibili.com/${c.mid}/bangumi`;this.html="订阅";this.active=[`https://space.bilibili.com/${c.mid}/bangumi`,`https://space.bilibili.com/${c.mid}/cinema`,`https://space.bilibili.com/${c.mid}/subs`].includes(document.URL.replace(/\?.*$/,""));this.popupHtml=`\n
    \n\n
    \n\n\n\n\n
    \n
    `;this.initialPopup=(()=>{this.init()})}async init(){new Vue({el:await SpinQuery.select(".custom-navbar .subscriptions"),data:{bangumi:true},components:{"bangumi-subscriptions":{props:["type"],components:{"dpi-img":()=>t.importAsync("dpi-img.vue")},template:`\n
    \n
    \n\n加载中...\n
    \n
    空空如也哦 = ̄ω ̄=
    \n\n\n\n\n
    \n`,data(){return{loading:true,cards:[]}},async mounted(){try{const i=await Ajax.getJsonWithCredentials(`https://api.bilibili.com/x/space/bangumi/follow/list?type=${this.type!=="bangumi"?"2":"1"}&pn=1&ps=16&vmid=${c.mid}`);if(i.code!==0){logError(`加载订阅信息失败: ${i.message}`);return}this.cards=i.data.list.map(i=>{return{title:i.title,coverUrl:i.square_cover.replace("http:","https:"),latest:i.new_ep.index_show,progress:i.progress,id:i.season_id,playUrl:`https://www.bilibili.com/bangumi/play/ss${i.season_id}`,mediaUrl:`https://www.bilibili.com/bangumi/media/md${i.media_id}`}})}finally{this.loading=false}}}}})}get name(){return"bangumi"}}(async()=>{const e=await t.importAsync("customNavbarHtml");const a=await Ajax.getJsonWithCredentials("https://api.bilibili.com/x/web-interface/nav");c=a.data;d=L.getLatestID();document.body.insertAdjacentHTML("beforeend",e);addSettingsListener("useDarkStyle",n);n(i.useDarkStyle);["Fill","Shadow","Compact","Blur"].forEach(t=>{addSettingsListener("customNavbar"+t,i=>s(t.toLowerCase(),i,document.querySelector(".custom-navbar")));s(t.toLowerCase(),i["customNavbar"+t],document.querySelector(".custom-navbar"))});SpinQuery.condition(()=>dq("#banner_link,.international-header .bili-banner"),i=>i===null?null:i.style.backgroundImage,i=>{Observer.attributes(i,()=>{const t=document.querySelectorAll(".custom-navbar .blur-layer");t.forEach(t=>{t.style.backgroundImage=i.style.backgroundImage;t.setAttribute("data-image",i.style.backgroundImage)})})});const l=[new u(1),new p,new w,new b("排行","https://www.bilibili.com/ranking","ranking"),new b("相簿","https://h.bilibili.com","drawing"),new b("音频","https://www.bilibili.com/audio/home/","music"),new y("游戏中心","https://game.bilibili.com/",{src:`https://www.bilibili.com/page-proxy/game-nav.html`,width:`680px`,height:`260px`,lazy:true,iframeName:"games"}),new y("直播","https://live.bilibili.com",{src:`https://live.bilibili.com/blackboard/dropdown-menu.html`,width:`528px`,height:`266px`,lazy:true,iframeName:"lives"}),new b("会员购","https://show.bilibili.com","shop"),new b("漫画","https://manga.bilibili.com","manga"),new u(2),new f,new g];if(c.isLogin){l.push(new v,new S,new L,new C,new I,new A)}l.push(new h,new u(3));new Vue({el:".custom-navbar",data:{components:l},methods:{requestPopup(i){if(!i.requestedPopup&&!i.disabled&&!i.active){this.$set(i,`requestedPopup`,true);i.initialPopup&&i.initialPopup()}i.onPopup&&i.onPopup()}},mounted(){document.body.classList.remove("custom-navbar-loading")}})})();return a}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/danmaku-converter.min.js"] = (()=>{return(t,e)=>{class r{constructor({content:t,time:e,type:r,fontSize:i,color:n}){this.content=t;this.time=e;this.startTime=parseFloat(e);this.type=parseInt(r);this.fontSize=parseFloat(i);this.color=parseInt(n)}}class i extends r{constructor({content:t,time:e,type:r,fontSize:i,color:n,timeStamp:a,pool:s,userHash:o,rowId:l}){super({content:t,time:e,type:r,fontSize:i,color:n});this.timeStamp=parseInt(a);this.pool=parseInt(s);this.userHash=o;this.rowId=parseInt(l);this.pDataArray=[e,r,i,n,a,s,o,l]}text(){const t=this.pDataArray.join(",");return`${this.content}`}static parse(t){const e=t.getAttribute("p");const[r,n,a,s,o,l,c,h]=e.split(",");const u=t.innerHTML;return new i({content:u,time:r,type:n,fontSize:a,color:s,timeStamp:o,pool:l,userHash:c,rowId:h})}}class n{constructor(t){this.xml=t;const e=(new DOMParser).parseFromString(t,"application/xml").documentElement;this.danmakus=[...e.querySelectorAll("d[p]")].map(t=>i.parse(t))}}var a;(function(t){t[t["Normal"]=1]="Normal";t[t["Normal2"]=2]="Normal2";t[t["Normal3"]=3]="Normal3";t[t["Bottom"]=4]="Bottom";t[t["Top"]=5]="Top";t[t["Reversed"]=6]="Reversed";t[t["Special"]=7]="Special";t[t["Special2"]=8]="Special2"})(a||(a={}));class s extends r{constructor({content:t,time:e,type:r,fontSize:i,color:n,typeTag:a,colorTag:s,endTime:o}){super({content:t,time:e,type:r,fontSize:i,color:n});this.typeTag=a;this.colorTag=s;this.endTime=o}text(t){let e=t[this.fontSize];if(!e){e=t[25]}const r=t[this.fontSize].match(/Style:(.*?),/)[1].trim();return`Dialogue: 0,${this.time},${this.endTime},${r},,0,0,0,,{${this.typeTag}${this.colorTag}}${this.content}`}}class o{constructor(t,e,r,i,n){this.danmakus=t;this.title=e;this.fontStyles=r;this.blockTypes=i;this.resolution=n}generateAss(){const t=`\n[Script Info]\n; Script generated by Bilibili Evolved Danmaku Converter\n; https://github.com/the1812/Bilibili-Evolved/\nTitle: ${this.title}\nScriptType: v4.00+\nPlayResX: ${this.resolution.x}\nPlayResY: ${this.resolution.y}\nTimer: 10.0000\nWrapStyle: 2\nScaledBorderAndShadow: no\n\n[V4+ Styles]\nFormat: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding\n${Object.values(this.fontStyles).join("\n")}\n\n[Events]\nFormat: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text\n`.trim();return t+"\n"+this.danmakus.map(t=>t.text(this.fontStyles)).filter(t=>t!=="").join("\n")}}class l{constructor(t,e,r,i){this.horizontalStack=[];this.horizontalTrack=[];this.verticalStack=[];this.verticalTrack=[];this.resolution=e;this.duration=r;this.canvas=document.createElement("canvas");this.context=this.canvas.getContext("2d");this.fontSizes={30:`64px ${t}`,25:`52px ${t}`,18:`36px ${t}`,45:`90px ${t}`};this.bottomMarginPercent=i;this.generateTracks()}generateTracks(){const t=52;this.danmakuHeight=t;this.trackHeight=l.margin*2+t;this.trackCount=parseInt(fixed(this.resolution.y*(1-this.bottomMarginPercent)/this.trackHeight,0))}getTextSize(t){this.context.font=this.fontSizes[t.fontSize];const e=this.context.measureText(t.content);const r=e.width/2;return[r,this.danmakuHeight/2]}getTags(t,{targetTrack:e,initTrackNumber:r,nextTrackNumber:i,willOverlay:n,getTrackItem:a,getTag:s}){const[o,c]=this.getTextSize(t);const h=o*2;const u=this.duration(t)*h/(this.resolution.x+h)+l.nextDanmakuDelay;let m=r;let p=null;do{p=e.find(t=>n(t,m,h));m+=i}while(p&&m<=this.trackCount&&m>=0);if(m>this.trackCount||m<0){return`\\pos(0,-999)`}m-=i;e.push(a(m,h,u));return s({trackNumber:m,x:o,y:c})}getHorizontalTags(t){return this.getTags(t,{targetTrack:this.horizontalTrack,initTrackNumber:0,nextTrackNumber:1,willOverlay:(e,r,i)=>{if(e.trackNumber!==r){return false}if(e.widtht.startTime}},getTrackItem:(e,r,i)=>{return{width:r,start:t.startTime,visible:t.startTime+i,end:t.startTime+this.duration(t),trackNumber:e}},getTag:({trackNumber:e,x:r,y:i})=>{return`\\move(${this.resolution.x+r},${e*this.trackHeight+l.margin+i},${-r},${e*this.trackHeight+l.margin+i},0,${this.duration(t)*1e3})`}})}getVerticalTags(t){const e=l.danmakuType[t.type]==="top";return this.getTags(t,{targetTrack:this.verticalTrack,initTrackNumber:e?0:this.trackCount-1,nextTrackNumber:e?1:-1,willOverlay:(e,r)=>{if(e.trackNumber!==r){return false}return e.end>t.startTime},getTrackItem:e=>{return{start:t.startTime,end:t.startTime+this.duration(t),trackNumber:e}},getTag:({trackNumber:t,y:r})=>{if(e){return`\\pos(${this.resolution.x/2},${t*this.trackHeight+l.margin+r})`}else{return`\\pos(${this.resolution.x/2},${this.resolution.y-l.margin-r-(this.trackCount-1-t)*this.trackHeight})`}}})}push(t){let e="";let r=[];switch(l.danmakuType[t.type]){case"normal":case"reversed":{e=this.getHorizontalTags(t);r=this.horizontalStack;break}case"top":case"bottom":{e=this.getVerticalTags(t);r=this.verticalStack;break}case"special":default:{return{tags:`\\pos(0,-999)`}}}const i={tags:e};r.push(i);return i}}l.danmakuType={[a.Normal]:"normal",[a.Normal2]:"normal",[a.Normal3]:"normal",[a.Bottom]:"bottom",[a.Top]:"top",[a.Reversed]:"reversed",[a.Special]:"special",[a.Special2]:"special"};l.margin=4;l.nextDanmakuDelay=.05;class c{constructor({title:t,font:e,alpha:r,duration:i,blockTypes:n,resolution:a,bottomMarginPercent:s,bold:o}){this.title=t;this.font=e;this.alpha=Math.round(r*100).toString(16).toUpperCase();this.duration=i;this.blockTypes=n;this.resolution=a;this.bold=o;this.danmakuStack=new l(e,a,i,s)}get fontStyles(){return{30:`Style: Large,${this.font},64,&H${this.alpha}FFFFFF,&H${this.alpha}FFFFFF,&H${this.alpha}000000,&H${this.alpha}000000,${this.bold?"1":"0"},0,0,0,100,100,0,0,1,1.2,0,5,0,0,0,0`,25:`Style: Medium,${this.font},52,&H${this.alpha}FFFFFF,&H${this.alpha}FFFFFF,&H${this.alpha}000000,&H${this.alpha}000000,${this.bold?"1":"0"},0,0,0,100,100,0,0,1,1.2,0,5,0,0,0,0`,18:`Style: Small,${this.font},36,&H${this.alpha}FFFFFF,&H${this.alpha}FFFFFF,&H${this.alpha}000000,&H${this.alpha}000000,${this.bold?"1":"0"},0,0,0,100,100,0,0,1,1.2,0,5,0,0,0,0`,45:`Style: ExtraLarge,${this.font},90,&H${this.alpha}FFFFFF,&H${this.alpha}FFFFFF,&H${this.alpha}000000,&H${this.alpha}000000,${this.bold?"1":"0"},0,0,0,100,100,0,0,1,1.2,0,5,0,0,0,0`}}convertToAssDocument(t){const e=new n(t);const r=[];for(const t of e.danmakus.sort((t,e)=>t.startTime-e.startTime)){if(this.blockTypes.indexOf(t.type)!==-1||this.blockTypes.indexOf("color")!==-1&&t.color!==c.white){continue}const[e,i]=this.convertTime(t.startTime,this.duration(t));r.push(new s({content:this.convertText(t.content),time:e,endTime:i,type:t.type.valueOf().toString(),fontSize:t.fontSize.toString(),color:t.color.toString(),typeTag:this.convertType(t),colorTag:this.convertColor(t.color)}))}return new o(r,this.title,this.fontStyles,this.blockTypes,this.resolution)}convertText(t){const e={"{":"{","}":"}","&":"&","<":"<",">":">",""":'"',"'":"'"};for(const[r,i]of Object.entries(e)){t=t.replace(new RegExp(r,"g"),i)}return t}convertType(t){return this.danmakuStack.push(t).tags}convertColor(t){if(t===c.white){return""}const e=t.toString(16);const r=e.substring(0,2);const i=e.substring(2,4);const n=e.substring(4,6);return`\\c&H${n}${i}${r}&`}convertTime(t,e){function r(t){const[e,r="00"]=String(t).split(".");return`${e.padStart(2,"0")}.${r.substr(0,2).padEnd(2,"0")}`}function i(t){let e=0;let i=0;while(t>=60){t-=60;i++}while(i>=60){i-=60;e++}return`${e}:${String(i).padStart(2,"0")}:${r(t)}`}return[i(t),i(t+e)]}}c.white=16777215;return{export:{AssDanmaku:s,AssDanmakuDocument:o,Danmaku:r,DanmakuConverter:c,DanmakuStack:l,XmlDanmaku:i,XmlDanmakuDocument:n}}}})(); -offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/dark-important.min.css"] = `#disable-popup-modal .vip-exchange .months button.disabled,#vip-exchange-modal .vip-exchange .months button.disabled,.action-row .publish-btn.disabled,.action-row .publish-btn.publishing,.action-row .sch-pub-btn.disabled,.action-row .sch-pub-btn.publishing,.app-body .section-block,.bl-button--primary:disabled,.link-footer,.live-skin-coloration-area .live-skin-separate-area,.live-skin-coloration-area .live-skin-separate-area-hover:hover,.payment-active,.player-auxiliary-area .player-auxiliary-bscrollbar .bscroll-indicator,.tab-list .tab-item.active:before{background-color:#222!important}.app-body .section-block.with-bottom-radius,.app-body .section-block.with-radius,.bb-comment .no-login .comment-submit,.common .bb-comment .no-login .comment-submit,.container .pagination,.coupon-content-con .coupon-btn-disable,.customize-wrp .select,.f-list-hover:hover,.fjw-case-detail .ban-detail .content-box .video-model,.game-groom-m .num,.main-container .media-info .media-right .media-tool-bar .btn-follow.active,.main-container .pay-bar .vip .btn-pay.active,.open-dialog-masker .open-dialog-content .open-footer .btn-normal.disabled,.open-dialog-masker .open-dialog-content .open-footer .btn-normal.disabled:hover,.pagination-container li.pagination,.status_box .status_btn.disabled,.wrapper .elec-btn.disabled{background-color:#444!important}.danmaku-wrap .player-auxiliary-area .player-auxiliary-danmaku-wrap .bscroll-indicator{background-color:#555!important}.danmaku-wrap .player-auxiliary-area .player-auxiliary-danmaku-wrap .bscroll-vertical-scrollbar.mousedown,.danmaku-wrap .player-auxiliary-area .player-auxiliary-danmaku-wrap:hover .bscroll-vertical-scrollbar,.m-recommend-item div.box,.player-auxiliary-area .player-auxiliary-bscrollbar .bscroll-vertical-scrollbar,.player-auxiliary-area .player-auxiliary-bscrollbar .bscroll-vertical-scrollbar.mousedown,.player-auxiliary-area .player-auxiliary-bscrollbar:hover .bscroll-vertical-scrollbar{background-color:transparent!important}.live-skin-coloration-area .live-skin-normal-a-text,.live-skin-coloration-area .live-skin-normal-a-text:link,.live-skin-coloration-area .live-skin-normal-a-text:visited,.live-skin-coloration-area .live-skin-normal-text,.open-dialog-masker .open-dialog-content .open-footer .btn-normal.disabled,.open-dialog-masker .open-dialog-content .open-footer .btn-normal.disabled:hover,.status_box .status_btn.disabled,blockquote *,blockquote .color-blue-01,blockquote .color-blue-02,blockquote .color-blue-03,blockquote .color-blue-04,blockquote .color-gray-01,blockquote .color-gray-02,blockquote .color-gray-03,blockquote .color-gray-04,blockquote .color-green-01,blockquote .color-green-02,blockquote .color-green-03,blockquote .color-green-04,blockquote .color-lblue-01,blockquote .color-lblue-02,blockquote .color-lblue-03,blockquote .color-lblue-04,blockquote .color-pink-01,blockquote .color-pink-02,blockquote .color-pink-03,blockquote .color-pink-04,blockquote .color-purple-01,blockquote .color-purple-02,blockquote .color-purple-03,blockquote .color-purple-04,blockquote .color-yellow-01,blockquote .color-yellow-02,blockquote .color-yellow-03,blockquote .color-yellow-04{color:#aaa!important}#app .sticky-bar .bar-content .message,.bb-comment .no-login .comment-submit,.bp-popup-panel .title-ctnr .popup-title,.commnent-screen-wrap .el-input__inner,.common .bb-comment .no-login .comment-submit,.coupon-content-con .coupon-btn-disable,.cover .disabled-cover,.customize-wrp .select,.el-input__inner,.home-page .sticky-bar .bar-content .message,.invitation-record-warp .invtable .inputdone,.live-room-app .guard-rank-cntr .tabs.isHundred .item.active,.live-room-app .guard-rank-cntr.hundred .live-skin-highlight-text,.live-room-app .guard-rank-cntr.hundred .live-skin-main-a-text,.live-room-app .guard-rank-cntr.hundred .page-box .live-skin-main-text,.live-room-app .guard-rank-cntr.thousand .live-skin-highlight-text,.live-room-app .guard-rank-cntr.thousand .live-skin-main-a-text,.live-room-app .guard-rank-cntr.thousand .page-box .live-skin-main-text,.live-skin-coloration-area .live-skin-highlight-text,.live-skin-coloration-area .live-skin-main-text,.manga-detail .episode-list-component .episode-list .list-data .list-item.last-read,.popup-content-ctnr .bl-button--ghost,.s-paging>ul>a.current,.s-paging>ul>span.current,.score-info .go-movie,.tag-list li.tag-item.on{color:#eee!important}.bb-comment .no-login .comment-submit,.commnent-screen-wrap .el-input__inner,.common .bb-comment .no-login .comment-submit,.el-input__inner,.enter-failure .password-input .pink-border,.link-footer,.live-skin-coloration-area .live-skin-highlight-border,.live-skin-coloration-area .live-skin-separate-border,.popup-content-ctnr .bl-button--ghost:hover,.score-info .go-movie,.select-box-v2-container .select-box-v2-controller-disabled,.song-info .info-wrap .type-list .item-list .type-item.active,.tabs-bar,.ui-input-textarea.focus,.user-setting-warp .el-radio-button__orig-radio:checked+.el-radio-button__inner{border-color:transparent!important}#app .sticky-bar .bar-content .message:hover,.app-layout .style-section .tag-block .tag-containers .style-tag.selected,.container .video-panel .play-all .bilifont,.detail-wrp .detail-content[data-v-00c9b213] p a span,.drop-list-v2-container .drop-list-v2-item-selected .drop-list-v2-item-cont p.item-cont-main,.edit-button:hover>.icon-font,.edit-button:hover>span .left-nav-item-childed:hover,.el-select-dropdown__item.selected,.home-page .sticky-bar .bar-content .message:hover,.im-popup .bp-popup-panel .title-ctnr .popup-title,.left-nav-wrapper .active,.left-nav-wrapper .active .left-nav-item-child,.left-nav-wrapper .advice-btn:hover,.left-nav-wrapper .left-nav-item.active,.left-nav-wrapper .left-nav-item.active i.active,.left-nav-wrapper .left-nav-list.on .left-nav-item,.left-nav-wrapper .left-nav-list.on .left-nav-item .icon,.live-room-app .guard-rank-cntr.hundred .live-skin-main-a-text:hover,.live-room-app .guard-rank-cntr.thousand .live-skin-main-a-text:hover,.live-skin-coloration-area .live-skin-highlight-text,.live-skin-coloration-area .live-skin-normal-a-text:hover,.live-skin-normal-a-text:active,.manga-detail .episode-list-component .episode-list .list-header .header-item.selected,.more-data a:hover,.other a a:hover,.r-con .members-info .up-card .info-name.is-vip:hover,.rank-item .content .info .detail a a:hover,.rank-item .content .more-data:hover,.rank-item .content .other a:hover,.room-info-down-row .icon-label.hover-text-blue:hover .label,.room-introduction .edit-button:hover>.icon-font,.room-introduction .edit-button:hover>span,.up-info .u-info .name .username.is-vip:hover,.voucher-ing .voucher-left-money,.voucher-ing .voucher-left-money:before,.voucher-no-used .voucher-left-money,.voucher-no-used .voucher-left-money:before{color:var(--theme-color)!important}.aside-ctnr .author-info .communicate-btn,.live-skin-coloration-area .room-info-ctnr .info-section .live-skin-highlight-border,.manga-detail .episode-list-component .episode-list .list-data .list-item.last-read,.page-list-box .page-input:focus,.page-list-box .page-input:hover,.popup-content-ctnr .bl-button--ghost,.season-timeline .season-group.today,.season-timeline .season-group.today .group-time::before,.tag-list li.tag-item.on,.tag-list li.tag-item:hover{border-color:var(--theme-color)!important}.bg-blue,.el-date-table td.current:not(.disabled),.el-date-table td.end-date,.el-date-table td.start-date,.face-g-list#my-g-list .face-g-block .my-mp-block .mp-info .btn-white,.face-g-tab li.current,.live-skin-coloration-area .live-skin-highlight-bg,.popup-content-ctnr .bl-button--ghost:hover,.popup-content-ctnr .bl-button--primary,.season-timeline .season-group.today.is-published .group-time::before,.security-list .child-list li a.bg-blue:hover,.song-info .info-wrap .type-list .item-list .type-item.active,.tag-list li.tag-item.on,.user-my-btn .el-button--primary,.user-setting-warp .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:var(--theme-color)!important}.current .tab-btn-link,.el-date-table td.current:not(.disabled),.el-date-table td.end-date,.el-date-table td.start-date,.face-g-tab li.current,.popup-content-ctnr .bl-button--ghost:hover,.style-section .tag-block .tag-containers .style-tag:active{color:var(--foreground-color)!important}#bilibiliPlayer{box-shadow:0 4px 8px 0 #0004}`; +offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/dark-important.min.css"] = `#disable-popup-modal .vip-exchange .months button.disabled,#vip-exchange-modal .vip-exchange .months button.disabled,.action-row .publish-btn.disabled,.action-row .publish-btn.publishing,.action-row .sch-pub-btn.disabled,.action-row .sch-pub-btn.publishing,.app-body .section-block,.bl-button--primary:disabled,.link-footer,.live-skin-coloration-area .live-skin-separate-area,.live-skin-coloration-area .live-skin-separate-area-hover:hover,.payment-active,.player-auxiliary-area .player-auxiliary-bscrollbar .bscroll-indicator,.tab-list .tab-item.active:before{background-color:#222!important}.app-body .section-block.with-bottom-radius,.app-body .section-block.with-radius,.bb-comment .no-login .comment-submit,.common .bb-comment .no-login .comment-submit,.container .pagination,.coupon-content-con .coupon-btn-disable,.customize-wrp .select,.f-list-hover:hover,.fjw-case-detail .ban-detail .content-box .video-model,.game-groom-m .num,.main-container .media-info .media-right .media-tool-bar .btn-follow.active,.main-container .pay-bar .vip .btn-pay.active,.open-dialog-masker .open-dialog-content .open-footer .btn-normal.disabled,.open-dialog-masker .open-dialog-content .open-footer .btn-normal.disabled:hover,.pagination-container li.pagination,.status_box .status_btn.disabled,.wrapper .elec-btn.disabled{background-color:#444!important}.danmaku-wrap .player-auxiliary-area .player-auxiliary-danmaku-wrap .bscroll-indicator{background-color:#555!important}.danmaku-wrap .player-auxiliary-area .player-auxiliary-danmaku-wrap .bscroll-vertical-scrollbar.mousedown,.danmaku-wrap .player-auxiliary-area .player-auxiliary-danmaku-wrap:hover .bscroll-vertical-scrollbar,.m-recommend-item div.box,.player-auxiliary-area .player-auxiliary-bscrollbar .bscroll-vertical-scrollbar,.player-auxiliary-area .player-auxiliary-bscrollbar .bscroll-vertical-scrollbar.mousedown,.player-auxiliary-area .player-auxiliary-bscrollbar:hover .bscroll-vertical-scrollbar{background-color:transparent!important}.live-skin-coloration-area .live-skin-normal-a-text,.live-skin-coloration-area .live-skin-normal-a-text:link,.live-skin-coloration-area .live-skin-normal-a-text:visited,.live-skin-coloration-area .live-skin-normal-text,.open-dialog-masker .open-dialog-content .open-footer .btn-normal.disabled,.open-dialog-masker .open-dialog-content .open-footer .btn-normal.disabled:hover,.status_box .status_btn.disabled,blockquote *,blockquote .color-blue-01,blockquote .color-blue-02,blockquote .color-blue-03,blockquote .color-blue-04,blockquote .color-gray-01,blockquote .color-gray-02,blockquote .color-gray-03,blockquote .color-gray-04,blockquote .color-green-01,blockquote .color-green-02,blockquote .color-green-03,blockquote .color-green-04,blockquote .color-lblue-01,blockquote .color-lblue-02,blockquote .color-lblue-03,blockquote .color-lblue-04,blockquote .color-pink-01,blockquote .color-pink-02,blockquote .color-pink-03,blockquote .color-pink-04,blockquote .color-purple-01,blockquote .color-purple-02,blockquote .color-purple-03,blockquote .color-purple-04,blockquote .color-yellow-01,blockquote .color-yellow-02,blockquote .color-yellow-03,blockquote .color-yellow-04{color:#aaa!important}#app .sticky-bar .bar-content .message,.bb-comment .no-login .comment-submit,.bp-popup-panel .title-ctnr .popup-title,.commnent-screen-wrap .el-input__inner,.common .bb-comment .no-login .comment-submit,.coupon-content-con .coupon-btn-disable,.cover .disabled-cover,.customize-wrp .select,.el-input__inner,.home-page .sticky-bar .bar-content .message,.invitation-record-warp .invtable .inputdone,.live-room-app .guard-rank-cntr .tabs.isHundred .item.active,.live-room-app .guard-rank-cntr.hundred .live-skin-highlight-text,.live-room-app .guard-rank-cntr.hundred .live-skin-main-a-text,.live-room-app .guard-rank-cntr.hundred .page-box .live-skin-main-text,.live-room-app .guard-rank-cntr.thousand .live-skin-highlight-text,.live-room-app .guard-rank-cntr.thousand .live-skin-main-a-text,.live-room-app .guard-rank-cntr.thousand .page-box .live-skin-main-text,.live-skin-coloration-area .live-skin-highlight-text,.live-skin-coloration-area .live-skin-main-text,.manga-detail .episode-list-component .episode-list .list-data .list-item.last-read,.popup-content-ctnr .bl-button--ghost,.s-paging>ul>a.current,.s-paging>ul>span.current,.score-info .go-movie,.tag-list li.tag-item.on{color:#eee!important}#rank-list-vm .tabs.isHundred .item,.bb-comment .no-login .comment-submit,.commnent-screen-wrap .el-input__inner,.common .bb-comment .no-login .comment-submit,.el-input__inner,.enter-failure .password-input .pink-border,.link-footer,.live-skin-coloration-area .live-skin-highlight-border,.live-skin-coloration-area .live-skin-separate-border,.popup-content-ctnr .bl-button--ghost:hover,.score-info .go-movie,.select-box-v2-container .select-box-v2-controller-disabled,.song-info .info-wrap .type-list .item-list .type-item.active,.tabs-bar,.ui-input-textarea.focus,.user-setting-warp .el-radio-button__orig-radio:checked+.el-radio-button__inner{border-color:transparent!important}#app .sticky-bar .bar-content .message:hover,.app-layout .style-section .tag-block .tag-containers .style-tag.selected,.container .video-panel .play-all .bilifont,.detail-wrp .detail-content[data-v-00c9b213] p a span,.drop-list-v2-container .drop-list-v2-item-selected .drop-list-v2-item-cont p.item-cont-main,.edit-button:hover>.icon-font,.edit-button:hover>span .left-nav-item-childed:hover,.el-select-dropdown__item.selected,.home-page .sticky-bar .bar-content .message:hover,.im-popup .bp-popup-panel .title-ctnr .popup-title,.left-nav-wrapper .active,.left-nav-wrapper .active .left-nav-item-child,.left-nav-wrapper .advice-btn:hover,.left-nav-wrapper .left-nav-item.active,.left-nav-wrapper .left-nav-item.active i.active,.left-nav-wrapper .left-nav-list.on .left-nav-item,.left-nav-wrapper .left-nav-list.on .left-nav-item .icon,.live-room-app .guard-rank-cntr.hundred .live-skin-main-a-text:hover,.live-room-app .guard-rank-cntr.thousand .live-skin-main-a-text:hover,.live-skin-coloration-area .live-skin-highlight-text,.live-skin-coloration-area .live-skin-normal-a-text:hover,.live-skin-normal-a-text:active,.manga-detail .episode-list-component .episode-list .list-header .header-item.selected,.more-data a:hover,.other a a:hover,.r-con .members-info .up-card .info-name.is-vip:hover,.rank-item .content .info .detail a a:hover,.rank-item .content .more-data:hover,.rank-item .content .other a:hover,.room-info-down-row .icon-label.hover-text-blue:hover .label,.room-introduction .edit-button:hover>.icon-font,.room-introduction .edit-button:hover>span,.up-info .u-info .name .username.is-vip:hover,.voucher-ing .voucher-left-money,.voucher-ing .voucher-left-money:before,.voucher-no-used .voucher-left-money,.voucher-no-used .voucher-left-money:before{color:var(--theme-color)!important}.aside-ctnr .author-info .communicate-btn,.live-skin-coloration-area .room-info-ctnr .info-section .live-skin-highlight-border,.manga-detail .episode-list-component .episode-list .list-data .list-item.last-read,.page-list-box .page-input:focus,.page-list-box .page-input:hover,.popup-content-ctnr .bl-button--ghost,.season-timeline .season-group.today,.season-timeline .season-group.today .group-time::before,.tag-list li.tag-item.on,.tag-list li.tag-item:hover{border-color:var(--theme-color)!important}.bg-blue,.el-date-table td.current:not(.disabled),.el-date-table td.end-date,.el-date-table td.start-date,.face-g-list#my-g-list .face-g-block .my-mp-block .mp-info .btn-white,.face-g-tab li.current,.live-skin-coloration-area .live-skin-highlight-bg,.popup-content-ctnr .bl-button--ghost:hover,.popup-content-ctnr .bl-button--primary,.season-timeline .season-group.today.is-published .group-time::before,.security-list .child-list li a.bg-blue:hover,.song-info .info-wrap .type-list .item-list .type-item.active,.tag-list li.tag-item.on,.user-my-btn .el-button--primary,.user-setting-warp .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:var(--theme-color)!important}.current .tab-btn-link,.el-date-table td.current:not(.disabled),.el-date-table td.end-date,.el-date-table td.start-date,.face-g-tab li.current,.popup-content-ctnr .bl-button--ghost:hover,.style-section .tag-block .tag-containers .style-tag:active{color:var(--foreground-color)!important}#bilibiliPlayer{box-shadow:0 4px 8px 0 #0004}`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/dark-navbar.min.css"] = `#link-navbar-vm>.link-navbar .nav-item:hover,.bili-header-m .nav-menu .nav-con .nav-item:hover,.link-navbar .nav-item:hover,.nav-header-wrapper .nav-header .nav-header-search-bar,.right-part>.shortcuts-ctnr .shortcut-item:hover,.search-bar-ctnr .search-bar,.shortcuts-ctnr .shortcut-item:hover,.uns_box ul.menu li:not(.b-post):hover,.z_top .z_top_nav ul li:hover{background-color:#222!important}#app>.link-navbar,#app>.nav-header-wrapper,#link-navbar-vm>.link-navbar,#navbar-vm>.link-navbar,.b-header-mask-wrp .b-header-mask,.bili-header-m .nav-menu .nav-mask,.bili-header-m .nav-menu.blur-black .nav-mask,.link-navbar{background-color:#444!important}.z_top .i-link:hover,.z_top .z_top_nav ul li.home:hover{background-color:transparent!important}#app>.nav-header-wrapper>.nav-header{background:0 0!important}#app>.link-navbar .main-ctnr .nav-logo,#app>.link-navbar .nav-item.selected .label,#app>.link-navbar .nav-item:hover .icon-font,#app>.nav-header-wrapper>.nav-header .nav-header-mainsite,#app>.nav-header-wrapper>.nav-header .order-center,#link-navbar-vm>.link-navbar .main-ctnr .nav-logo,#link-navbar-vm>.link-navbar .nav-item:hover,.bili-header-m .nav-menu .nav-con .nav-item .t,.link-navbar .main-ctnr .custom-link>a,.link-navbar .main-ctnr .nav-logo,.my-link-btn .label,.nav-header-wrapper .nav-header .nav-header-search-bar,.right-part>.shortcuts-ctnr,.right-part>.shortcuts-ctnr .shortcut-item:hover,.search-bar-ctnr .search-bar input,.shortcut-item .list-item span,.shortcuts-ctnr .shortcut-item,.uns_box li.u-i a.i-link,.z_top a,.z_top.b-header-blur .uns_box li.u-i a.i-link,.z_top.b-header-blur .z_top_nav li a.i-link{color:#eee!important}.search-bar-ctnr .search-bar .placeholder,.search-bar-ctnr .search-bar .search-btn,.search-bar-ctnr .search-bar input::placeholder{color:#878787!important}.uns_box li.u-i:hover a.i-link,.z_top .i-link:hover{color:var(--theme-color)}.link-navbar,.link-navbar-ctnr{box-shadow:none!important}.link-navbar .main-ctnr .nav-logo::before,.nav-header-wrapper .nav-header .order-icon{filter:brightness(0) invert(1)!important}.search-bar-ctnr .search-bar{border-color:transparent!important;box-shadow:0 2px 10px 1px #0002}`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/dark-schedule.min.js"] = (()=>{return(e,t)=>{class i{constructor(...e){if(e.length===0){const e=new Date;this.hour=e.getHours();this.minute=e.getMinutes()}else if(e.length===1){const[t]=e;[this.hour,this.minute]=t.split(":").slice(0,2).map(e=>this.validatePart(e));this.normalize()}else if(v.length===2){[this.hour,this.minute]=e}}validatePart(e){const t=parseInt(e);if(!isNaN(t)&&t>=0&&t<=59){return t}else{return null}}normalize(){while(this.minute<0){this.minute+=60;this.hour-=1}while(this.minute>=60){this.minute-=60;this.hour+=1}while(this.hour<0){this.hour+=24}while(this.hour>=24){this.hour-=24}}lessThan(e){if(this.houre.hour||this.hour===e.hour&&this.minute>e.minute){return true}return false}equals(e){return this.hour===e.hour&&this.minute===e.minute}isInRange(e,t){if(e.equals(t)){return false}let i=this.greaterThan(e)&&this.lessThan(t);if(e.greaterThan(t)){i=this.greaterThan(e)||this.lessThan(t)}const s=i||this.equals(e);return s}static millisecondsBefore(e){const t=new i;const s=(new Date).getSeconds();const r=1e3*(t.hour*3600+t.minute*60+s);const n=1e3*(e.hour*3600+e.minute*60);let h=n-r;if(t.greaterThan(e)||t.equals(e)&&s!==0){h+=24*3600*1e3}return h}}function s(){if(e.darkSchedule){const t=new i(e.darkScheduleStart);const r=new i(e.darkScheduleEnd);const n=new i;const h=n.isInRange(t,r);if(e.useDarkStyle!==h){e.useDarkStyle=h}let u=0;if(h){u=i.millisecondsBefore(r)}else{u=i.millisecondsBefore(t)}if(u!==0){setTimeout(()=>s(),u)}}}fullyLoaded(()=>s());return{export:{ScheduleTime:i}}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/dark-styles.min.js"] = (()=>{return(e,t)=>{const l=()=>{SpinQuery.select(".custom-scrollbar").then(e=>e&&e.classList.remove("custom-scrollbar"))};const r=()=>{document.body.classList.add("dark");l();t.applyStyle("scrollbarStyle");t.applyImportantStyle("darkStyleNavBar");t.applyStyle("darkStyle");t.applyImportantStyle("darkStyleImportant")};r();return{reload:r,unload:()=>{document.body.classList.remove("dark");t.removeStyle("scrollbarStyle");t.removeStyle("darkStyleNavBar");t.removeStyle("darkStyle");t.removeStyle("darkStyleImportant")}}}})(); @@ -1072,7 +1072,7 @@ offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/m offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/download-audio.min.js"] = (()=>{return(e,t)=>{class n{constructor(){this.sid=null;this.progress=null}async getDownloadUrl(){const e=`https://www.bilibili.com/audio/music-service-c/web/url?sid=${this.sid}&privilege=2&quality=2`;const t=await Ajax.getJsonWithCredentials(e);if(t.code===0){return t.data.cdns.shift()}else{logError("获取下载链接失败, 请确保当前账号有下载权限.","下载音频",1e4);return null}}async download(){const e=await this.getDownloadUrl();return new Promise((t,n)=>{const s=new XMLHttpRequest;s.open("GET",e);s.responseType="blob";s.addEventListener("load",()=>t(s.response));s.addEventListener("error",()=>n(s.status));s.addEventListener("progress",e=>this.progress&&this.progress(100*e.loaded/e.total));s.send()})}}const s="下载音频";return{export:n,widget:{content:`\n\n\n${s}\n\n`,condition:()=>document.URL.includes("bilibili.com/audio"),success:async()=>{await SpinQuery.select(()=>document.querySelector("#app"));const e=document.querySelector("#download-audio");const t=e.querySelector("span");const o=new n;o.progress=(e=>{t.innerHTML=`${Math.round(e)}%`});const i=document.querySelector("#download-audio-link");e.addEventListener("click",async e=>{if(o.sid===null||e.target===i){return}const n=await o.download();t.innerHTML=s;const r=i.getAttribute("href");if(r){URL.revokeObjectURL(r)}i.setAttribute("href",URL.createObjectURL(n));const d=(()=>{const e=document.querySelector(".song-title");if(e){return e.getAttribute("title")}else{return"神秘音频"}})();i.setAttribute("download",d+".m4a");i.click()});Observer.childList("#app",()=>{const t=document.URL.match(/bilibili\.com\/audio\/au([\d]+)/);if(t&&t[1]){e.disabled=false;o.sid=t[1]}else{e.disabled=true}})}}}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/download-danmaku.min.js"] = (()=>{return(t,e)=>{const{getFriendlyTitle:n}=e.import("title");const{DanmakuInfo:i}=e.import("video-info");const{DanmakuConverter:a}=e.import("danmaku-converter");async function o(t){const e=n();let i={title:e};try{await loadDanmakuSettingsPanel();const t=t=>{const e=parseFloat(dq(t).style.transform.replace(/translateX\(([\d\.]+)/,"$1"));const n={0:0,44:1,94:2,144:3,188:4}[e];return n};i.font=dq(".bilibili-player-video-danmaku-setting-right-font .bui-select-result").innerText;i.alpha=parseFloat(dq(".bilibili-player-setting-opacity .bui-bar").style.transform.replace(/scaleX\(([\d\.]+)\)/,"$1"));i.duration=(()=>{const e=[18,14,10,8,6][t(".bilibili-player-setting-speedplus .bui-thumb")];return t=>{switch(t.type){case 4:case 5:return 4;default:return e}}})();i.blockTypes=(()=>{let t=[];const e={".bilibili-player-block-filter-type[ftype=scroll]":[1,2,3],".bilibili-player-block-filter-type[ftype=top]":[5],".bilibili-player-block-filter-type[ftype=bottom]":[4],".bilibili-player-block-filter-type[ftype=color]":["color"]};for(const[n,i]of Object.entries(e)){if(dq(n).classList.contains("disabled")){t=t.concat(i)}}return t.concat(7,8)})();const e=[1.4,1.2,1,.8,.6][t(".bilibili-player-setting-fontsize .bui-thumb")];i.resolution={x:1920*e,y:1080*e};i.bottomMarginPercent=[.75,.5,.25,0,0][t(".bilibili-player-setting-area .bui-thumb")];if(i.bottomMarginPercent===0&&dq(".bilibili-player-video-danmaku-setting-left-preventshade input").checked){i.bottomMarginPercent=.15}i.bold=dq(".bilibili-player-video-danmaku-setting-right-font-bold input").checked}catch(t){i={font:"微软雅黑",alpha:.6,duration:t=>{switch(t.type){case 4:case 5:return 4;default:return 6}},blockTypes:[7,8],resolution:{x:1920,y:1080},bottomMarginPercent:.15,bold:false}}const o=new a(i);const l=o.convertToAssDocument(t);return l.generateAss()}async function l(t,e){const a=n();const l=new i((unsafeWindow||window).cid);await l.fetchInfo();const r=await(async()=>{if(t===true){return new Blob([await o(l.rawXML)],{type:"text/plain"})}else{return new Blob([l.rawXML],{type:"text/plain"})}})();const s=URL.createObjectURL(r);const c=dq("#danmaku-link");const d=c.getAttribute("href");if(d){URL.revokeObjectURL(d)}clearTimeout(e);dq("#download-danmaku>span").innerHTML="下载弹幕";c.setAttribute("download",`${a}.${t?"ass":"xml"}`);c.setAttribute("href",s);c.click()}return{export:{downloadDanmaku:l,convertToAss:o},widget:{content:`\n\n\n下载弹幕\n\n`,condition:async()=>{let t=await SpinQuery.select(()=>(unsafeWindow||window).cid);return Boolean(t)},success:()=>{const t=document.querySelector("#danmaku-link");dq("#download-danmaku").addEventListener("click",e=>{if(e.target!==t){const t=setTimeout(()=>dq("#download-danmaku>span").innerHTML="请稍侯...",200);l(e.shiftKey,t)}})}}}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/download-video.min.css"] = `.download-video{--download-video-background:white;--download-video-foreground:black;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.95);background:var(--download-video-background);color:var(--download-video-foreground);box-shadow:rgba(0,0,0,.2) 0 4px 8px 0;z-index:10001;pointer-events:none;opacity:0;padding:16px;width:300px;display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;max-height:90%}.download-video,.download-video *{transition:.2s ease-out;-webkit-tap-highlight-color:transparent!important}.download-video.opened{pointer-events:initial;opacity:1;transform:translate(-50%,-50%) scale(1)}body.dark .download-video{--download-video-background:#222;--download-video-foreground:#eee}.round-corner .download-video,.round-corner .download-video .episode-list .v-checkbox,.round-corner .download-video .rpc-settings{border-radius:var(--large-corner-radius)}.round-corner .download-video .button,.round-corner .download-video .cover,.round-corner .download-video .direct-download .progress .background,.round-corner .download-video .direct-download .progress .foreground,.round-corner .download-video .rpc-settings input[type=text],.round-corner .download-video .title,.round-corner .download-video button{border-radius:var(--corner-radius)}.download-video .cover{width:240px;min-height:135px;background-color:#8882}.download-video .header{display:flex;justify-content:space-between;align-items:center}.download-video h1{font-size:16pt;font-weight:700;color:var(--download-video-foreground)}.download-video .header .mdi-close{font-size:16pt;color:var(--download-video-foreground);cursor:pointer}.download-video .header .mdi-close:hover{color:var(--theme-color)}.download-video .info{display:flex;flex-direction:column;align-items:center;margin-top:12px}.download-video .title{display:flex;flex-direction:column;justify-content:space-between;align-items:stretch;margin-top:12px}.download-video .title .bold{width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.download-video .title .size{font-size:10pt;color:var(--download-video-foreground);align-self:center;display:flex;align-items:center;height:24px}.download-video .bold{color:var(--download-video-foreground);font-weight:700;font-size:12pt}.download-video .option-item{display:flex;justify-content:space-between;align-items:center;padding-top:12px;font-size:10pt}.download-video .tabs{display:flex;padding-top:12px;font-size:10pt}.download-video .tabs .tab{padding:6px 12px;border-bottom:2px solid transparent;cursor:pointer}.download-video .tabs .tab.active{color:var(--theme-color);border-bottom-color:var(--theme-color)}.download-video .separator{height:1px;background:#8884;width:100%;margin:12px 0;flex-shrink:0}.download-video h2{font-size:12pt;font-weight:700;color:var(--download-video-foreground)}.download-video .direct-download{display:flex;flex-direction:column;align-items:start;justify-content:space-between}.download-video .button,.download-video button{border:none;outline:0!important;padding:6px 16px;font-size:10pt;cursor:pointer;background:#8884;color:var(--download-video-foreground)}.download-video .button:hover,.download-video button:hover{background:#8886}.download-video .primary{background:var(--theme-color);color:var(--foreground-color);align-self:center}.download-video .primary:hover{background:var(--theme-color-90)}.download-video .busy .button,.download-video .busy .primary,.download-video .busy button,.download-video button:disabled{background-color:#0001;color:#8884;cursor:not-allowed}.download-video .busy .button,.download-video .busy button{cursor:wait!important}.download-video .direct-download .progress{align-self:stretch;display:flex;align-items:center;margin-top:8px}.download-video .direct-download .progress .background{flex-grow:1;height:4px;background:#8884;margin-right:4px;position:relative}.download-video .direct-download .progress .background .foreground{position:absolute;top:0;left:0;height:4px;background:linear-gradient(to right,var(--theme-color),var(--theme-color-60))}.download-video .direct-download .progress .percent{width:50px;text-align:right}.download-video .actions{display:flex;flex-wrap:wrap;justify-content:space-between;margin:8px -4px 0}.download-video .actions>*{margin:4px;flex-grow:1;flex-basis:calc(50% - 16px);display:flex;justify-content:center;align-items:center}.download-video i.mdi-alert-circle{font-size:14pt;color:#ff9800}.download-video .size-warning{position:relative;padding:0 8px}.download-video .size-warning-tip{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);background:var(--download-video-background);color:var(--download-video-foreground);border:1px dashed var(--theme-color);z-index:2;font-size:10pt;width:200px;padding:8px;box-shadow:rgba(0,0,0,.2) 0 4px 8px 0;pointer-events:none;opacity:0}.download-video .size-warning:hover .size-warning-tip{opacity:1}.download-video .episode-list .v-checkbox{padding:4px 8px;margin:4px 0;position:relative;background-color:transparent}.download-video .episode-list .v-checkbox.checked{background-color:#8882}.download-video .episode-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.download-video .episode-list{overflow:auto;max-height:320px}.download-video button.list-tool{padding:4px;line-height:1;font-size:12pt;margin:0 4px}.download-video .episode-header h2{flex-grow:1}.download-video .selected-count{width:64px;text-align:right}.download-video .aria2-rpc .mdi{margin-left:8px;font-size:14pt;line-height:1}.download-video .aria2-rpc{position:relative}.download-video .rpc-settings{position:absolute;display:flex;flex-direction:column;align-items:stretch;color:var(--download-video-foreground);background:#fff;bottom:120%;left:50%;cursor:initial;box-shadow:rgba(0,0,0,.2) 0 4px 8px 0;transform-origin:bottom;transform:translateX(-50%) scale(.9);opacity:0;pointer-events:none;padding:8px;z-index:3;transition:.3s cubic-bezier(.18,.89,.32,1.28);width:100%}body.dark .download-video .rpc-settings{background:#282828}.download-video .rpc-settings>*{margin:8px}.download-video .rpc-settings.show{opacity:1;transform:translateX(-50%) scale(1);pointer-events:initial}.download-video .rpc-settings input[type=text]{background:0 0;color:var(--download-video-foreground);border:1px solid #8884;padding:4px;margin-left:8px}.download-video .rpc-settings input[type=text]:focus{border-color:var(--theme-color)}.download-video .rpc-settings .operations{display:flex;align-items:center;justify-content:space-evenly}.download-video .rpc-settings-item{display:flex;align-items:center;justify-content:space-between;white-space:nowrap}.download-video .rpc-settings-item input[type=text]{flex-grow:1;margin-left:24px}.download-video button.cancel-download,.download-video button.start-download{margin-top:8px}.download-video .direct-download-header{align-self:stretch;display:flex;justify-content:space-between;align-items:center}body.dark .download-video .direct-download .progress .foreground{background:linear-gradient(to right,var(--theme-color-70),var(--theme-color))}`; -offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/download-video.min.html"] = `

    下载视频

    单个视频
    批量导出
    警告: 过大的视频大小会在直接下载时占用大量内存, 并可能导致浏览器标签页崩溃. 请考虑降低清晰度或使用导出选项.
    预计大小: {{displaySize}}
    格式
    清晰度
    弹幕

    直接下载

    {{speed}}
    {{progressPercent}}%

    选集

    {{selectedEpisodeCount}}/{{episodeList.length}}

    导出

    {{showRpcSettings ? '取消' : 'aria2 RPC'}}

    aria2 RPC

    配置

    主机
    端口
    密钥
    限速
    默认路径
    路径
    最终路径: {{rpcSettings.baseDir + rpcSettings.dir}}
    方法
    开始下载
    {{saveRpcSettingsText}}
    `; +offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/download-video.min.html"] = `

    下载视频

    单个视频
    批量导出
    警告: 过大的视频大小会在直接下载时占用大量内存, 并可能导致浏览器标签页崩溃. 请考虑降低清晰度或使用导出选项.
    预计大小: {{displaySize}}
    格式
    清晰度
    弹幕

    直接下载

    {{speed}}
    {{progressPercent}}%

    选集

    {{selectedEpisodeCount}}/{{episodeList.length}}

    导出

    {{showRpcSettings ? '取消' : 'aria2 RPC'}}

    aria2 RPC

    配置

    主机
    端口
    密钥
    限速
    默认路径
    路径
    最终路径: {{rpcSettings.baseDir + rpcSettings.dir}}
    方法
    开始下载
    {{saveRpcSettingsText}}
    `; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/download-video.min.js"] = (()=>{return(e,t)=>{const{getFriendlyTitle:s}=t.import("title");const{VideoInfo:a,DanmakuInfo:i}=t.import("video-info");class n{constructor(){this.menuClasses=["quality","action","progress"];[this.currentMenuClass]=this.menuClasses}get menuPanel(){return document.querySelector(".download-video-panel")}addMenuClass(){this.menuPanel.classList.remove(...this.menuClasses);this.menuPanel.classList.add(this.currentMenuClass);return this.currentMenuClass}resetMenuClass(){[this.currentMenuClass]=this.menuClasses;this.addMenuClass()}nextMenuClass(){const e=this.menuClasses.indexOf(this.currentMenuClass)+1;const t=this.menuClasses[e>=this.menuClasses.length?0:e];this.currentMenuClass=t;this.addMenuClass();return t}closeMenu(){this.menuPanel.classList.remove("opened");setTimeout(()=>this.resetMenuClass(),200)}addError(){this.menuPanel.classList.add("error")}removeError(){this.menuPanel.classList.remove("error");this.resetMenuClass()}async getDashUrl(e){throw new Error("video dash is not supported")}async getUrl(e){if(e){return`https://api.bilibili.com/x/player/playurl?avid=${r.aid}&cid=${r.cid}&qn=${e}&otype=json`}else{return`https://api.bilibili.com/x/player/playurl?avid=${r.aid}&cid=${r.cid}&otype=json`}}}class o extends n{async getDashUrl(e){if(e){return`https://api.bilibili.com/pgc/player/web/playurl?avid=56995872&cid=99547543&qn=${e}&otype=json&fourk=1&fnval=16`}else{return`https://api.bilibili.com/pgc/player/web/playurl?avid=56995872&cid=99547543&otype=json&fourk=1&fnval=16`}}async getUrl(e){if(e){return`https://api.bilibili.com/pgc/player/web/playurl?avid=${r.aid}&cid=${r.cid}&qn=${e}&otype=json`}else{return`https://api.bilibili.com/pgc/player/web/playurl?avid=${r.aid}&cid=${r.cid}&qn=&otype=json`}}}const r={entity:new n,aid:"",cid:""};let l=[];let c=null;class d{constructor(e,t,s){this.quality=e;this.internalName=t;this.displayName=s}async downloadInfo(e=false){const t=new h(this);await t.fetchVideoInfo(e);return t}static parseFormats(e){const t=e.accept_quality;const s=e.accept_format.split(",");const a=e.accept_description;const i=t.map((e,t)=>{return new d(e,s[t],a[t])});return i}static async getAvailableDashFormats(){const e=await r.entity.getDashUrl();const t=await Ajax.getJsonWithCredentials(e);if(t.code!==0){throw new Error("获取清晰度信息失败.")}return d.parseFormats(t.result)}static async getAvailableFormats(){const e=await r.entity.getUrl();const t=await Ajax.getJsonWithCredentials(e);if(t.code!==0){throw new Error("获取清晰度信息失败.")}const s=t.data||t.result||t;return d.parseFormats(s)}}class h{constructor(e,t){this.fragmentSplitFactor=6*2;this.workingXhr=null;this.progressMap=new Map;this.format=e;this.fragments=t||[];this.videoSpeed=new u(this)}get totalSize(){return this.fragments.map(e=>e.size).reduce((e,t)=>e+t)}async fetchVideoInfo(e=false){if(!e){const e=await r.entity.getUrl(this.format.quality);const t=await Ajax.getTextWithCredentials(e);const s=JSON.parse(t.replace(/http:/g,"https:"));const a=s.data||s.result||s;if(a.quality!==this.format.quality){throw new Error("获取下载链接失败, 请确认当前账号有下载权限后重试.")}const i=a.durl;this.fragments=i.map(e=>{return{length:e.length,size:e.size,url:e.url,backupUrls:e.backup_url}})}else{const{dashToFragment:e,getDashInfo:s}=await t.importAsync("video-dash");const a=await s(r.aid,r.cid,this.format.quality);const i=a.videoDashes.sort(descendingSort(e=>e.bandWidth))[0];const n=a.audioDashes.sort(descendingSort(e=>e.bandWidth))[0];this.fragments=[e(i),e(n)]}return this.fragments}updateProgress(){const e=this.progressMap?[...this.progressMap.values()].reduce((e,t)=>e+t,0)/this.totalSize:0;if(e>1||e<0){console.error(`[下载视频] 进度异常: ${e}`,this.progressMap.values())}this.progress&&this.progress(e)}cancelDownload(){this.videoSpeed.stopMeasure();if(this.workingXhr!==null){this.workingXhr.forEach(e=>e.abort())}else{logError("Cancel Download Failed: forEach in this.workingXhr not found.")}}downloadFragment(e){const t=[];this.workingXhr=[];this.progressMap=new Map;this.updateProgress();let s;if(e.size<=96*1024*1024){s=e.size/this.fragmentSplitFactor}else{s=16*1024*1024}let a=0;const i=e=>[...this.progressMap.keys()].indexOf(e)+1;while(a{const a=new XMLHttpRequest;a.open("GET",e.url);a.responseType="arraybuffer";a.withCredentials=false;a.addEventListener("progress",e=>{console.log(`[下载视频] 视频片段${i(a)}下载进度: ${e.loaded}/${r} bytes loaded, ${o}`);this.progressMap.set(a,e.loaded);this.updateProgress()});a.addEventListener("load",()=>{if((""+a.status)[0]==="2"){console.log(`[下载视频] 视频片段${i(a)}下载完成`);t(a.response)}else{s(`视频片段${i(a)}请求失败, response = ${a.status}`)}});a.addEventListener("abort",()=>s("canceled"));a.addEventListener("error",()=>{console.error(`[下载视频] 视频片段${i(a)}下载失败: ${o}`);this.progressMap.set(a,0);this.updateProgress();a.open("GET",e.url);a.setRequestHeader("Range",o);a.send()});a.setRequestHeader("Range",o);this.progressMap.set(a,0);a.send();this.workingXhr.push(a)}));a=Math.round(a+s)+1}return Promise.all(t)}async copyUrl(){const e=this.fragments.map(e=>e.url).reduce((e,t)=>e+"\r\n"+t);GM_setClipboard(e,"text")}async showUrl(){const e=this.fragments.map(e=>`\n${e.url}\n`).reduce((e,t)=>e+"\r\n"+t);Toast.success(e,"显示链接")}static downloadBlob(e,t){const s=document.createElement("a");let a;if(typeof e==="string"){a=e}else{a=URL.createObjectURL(e)}s.setAttribute("href",a);s.setAttribute("download",t);document.body.appendChild(s);s.click();s.remove();URL.revokeObjectURL(a)}async exportData(e=false){const t=JSON.stringify([{fragments:this.fragments,title:s(),totalSize:this.fragments.map(e=>e.size).reduce((e,t)=>e+t),referer:document.URL.replace(window.location.search,"")}]);if(e){GM_setClipboard(t,"text")}else{const e=new Blob([t],{type:"text/json"});const a=await this.downloadDanmaku();if(a!==null){const t=new JSZip;t.file(`${s()}.json`,e);t.file(s()+"."+this.danmakuOption.toLowerCase(),a);h.downloadBlob(await t.generateAsync({type:"blob"}),`${s()}.zip`)}else{h.downloadBlob(e,`${s()}.json`)}}}async exportAria2(a=false){if(a){const a=await this.downloadDanmaku();if(a!==null){h.downloadBlob(new Blob([a]),`${s()}.${this.danmakuOption==="ASS"?"ass":"xml"}`)}const i=e.aria2RpcOption;const n=this.fragments.map((e,t)=>{let a="";if(this.fragments.length>1){a=" - "+(t+1)}const n=[];if(i.secretKey!==""){n.push(`token:${i.secretKey}`)}n.push([e.url]);n.push({referer:document.URL.replace(window.location.search,""),"user-agent":UserAgent,out:`${s()}${a}${this.extension(e)}`,split:this.fragmentSplitFactor,dir:i.baseDir+i.dir||undefined,"max-download-limit":i.maxDownloadLimit||undefined});const o=encodeURIComponent(`${s()}${a}`);return{params:n,id:o}});const{sendRpc:o}=await t.importAsync("aria2-rpc");await o(n)}else{const e=`\n# Generated by Bilibili Evolved Video Export\n# https://github.com/the1812/Bilibili-Evolved/\n${this.fragments.map((e,t)=>{let a="";if(this.fragments.length>1){a=" - "+(t+1)}return`\n${e.url}\nreferer=${document.URL.replace(window.location.search,"")}\nuser-agent=${UserAgent}\nout=${s()}${a}${this.extension(e)}\nsplit=${this.fragmentSplitFactor}\n`.trim()}).join("\n")}\n`.trim();const t=new Blob([e],{type:"text/plain"});const a=await this.downloadDanmaku();if(a!==null){const e=new JSZip;e.file(`${s()}.txt`,t);e.file(s()+"."+this.danmakuOption.toLowerCase(),a);h.downloadBlob(await e.generateAsync({type:"blob"}),`${s()}.zip`)}else{h.downloadBlob(t,`${s()}.txt`)}}}extension(e){const t=e||this.fragments[0];const s=[".flv",".mp4",".m4s"].find(e=>t.url.includes(e));if(s){return s}else{console.warn("No extension detected.");return".flv"}}makeBlob(e,t){return new Blob(Array.isArray(e)?e:[e],{type:this.extension(t)===".flv"?"video/x-flv":"video/mp4"})}cleanUpOldBlobUrl(){const e=dq("a#video-complete").getAttribute("href");if(e&&!dq(`.link[href="${e}"]`)){URL.revokeObjectURL(e)}dqa(".toast-card-header").filter(e=>e.innerText.includes("下载视频")).forEach(e=>e.querySelector(".toast-card-dismiss").click())}async downloadDanmaku(){if(this.danmakuOption!=="无"){const e=new i(r.cid);await e.fetchInfo();if(this.danmakuOption==="XML"){return e.rawXML}else{const{convertToAss:s}=await t.importAsync("download-danmaku");return s(e.rawXML)}}else{return null}}async downloadSingle(e){const t=await this.downloadDanmaku();const[a]=e;if(t===null){const e=this.makeBlob(a);const t=s()+this.extension();return{blob:e,filename:t}}else{const e=new JSZip;e.file(s()+this.extension(),this.makeBlob(a));e.file(s()+"."+this.danmakuOption.toLowerCase(),t);const i=await e.generateAsync({type:"blob"});const n=s()+".zip";return{blob:i,filename:n}}}async downloadMultiple(e){const t=new JSZip;const a=s();if(e.length>1){e.forEach((e,s)=>{const i=this.fragments[s];t.file(`${a} - ${s+1}${this.extension(i)}`,this.makeBlob(e,i))})}else{const[s]=e;t.file(`${a}${this.extension()}`,this.makeBlob(s))}const i=await this.downloadDanmaku();if(i!==null){t.file(s()+"."+this.danmakuOption.toLowerCase(),i)}const n=await t.generateAsync({type:"blob"});const o=a+".zip";return{blob:n,filename:o}}async download(){const e=[];this.videoSpeed.startMeasure();for(const t of this.fragments){const s=await this.downloadFragment(t);e.push(s)}if(e.length<1){throw new Error("下载失败.")}let{blob:t,filename:s}=await(async()=>{if(e.length===1){return await this.downloadSingle(e)}else{return await this.downloadMultiple(e)}})();this.cleanUpOldBlobUrl();const a=URL.createObjectURL(t);this.progress&&this.progress(0);this.videoSpeed.stopMeasure();return{url:a,filename:s}}}class u{constructor(e){this.lastProgress=0;this.measureInterval=1e3;this.workingDownloader=e}startMeasure(){this.intervalTimer=setInterval(()=>{const e=this.workingDownloader.progressMap?[...this.workingDownloader.progressMap.values()].reduce((e,t)=>e+t,0):0;const t=e-this.lastProgress;if(this.speedUpdate!==undefined){this.speedUpdate(formatFileSize(t)+"/s")}this.lastProgress=e},this.measureInterval)}stopMeasure(){clearInterval(this.intervalTimer)}}async function p(){const e=await SpinQuery.select(()=>(unsafeWindow||window).aid);const t=await SpinQuery.select(()=>(unsafeWindow||window).cid);if(!(e&&t)){return false}r.aid=e;r.cid=t;if(document.URL.indexOf("bangumi")!==-1){r.entity=new o}else{r.entity=new n}try{l=await d.getAvailableFormats()}catch(e){return false}return true}async function f(){c=l[0];t.applyStyle("downloadVideoStyle");dq("#download-video").addEventListener("click",()=>{dq(".download-video").classList.toggle("opened");dq(".gui-settings-mask").click()});dq("#download-video").addEventListener("mouseover",()=>{document.body.insertAdjacentHTML("beforeend",t.import("downloadVideoHtml"));m()},{once:true})}async function m(){let n;const o=new Map;const u=new Vue({el:".download-video",components:{VDropdown:()=>t.importAsync("v-dropdown.vue"),VCheckbox:()=>t.importAsync("v-checkbox.vue"),RpcProfiles:()=>t.importAsync("aria2-rpc-profiles.vue")},data:{downloadSingle:true,coverUrl:EmptyImageUrl,aid:r.aid,cid:r.cid,dashModel:{value:e.downloadVideoFormat,items:["flv","dash"]},qualityModel:{value:c.displayName,items:l.map(e=>e.displayName)},danmakuModel:{value:e.downloadVideoDefaultDanmaku,items:["无","XML","ASS"]},progressPercent:0,size:"获取大小中",blobUrl:"",episodeList:[],downloading:false,speed:"",batch:false,rpcSettings:e.aria2RpcOption,showRpcSettings:false,busy:false,saveRpcSettingsText:"保存配置",enableDash:e.enableDashDownload},computed:{displaySize(){if(typeof this.size==="string"){return this.size}return formatFileSize(this.size)},sizeWarning(){if(typeof this.size==="string"){return false}return this.size>1073741824},selectedEpisodeCount(){return this.episodeList.filter(e=>e.checked).length},dash(){return this.dashModel.value==="dash"}},methods:{close(){this.$el.classList.remove("opened")},danmakuOptionChange(){e.downloadVideoDefaultDanmaku=this.danmakuModel.value},async dashChange(){const e=this.dashModel.value;let t=[];if(e==="flv"){t=await d.getAvailableFormats()}else{t=await d.getAvailableDashFormats()}l=t;[c]=e;this.qualityModel.items=t.map(e=>e.displayName);[this.qualityModel.value]=this.qualityModel.items},async formatChange(){const e=this.getFormat();const t=o.get(e);if(t){this.size=t;return}try{this.size="获取大小中";const t=await e.downloadInfo(this.dash);this.size=t.totalSize;o.set(e,this.size)}catch(e){this.size="获取大小失败"}},getFormat(){const e=l.find(e=>e.displayName===this.qualityModel.value);if(!e){console.error(`No format found. model value = ${this.qualityModel.value}`);return null}return e},async exportData(e){if(this.busy===true){return}try{this.busy=true;if(!this.downloadSingle){await this.exportBatchData(e);return}const t=this.getFormat();const s=await t.downloadInfo(this.dash);s.danmakuOption=this.danmakuModel.value;switch(e){case"copyLink":await s.copyUrl();Toast.success("已复制链接到剪贴板.","下载视频",3e3);break;case"showLink":await s.showUrl();break;case"aria2":await s.exportAria2(false);break;case"aria2RPC":await s.exportAria2(true);break;case"copyVLD":await s.exportData(true);Toast.success("已复制VLD数据到剪贴板.","下载视频",3e3);break;case"exportVLD":await s.exportData(false);break;default:break}}catch(e){logError(e)}finally{this.busy=false}},async exportBatchData(e){const a=this.episodeList;if(a.every(e=>e.checked===false)){Toast.info("请至少选择1集或以上的数量!","批量导出",3e3);return}const n=e=>{const t=a.find(t=>t.cid===e.cid);if(t===undefined){return false}return t.checked};const o=this.getFormat();if(this.danmakuModel.value!=="无"){const e=Toast.info("下载弹幕中...","批量导出");const s=new JSZip;try{if(this.danmakuModel.value==="XML"){for(const e of a.filter(n)){const t=new i(e.cid);await t.fetchInfo();s.file(e.title+".xml",t.rawXML)}}else{const{convertToAss:e}=await t.importAsync("download-danmaku");for(const t of a.filter(n)){const a=new i(t.cid);await a.fetchInfo();s.file(t.title+".ass",await e(a.rawXML))}}h.downloadBlob(await s.generateAsync({type:"blob"}),this.cid+".danmakus.zip")}catch(e){logError(`弹幕下载失败`)}finally{e.dismiss()}}const r=Toast.info("获取链接中...","批量导出");this.batchExtractor.itemFilter=n;let l;try{switch(e){case"aria2":l=await this.batchExtractor.collectAria2(o,r);h.downloadBlob(new Blob([l],{type:"text/plain"}),s(false)+".txt");return;case"aria2RPC":await this.batchExtractor.collectAria2(o,r,true);Toast.success(`成功发送了批量请求.`,"aria2 RPC",3e3);return;case"copyVLD":GM_setClipboard(await this.batchExtractor.collectData(o,r),{mimetype:"text/plain"});Toast.success("已复制批量vld数据到剪贴板.","批量导出",3e3);return;case"exportVLD":l=await this.batchExtractor.collectData(o,r);h.downloadBlob(new Blob([l],{type:"text/json"}),s(false)+".json");return;default:return}}catch(e){logError(e)}finally{r.dismiss()}},async checkBatch(){const e=["/www.bilibili.com/bangumi","/www.bilibili.com/video/av"];if(!e.some(e=>document.URL.includes(e))){this.batch=false;this.episodeList=[];return}const{BatchExtractor:s}=await t.importAsync("batch-download");if(await s.test()!==true){this.batch=false;this.episodeList=[];return}this.batchExtractor=new s;this.batch=true;this.episodeList=(await this.batchExtractor.getItemList()).map((e,t)=>{return{aid:e.aid,cid:e.cid,title:e.title,index:t,checked:true}})},cancelDownload(){if(n){n.cancelDownload()}},async startDownload(){const e=this.getFormat();try{this.downloading=true;const t=await e.downloadInfo(this.dash);t.videoSpeed.speedUpdate=(e=>this.speed=e);t.danmakuOption=this.danmakuModel.value;t.progress=(e=>{this.progressPercent=Math.trunc(e*100)});n=t;const s=await t.download();const a=document.getElementById("video-complete");a.setAttribute("href",s.url);a.setAttribute("download",s.filename);a.click();Toast.success(`下载完成: ${s.filename} 再次保存`,"下载视频")}catch(e){if(e!=="canceled"){logError(e)}this.progressPercent=0}finally{this.downloading=false;this.speed=""}},selectAllEpisodes(){this.episodeList.forEach(e=>e.checked=true)},unselectAllEpisodes(){this.episodeList.forEach(e=>e.checked=false)},inverseAllEpisodes(){this.episodeList.forEach(e=>e.checked=!e.checked)},toggleRpcSettings(){this.showRpcSettings=!this.showRpcSettings},saveRpcSettings(){if(this.rpcSettings.host===""){this.rpcSettings.host="127.0.0.1"}if(this.rpcSettings.port===""){this.rpcSettings.port="6800"}e.aria2RpcOption=this.rpcSettings;const t=e.aria2RpcOptionProfiles.find(t=>t.name===e.aria2RpcOptionSelectedProfile);if(t){Object.assign(t,this.rpcSettings);e.aria2RpcOptionProfiles=e.aria2RpcOptionProfiles}this.saveRpcSettingsText="已保存";setTimeout(()=>this.saveRpcSettingsText="保存配置",2e3)},updateProfile(t){e.aria2RpcOption=this.rpcSettings=_.omit(t,"name")}}});Observer.videoChange(async()=>{u.close();u.batch=false;u.downloadSingle=true;const e=dq("#download-video");const t=await p();e.style.display=t?"flex":"none";if(!t){return}u.aid=r.aid;u.cid=r.cid;const s=new a(r.aid);await s.fetchInfo();u.coverUrl=s.coverUrl.replace("http:","https:");l=await d.getAvailableFormats();[c]=l;u.qualityModel={value:c.displayName,items:l.map(e=>e.displayName)};u.formatChange();await u.checkBatch()})}return{widget:{content:`\n`,condition:p,success:f}}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/dpi-img.vue.min.js"] = (()=>{return(t,e)=>{const i=``;return{export:Object.assign({template:i},{props:["size","src","blur"],computed:{srcset(){if(!this.src||!this.size){return null}return getDpiSourceSet(this.src,this.size)},width(){if(typeof this.size==="object"&&"width"in this.size){return this.size.width}return null},height(){if(typeof this.size==="object"&&"height"in this.size){return this.size.height}return null}}})}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/expand-danmaku.min.js"] = (()=>{return(e,a)=>{if(typeof isEmbeddedPlayer!=="undefined"&&isEmbeddedPlayer()){return}Observer.videoChange(async()=>{const e=await SpinQuery.select(".bui-collapse-wrap");if(e&&e.classList.contains("bui-collapse-wrap-folded")){const e=await SpinQuery.select(".bui-collapse-header");e.click()}})}})(); @@ -1159,7 +1159,7 @@ offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/m offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/simplify-home.min.css"] = `#app>.bili-wrapper,#app>.elevator-module,.bili-header-m .head-banner .head-content .head-logo,.international-footer,.international-header .b-wrap,.international-home>:not(.international-header){display:none!important}`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/simplify-home.min.js"] = (()=>{return(e,i)=>{(async()=>{if(document.URL.replace(window.location.search,"")!=="https://www.bilibili.com/"){i.removeStyle("simplifyHomeStyle");return}document.body.insertAdjacentHTML("beforeend",`\n\n`);const m=new Vue({el:"simplify-home",components:{SimplifyHome:()=>i.importAsync("simplify-home.vue")},data:{homeStyle:e.simplifyHomeStyle}});addSettingsListener("simplifyHomeStyle",e=>m.homeStyle=e,false)})()}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/simplify-home.vue.min.js"] = (()=>{return(e,m)=>{const o=`
    `;m.applyStyleFromText(`.simplify-home{margin-top:32px;display:flex;align-items:center;justify-content:center}.simplify-home .simplify-home-component{max-width:100%}html{scroll-behavior:smooth}`,"simplify-home-style");return{export:Object.assign({template:o},{components:{"minimal-home":()=>m.importAsync("minimal-home.vue"),"simple-home":()=>m.importAsync("simple-home.vue")},computed:{activeComponent(){return this.homeStyle==="清爽"?"simple-home":"minimal-home"}},props:{homeStyle:String}})}}})(); -offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/simplify-liveroom.min.css"] = `.simplify-eventsBanner .activity-pushing-out,.simplify-fansMedal .fans-medal-item-ctnr,.simplify-giftMessage .chat-item.gift-item,.simplify-giftPanel .gift-control-panel .wish-icon,.simplify-giftPanel .gift-control-panel .wish-tip,.simplify-giftPanel .gift-panel,.simplify-giftPanel .gift-panel-switch,.simplify-giftPanel .gift-section.guard-ent,.simplify-giftPanel .seeds-wrap>.dp-i-block>.item:not(.seeds),.simplify-guard i.guard-icon,.simplify-guardPurchase .chat-item.guard-buy,.simplify-popup .chat-popups-section,.simplify-popup .link-popup-ctnr,.simplify-systemMessage .announcement-wrapper,.simplify-systemMessage .system-msg,.simplify-title .title-label,.simplify-userLevel .user-level-icon,.simplify-vip .vip-icon,.simplify-welcomeMessage .welcome-guard,.simplify-welcomeMessage .welcome-msg{display:none!important}.simplify-giftPanel .gift-control-panel,.simplify-giftPanel .gift-control-section{height:48px!important}.simplify-giftPanel .treasure-box{display:flex!important;align-items:center!important;padding:10px 0 0 16px!important}.simplify-giftPanel .treasure-box .box-icon{width:24px!important;height:24px!important;background-position:0 -2.5px!important}.simplify-giftPanel .treasure-box .box-icon.open{background-position:0 -1px!important}.simplify-giftPanel .treasure-box .count-down{margin-left:12px!important;padding:4px 8px!important;max-width:unset!important}.simplify-giftPanel .treasure-box .awarding-panel{bottom:42px!important}.simplify-giftPanel .gift-control-panel .right-part{height:48px!important;display:flex!important;justify-content:flex-end!important}.simplify-giftPanel .gift-control-panel .right-part>.dp-table-cell{display:flex!important;align-items:center!important}.simplify-giftPanel .gift-control-panel .right-part>.dp-table-cell .supporting-info{transform:translateY(-2px)!important}.simplify-skin #gift-control-vm,.simplify-skin #head-info-vm,.simplify-skin #rank-list-ctnr-box{background-image:none!important}.simplify-guard .guard-danmaku::before{border-image:none!important;background-color:transparent!important}.simplify-guard .guard-danmaku::before .guard-danmaku{margin:0!important;padding:4px 5px!important}.simplify-guard .guard-danmaku::before .guard-danmaku::after{background-image:none!important}.simplify-guard [class*=guard-level-]::after{display:none!important}.simplify-liveroom-settings>ul>li{padding:8px 12px;display:flex;align-items:center}.simplify-liveroom-settings>ul>li:hover{background:rgba(0,0,0,.16)}.round-corner .simplify-liveroom-settings>ul>li{border-radius:var(--corner-radius)}`; +offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/simplify-liveroom.min.css"] = `.simplify-eventsBanner .activity-pushing-out,.simplify-fansMedal .fans-medal-item-ctnr,.simplify-giftMessage .chat-item.gift-item,.simplify-giftPanel .gift-control-panel .wish-icon,.simplify-giftPanel .gift-control-panel .wish-tip,.simplify-giftPanel .gift-panel,.simplify-giftPanel .gift-panel-switch,.simplify-giftPanel .gift-section.guard-ent,.simplify-giftPanel .seeds-wrap>.dp-i-block>.item:not(.seeds),.simplify-guard i.guard-icon,.simplify-guardPurchase .chat-item.guard-buy,.simplify-popup .chat-popups-section,.simplify-popup .link-popup-ctnr,.simplify-systemMessage .announcement-wrapper,.simplify-systemMessage .system-msg,.simplify-title .title-label,.simplify-userLevel .user-level-icon,.simplify-vip .vip-icon,.simplify-welcomeMessage .welcome-guard,.simplify-welcomeMessage .welcome-msg{display:none!important}.simplify-giftPanel .gift-control-panel,.simplify-giftPanel .gift-control-section{height:48px!important}.simplify-giftPanel .treasure-box{display:flex!important;align-items:center!important;padding:10px 0 0 16px!important}.simplify-giftPanel .treasure-box .box-icon{width:24px!important;height:24px!important;background-position:0 -2.5px!important}.simplify-giftPanel .treasure-box .box-icon.open{background-position:0 -1px!important}.simplify-giftPanel .treasure-box .count-down{margin-left:12px!important;padding:4px 8px!important;max-width:unset!important}.simplify-giftPanel .treasure-box .awarding-panel{bottom:42px!important}.simplify-giftPanel .gift-control-panel .right-part{height:48px!important;display:flex!important;justify-content:flex-end!important}.simplify-giftPanel .gift-control-panel .right-part>.dp-table-cell{display:flex!important;align-items:center!important}.simplify-giftPanel .gift-control-panel .right-part>.dp-table-cell .supporting-info{transform:translateY(-2px)!important}.simplify-skin #gift-control-vm,.simplify-skin #head-info-vm,.simplify-skin #rank-list-ctnr-box{background-image:none!important}.simplify-guard .guard-danmaku::before{border-image:none!important;background-color:transparent!important}.simplify-guard .guard-danmaku::before .guard-danmaku{margin:0!important;padding:4px 5px!important}.simplify-guard .guard-danmaku::before .guard-danmaku::after{background-image:none!important}.simplify-guard [class*=guard-level-]{padding:0!important;margin:0!important}.simplify-guard [class*=guard-level-]::after{display:none!important}.simplify-liveroom-settings>ul>li{padding:8px 12px;display:flex;align-items:center}.simplify-liveroom-settings>ul>li:hover{background:rgba(0,0,0,.16)}.round-corner .simplify-liveroom-settings>ul>li{border-radius:var(--corner-radius)}`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/simplify-liveroom.min.js"] = (()=>{return(e,i)=>{const s={vip:"老爷图标",fansMedal:"粉丝勋章",title:"活动头衔",userLevel:"用户等级",guard:"舰长图标",systemMessage:"全区广播",welcomeMessage:"欢迎信息",giftMessage:"礼物弹幕",guardPurchase:"上舰提示",giftPanel:"付费礼物",eventsBanner:"活动横幅",popup:"抽奖提示",skin:"房间皮肤"};class t{constructor(i,s){this.skinDisabled=e.simplifyLiveroomSettings.skin;this.skinSelectors=i;this.skinClass=s;i.forEach(e=>{SpinQuery.select(e,i=>{Observer.attributes(e,e=>{e.forEach(e=>{if(e.attributeName==="class"){if(this.skinDisabled&&i.classList.contains(s)){i.classList.remove(s)}else if(!this.skinDisabled&&!i.classList.contains(s)){i.classList.add(s)}}})})})})}setSkin(e){this.skinDisabled=!e;this.skinSelectors.forEach(i=>{SpinQuery.select(i,i=>i.classList[e?"add":"remove"](this.skinClass))})}}const n=[new t(["#head-info-vm","#gift-control-vm","#rank-list-vm","#rank-list-ctnr-box",".gift-panel.base-panel",".gift-panel.extend-panel",".seeds-wrap>div:first-child",".gift-section>div:last-child",".z-gift-package>div>div",".right-action"],"live-skin-coloration-area"),new t([".rank-list-ctnr .tabs"],"isHundred"),new t([".rank-list-ctnr .tab-content > div"],"hundred")];const a=(e,i)=>{document.body.classList[e?"add":"remove"](`simplify-${i}`);if(i==="skin"){n.forEach(i=>i.setSkin(!e))}};const c=()=>document.URL.startsWith(`https://live.bilibili.com/`);if(c()){Object.keys(s).forEach(i=>{const s=e.simplifyLiveroomSettings[i];a(s,i)})}return{widget:{condition:c,content:`\n
    \n\n简化直播间\n\n
    \n`,success:()=>{const i=document.querySelector("#simplify-liveroom");const t=document.querySelector(".gui-settings-mask");i.addEventListener("click",e=>{const i=document.querySelector(".simplify-liveroom-settings");if(i.contains(e.target)||e.target===i){return}i.classList.toggle("opened")});i.addEventListener("mouseenter",()=>t.classList.add("transparent"));i.addEventListener("mouseleave",()=>t.classList.remove("transparent"));new Vue({el:".simplify-liveroom-settings",data:{items:Object.entries(s).map(([i,s])=>{const t=e.simplifyLiveroomSettings[i];a(t,i);return{key:i,name:s,checked:t}})},methods:{itemClick(i){i.checked=!i.checked;a(i.checked,i.key);e.simplifyLiveroomSettings=Object.assign(e.simplifyLiveroomSettings,{[i.key]:i.checked})}}})}}}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/skip-charge-list.min.css"] = `.bilibili-player .bilibili-player-area .bilibili-player-electric-panel{display:none!important}`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/skip-charge-list.min.js"] = (()=>{return(e,i)=>{async function n(){const e=await SpinQuery.select(()=>document.querySelector("video"));e&&e.addEventListener("ended",async()=>{const e=await SpinQuery.select(()=>document.querySelector(".bilibili-player-electric-panel-jump"));e&&e.click()})}if(Observer.videoChange){Observer.videoChange(n)}else{Observer.childList("#bofqi",n)}}})(); diff --git a/bilibili-evolved.preview.user.js b/bilibili-evolved.preview.user.js index e6d9cf845..8321a17cc 100644 --- a/bilibili-evolved.preview.user.js +++ b/bilibili-evolved.preview.user.js @@ -1055,7 +1055,7 @@ onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/m onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/custom-navbar.min.html"] = `

    顶栏布局

    边缘间距: 设定两侧边缘处的间距, 单位为百分比, 100%为整个顶栏的宽度. 允许设置的范围为 0% ~ 40%
    {{boundsPadding}}%
    顺序与显示: 在左侧的条状图标上拖动可以改变它们的顺序, 或者按住名字一会再拖动也可以调顺序. 点击右侧的眼睛图标可以显示/隐藏它们.
    `; onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/custom-navbar.min.js"] = (()=>{return(i,t)=>{if(isIframe()){return}document.body.style.setProperty("--navbar-bounds-padding",`0 ${i.customNavbarBoundsPadding}%`);document.body.style.setProperty("--navbar-blur-opacity",i.customNavbarBlurOpacity||.7);addSettingsListener("customNavbarBlurOpacity",i=>{document.body.style.setProperty("--navbar-blur-opacity",i)});let e=true;const a={widget:{content:`\n
    \n\n顶栏布局\n
    `,condition:()=>e,success:async()=>{await SpinQuery.select(".custom-navbar-settings");await t.importAsync("slip");const{debounce:e}=await t.importAsync("debounce");const a=document.querySelector("#custom-navbar-settings");a.addEventListener("click",async()=>{const i=dq(".custom-navbar-settings");if(i){i.classList.toggle("show");document.querySelector(".gui-settings-mask").click()}});a.addEventListener("mouseover",()=>{const t={blank1:"弹性空白1",logo:"Logo",category:"主站",rankingLink:"排行",drawingLink:"相簿",musicLink:"音频",gamesIframe:"游戏中心",livesIframe:"直播",shopLink:"会员购",mangaLink:"漫画",blank2:"弹性空白2",search:"搜索框",userInfo:"用户信息",messages:"消息",activities:"动态",bangumi:"订阅",watchlaterList:"稍后再看",favoritesList:"收藏",historyList:"历史",upload:"投稿入口",blank3:"弹性空白3"};Vue.component("order-item",{props:["item"],template:`\n
  • \n\n{{item.displayName}}\n\n
  • \n`,methods:{hidden(){return i.customNavbarHidden.includes(this.item.name)},viewBorder(i){const t=document.querySelector(`.custom-navbar li[data-name='${this.item.name}']`);if(t!==null){t.classList[i?"add":"remove"]("view-border")}},toggleHidden(){const t=this.hidden();if(t===false){i.customNavbarHidden.push(this.item.name);i.customNavbarHidden=i.customNavbarHidden}else{const t=i.customNavbarHidden.indexOf(this.item.name);if(t===-1){return}i.customNavbarHidden.splice(t,1);i.customNavbarHidden=i.customNavbarHidden}this.$forceUpdate();const e=document.querySelector(`.custom-navbar li[data-name='${this.item.name}']`);if(e!==null){e.style.display=t?"flex":"none"}}}});const a=e(t=>{i.customNavbarBoundsPadding=t;document.body.style.setProperty("--navbar-bounds-padding",`0 ${t}%`)},200);new Vue({el:".custom-navbar-settings",mounted(){const t=document.querySelector(".custom-navbar-settings .order-list");const e=({sourceItem:e,targetItem:a,orderBefore:s,orderAfter:n})=>{if(s===n){return}const l=Object.entries(i.customNavbarOrder).filter(([i])=>i in customNavbarDefaultOrders);const o=l.sort((i,t)=>i[1]-t[1]).map(i=>i[0]);if(s=n;t--){const e=o[t];i.customNavbarOrder[e]=t+1;document.querySelector(`.custom-navbar li[data-name='${e}']`).style.order=t+1}}i.customNavbarOrder[o[s]]=n;document.querySelector(`.custom-navbar li[data-name='${o[s]}']`).style.order=n;i.customNavbarOrder=i.customNavbarOrder;t.insertBefore(e,a)};new Slip(t);t.addEventListener("slip:beforewait",i=>{if(i.target.classList.contains("mdi-menu")){i.preventDefault()}},false);t.addEventListener("slip:beforeswipe",i=>i.preventDefault(),false);t.addEventListener("slip:reorder",i=>{e({sourceItem:i.target,targetItem:i.detail.insertBefore,orderBefore:i.detail.originalIndex,orderAfter:i.detail.spliceIndex});return false},false)},computed:{orderList(){const e=Object.entries(i.customNavbarOrder);return e.filter(i=>i[0]in t).sort((i,t)=>i[1]-t[1]).map(i=>{return{displayName:t[i[0]],name:i[0],order:i[1]}})}},data:{boundsPadding:i.customNavbarBoundsPadding},watch:{boundsPadding(i){a(i)}},methods:{close(){document.querySelector(".custom-navbar-settings").classList.remove("show")},restoreDefault(){if(typeof customNavbarDefaultOrders==="undefined"){Toast.error("未找到默认值设定, 请更新您的脚本.");return}if(confirm("确定要恢复默认顶栏布局吗? 恢复后页面将刷新.")){this.boundsPadding=5;i.customNavbarOrder=customNavbarDefaultOrders;location.reload()}}}})},{once:true})}},unload:()=>{const i=document.querySelectorAll(".custom-navbar,.custom-navbar-settings");i.forEach(i=>i.style.display="none");t.removeStyle("customNavbarStyle")},reload:()=>{const i=document.querySelectorAll(".custom-navbar,.custom-navbar-settings");i.forEach(i=>i.style.display="flex");t.applyImportantStyle("customNavbarStyle")}};const s=(i,t,e)=>{e.classList[t?"add":"remove"](i)};const n=i=>{document.querySelector(".custom-navbar").classList[i?"add":"remove"]("dark");document.querySelector(".custom-navbar-settings").classList[i?"add":"remove"]("dark")};addSettingsListener("allNavbarFill",i=>s("all-navbar-fill",i,document.body));s("all-navbar-fill",i.allNavbarFill,document.body);const l=["//www.bilibili.com","//t.bilibili.com","//search.bilibili.com","//space.bilibili.com","//account.bilibili.com","//pay.bilibili.com","//member.bilibili.com","//big.bilibili.com","//message.bilibili.com","//app.bilibili.com","//passport.bilibili.com","//game.bilibili.com","//live.bilibili.com/blackboard/"];const o=["//t.bilibili.com/lottery/h5/index/#/result","//member.bilibili.com/video/upload","//space.bilibili.com/ajax/","//www.bilibili.com/h5/comment/"];if(!l.some(i=>document.URL.includes(i))||o.some(i=>document.URL.includes(i))){e=false;return a}document.body.classList.add("custom-navbar-loading");let c={};let r={};let d;class m{constructor(){this.html=``;this.popupHtml=``;this.flex=`0 0 auto`;this.disabled=false;this.requestedPopup=false;this.initialPopup=null;this.onPopup=null;this.href=null;this.notifyCount=0;this.touch=i.touchNavBar;this.active=false}get name(){return"undefined"}get order(){return i.customNavbarOrder[this.name]}get hidden(){return i.customNavbarHidden.includes(this.name)}async setNotifyCount(i){const t=await SpinQuery.select(`.custom-navbar li[data-name='${this.name}'] .notify-count`);if(!t||!i){t.innerHTML="";return}t.innerHTML=i}}class u extends m{constructor(i){super();this.number=i;this.flex="1 0 auto";this.disabled=true}get name(){return"blank"+this.number}}class p extends m{constructor(){super();this.getLogo();this.href=`https://www.bilibili.com/`;this.touch=false;addSettingsListener("customNavbarSeasonLogo",()=>this.getLogo())}async getLogo(){if(i.customNavbarSeasonLogo){const i=await Ajax.getJson("https://api.bilibili.com/x/web-show/res/locs?pf=0&ids=142");if(i.code===0){this.html=``;return}}this.html=``}get name(){return"logo"}}class b extends m{constructor(i,t,e){super();this.linkName=e;this.html=i;this.href=t;this.touch=false;this.active=document.URL.startsWith(t)}get name(){return this.linkName+"Link"}}class h extends m{constructor(){super();this.href="https://member.bilibili.com/v2#/upload/video/frame";this.html=`\n\n\n\n
    投稿
    `;this.popupHtml=`\n\n`}get name(){return"upload"}}class v extends m{constructor(){super();this.href="https://message.bilibili.com/";this.html="消息";this.popupHtml=`\n\n`;this.requestedPopup=true;this.active=document.URL.startsWith("https://message.bilibili.com/");this.init()}get name(){return"messages"}async init(){const i=await Ajax.getJsonWithCredentials("https://message.bilibili.com/api/notify/query.notify.count.do");const t=await SpinQuery.select("#message-list");const e=[...t.querySelectorAll("a[data-name]")];const a=e.map(i=>i.getAttribute("data-name"));if(i.code!==0){return}let s=a.reduce((t,e)=>t+i.data[e],0);if(!s){return}await this.setNotifyCount(s);a.forEach((t,a)=>{const s=i.data[t];if(s>0){e[a].setAttribute("data-count",s)}else{e[a].removeAttribute("data-count")}});e.forEach(i=>{i.addEventListener("click",()=>{const t=i.getAttribute("data-count");i.removeAttribute("data-count");s-=t;this.setNotifyCount(s)})})}}class w extends m{constructor(){super();this.html=`主站`;this.popupHtml=`\n\n`;const i=async()=>{const i=await Ajax.getJson("https://api.bilibili.com/x/web-interface/online");if(parseInt(i.code)!==0){throw new Error(`[自定义顶栏] 分区投稿信息获取失败: ${i.message}`)}const t=i.data.region_count;await SpinQuery.select("#custom-navbar-home-popup");return{"动画":{icon:"douga",count:t[1],link:`https://www.bilibili.com/v/douga/`,subRegions:{"MAD·AMV":`https://www.bilibili.com/v/douga/mad/`,"MMD·3D":`https://www.bilibili.com/v/douga/mmd/`,"短片·手书·配音":`https://www.bilibili.com/v/douga/voice/`,"综合":`https://www.bilibili.com/v/douga/other/`}},"番剧":{icon:"anime",count:t[13],link:`https://www.bilibili.com/anime/`,subRegions:{"连载动画":`https://www.bilibili.com/v/anime/serial/`,"完结动画":`https://www.bilibili.com/v/anime/finish/`,"资讯":`https://www.bilibili.com/v/anime/information/`,"官方延伸":`https://www.bilibili.com/v/anime/offical/`,"新番时间表":`https://www.bilibili.com/anime/timeline/`}},"国创":{icon:"guochuang",count:t[167],link:`https://www.bilibili.com/guochuang/`,subRegions:{"国产动画":`https://www.bilibili.com/v/guochuang/chinese/`,"国产原创相关":`https://www.bilibili.com/v/guochuang/original/`,"布袋戏":`https://www.bilibili.com/v/guochuang/puppetry/`,"资讯":`https://www.bilibili.com/v/guochuang/information/`,"新番时间表":`https://www.bilibili.com/guochuang/timeline/`,"国产动画索引":`https://www.bilibili.com/guochuang/index/`}},"音乐":{icon:"music",count:t[3],link:`https://www.bilibili.com/v/music/`,subRegions:{"原创音乐":"https://www.bilibili.com/v/music/original/","翻唱":"https://www.bilibili.com/v/music/cover/","VOCALOID·UTAU":"https://www.bilibili.com/v/music/vocaloid/","电音":"https://www.bilibili.com/v/music/electronic/","演奏":"https://www.bilibili.com/v/music/perform/",MV:"https://www.bilibili.com/v/music/mv/","音乐现场":"https://www.bilibili.com/v/music/live/","音乐综合":"https://www.bilibili.com/v/music/other/","音频":"https://www.bilibili.com/audio/home?musicType=music"}},"舞蹈":{icon:"dance",count:t[129],link:`https://www.bilibili.com/v/dance/`,subRegions:{"宅舞":"https://www.bilibili.com/v/dance/otaku/","三次元舞蹈":"https://www.bilibili.com/v/dance/three_d/","舞蹈教程":"https://www.bilibili.com/v/dance/demo/"}},"游戏":{icon:"game",count:t[4],link:`https://www.bilibili.com/v/game/`,subRegions:{"单机游戏":"https://www.bilibili.com/v/game/stand_alone/","电子竞技":"https://www.bilibili.com/v/game/esports/","手机游戏":"https://www.bilibili.com/v/game/mobile/","网络游戏":"https://www.bilibili.com/v/game/online/","桌游棋牌":"https://www.bilibili.com/v/game/board/",GMV:"https://www.bilibili.com/v/game/gmv/","音游":"https://www.bilibili.com/v/game/music/",Mugen:"https://www.bilibili.com/v/game/mugen/","游戏赛事":"https://www.bilibili.com/v/game/match/"}},"科技":{icon:"technology",count:t[36],link:`https://www.bilibili.com/v/technology/`,subRegions:{"趣味科普人文":"https://www.bilibili.com/v/technology/fun/","野生技术协会":"https://www.bilibili.com/v/technology/wild/","演讲·公开课":"https://www.bilibili.com/v/technology/speech_course/","星海":"https://www.bilibili.com/v/technology/military/","机械":"https://www.bilibili.com/v/technology/mechanical/","汽车":"https://www.bilibili.com/v/technology/automobile/"}},"数码":{icon:"digital",count:t[188],link:`https://www.bilibili.com/v/digital/`,subRegions:{"手机平板":"https://www.bilibili.com/v/digital/mobile/","电脑装机":"https://www.bilibili.com/v/digital/pc/","摄影摄像":"https://www.bilibili.com/v/digital/photography/","影音智能":"https://www.bilibili.com/v/digital/intelligence_av/"}},"生活":{icon:"life",count:t[160],link:`https://www.bilibili.com/v/life/`,subRegions:{"搞笑":"https://www.bilibili.com/v/life/funny/","日常":"https://www.bilibili.com/v/life/daily/","美食圈":"https://www.bilibili.com/v/life/food/","动物圈":"https://www.bilibili.com/v/life/animal/","手工":"https://www.bilibili.com/v/life/handmake/","绘画":"https://www.bilibili.com/v/life/painting/","运动":"https://www.bilibili.com/v/life/sports/","其他":"https://www.bilibili.com/v/life/other/"}},"鬼畜":{icon:"kichiku",count:t[119],link:`https://www.bilibili.com/v/kichiku/`,subRegions:{"鬼畜调教":"https://www.bilibili.com/v/kichiku/guide/","音MAD":"https://www.bilibili.com/v/kichiku/mad/","人力VOCALOID":"https://www.bilibili.com/v/kichiku/manual_vocaloid/","教程演示":"https://www.bilibili.com/v/kichiku/course/"}},"时尚":{icon:"fashion",count:t[155],link:`https://www.bilibili.com/v/fashion/`,subRegions:{"美妆":"https://www.bilibili.com/v/fashion/makeup/","服饰":"https://www.bilibili.com/v/fashion/clothing/","健身":"https://www.bilibili.com/v/fashion/aerobics/","T台":"https://www.bilibili.com/v/fashion/catwalk/","风尚标":"https://www.bilibili.com/v/fashion/trends/"}},"广告":{icon:"ad",count:t[165],link:`https://www.bilibili.com/v/ad/ad/`},"娱乐":{icon:"ent",count:t[5],link:`https://www.bilibili.com/v/ent/`,subRegions:{"综艺":"https://www.bilibili.com/v/ent/variety/","明星":"https://www.bilibili.com/v/ent/star/","Korea相关":"https://www.bilibili.com/v/ent/korea/"}},"影视":{icon:"cinephile",count:t[181],link:`https://www.bilibili.com/v/cinephile/`,subRegions:{"影视杂谈":"https://www.bilibili.com/v/cinephile/cinecism/","影视剪辑":"https://www.bilibili.com/v/cinephile/montage/","短片":"https://www.bilibili.com/v/cinephile/shortfilm/","预告·资讯":"https://www.bilibili.com/v/cinephile/trailer_info/","特摄":"https://www.bilibili.com/v/cinephile/tokusatsu/"}},"放映厅":{icon:"cinema",count:t[177]+t[23]+t[11],link:`https://www.bilibili.com/cinema/`,subRegions:{"纪录片":"https://www.bilibili.com/documentary/","电影":"https://www.bilibili.com/movie/","电视剧":"https://www.bilibili.com/tv/"}},"专栏":{icon:"read",count:``,link:`https://www.bilibili.com/read/home`},"直播":{icon:"zhibo",count:``,link:`https://live.bilibili.com`,subRegions:{"全部直播":"https://live.bilibili.com/all?visit_id=5icxsa0kmts0","游戏直播":"https://live.bilibili.com/p/eden/area-tags?parentAreaId=2&areaId=0&visit_id=5icxsa0kmts0#/2/0","手游直播":"https://live.bilibili.com/p/eden/area-tags?parentAreaId=3&areaId=0&visit_id=5icxsa0kmts0#/3/0","娱乐直播":"https://live.bilibili.com/p/eden/area-tags?parentAreaId=1&areaId=0&visit_id=5icxsa0kmts0#/1/0","电台直播":"https://live.bilibili.com/p/eden/area-tags?parentAreaId=5&areaId=0&visit_id=5icxsa0kmts0#/5/0","绘画直播":"https://live.bilibili.com/p/eden/area-tags?parentAreaId=4&areaId=0&visit_id=5icxsa0kmts0#/4/0"}},"小黑屋":{icon:"blackroom",count:``,link:`https://www.bilibili.com/blackroom/`},"话题":{icon:"topic",count:``,link:`https://www.bilibili.com/blackboard/topic_list.html`},"活动":{icon:"activit",count:``,link:`https://www.bilibili.com/blackboard/x/act_list`}}};this.initialPopup=(async()=>{new Vue({el:await SpinQuery.select("#custom-navbar-home-popup"),data:{info:[],loading:true},async mounted(){try{this.info=Object.entries(await i())}finally{this.loading=false}}})})}get name(){return"category"}}class g extends m{constructor(){super();this.noPadding=true;this.href="https://space.bilibili.com";this.html=`\n
    \n\n\n
    \n`;this.popupHtml=`\n\n`;this.requestedPopup=true;this.init()}get name(){return"userInfo"}async init(){const i=await SpinQuery.select(".custom-navbar .user-info-panel");new Vue({el:i,data:{...c},computed:{userType(){if(!this.isLogin){return"未登录"}if(this.level_info.current_level===0){return"注册会员"}if(this.vipStatus===1){if(this.vipType===1){return this.vip_theme_type?"小会员":"大会员"}else if(this.vipType===2){return this.vip_theme_type?"年度小会员":"年度大会员"}}return"正式会员"},levelProgressStyle(){const i=(this.level_info.current_exp-this.level_info.current_min)/(this.level_info.next_exp-this.level_info.current_min);return{transform:`scaleX(${i})`}}}});const t=await SpinQuery.select(".custom-navbar .user-face-container .user-face");if(c.isLogin){const i=c.face.replace("http","https");const e=68;const a=[1,1.25,1.5,1.75,2,2.25,2.5,2.75,3,3.25,3.5,3.75,4];t.setAttribute("srcset",a.map(t=>{return`${i}@${parseInt(e*t)}w_${parseInt(e*t)}h.jpg ${t}x`}).join(","));if(c.pendant.image){const i=await SpinQuery.select(".custom-navbar .user-face-container .user-pendant");const t=c.pendant.image.replace("http","https");const e=116;i.setAttribute("srcset",a.reduce((i,a)=>{return i+`, ${t}@${parseInt(e*a)}w_${parseInt(e*a)}h.png ${a}x`},""))}}else{t.setAttribute("src","https://static.hdslb.com/images/akari.jpg")}}}class f extends m{constructor(){super();this.disabled=true;this.html=`\n\n\n`;this.init()}async init(){const e=await SpinQuery.select("#custom-navbar-search");const a=e.querySelector("input[name='keyword']");e.addEventListener("submit",t=>{if(a.value===""){if(!i.hideTopSearch){e.querySelector(".recommended-target").click()}t.preventDefault();return false}const s=i.searchHistory.find(i=>i.keyword===a.value);if(s){s.count++}else{i.searchHistory.push({count:1,keyword:a.value})}i.searchHistory=i.searchHistory;return true});if(!i.hideTopSearch){const i=await Ajax.getJson("https://api.bilibili.com/x/web-interface/search/default");if(i.code===0){a.setAttribute("placeholder",i.data.show_name);let t;if(i.data.url!==""){t=i.data.url}else if(i.data.name.startsWith("av")){t=`https://www.bilibili.com/${i.data.name}`}else{t=`https://search.bilibili.com/all?keyword=${i.data.name}`}e.querySelector(".recommended-target").setAttribute("href",t)}else{console.error("[自定义顶栏] 获取搜索推荐词失败")}}const s=new Vue({el:dq(".popup.search-list"),data:{items:[],isHistory:true},methods:{submit(i){a.value=i;e.submit();raiseEvent(e,"submit")},nextItem(i){const t=dq(`.custom-navbar .search-list-item:nth-child(${i+2})`);if(t){t.focus()}},previousItem(i){const t=dq(`.custom-navbar .search-list-item:nth-child(${i})`);if(t){t.focus()}else{a.focus();return}},deleteItem(t,e){i.searchHistory.splice(i.searchHistory.findIndex(i=>i.keyword===t.value),1);i.searchHistory=i.searchHistory;this.items.splice(e,1)},clearSearchHistory(){i.searchHistory=[];this.items=[]}}});const{debounce:n}=await t.importAsync("debounce");let l="";const o=async()=>{const t=a.value;s.isHistory=t==="";if(s.isHistory){s.items=i.searchHistory.sort((i,t)=>t.count-i.count).map(i=>{return{value:i.keyword,html:i.keyword}}).slice(0,10)}else{const i=`https://s.search.bilibili.com/main/suggest?func=suggest&suggest_type=accurate&sub_type=tag&main_ver=v1&highlight=&userid=${c.mid}&bangumi_acc_num=1&special_acc_num=1&topic_acc_num=1&upuser_acc_num=3&tag_num=10&special_num=10&bangumi_num=10&upuser_num=3&term=${t}`;l=i;const e=await Ajax.getJson(i);if(e.code!==0||l!==i){return}const a=e.result.tag;if(a===undefined){s.items=[];return}s.items=a.map(i=>{return{value:i.value,html:i.name.replace(/suggest_high_light/g,"suggest-highlight")}})}};o();const r=n(o,200);let d=false;a.addEventListener("compositionstart",()=>d=true);a.addEventListener("compositionend",()=>{d=false;raiseEvent(a,"input")});a.addEventListener("input",()=>{if(!d){r()}});a.addEventListener("keydown",i=>{if(i.key==="ArrowDown"&&s.items.length>0){i.preventDefault();dq(".custom-navbar .search-list-item:first-child").focus()}})}get name(){return"search"}}class y extends m{constructor(i,t,{src:e,width:a,height:s,lazy:n,iframeName:l}){super();this.iframeName=l;this.html=i;this.href=t;this.popupHtml=`\n\n`;this.noPadding=true;this.requestedPopup=n?false:true;this.touch=false;this.transparent=true}get name(){return this.iframeName+"Iframe"}}class _ extends y{constructor(...t){super(...t);this.touch=i.touchNavBar;this.getNotifyCount()}getApiUrl(){return null}getCount(){return 0}async getNotifyCount(){const i=await SpinQuery.select(`.custom-navbar li[data-name='${this.name}'] .notify-count`);const t=await Ajax.getJsonWithCredentials(this.getApiUrl());const e=this.getCount(t);if(t.code===0&&e){i.innerHTML=e;this.initialPopup=(()=>{i.innerHTML=""})}}}let k=()=>{};let x=()=>{};const $=({dataObject:i,apiUrl:e,name:a,handleJson:s,template:n})=>{return{template:n,components:{"dpi-img":()=>t.importAsync("dpi-img.vue")},methods:{handleJson:s,async fetchData(i=false){try{const t=await Ajax.getJsonWithCredentials(e);if(t.code!==0){throw new Error(t.message)}await this.handleJson(t)}catch(t){if(i===true){return}logError(`加载${a}动态失败, error = ${t}`)}finally{this.loading=false}}},data(){return Object.assign({loading:true},i)},mounted(){this.fetchData();k=(async()=>await this.fetchData(true))},destroyed(){k=(()=>{})}}};class L extends m{constructor(){super();this.noPadding=true;this.href=i.oldTweets?"https://www.bilibili.com/account/dynamic":"https://t.bilibili.com/";this.html="动态";this.popupHtml=`\n
    \n\n
    \n\n\n\n\x3c!-- 查看更多 --\x3e\n
    \n
    \n`;this.active=document.URL.replace(/\?.*$/,"")==="https://t.bilibili.com/";this.initialPopup=(()=>{this.init()});this.onPopup=(()=>{this.setNotifyCount(0)});this.getNotifyCount();setInterval(async()=>{await this.getNotifyCount();await x();await k()},L.updateInterval)}static get updateInterval(){return 5*60*1e3}static getLatestID(){return document.cookie.replace(new RegExp(`(?:(?:^|.*;\\s*)bp_t_offset_${c.mid}\\s*\\=\\s*([^;]*).*$)|^.*$`),"$1")}static setLatestID(i){const t=L.getLatestID();if(L.compareID(i,t)<0){return}document.cookie=`bp_t_offset_${c.mid}=${i};path=/;domain=.bilibili.com;max-age=${60*60*24*30}`}static compareID(i,t){if(i===t){return 0}if(i.length>t.length){return 1}if(t.length>i.length){return-1}return i>t===true?1:-1}static isNewID(i){return L.compareID(i,d)>0}static updateLatestID(i){const[t]=[...i.map(i=>i.id)].sort(L.compareID).reverse();L.setLatestID(t)}async getNotifyCount(){const i=`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_num?rsp_type=1&uid=${c.mid}&update_num_dy_id=${L.getLatestID()}&type_list=8,64,512`;const t=await Ajax.getJsonWithCredentials(i);if(t.code!==0){return}this.setNotifyCount(t.data.update_num)}async init(){Vue.component("activity-loading",{template:`\n
    \n加载中...\n
    `,props:["loading"]});Vue.component("activity-empty",{template:`\n
    空空如也哦 = ̄ω ̄=
    `});this.popupVM=new Vue({el:await SpinQuery.select(".activity-popup"),data:{tabs:[{name:"视频",component:"video-activity",moreUrl:"https://t.bilibili.com/?tab=8",get notifyApi(){return`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_num?rsp_type=1&uid=${c.mid}&update_num_dy_id=${L.getLatestID()}&type_list=8`},notifyCount:null},{name:"番剧",component:"bangumi-activity",moreUrl:"https://t.bilibili.com/?tab=512",get notifyApi(){return`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_num?rsp_type=1&uid=${c.mid}&update_num_dy_id=${L.getLatestID()}&type_list=512`},notifyCount:null},{name:"专栏",component:"column-activity",moreUrl:"https://t.bilibili.com/?tab=64",get notifyApi(){return`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_num?rsp_type=1&uid=${c.mid}&update_num_dy_id=${L.getLatestID()}&type_list=64`},notifyCount:null},{name:"直播",component:"live-activity",moreUrl:"https://link.bilibili.com/p/center/index#/user-center/follow/1",notifyCount:null}],selectedTab:"视频"},components:{"activity-tabs":{props:["items","tab"],template:`\n\n`,methods:{changeTab(i){if(this.tab===i.name){window.open(i.moreUrl,"_blank")}this.$emit("update:tab",i.name)}}},"video-activity":Object.assign($({dataObject:{leftCards:[],rightCards:[]},apiUrl:`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=${c.mid}&type_list=8`,name:"视频",template:`\n
    \n\n\n
    \n\n
    \n
    \n\n
    \n
    \n`,handleJson:async function(i){const{getWatchlaterList:e}=await t.importAsync("watchlater-api");const a=await e();const s=i.data.cards.map(i=>{const t=JSON.parse(i.card);return{coverUrl:t.pic,title:t.title,timeNumber:t.duration,time:formatDuration(t.duration),description:t.desc,aid:t.aid,videoUrl:`https://www.bilibili.com/av${t.aid}`,faceUrl:i.desc.user_profile.info.face,upName:i.desc.user_profile.info.uname,upUrl:`https://space.bilibili.com/${i.desc.user_profile.info.uid}`,id:i.desc.dynamic_id_str,watchlater:a.includes(t.aid),get new(){return L.isNewID(this.id)}}});this.leftCards=s.filter((i,t)=>t%2===0);this.rightCards=s.filter((i,t)=>t%2===1);if(this.leftCards.length!==this.rightCards.length){this.leftCards.pop()}L.updateLatestID(s)}}),{components:{"video-card":{props:["card","watchlaterInit"],data(){return{watchlater:this.watchlaterInit}},components:{"dpi-img":()=>t.importAsync("dpi-img.vue")},methods:{async toggleWatchlater(){try{this.watchlater=!this.watchlater;const{toggleWatchlater:i}=await t.importAsync("watchlater-api");await i(this.card.aid,this.watchlater)}catch(i){logError(i);this.watchlater=!this.watchlater}}},async mounted(){await t.importAsync("watchlater-api")},template:`\n\n
    \n\n
    {{card.time}}
    \n
    {{watchlater ? '已添加' : '稍后再看'}}
    \n
    \n

    {{card.title}}

    \n
    \n\n{{card.upName}}\n\n\n`}}}),"bangumi-activity":$({dataObject:{cards:[]},apiUrl:`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=${c.mid}&type_list=512`,name:"番剧",template:`\n\n`,handleJson:async function(i){this.cards=i.data.cards.map(i=>{const t=JSON.parse(i.card);return{title:t.apiSeasonInfo.title,coverUrl:t.apiSeasonInfo.cover,epCoverUrl:t.cover,epTitle:t.new_desc,url:t.url,id:i.desc.dynamic_id_str,get new(){return L.isNewID(this.id)}}});L.updateLatestID(this.cards)}}),"column-activity":$({dataObject:{cards:[]},apiUrl:`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=${c.mid}&type_list=64`,name:"专栏",template:`\n
    \n\n\n\n\n

    {{card.title}}

    \n
    {{card.description}}
    \n\n
    \n`,handleJson:async function(i){this.cards=i.data.cards.map(i=>{const t=JSON.parse(i.card);return{covers:t.image_urls,originalCovers:t.origin_image_urls,upName:t.author.name,faceUrl:t.author.face,upUrl:`https://space.bilibili.com/${t.author.mid}`,title:t.title,description:t.summary,url:`https://www.bilibili.com/read/cv${t.id}`,id:i.desc.dynamic_id_str,get new(){return L.isNewID(this.id)}}});L.updateLatestID(this.cards)}}),"live-activity":$({dataObject:{cards:[]},apiUrl:`https://api.live.bilibili.com/relation/v1/feed/feed_list?page=1&pagesize=24`,name:"直播",template:`\n\n`,handleJson:async function(i){this.cards=i.data.list.map(i=>{return{faceUrl:i.face,title:i.title,name:i.uname,id:i.roomid,url:i.link}})}})},computed:{content(){return this.tabs.find(i=>i.name===this.selectedTab).component},viewMoreUrl(){return this.tabs.find(i=>i.name===this.selectedTab).moreUrl}},mounted(){x=(async()=>{for(const i of this.tabs){if(i.notifyApi){const t=await Ajax.getJsonWithCredentials(i.notifyApi);if(t.code!==0||!t.data.update_num||this.selectedTab===i.name){continue}i.notifyCount=t.data.update_num}}});x()},destroyed(){x=(()=>{})},watch:{selectedTab(i){this.tabs.find(t=>t.name===i).notifyCount=null}}})}get name(){return"activities"}}class N extends m{constructor({mainUrl:i,name:t,apiUrl:e,listName:a,listMap:s}){super();this.href=i;this.listName=a;this.html=t;this.noPadding=true;this.requestedPopup=false;this.popupHtml=`\n
      \n
    1. 加载中...
    2. \n
    \n`;this.initialPopup=(async()=>{if(!s){return}const n=await SpinQuery.select(`.video-list.${a}`);if(n===null){return}const l=await Ajax.getJsonWithCredentials(e);let o="";if(l.code!==0){logError(`加载${t}信息失败. 错误码: ${l.code} ${l.message}`)}else{o=s(l).join("")}n.insertAdjacentHTML("beforeend",o+`\n
  • 查看更多
  • \n`);n.classList.add("loaded")})}get name(){return this.listName+"List"}}class C extends N{constructor(){super({name:"稍后再看",mainUrl:"https://www.bilibili.com/watchlater/#/list",apiUrl:"https://api.bilibili.com/x/v2/history/toview/web",listName:"watchlater",listMap:t=>{if(!t.data.list){return[`
  • 空空如也哦 = ̄ω ̄=
  • `]}return t.data.list.slice(0,6).map(t=>{const e=(()=>{if(t.pages===undefined){return i.watchLaterRedirect?`https://www.bilibili.com/video/av${t.aid}`:`https://www.bilibili.com/watchlater/#/av${t.aid}`}const e=t.pages.map(i=>i.cid);const a=t.cid===0?1:e.indexOf(t.cid)+1;return i.watchLaterRedirect?`https://www.bilibili.com/video/av${t.aid}?p=${a}`:`https://www.bilibili.com/watchlater/#/av${t.aid}/p${a}`})();return`
  • ${t.title}
  • `})}});this.active=document.URL.startsWith("https://www.bilibili.com/watchlater/")}}class I extends N{constructor(){super({name:"收藏",mainUrl:`https://space.bilibili.com/${c.mid}/favlist`,apiUrl:"https://api.bilibili.com/medialist/gateway/coll/resource/recent",listName:"favorites",listMap:i=>{if(!i.data||i.data.length===0){return[`
  • 空空如也哦 = ̄ω ̄=
  • `]}return i.data.map(i=>{return`\n
  • \n${i.title}\n
  • `})}});this.active=document.URL.replace(/\?.*$/,"")===`https://space.bilibili.com/${c.mid}/favlist`}}class A extends N{constructor(){super({name:"历史",mainUrl:"https://www.bilibili.com/account/history",apiUrl:"https://api.bilibili.com/x/v2/history?pn=1&ps=6",listName:"history",listMap:i=>{if(!i.data||i.data.length===0){return[`
  • 空空如也哦 = ̄ω ̄=
  • `]}return i.data.map(i=>{let t=[];let e="";const a=i.page?i.page.page:1;let s=i.progress>=0?i.progress/i.duration:1;if(isNaN(s)){s=0}if(a!==1){t.push(`p=${a}`);e+=`看到第${a}话`}if(i.progress>0&&i.progress\n\n${i.title}\n${e}\n
    \n
    \n
    \n
    \n`})}});this.active=document.URL.replace(/\?.*$/,"")==="https://www.bilibili.com/account/history"}}class S extends m{constructor(){super();this.noPadding=true;this.href=`https://space.bilibili.com/${c.mid}/bangumi`;this.html="订阅";this.active=[`https://space.bilibili.com/${c.mid}/bangumi`,`https://space.bilibili.com/${c.mid}/cinema`,`https://space.bilibili.com/${c.mid}/subs`].includes(document.URL.replace(/\?.*$/,""));this.popupHtml=`\n
    \n\n
    \n\n\n\n\n
    \n
    `;this.initialPopup=(()=>{this.init()})}async init(){new Vue({el:await SpinQuery.select(".custom-navbar .subscriptions"),data:{bangumi:true},components:{"bangumi-subscriptions":{props:["type"],components:{"dpi-img":()=>t.importAsync("dpi-img.vue")},template:`\n
    \n
    \n\n加载中...\n
    \n
    空空如也哦 = ̄ω ̄=
    \n\n\n\n\n
    \n`,data(){return{loading:true,cards:[]}},async mounted(){try{const i=await Ajax.getJsonWithCredentials(`https://api.bilibili.com/x/space/bangumi/follow/list?type=${this.type!=="bangumi"?"2":"1"}&pn=1&ps=16&vmid=${c.mid}`);if(i.code!==0){logError(`加载订阅信息失败: ${i.message}`);return}this.cards=i.data.list.map(i=>{return{title:i.title,coverUrl:i.square_cover.replace("http:","https:"),latest:i.new_ep.index_show,progress:i.progress,id:i.season_id,playUrl:`https://www.bilibili.com/bangumi/play/ss${i.season_id}`,mediaUrl:`https://www.bilibili.com/bangumi/media/md${i.media_id}`}})}finally{this.loading=false}}}}})}get name(){return"bangumi"}}(async()=>{const e=await t.importAsync("customNavbarHtml");const a=await Ajax.getJsonWithCredentials("https://api.bilibili.com/x/web-interface/nav");c=a.data;d=L.getLatestID();document.body.insertAdjacentHTML("beforeend",e);addSettingsListener("useDarkStyle",n);n(i.useDarkStyle);["Fill","Shadow","Compact","Blur"].forEach(t=>{addSettingsListener("customNavbar"+t,i=>s(t.toLowerCase(),i,document.querySelector(".custom-navbar")));s(t.toLowerCase(),i["customNavbar"+t],document.querySelector(".custom-navbar"))});SpinQuery.condition(()=>dq("#banner_link,.international-header .bili-banner"),i=>i===null?null:i.style.backgroundImage,i=>{Observer.attributes(i,()=>{const t=document.querySelectorAll(".custom-navbar .blur-layer");t.forEach(t=>{t.style.backgroundImage=i.style.backgroundImage;t.setAttribute("data-image",i.style.backgroundImage)})})});const l=[new u(1),new p,new w,new b("排行","https://www.bilibili.com/ranking","ranking"),new b("相簿","https://h.bilibili.com","drawing"),new b("音频","https://www.bilibili.com/audio/home/","music"),new y("游戏中心","https://game.bilibili.com/",{src:`https://www.bilibili.com/page-proxy/game-nav.html`,width:`680px`,height:`260px`,lazy:true,iframeName:"games"}),new y("直播","https://live.bilibili.com",{src:`https://live.bilibili.com/blackboard/dropdown-menu.html`,width:`528px`,height:`266px`,lazy:true,iframeName:"lives"}),new b("会员购","https://show.bilibili.com","shop"),new b("漫画","https://manga.bilibili.com","manga"),new u(2),new f,new g];if(c.isLogin){l.push(new v,new S,new L,new C,new I,new A)}l.push(new h,new u(3));new Vue({el:".custom-navbar",data:{components:l},methods:{requestPopup(i){if(!i.requestedPopup&&!i.disabled&&!i.active){this.$set(i,`requestedPopup`,true);i.initialPopup&&i.initialPopup()}i.onPopup&&i.onPopup()}},mounted(){document.body.classList.remove("custom-navbar-loading")}})})();return a}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/danmaku-converter.min.js"] = (()=>{return(t,e)=>{class r{constructor({content:t,time:e,type:r,fontSize:i,color:n}){this.content=t;this.time=e;this.startTime=parseFloat(e);this.type=parseInt(r);this.fontSize=parseFloat(i);this.color=parseInt(n)}}class i extends r{constructor({content:t,time:e,type:r,fontSize:i,color:n,timeStamp:a,pool:s,userHash:o,rowId:l}){super({content:t,time:e,type:r,fontSize:i,color:n});this.timeStamp=parseInt(a);this.pool=parseInt(s);this.userHash=o;this.rowId=parseInt(l);this.pDataArray=[e,r,i,n,a,s,o,l]}text(){const t=this.pDataArray.join(",");return`${this.content}`}static parse(t){const e=t.getAttribute("p");const[r,n,a,s,o,l,c,h]=e.split(",");const u=t.innerHTML;return new i({content:u,time:r,type:n,fontSize:a,color:s,timeStamp:o,pool:l,userHash:c,rowId:h})}}class n{constructor(t){this.xml=t;const e=(new DOMParser).parseFromString(t,"application/xml").documentElement;this.danmakus=[...e.querySelectorAll("d[p]")].map(t=>i.parse(t))}}var a;(function(t){t[t["Normal"]=1]="Normal";t[t["Normal2"]=2]="Normal2";t[t["Normal3"]=3]="Normal3";t[t["Bottom"]=4]="Bottom";t[t["Top"]=5]="Top";t[t["Reversed"]=6]="Reversed";t[t["Special"]=7]="Special";t[t["Special2"]=8]="Special2"})(a||(a={}));class s extends r{constructor({content:t,time:e,type:r,fontSize:i,color:n,typeTag:a,colorTag:s,endTime:o}){super({content:t,time:e,type:r,fontSize:i,color:n});this.typeTag=a;this.colorTag=s;this.endTime=o}text(t){let e=t[this.fontSize];if(!e){e=t[25]}const r=t[this.fontSize].match(/Style:(.*?),/)[1].trim();return`Dialogue: 0,${this.time},${this.endTime},${r},,0,0,0,,{${this.typeTag}${this.colorTag}}${this.content}`}}class o{constructor(t,e,r,i,n){this.danmakus=t;this.title=e;this.fontStyles=r;this.blockTypes=i;this.resolution=n}generateAss(){const t=`\n[Script Info]\n; Script generated by Bilibili Evolved Danmaku Converter\n; https://github.com/the1812/Bilibili-Evolved/\nTitle: ${this.title}\nScriptType: v4.00+\nPlayResX: ${this.resolution.x}\nPlayResY: ${this.resolution.y}\nTimer: 10.0000\nWrapStyle: 2\nScaledBorderAndShadow: no\n\n[V4+ Styles]\nFormat: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding\n${Object.values(this.fontStyles).join("\n")}\n\n[Events]\nFormat: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text\n`.trim();return t+"\n"+this.danmakus.map(t=>t.text(this.fontStyles)).filter(t=>t!=="").join("\n")}}class l{constructor(t,e,r,i){this.horizontalStack=[];this.horizontalTrack=[];this.verticalStack=[];this.verticalTrack=[];this.resolution=e;this.duration=r;this.canvas=document.createElement("canvas");this.context=this.canvas.getContext("2d");this.fontSizes={30:`64px ${t}`,25:`52px ${t}`,18:`36px ${t}`,45:`90px ${t}`};this.bottomMarginPercent=i;this.generateTracks()}generateTracks(){const t=52;this.danmakuHeight=t;this.trackHeight=l.margin*2+t;this.trackCount=parseInt(fixed(this.resolution.y*(1-this.bottomMarginPercent)/this.trackHeight,0))}getTextSize(t){this.context.font=this.fontSizes[t.fontSize];const e=this.context.measureText(t.content);const r=e.width/2;return[r,this.danmakuHeight/2]}getTags(t,{targetTrack:e,initTrackNumber:r,nextTrackNumber:i,willOverlay:n,getTrackItem:a,getTag:s}){const[o,c]=this.getTextSize(t);const h=o*2;const u=this.duration(t)*h/(this.resolution.x+h)+l.nextDanmakuDelay;let m=r;let p=null;do{p=e.find(t=>n(t,m,h));m+=i}while(p&&m<=this.trackCount&&m>=0);if(m>this.trackCount||m<0){return`\\pos(0,-999)`}m-=i;e.push(a(m,h,u));return s({trackNumber:m,x:o,y:c})}getHorizontalTags(t){return this.getTags(t,{targetTrack:this.horizontalTrack,initTrackNumber:0,nextTrackNumber:1,willOverlay:(e,r,i)=>{if(e.trackNumber!==r){return false}if(e.widtht.startTime}},getTrackItem:(e,r,i)=>{return{width:r,start:t.startTime,visible:t.startTime+i,end:t.startTime+this.duration(t),trackNumber:e}},getTag:({trackNumber:e,x:r,y:i})=>{return`\\move(${this.resolution.x+r},${e*this.trackHeight+l.margin+i},${-r},${e*this.trackHeight+l.margin+i},0,${this.duration(t)*1e3})`}})}getVerticalTags(t){const e=l.danmakuType[t.type]==="top";return this.getTags(t,{targetTrack:this.verticalTrack,initTrackNumber:e?0:this.trackCount-1,nextTrackNumber:e?1:-1,willOverlay:(e,r)=>{if(e.trackNumber!==r){return false}return e.end>t.startTime},getTrackItem:e=>{return{start:t.startTime,end:t.startTime+this.duration(t),trackNumber:e}},getTag:({trackNumber:t,y:r})=>{if(e){return`\\pos(${this.resolution.x/2},${t*this.trackHeight+l.margin+r})`}else{return`\\pos(${this.resolution.x/2},${this.resolution.y-l.margin-r-(this.trackCount-1-t)*this.trackHeight})`}}})}push(t){let e="";let r=[];switch(l.danmakuType[t.type]){case"normal":case"reversed":{e=this.getHorizontalTags(t);r=this.horizontalStack;break}case"top":case"bottom":{e=this.getVerticalTags(t);r=this.verticalStack;break}case"special":default:{return{tags:`\\pos(0,-999)`}}}const i={tags:e};r.push(i);return i}}l.danmakuType={[a.Normal]:"normal",[a.Normal2]:"normal",[a.Normal3]:"normal",[a.Bottom]:"bottom",[a.Top]:"top",[a.Reversed]:"reversed",[a.Special]:"special",[a.Special2]:"special"};l.margin=4;l.nextDanmakuDelay=.05;class c{constructor({title:t,font:e,alpha:r,duration:i,blockTypes:n,resolution:a,bottomMarginPercent:s,bold:o}){this.title=t;this.font=e;this.alpha=Math.round(r*100).toString(16).toUpperCase();this.duration=i;this.blockTypes=n;this.resolution=a;this.bold=o;this.danmakuStack=new l(e,a,i,s)}get fontStyles(){return{30:`Style: Large,${this.font},64,&H${this.alpha}FFFFFF,&H${this.alpha}FFFFFF,&H${this.alpha}000000,&H${this.alpha}000000,${this.bold?"1":"0"},0,0,0,100,100,0,0,1,1.2,0,5,0,0,0,0`,25:`Style: Medium,${this.font},52,&H${this.alpha}FFFFFF,&H${this.alpha}FFFFFF,&H${this.alpha}000000,&H${this.alpha}000000,${this.bold?"1":"0"},0,0,0,100,100,0,0,1,1.2,0,5,0,0,0,0`,18:`Style: Small,${this.font},36,&H${this.alpha}FFFFFF,&H${this.alpha}FFFFFF,&H${this.alpha}000000,&H${this.alpha}000000,${this.bold?"1":"0"},0,0,0,100,100,0,0,1,1.2,0,5,0,0,0,0`,45:`Style: ExtraLarge,${this.font},90,&H${this.alpha}FFFFFF,&H${this.alpha}FFFFFF,&H${this.alpha}000000,&H${this.alpha}000000,${this.bold?"1":"0"},0,0,0,100,100,0,0,1,1.2,0,5,0,0,0,0`}}convertToAssDocument(t){const e=new n(t);const r=[];for(const t of e.danmakus.sort((t,e)=>t.startTime-e.startTime)){if(this.blockTypes.indexOf(t.type)!==-1||this.blockTypes.indexOf("color")!==-1&&t.color!==c.white){continue}const[e,i]=this.convertTime(t.startTime,this.duration(t));r.push(new s({content:this.convertText(t.content),time:e,endTime:i,type:t.type.valueOf().toString(),fontSize:t.fontSize.toString(),color:t.color.toString(),typeTag:this.convertType(t),colorTag:this.convertColor(t.color)}))}return new o(r,this.title,this.fontStyles,this.blockTypes,this.resolution)}convertText(t){const e={"{":"{","}":"}","&":"&","<":"<",">":">",""":'"',"'":"'"};for(const[r,i]of Object.entries(e)){t=t.replace(new RegExp(r,"g"),i)}return t}convertType(t){return this.danmakuStack.push(t).tags}convertColor(t){if(t===c.white){return""}const e=t.toString(16);const r=e.substring(0,2);const i=e.substring(2,4);const n=e.substring(4,6);return`\\c&H${n}${i}${r}&`}convertTime(t,e){function r(t){const[e,r="00"]=String(t).split(".");return`${e.padStart(2,"0")}.${r.substr(0,2).padEnd(2,"0")}`}function i(t){let e=0;let i=0;while(t>=60){t-=60;i++}while(i>=60){i-=60;e++}return`${e}:${String(i).padStart(2,"0")}:${r(t)}`}return[i(t),i(t+e)]}}c.white=16777215;return{export:{AssDanmaku:s,AssDanmakuDocument:o,Danmaku:r,DanmakuConverter:c,DanmakuStack:l,XmlDanmaku:i,XmlDanmakuDocument:n}}}})(); -onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/dark-important.min.css"] = `#disable-popup-modal .vip-exchange .months button.disabled,#vip-exchange-modal .vip-exchange .months button.disabled,.action-row .publish-btn.disabled,.action-row .publish-btn.publishing,.action-row .sch-pub-btn.disabled,.action-row .sch-pub-btn.publishing,.app-body .section-block,.bl-button--primary:disabled,.link-footer,.live-skin-coloration-area .live-skin-separate-area,.live-skin-coloration-area .live-skin-separate-area-hover:hover,.payment-active,.player-auxiliary-area .player-auxiliary-bscrollbar .bscroll-indicator,.tab-list .tab-item.active:before{background-color:#222!important}.app-body .section-block.with-bottom-radius,.app-body .section-block.with-radius,.bb-comment .no-login .comment-submit,.common .bb-comment .no-login .comment-submit,.container .pagination,.coupon-content-con .coupon-btn-disable,.customize-wrp .select,.f-list-hover:hover,.fjw-case-detail .ban-detail .content-box .video-model,.game-groom-m .num,.main-container .media-info .media-right .media-tool-bar .btn-follow.active,.main-container .pay-bar .vip .btn-pay.active,.open-dialog-masker .open-dialog-content .open-footer .btn-normal.disabled,.open-dialog-masker .open-dialog-content .open-footer .btn-normal.disabled:hover,.pagination-container li.pagination,.status_box .status_btn.disabled,.wrapper .elec-btn.disabled{background-color:#444!important}.danmaku-wrap .player-auxiliary-area .player-auxiliary-danmaku-wrap .bscroll-indicator{background-color:#555!important}.danmaku-wrap .player-auxiliary-area .player-auxiliary-danmaku-wrap .bscroll-vertical-scrollbar.mousedown,.danmaku-wrap .player-auxiliary-area .player-auxiliary-danmaku-wrap:hover .bscroll-vertical-scrollbar,.m-recommend-item div.box,.player-auxiliary-area .player-auxiliary-bscrollbar .bscroll-vertical-scrollbar,.player-auxiliary-area .player-auxiliary-bscrollbar .bscroll-vertical-scrollbar.mousedown,.player-auxiliary-area .player-auxiliary-bscrollbar:hover .bscroll-vertical-scrollbar{background-color:transparent!important}.live-skin-coloration-area .live-skin-normal-a-text,.live-skin-coloration-area .live-skin-normal-a-text:link,.live-skin-coloration-area .live-skin-normal-a-text:visited,.live-skin-coloration-area .live-skin-normal-text,.open-dialog-masker .open-dialog-content .open-footer .btn-normal.disabled,.open-dialog-masker .open-dialog-content .open-footer .btn-normal.disabled:hover,.status_box .status_btn.disabled,blockquote *,blockquote .color-blue-01,blockquote .color-blue-02,blockquote .color-blue-03,blockquote .color-blue-04,blockquote .color-gray-01,blockquote .color-gray-02,blockquote .color-gray-03,blockquote .color-gray-04,blockquote .color-green-01,blockquote .color-green-02,blockquote .color-green-03,blockquote .color-green-04,blockquote .color-lblue-01,blockquote .color-lblue-02,blockquote .color-lblue-03,blockquote .color-lblue-04,blockquote .color-pink-01,blockquote .color-pink-02,blockquote .color-pink-03,blockquote .color-pink-04,blockquote .color-purple-01,blockquote .color-purple-02,blockquote .color-purple-03,blockquote .color-purple-04,blockquote .color-yellow-01,blockquote .color-yellow-02,blockquote .color-yellow-03,blockquote .color-yellow-04{color:#aaa!important}#app .sticky-bar .bar-content .message,.bb-comment .no-login .comment-submit,.bp-popup-panel .title-ctnr .popup-title,.commnent-screen-wrap .el-input__inner,.common .bb-comment .no-login .comment-submit,.coupon-content-con .coupon-btn-disable,.cover .disabled-cover,.customize-wrp .select,.el-input__inner,.home-page .sticky-bar .bar-content .message,.invitation-record-warp .invtable .inputdone,.live-room-app .guard-rank-cntr .tabs.isHundred .item.active,.live-room-app .guard-rank-cntr.hundred .live-skin-highlight-text,.live-room-app .guard-rank-cntr.hundred .live-skin-main-a-text,.live-room-app .guard-rank-cntr.hundred .page-box .live-skin-main-text,.live-room-app .guard-rank-cntr.thousand .live-skin-highlight-text,.live-room-app .guard-rank-cntr.thousand .live-skin-main-a-text,.live-room-app .guard-rank-cntr.thousand .page-box .live-skin-main-text,.live-skin-coloration-area .live-skin-highlight-text,.live-skin-coloration-area .live-skin-main-text,.manga-detail .episode-list-component .episode-list .list-data .list-item.last-read,.popup-content-ctnr .bl-button--ghost,.s-paging>ul>a.current,.s-paging>ul>span.current,.score-info .go-movie,.tag-list li.tag-item.on{color:#eee!important}.bb-comment .no-login .comment-submit,.commnent-screen-wrap .el-input__inner,.common .bb-comment .no-login .comment-submit,.el-input__inner,.enter-failure .password-input .pink-border,.link-footer,.live-skin-coloration-area .live-skin-highlight-border,.live-skin-coloration-area .live-skin-separate-border,.popup-content-ctnr .bl-button--ghost:hover,.score-info .go-movie,.select-box-v2-container .select-box-v2-controller-disabled,.song-info .info-wrap .type-list .item-list .type-item.active,.tabs-bar,.ui-input-textarea.focus,.user-setting-warp .el-radio-button__orig-radio:checked+.el-radio-button__inner{border-color:transparent!important}#app .sticky-bar .bar-content .message:hover,.app-layout .style-section .tag-block .tag-containers .style-tag.selected,.container .video-panel .play-all .bilifont,.detail-wrp .detail-content[data-v-00c9b213] p a span,.drop-list-v2-container .drop-list-v2-item-selected .drop-list-v2-item-cont p.item-cont-main,.edit-button:hover>.icon-font,.edit-button:hover>span .left-nav-item-childed:hover,.el-select-dropdown__item.selected,.home-page .sticky-bar .bar-content .message:hover,.im-popup .bp-popup-panel .title-ctnr .popup-title,.left-nav-wrapper .active,.left-nav-wrapper .active .left-nav-item-child,.left-nav-wrapper .advice-btn:hover,.left-nav-wrapper .left-nav-item.active,.left-nav-wrapper .left-nav-item.active i.active,.left-nav-wrapper .left-nav-list.on .left-nav-item,.left-nav-wrapper .left-nav-list.on .left-nav-item .icon,.live-room-app .guard-rank-cntr.hundred .live-skin-main-a-text:hover,.live-room-app .guard-rank-cntr.thousand .live-skin-main-a-text:hover,.live-skin-coloration-area .live-skin-highlight-text,.live-skin-coloration-area .live-skin-normal-a-text:hover,.live-skin-normal-a-text:active,.manga-detail .episode-list-component .episode-list .list-header .header-item.selected,.more-data a:hover,.other a a:hover,.r-con .members-info .up-card .info-name.is-vip:hover,.rank-item .content .info .detail a a:hover,.rank-item .content .more-data:hover,.rank-item .content .other a:hover,.room-info-down-row .icon-label.hover-text-blue:hover .label,.room-introduction .edit-button:hover>.icon-font,.room-introduction .edit-button:hover>span,.up-info .u-info .name .username.is-vip:hover,.voucher-ing .voucher-left-money,.voucher-ing .voucher-left-money:before,.voucher-no-used .voucher-left-money,.voucher-no-used .voucher-left-money:before{color:var(--theme-color)!important}.aside-ctnr .author-info .communicate-btn,.live-skin-coloration-area .room-info-ctnr .info-section .live-skin-highlight-border,.manga-detail .episode-list-component .episode-list .list-data .list-item.last-read,.page-list-box .page-input:focus,.page-list-box .page-input:hover,.popup-content-ctnr .bl-button--ghost,.season-timeline .season-group.today,.season-timeline .season-group.today .group-time::before,.tag-list li.tag-item.on,.tag-list li.tag-item:hover{border-color:var(--theme-color)!important}.bg-blue,.el-date-table td.current:not(.disabled),.el-date-table td.end-date,.el-date-table td.start-date,.face-g-list#my-g-list .face-g-block .my-mp-block .mp-info .btn-white,.face-g-tab li.current,.live-skin-coloration-area .live-skin-highlight-bg,.popup-content-ctnr .bl-button--ghost:hover,.popup-content-ctnr .bl-button--primary,.season-timeline .season-group.today.is-published .group-time::before,.security-list .child-list li a.bg-blue:hover,.song-info .info-wrap .type-list .item-list .type-item.active,.tag-list li.tag-item.on,.user-my-btn .el-button--primary,.user-setting-warp .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:var(--theme-color)!important}.current .tab-btn-link,.el-date-table td.current:not(.disabled),.el-date-table td.end-date,.el-date-table td.start-date,.face-g-tab li.current,.popup-content-ctnr .bl-button--ghost:hover,.style-section .tag-block .tag-containers .style-tag:active{color:var(--foreground-color)!important}#bilibiliPlayer{box-shadow:0 4px 8px 0 #0004}`; +onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/dark-important.min.css"] = `#disable-popup-modal .vip-exchange .months button.disabled,#vip-exchange-modal .vip-exchange .months button.disabled,.action-row .publish-btn.disabled,.action-row .publish-btn.publishing,.action-row .sch-pub-btn.disabled,.action-row .sch-pub-btn.publishing,.app-body .section-block,.bl-button--primary:disabled,.link-footer,.live-skin-coloration-area .live-skin-separate-area,.live-skin-coloration-area .live-skin-separate-area-hover:hover,.payment-active,.player-auxiliary-area .player-auxiliary-bscrollbar .bscroll-indicator,.tab-list .tab-item.active:before{background-color:#222!important}.app-body .section-block.with-bottom-radius,.app-body .section-block.with-radius,.bb-comment .no-login .comment-submit,.common .bb-comment .no-login .comment-submit,.container .pagination,.coupon-content-con .coupon-btn-disable,.customize-wrp .select,.f-list-hover:hover,.fjw-case-detail .ban-detail .content-box .video-model,.game-groom-m .num,.main-container .media-info .media-right .media-tool-bar .btn-follow.active,.main-container .pay-bar .vip .btn-pay.active,.open-dialog-masker .open-dialog-content .open-footer .btn-normal.disabled,.open-dialog-masker .open-dialog-content .open-footer .btn-normal.disabled:hover,.pagination-container li.pagination,.status_box .status_btn.disabled,.wrapper .elec-btn.disabled{background-color:#444!important}.danmaku-wrap .player-auxiliary-area .player-auxiliary-danmaku-wrap .bscroll-indicator{background-color:#555!important}.danmaku-wrap .player-auxiliary-area .player-auxiliary-danmaku-wrap .bscroll-vertical-scrollbar.mousedown,.danmaku-wrap .player-auxiliary-area .player-auxiliary-danmaku-wrap:hover .bscroll-vertical-scrollbar,.m-recommend-item div.box,.player-auxiliary-area .player-auxiliary-bscrollbar .bscroll-vertical-scrollbar,.player-auxiliary-area .player-auxiliary-bscrollbar .bscroll-vertical-scrollbar.mousedown,.player-auxiliary-area .player-auxiliary-bscrollbar:hover .bscroll-vertical-scrollbar{background-color:transparent!important}.live-skin-coloration-area .live-skin-normal-a-text,.live-skin-coloration-area .live-skin-normal-a-text:link,.live-skin-coloration-area .live-skin-normal-a-text:visited,.live-skin-coloration-area .live-skin-normal-text,.open-dialog-masker .open-dialog-content .open-footer .btn-normal.disabled,.open-dialog-masker .open-dialog-content .open-footer .btn-normal.disabled:hover,.status_box .status_btn.disabled,blockquote *,blockquote .color-blue-01,blockquote .color-blue-02,blockquote .color-blue-03,blockquote .color-blue-04,blockquote .color-gray-01,blockquote .color-gray-02,blockquote .color-gray-03,blockquote .color-gray-04,blockquote .color-green-01,blockquote .color-green-02,blockquote .color-green-03,blockquote .color-green-04,blockquote .color-lblue-01,blockquote .color-lblue-02,blockquote .color-lblue-03,blockquote .color-lblue-04,blockquote .color-pink-01,blockquote .color-pink-02,blockquote .color-pink-03,blockquote .color-pink-04,blockquote .color-purple-01,blockquote .color-purple-02,blockquote .color-purple-03,blockquote .color-purple-04,blockquote .color-yellow-01,blockquote .color-yellow-02,blockquote .color-yellow-03,blockquote .color-yellow-04{color:#aaa!important}#app .sticky-bar .bar-content .message,.bb-comment .no-login .comment-submit,.bp-popup-panel .title-ctnr .popup-title,.commnent-screen-wrap .el-input__inner,.common .bb-comment .no-login .comment-submit,.coupon-content-con .coupon-btn-disable,.cover .disabled-cover,.customize-wrp .select,.el-input__inner,.home-page .sticky-bar .bar-content .message,.invitation-record-warp .invtable .inputdone,.live-room-app .guard-rank-cntr .tabs.isHundred .item.active,.live-room-app .guard-rank-cntr.hundred .live-skin-highlight-text,.live-room-app .guard-rank-cntr.hundred .live-skin-main-a-text,.live-room-app .guard-rank-cntr.hundred .page-box .live-skin-main-text,.live-room-app .guard-rank-cntr.thousand .live-skin-highlight-text,.live-room-app .guard-rank-cntr.thousand .live-skin-main-a-text,.live-room-app .guard-rank-cntr.thousand .page-box .live-skin-main-text,.live-skin-coloration-area .live-skin-highlight-text,.live-skin-coloration-area .live-skin-main-text,.manga-detail .episode-list-component .episode-list .list-data .list-item.last-read,.popup-content-ctnr .bl-button--ghost,.s-paging>ul>a.current,.s-paging>ul>span.current,.score-info .go-movie,.tag-list li.tag-item.on{color:#eee!important}#rank-list-vm .tabs.isHundred .item,.bb-comment .no-login .comment-submit,.commnent-screen-wrap .el-input__inner,.common .bb-comment .no-login .comment-submit,.el-input__inner,.enter-failure .password-input .pink-border,.link-footer,.live-skin-coloration-area .live-skin-highlight-border,.live-skin-coloration-area .live-skin-separate-border,.popup-content-ctnr .bl-button--ghost:hover,.score-info .go-movie,.select-box-v2-container .select-box-v2-controller-disabled,.song-info .info-wrap .type-list .item-list .type-item.active,.tabs-bar,.ui-input-textarea.focus,.user-setting-warp .el-radio-button__orig-radio:checked+.el-radio-button__inner{border-color:transparent!important}#app .sticky-bar .bar-content .message:hover,.app-layout .style-section .tag-block .tag-containers .style-tag.selected,.container .video-panel .play-all .bilifont,.detail-wrp .detail-content[data-v-00c9b213] p a span,.drop-list-v2-container .drop-list-v2-item-selected .drop-list-v2-item-cont p.item-cont-main,.edit-button:hover>.icon-font,.edit-button:hover>span .left-nav-item-childed:hover,.el-select-dropdown__item.selected,.home-page .sticky-bar .bar-content .message:hover,.im-popup .bp-popup-panel .title-ctnr .popup-title,.left-nav-wrapper .active,.left-nav-wrapper .active .left-nav-item-child,.left-nav-wrapper .advice-btn:hover,.left-nav-wrapper .left-nav-item.active,.left-nav-wrapper .left-nav-item.active i.active,.left-nav-wrapper .left-nav-list.on .left-nav-item,.left-nav-wrapper .left-nav-list.on .left-nav-item .icon,.live-room-app .guard-rank-cntr.hundred .live-skin-main-a-text:hover,.live-room-app .guard-rank-cntr.thousand .live-skin-main-a-text:hover,.live-skin-coloration-area .live-skin-highlight-text,.live-skin-coloration-area .live-skin-normal-a-text:hover,.live-skin-normal-a-text:active,.manga-detail .episode-list-component .episode-list .list-header .header-item.selected,.more-data a:hover,.other a a:hover,.r-con .members-info .up-card .info-name.is-vip:hover,.rank-item .content .info .detail a a:hover,.rank-item .content .more-data:hover,.rank-item .content .other a:hover,.room-info-down-row .icon-label.hover-text-blue:hover .label,.room-introduction .edit-button:hover>.icon-font,.room-introduction .edit-button:hover>span,.up-info .u-info .name .username.is-vip:hover,.voucher-ing .voucher-left-money,.voucher-ing .voucher-left-money:before,.voucher-no-used .voucher-left-money,.voucher-no-used .voucher-left-money:before{color:var(--theme-color)!important}.aside-ctnr .author-info .communicate-btn,.live-skin-coloration-area .room-info-ctnr .info-section .live-skin-highlight-border,.manga-detail .episode-list-component .episode-list .list-data .list-item.last-read,.page-list-box .page-input:focus,.page-list-box .page-input:hover,.popup-content-ctnr .bl-button--ghost,.season-timeline .season-group.today,.season-timeline .season-group.today .group-time::before,.tag-list li.tag-item.on,.tag-list li.tag-item:hover{border-color:var(--theme-color)!important}.bg-blue,.el-date-table td.current:not(.disabled),.el-date-table td.end-date,.el-date-table td.start-date,.face-g-list#my-g-list .face-g-block .my-mp-block .mp-info .btn-white,.face-g-tab li.current,.live-skin-coloration-area .live-skin-highlight-bg,.popup-content-ctnr .bl-button--ghost:hover,.popup-content-ctnr .bl-button--primary,.season-timeline .season-group.today.is-published .group-time::before,.security-list .child-list li a.bg-blue:hover,.song-info .info-wrap .type-list .item-list .type-item.active,.tag-list li.tag-item.on,.user-my-btn .el-button--primary,.user-setting-warp .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:var(--theme-color)!important}.current .tab-btn-link,.el-date-table td.current:not(.disabled),.el-date-table td.end-date,.el-date-table td.start-date,.face-g-tab li.current,.popup-content-ctnr .bl-button--ghost:hover,.style-section .tag-block .tag-containers .style-tag:active{color:var(--foreground-color)!important}#bilibiliPlayer{box-shadow:0 4px 8px 0 #0004}`; onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/dark-navbar.min.css"] = `#link-navbar-vm>.link-navbar .nav-item:hover,.bili-header-m .nav-menu .nav-con .nav-item:hover,.link-navbar .nav-item:hover,.nav-header-wrapper .nav-header .nav-header-search-bar,.right-part>.shortcuts-ctnr .shortcut-item:hover,.search-bar-ctnr .search-bar,.shortcuts-ctnr .shortcut-item:hover,.uns_box ul.menu li:not(.b-post):hover,.z_top .z_top_nav ul li:hover{background-color:#222!important}#app>.link-navbar,#app>.nav-header-wrapper,#link-navbar-vm>.link-navbar,#navbar-vm>.link-navbar,.b-header-mask-wrp .b-header-mask,.bili-header-m .nav-menu .nav-mask,.bili-header-m .nav-menu.blur-black .nav-mask,.link-navbar{background-color:#444!important}.z_top .i-link:hover,.z_top .z_top_nav ul li.home:hover{background-color:transparent!important}#app>.nav-header-wrapper>.nav-header{background:0 0!important}#app>.link-navbar .main-ctnr .nav-logo,#app>.link-navbar .nav-item.selected .label,#app>.link-navbar .nav-item:hover .icon-font,#app>.nav-header-wrapper>.nav-header .nav-header-mainsite,#app>.nav-header-wrapper>.nav-header .order-center,#link-navbar-vm>.link-navbar .main-ctnr .nav-logo,#link-navbar-vm>.link-navbar .nav-item:hover,.bili-header-m .nav-menu .nav-con .nav-item .t,.link-navbar .main-ctnr .custom-link>a,.link-navbar .main-ctnr .nav-logo,.my-link-btn .label,.nav-header-wrapper .nav-header .nav-header-search-bar,.right-part>.shortcuts-ctnr,.right-part>.shortcuts-ctnr .shortcut-item:hover,.search-bar-ctnr .search-bar input,.shortcut-item .list-item span,.shortcuts-ctnr .shortcut-item,.uns_box li.u-i a.i-link,.z_top a,.z_top.b-header-blur .uns_box li.u-i a.i-link,.z_top.b-header-blur .z_top_nav li a.i-link{color:#eee!important}.search-bar-ctnr .search-bar .placeholder,.search-bar-ctnr .search-bar .search-btn,.search-bar-ctnr .search-bar input::placeholder{color:#878787!important}.uns_box li.u-i:hover a.i-link,.z_top .i-link:hover{color:var(--theme-color)}.link-navbar,.link-navbar-ctnr{box-shadow:none!important}.link-navbar .main-ctnr .nav-logo::before,.nav-header-wrapper .nav-header .order-icon{filter:brightness(0) invert(1)!important}.search-bar-ctnr .search-bar{border-color:transparent!important;box-shadow:0 2px 10px 1px #0002}`; onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/dark-schedule.min.js"] = (()=>{return(e,t)=>{class i{constructor(...e){if(e.length===0){const e=new Date;this.hour=e.getHours();this.minute=e.getMinutes()}else if(e.length===1){const[t]=e;[this.hour,this.minute]=t.split(":").slice(0,2).map(e=>this.validatePart(e));this.normalize()}else if(v.length===2){[this.hour,this.minute]=e}}validatePart(e){const t=parseInt(e);if(!isNaN(t)&&t>=0&&t<=59){return t}else{return null}}normalize(){while(this.minute<0){this.minute+=60;this.hour-=1}while(this.minute>=60){this.minute-=60;this.hour+=1}while(this.hour<0){this.hour+=24}while(this.hour>=24){this.hour-=24}}lessThan(e){if(this.houre.hour||this.hour===e.hour&&this.minute>e.minute){return true}return false}equals(e){return this.hour===e.hour&&this.minute===e.minute}isInRange(e,t){if(e.equals(t)){return false}let i=this.greaterThan(e)&&this.lessThan(t);if(e.greaterThan(t)){i=this.greaterThan(e)||this.lessThan(t)}const s=i||this.equals(e);return s}static millisecondsBefore(e){const t=new i;const s=(new Date).getSeconds();const r=1e3*(t.hour*3600+t.minute*60+s);const n=1e3*(e.hour*3600+e.minute*60);let h=n-r;if(t.greaterThan(e)||t.equals(e)&&s!==0){h+=24*3600*1e3}return h}}function s(){if(e.darkSchedule){const t=new i(e.darkScheduleStart);const r=new i(e.darkScheduleEnd);const n=new i;const h=n.isInRange(t,r);if(e.useDarkStyle!==h){e.useDarkStyle=h}let u=0;if(h){u=i.millisecondsBefore(r)}else{u=i.millisecondsBefore(t)}if(u!==0){setTimeout(()=>s(),u)}}}fullyLoaded(()=>s());return{export:{ScheduleTime:i}}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/dark-styles.min.js"] = (()=>{return(e,t)=>{const l=()=>{SpinQuery.select(".custom-scrollbar").then(e=>e&&e.classList.remove("custom-scrollbar"))};const r=()=>{document.body.classList.add("dark");l();t.applyStyle("scrollbarStyle");t.applyImportantStyle("darkStyleNavBar");t.applyStyle("darkStyle");t.applyImportantStyle("darkStyleImportant")};r();return{reload:r,unload:()=>{document.body.classList.remove("dark");t.removeStyle("scrollbarStyle");t.removeStyle("darkStyleNavBar");t.removeStyle("darkStyle");t.removeStyle("darkStyleImportant")}}}})(); @@ -1071,7 +1071,7 @@ onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/m onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/download-audio.min.js"] = (()=>{return(e,t)=>{class n{constructor(){this.sid=null;this.progress=null}async getDownloadUrl(){const e=`https://www.bilibili.com/audio/music-service-c/web/url?sid=${this.sid}&privilege=2&quality=2`;const t=await Ajax.getJsonWithCredentials(e);if(t.code===0){return t.data.cdns.shift()}else{logError("获取下载链接失败, 请确保当前账号有下载权限.","下载音频",1e4);return null}}async download(){const e=await this.getDownloadUrl();return new Promise((t,n)=>{const s=new XMLHttpRequest;s.open("GET",e);s.responseType="blob";s.addEventListener("load",()=>t(s.response));s.addEventListener("error",()=>n(s.status));s.addEventListener("progress",e=>this.progress&&this.progress(100*e.loaded/e.total));s.send()})}}const s="下载音频";return{export:n,widget:{content:`\n\n\n${s}\n\n`,condition:()=>document.URL.includes("bilibili.com/audio"),success:async()=>{await SpinQuery.select(()=>document.querySelector("#app"));const e=document.querySelector("#download-audio");const t=e.querySelector("span");const o=new n;o.progress=(e=>{t.innerHTML=`${Math.round(e)}%`});const i=document.querySelector("#download-audio-link");e.addEventListener("click",async e=>{if(o.sid===null||e.target===i){return}const n=await o.download();t.innerHTML=s;const r=i.getAttribute("href");if(r){URL.revokeObjectURL(r)}i.setAttribute("href",URL.createObjectURL(n));const d=(()=>{const e=document.querySelector(".song-title");if(e){return e.getAttribute("title")}else{return"神秘音频"}})();i.setAttribute("download",d+".m4a");i.click()});Observer.childList("#app",()=>{const t=document.URL.match(/bilibili\.com\/audio\/au([\d]+)/);if(t&&t[1]){e.disabled=false;o.sid=t[1]}else{e.disabled=true}})}}}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/download-danmaku.min.js"] = (()=>{return(t,e)=>{const{getFriendlyTitle:n}=e.import("title");const{DanmakuInfo:i}=e.import("video-info");const{DanmakuConverter:a}=e.import("danmaku-converter");async function o(t){const e=n();let i={title:e};try{await loadDanmakuSettingsPanel();const t=t=>{const e=parseFloat(dq(t).style.transform.replace(/translateX\(([\d\.]+)/,"$1"));const n={0:0,44:1,94:2,144:3,188:4}[e];return n};i.font=dq(".bilibili-player-video-danmaku-setting-right-font .bui-select-result").innerText;i.alpha=parseFloat(dq(".bilibili-player-setting-opacity .bui-bar").style.transform.replace(/scaleX\(([\d\.]+)\)/,"$1"));i.duration=(()=>{const e=[18,14,10,8,6][t(".bilibili-player-setting-speedplus .bui-thumb")];return t=>{switch(t.type){case 4:case 5:return 4;default:return e}}})();i.blockTypes=(()=>{let t=[];const e={".bilibili-player-block-filter-type[ftype=scroll]":[1,2,3],".bilibili-player-block-filter-type[ftype=top]":[5],".bilibili-player-block-filter-type[ftype=bottom]":[4],".bilibili-player-block-filter-type[ftype=color]":["color"]};for(const[n,i]of Object.entries(e)){if(dq(n).classList.contains("disabled")){t=t.concat(i)}}return t.concat(7,8)})();const e=[1.4,1.2,1,.8,.6][t(".bilibili-player-setting-fontsize .bui-thumb")];i.resolution={x:1920*e,y:1080*e};i.bottomMarginPercent=[.75,.5,.25,0,0][t(".bilibili-player-setting-area .bui-thumb")];if(i.bottomMarginPercent===0&&dq(".bilibili-player-video-danmaku-setting-left-preventshade input").checked){i.bottomMarginPercent=.15}i.bold=dq(".bilibili-player-video-danmaku-setting-right-font-bold input").checked}catch(t){i={font:"微软雅黑",alpha:.6,duration:t=>{switch(t.type){case 4:case 5:return 4;default:return 6}},blockTypes:[7,8],resolution:{x:1920,y:1080},bottomMarginPercent:.15,bold:false}}const o=new a(i);const l=o.convertToAssDocument(t);return l.generateAss()}async function l(t,e){const a=n();const l=new i((unsafeWindow||window).cid);await l.fetchInfo();const r=await(async()=>{if(t===true){return new Blob([await o(l.rawXML)],{type:"text/plain"})}else{return new Blob([l.rawXML],{type:"text/plain"})}})();const s=URL.createObjectURL(r);const c=dq("#danmaku-link");const d=c.getAttribute("href");if(d){URL.revokeObjectURL(d)}clearTimeout(e);dq("#download-danmaku>span").innerHTML="下载弹幕";c.setAttribute("download",`${a}.${t?"ass":"xml"}`);c.setAttribute("href",s);c.click()}return{export:{downloadDanmaku:l,convertToAss:o},widget:{content:`\n\n\n下载弹幕\n\n`,condition:async()=>{let t=await SpinQuery.select(()=>(unsafeWindow||window).cid);return Boolean(t)},success:()=>{const t=document.querySelector("#danmaku-link");dq("#download-danmaku").addEventListener("click",e=>{if(e.target!==t){const t=setTimeout(()=>dq("#download-danmaku>span").innerHTML="请稍侯...",200);l(e.shiftKey,t)}})}}}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/download-video.min.css"] = `.download-video{--download-video-background:white;--download-video-foreground:black;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.95);background:var(--download-video-background);color:var(--download-video-foreground);box-shadow:rgba(0,0,0,.2) 0 4px 8px 0;z-index:10001;pointer-events:none;opacity:0;padding:16px;width:300px;display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;max-height:90%}.download-video,.download-video *{transition:.2s ease-out;-webkit-tap-highlight-color:transparent!important}.download-video.opened{pointer-events:initial;opacity:1;transform:translate(-50%,-50%) scale(1)}body.dark .download-video{--download-video-background:#222;--download-video-foreground:#eee}.round-corner .download-video,.round-corner .download-video .episode-list .v-checkbox,.round-corner .download-video .rpc-settings{border-radius:var(--large-corner-radius)}.round-corner .download-video .button,.round-corner .download-video .cover,.round-corner .download-video .direct-download .progress .background,.round-corner .download-video .direct-download .progress .foreground,.round-corner .download-video .rpc-settings input[type=text],.round-corner .download-video .title,.round-corner .download-video button{border-radius:var(--corner-radius)}.download-video .cover{width:240px;min-height:135px;background-color:#8882}.download-video .header{display:flex;justify-content:space-between;align-items:center}.download-video h1{font-size:16pt;font-weight:700;color:var(--download-video-foreground)}.download-video .header .mdi-close{font-size:16pt;color:var(--download-video-foreground);cursor:pointer}.download-video .header .mdi-close:hover{color:var(--theme-color)}.download-video .info{display:flex;flex-direction:column;align-items:center;margin-top:12px}.download-video .title{display:flex;flex-direction:column;justify-content:space-between;align-items:stretch;margin-top:12px}.download-video .title .bold{width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.download-video .title .size{font-size:10pt;color:var(--download-video-foreground);align-self:center;display:flex;align-items:center;height:24px}.download-video .bold{color:var(--download-video-foreground);font-weight:700;font-size:12pt}.download-video .option-item{display:flex;justify-content:space-between;align-items:center;padding-top:12px;font-size:10pt}.download-video .tabs{display:flex;padding-top:12px;font-size:10pt}.download-video .tabs .tab{padding:6px 12px;border-bottom:2px solid transparent;cursor:pointer}.download-video .tabs .tab.active{color:var(--theme-color);border-bottom-color:var(--theme-color)}.download-video .separator{height:1px;background:#8884;width:100%;margin:12px 0;flex-shrink:0}.download-video h2{font-size:12pt;font-weight:700;color:var(--download-video-foreground)}.download-video .direct-download{display:flex;flex-direction:column;align-items:start;justify-content:space-between}.download-video .button,.download-video button{border:none;outline:0!important;padding:6px 16px;font-size:10pt;cursor:pointer;background:#8884;color:var(--download-video-foreground)}.download-video .button:hover,.download-video button:hover{background:#8886}.download-video .primary{background:var(--theme-color);color:var(--foreground-color);align-self:center}.download-video .primary:hover{background:var(--theme-color-90)}.download-video .busy .button,.download-video .busy .primary,.download-video .busy button,.download-video button:disabled{background-color:#0001;color:#8884;cursor:not-allowed}.download-video .busy .button,.download-video .busy button{cursor:wait!important}.download-video .direct-download .progress{align-self:stretch;display:flex;align-items:center;margin-top:8px}.download-video .direct-download .progress .background{flex-grow:1;height:4px;background:#8884;margin-right:4px;position:relative}.download-video .direct-download .progress .background .foreground{position:absolute;top:0;left:0;height:4px;background:linear-gradient(to right,var(--theme-color),var(--theme-color-60))}.download-video .direct-download .progress .percent{width:50px;text-align:right}.download-video .actions{display:flex;flex-wrap:wrap;justify-content:space-between;margin:8px -4px 0}.download-video .actions>*{margin:4px;flex-grow:1;flex-basis:calc(50% - 16px);display:flex;justify-content:center;align-items:center}.download-video i.mdi-alert-circle{font-size:14pt;color:#ff9800}.download-video .size-warning{position:relative;padding:0 8px}.download-video .size-warning-tip{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);background:var(--download-video-background);color:var(--download-video-foreground);border:1px dashed var(--theme-color);z-index:2;font-size:10pt;width:200px;padding:8px;box-shadow:rgba(0,0,0,.2) 0 4px 8px 0;pointer-events:none;opacity:0}.download-video .size-warning:hover .size-warning-tip{opacity:1}.download-video .episode-list .v-checkbox{padding:4px 8px;margin:4px 0;position:relative;background-color:transparent}.download-video .episode-list .v-checkbox.checked{background-color:#8882}.download-video .episode-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.download-video .episode-list{overflow:auto;max-height:320px}.download-video button.list-tool{padding:4px;line-height:1;font-size:12pt;margin:0 4px}.download-video .episode-header h2{flex-grow:1}.download-video .selected-count{width:64px;text-align:right}.download-video .aria2-rpc .mdi{margin-left:8px;font-size:14pt;line-height:1}.download-video .aria2-rpc{position:relative}.download-video .rpc-settings{position:absolute;display:flex;flex-direction:column;align-items:stretch;color:var(--download-video-foreground);background:#fff;bottom:120%;left:50%;cursor:initial;box-shadow:rgba(0,0,0,.2) 0 4px 8px 0;transform-origin:bottom;transform:translateX(-50%) scale(.9);opacity:0;pointer-events:none;padding:8px;z-index:3;transition:.3s cubic-bezier(.18,.89,.32,1.28);width:100%}body.dark .download-video .rpc-settings{background:#282828}.download-video .rpc-settings>*{margin:8px}.download-video .rpc-settings.show{opacity:1;transform:translateX(-50%) scale(1);pointer-events:initial}.download-video .rpc-settings input[type=text]{background:0 0;color:var(--download-video-foreground);border:1px solid #8884;padding:4px;margin-left:8px}.download-video .rpc-settings input[type=text]:focus{border-color:var(--theme-color)}.download-video .rpc-settings .operations{display:flex;align-items:center;justify-content:space-evenly}.download-video .rpc-settings-item{display:flex;align-items:center;justify-content:space-between;white-space:nowrap}.download-video .rpc-settings-item input[type=text]{flex-grow:1;margin-left:24px}.download-video button.cancel-download,.download-video button.start-download{margin-top:8px}.download-video .direct-download-header{align-self:stretch;display:flex;justify-content:space-between;align-items:center}body.dark .download-video .direct-download .progress .foreground{background:linear-gradient(to right,var(--theme-color-70),var(--theme-color))}`; -onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/download-video.min.html"] = `

    下载视频

    单个视频
    批量导出
    警告: 过大的视频大小会在直接下载时占用大量内存, 并可能导致浏览器标签页崩溃. 请考虑降低清晰度或使用导出选项.
    预计大小: {{displaySize}}
    格式
    清晰度
    弹幕

    直接下载

    {{speed}}
    {{progressPercent}}%

    选集

    {{selectedEpisodeCount}}/{{episodeList.length}}

    导出

    {{showRpcSettings ? '取消' : 'aria2 RPC'}}

    aria2 RPC

    配置

    主机
    端口
    密钥
    限速
    默认路径
    路径
    最终路径: {{rpcSettings.baseDir + rpcSettings.dir}}
    方法
    开始下载
    {{saveRpcSettingsText}}
    `; +onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/download-video.min.html"] = `

    下载视频

    单个视频
    批量导出
    警告: 过大的视频大小会在直接下载时占用大量内存, 并可能导致浏览器标签页崩溃. 请考虑降低清晰度或使用导出选项.
    预计大小: {{displaySize}}
    格式
    清晰度
    弹幕

    直接下载

    {{speed}}
    {{progressPercent}}%

    选集

    {{selectedEpisodeCount}}/{{episodeList.length}}

    导出

    {{showRpcSettings ? '取消' : 'aria2 RPC'}}

    aria2 RPC

    配置

    主机
    端口
    密钥
    限速
    默认路径
    路径
    最终路径: {{rpcSettings.baseDir + rpcSettings.dir}}
    方法
    开始下载
    {{saveRpcSettingsText}}
    `; onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/download-video.min.js"] = (()=>{return(e,t)=>{const{getFriendlyTitle:s}=t.import("title");const{VideoInfo:a,DanmakuInfo:i}=t.import("video-info");class n{constructor(){this.menuClasses=["quality","action","progress"];[this.currentMenuClass]=this.menuClasses}get menuPanel(){return document.querySelector(".download-video-panel")}addMenuClass(){this.menuPanel.classList.remove(...this.menuClasses);this.menuPanel.classList.add(this.currentMenuClass);return this.currentMenuClass}resetMenuClass(){[this.currentMenuClass]=this.menuClasses;this.addMenuClass()}nextMenuClass(){const e=this.menuClasses.indexOf(this.currentMenuClass)+1;const t=this.menuClasses[e>=this.menuClasses.length?0:e];this.currentMenuClass=t;this.addMenuClass();return t}closeMenu(){this.menuPanel.classList.remove("opened");setTimeout(()=>this.resetMenuClass(),200)}addError(){this.menuPanel.classList.add("error")}removeError(){this.menuPanel.classList.remove("error");this.resetMenuClass()}async getDashUrl(e){throw new Error("video dash is not supported")}async getUrl(e){if(e){return`https://api.bilibili.com/x/player/playurl?avid=${r.aid}&cid=${r.cid}&qn=${e}&otype=json`}else{return`https://api.bilibili.com/x/player/playurl?avid=${r.aid}&cid=${r.cid}&otype=json`}}}class o extends n{async getDashUrl(e){if(e){return`https://api.bilibili.com/pgc/player/web/playurl?avid=56995872&cid=99547543&qn=${e}&otype=json&fourk=1&fnval=16`}else{return`https://api.bilibili.com/pgc/player/web/playurl?avid=56995872&cid=99547543&otype=json&fourk=1&fnval=16`}}async getUrl(e){if(e){return`https://api.bilibili.com/pgc/player/web/playurl?avid=${r.aid}&cid=${r.cid}&qn=${e}&otype=json`}else{return`https://api.bilibili.com/pgc/player/web/playurl?avid=${r.aid}&cid=${r.cid}&qn=&otype=json`}}}const r={entity:new n,aid:"",cid:""};let l=[];let c=null;class d{constructor(e,t,s){this.quality=e;this.internalName=t;this.displayName=s}async downloadInfo(e=false){const t=new h(this);await t.fetchVideoInfo(e);return t}static parseFormats(e){const t=e.accept_quality;const s=e.accept_format.split(",");const a=e.accept_description;const i=t.map((e,t)=>{return new d(e,s[t],a[t])});return i}static async getAvailableDashFormats(){const e=await r.entity.getDashUrl();const t=await Ajax.getJsonWithCredentials(e);if(t.code!==0){throw new Error("获取清晰度信息失败.")}return d.parseFormats(t.result)}static async getAvailableFormats(){const e=await r.entity.getUrl();const t=await Ajax.getJsonWithCredentials(e);if(t.code!==0){throw new Error("获取清晰度信息失败.")}const s=t.data||t.result||t;return d.parseFormats(s)}}class h{constructor(e,t){this.fragmentSplitFactor=6*2;this.workingXhr=null;this.progressMap=new Map;this.format=e;this.fragments=t||[];this.videoSpeed=new u(this)}get totalSize(){return this.fragments.map(e=>e.size).reduce((e,t)=>e+t)}async fetchVideoInfo(e=false){if(!e){const e=await r.entity.getUrl(this.format.quality);const t=await Ajax.getTextWithCredentials(e);const s=JSON.parse(t.replace(/http:/g,"https:"));const a=s.data||s.result||s;if(a.quality!==this.format.quality){throw new Error("获取下载链接失败, 请确认当前账号有下载权限后重试.")}const i=a.durl;this.fragments=i.map(e=>{return{length:e.length,size:e.size,url:e.url,backupUrls:e.backup_url}})}else{const{dashToFragment:e,getDashInfo:s}=await t.importAsync("video-dash");const a=await s(r.aid,r.cid,this.format.quality);const i=a.videoDashes.sort(descendingSort(e=>e.bandWidth))[0];const n=a.audioDashes.sort(descendingSort(e=>e.bandWidth))[0];this.fragments=[e(i),e(n)]}return this.fragments}updateProgress(){const e=this.progressMap?[...this.progressMap.values()].reduce((e,t)=>e+t,0)/this.totalSize:0;if(e>1||e<0){console.error(`[下载视频] 进度异常: ${e}`,this.progressMap.values())}this.progress&&this.progress(e)}cancelDownload(){this.videoSpeed.stopMeasure();if(this.workingXhr!==null){this.workingXhr.forEach(e=>e.abort())}else{logError("Cancel Download Failed: forEach in this.workingXhr not found.")}}downloadFragment(e){const t=[];this.workingXhr=[];this.progressMap=new Map;this.updateProgress();let s;if(e.size<=96*1024*1024){s=e.size/this.fragmentSplitFactor}else{s=16*1024*1024}let a=0;const i=e=>[...this.progressMap.keys()].indexOf(e)+1;while(a{const a=new XMLHttpRequest;a.open("GET",e.url);a.responseType="arraybuffer";a.withCredentials=false;a.addEventListener("progress",e=>{console.log(`[下载视频] 视频片段${i(a)}下载进度: ${e.loaded}/${r} bytes loaded, ${o}`);this.progressMap.set(a,e.loaded);this.updateProgress()});a.addEventListener("load",()=>{if((""+a.status)[0]==="2"){console.log(`[下载视频] 视频片段${i(a)}下载完成`);t(a.response)}else{s(`视频片段${i(a)}请求失败, response = ${a.status}`)}});a.addEventListener("abort",()=>s("canceled"));a.addEventListener("error",()=>{console.error(`[下载视频] 视频片段${i(a)}下载失败: ${o}`);this.progressMap.set(a,0);this.updateProgress();a.open("GET",e.url);a.setRequestHeader("Range",o);a.send()});a.setRequestHeader("Range",o);this.progressMap.set(a,0);a.send();this.workingXhr.push(a)}));a=Math.round(a+s)+1}return Promise.all(t)}async copyUrl(){const e=this.fragments.map(e=>e.url).reduce((e,t)=>e+"\r\n"+t);GM_setClipboard(e,"text")}async showUrl(){const e=this.fragments.map(e=>`\n${e.url}\n`).reduce((e,t)=>e+"\r\n"+t);Toast.success(e,"显示链接")}static downloadBlob(e,t){const s=document.createElement("a");let a;if(typeof e==="string"){a=e}else{a=URL.createObjectURL(e)}s.setAttribute("href",a);s.setAttribute("download",t);document.body.appendChild(s);s.click();s.remove();URL.revokeObjectURL(a)}async exportData(e=false){const t=JSON.stringify([{fragments:this.fragments,title:s(),totalSize:this.fragments.map(e=>e.size).reduce((e,t)=>e+t),referer:document.URL.replace(window.location.search,"")}]);if(e){GM_setClipboard(t,"text")}else{const e=new Blob([t],{type:"text/json"});const a=await this.downloadDanmaku();if(a!==null){const t=new JSZip;t.file(`${s()}.json`,e);t.file(s()+"."+this.danmakuOption.toLowerCase(),a);h.downloadBlob(await t.generateAsync({type:"blob"}),`${s()}.zip`)}else{h.downloadBlob(e,`${s()}.json`)}}}async exportAria2(a=false){if(a){const a=await this.downloadDanmaku();if(a!==null){h.downloadBlob(new Blob([a]),`${s()}.${this.danmakuOption==="ASS"?"ass":"xml"}`)}const i=e.aria2RpcOption;const n=this.fragments.map((e,t)=>{let a="";if(this.fragments.length>1){a=" - "+(t+1)}const n=[];if(i.secretKey!==""){n.push(`token:${i.secretKey}`)}n.push([e.url]);n.push({referer:document.URL.replace(window.location.search,""),"user-agent":UserAgent,out:`${s()}${a}${this.extension(e)}`,split:this.fragmentSplitFactor,dir:i.baseDir+i.dir||undefined,"max-download-limit":i.maxDownloadLimit||undefined});const o=encodeURIComponent(`${s()}${a}`);return{params:n,id:o}});const{sendRpc:o}=await t.importAsync("aria2-rpc");await o(n)}else{const e=`\n# Generated by Bilibili Evolved Video Export\n# https://github.com/the1812/Bilibili-Evolved/\n${this.fragments.map((e,t)=>{let a="";if(this.fragments.length>1){a=" - "+(t+1)}return`\n${e.url}\nreferer=${document.URL.replace(window.location.search,"")}\nuser-agent=${UserAgent}\nout=${s()}${a}${this.extension(e)}\nsplit=${this.fragmentSplitFactor}\n`.trim()}).join("\n")}\n`.trim();const t=new Blob([e],{type:"text/plain"});const a=await this.downloadDanmaku();if(a!==null){const e=new JSZip;e.file(`${s()}.txt`,t);e.file(s()+"."+this.danmakuOption.toLowerCase(),a);h.downloadBlob(await e.generateAsync({type:"blob"}),`${s()}.zip`)}else{h.downloadBlob(t,`${s()}.txt`)}}}extension(e){const t=e||this.fragments[0];const s=[".flv",".mp4",".m4s"].find(e=>t.url.includes(e));if(s){return s}else{console.warn("No extension detected.");return".flv"}}makeBlob(e,t){return new Blob(Array.isArray(e)?e:[e],{type:this.extension(t)===".flv"?"video/x-flv":"video/mp4"})}cleanUpOldBlobUrl(){const e=dq("a#video-complete").getAttribute("href");if(e&&!dq(`.link[href="${e}"]`)){URL.revokeObjectURL(e)}dqa(".toast-card-header").filter(e=>e.innerText.includes("下载视频")).forEach(e=>e.querySelector(".toast-card-dismiss").click())}async downloadDanmaku(){if(this.danmakuOption!=="无"){const e=new i(r.cid);await e.fetchInfo();if(this.danmakuOption==="XML"){return e.rawXML}else{const{convertToAss:s}=await t.importAsync("download-danmaku");return s(e.rawXML)}}else{return null}}async downloadSingle(e){const t=await this.downloadDanmaku();const[a]=e;if(t===null){const e=this.makeBlob(a);const t=s()+this.extension();return{blob:e,filename:t}}else{const e=new JSZip;e.file(s()+this.extension(),this.makeBlob(a));e.file(s()+"."+this.danmakuOption.toLowerCase(),t);const i=await e.generateAsync({type:"blob"});const n=s()+".zip";return{blob:i,filename:n}}}async downloadMultiple(e){const t=new JSZip;const a=s();if(e.length>1){e.forEach((e,s)=>{const i=this.fragments[s];t.file(`${a} - ${s+1}${this.extension(i)}`,this.makeBlob(e,i))})}else{const[s]=e;t.file(`${a}${this.extension()}`,this.makeBlob(s))}const i=await this.downloadDanmaku();if(i!==null){t.file(s()+"."+this.danmakuOption.toLowerCase(),i)}const n=await t.generateAsync({type:"blob"});const o=a+".zip";return{blob:n,filename:o}}async download(){const e=[];this.videoSpeed.startMeasure();for(const t of this.fragments){const s=await this.downloadFragment(t);e.push(s)}if(e.length<1){throw new Error("下载失败.")}let{blob:t,filename:s}=await(async()=>{if(e.length===1){return await this.downloadSingle(e)}else{return await this.downloadMultiple(e)}})();this.cleanUpOldBlobUrl();const a=URL.createObjectURL(t);this.progress&&this.progress(0);this.videoSpeed.stopMeasure();return{url:a,filename:s}}}class u{constructor(e){this.lastProgress=0;this.measureInterval=1e3;this.workingDownloader=e}startMeasure(){this.intervalTimer=setInterval(()=>{const e=this.workingDownloader.progressMap?[...this.workingDownloader.progressMap.values()].reduce((e,t)=>e+t,0):0;const t=e-this.lastProgress;if(this.speedUpdate!==undefined){this.speedUpdate(formatFileSize(t)+"/s")}this.lastProgress=e},this.measureInterval)}stopMeasure(){clearInterval(this.intervalTimer)}}async function p(){const e=await SpinQuery.select(()=>(unsafeWindow||window).aid);const t=await SpinQuery.select(()=>(unsafeWindow||window).cid);if(!(e&&t)){return false}r.aid=e;r.cid=t;if(document.URL.indexOf("bangumi")!==-1){r.entity=new o}else{r.entity=new n}try{l=await d.getAvailableFormats()}catch(e){return false}return true}async function f(){c=l[0];t.applyStyle("downloadVideoStyle");dq("#download-video").addEventListener("click",()=>{dq(".download-video").classList.toggle("opened");dq(".gui-settings-mask").click()});dq("#download-video").addEventListener("mouseover",()=>{document.body.insertAdjacentHTML("beforeend",t.import("downloadVideoHtml"));m()},{once:true})}async function m(){let n;const o=new Map;const u=new Vue({el:".download-video",components:{VDropdown:()=>t.importAsync("v-dropdown.vue"),VCheckbox:()=>t.importAsync("v-checkbox.vue"),RpcProfiles:()=>t.importAsync("aria2-rpc-profiles.vue")},data:{downloadSingle:true,coverUrl:EmptyImageUrl,aid:r.aid,cid:r.cid,dashModel:{value:e.downloadVideoFormat,items:["flv","dash"]},qualityModel:{value:c.displayName,items:l.map(e=>e.displayName)},danmakuModel:{value:e.downloadVideoDefaultDanmaku,items:["无","XML","ASS"]},progressPercent:0,size:"获取大小中",blobUrl:"",episodeList:[],downloading:false,speed:"",batch:false,rpcSettings:e.aria2RpcOption,showRpcSettings:false,busy:false,saveRpcSettingsText:"保存配置",enableDash:e.enableDashDownload},computed:{displaySize(){if(typeof this.size==="string"){return this.size}return formatFileSize(this.size)},sizeWarning(){if(typeof this.size==="string"){return false}return this.size>1073741824},selectedEpisodeCount(){return this.episodeList.filter(e=>e.checked).length},dash(){return this.dashModel.value==="dash"}},methods:{close(){this.$el.classList.remove("opened")},danmakuOptionChange(){e.downloadVideoDefaultDanmaku=this.danmakuModel.value},async dashChange(){const e=this.dashModel.value;let t=[];if(e==="flv"){t=await d.getAvailableFormats()}else{t=await d.getAvailableDashFormats()}l=t;[c]=e;this.qualityModel.items=t.map(e=>e.displayName);[this.qualityModel.value]=this.qualityModel.items},async formatChange(){const e=this.getFormat();const t=o.get(e);if(t){this.size=t;return}try{this.size="获取大小中";const t=await e.downloadInfo(this.dash);this.size=t.totalSize;o.set(e,this.size)}catch(e){this.size="获取大小失败"}},getFormat(){const e=l.find(e=>e.displayName===this.qualityModel.value);if(!e){console.error(`No format found. model value = ${this.qualityModel.value}`);return null}return e},async exportData(e){if(this.busy===true){return}try{this.busy=true;if(!this.downloadSingle){await this.exportBatchData(e);return}const t=this.getFormat();const s=await t.downloadInfo(this.dash);s.danmakuOption=this.danmakuModel.value;switch(e){case"copyLink":await s.copyUrl();Toast.success("已复制链接到剪贴板.","下载视频",3e3);break;case"showLink":await s.showUrl();break;case"aria2":await s.exportAria2(false);break;case"aria2RPC":await s.exportAria2(true);break;case"copyVLD":await s.exportData(true);Toast.success("已复制VLD数据到剪贴板.","下载视频",3e3);break;case"exportVLD":await s.exportData(false);break;default:break}}catch(e){logError(e)}finally{this.busy=false}},async exportBatchData(e){const a=this.episodeList;if(a.every(e=>e.checked===false)){Toast.info("请至少选择1集或以上的数量!","批量导出",3e3);return}const n=e=>{const t=a.find(t=>t.cid===e.cid);if(t===undefined){return false}return t.checked};const o=this.getFormat();if(this.danmakuModel.value!=="无"){const e=Toast.info("下载弹幕中...","批量导出");const s=new JSZip;try{if(this.danmakuModel.value==="XML"){for(const e of a.filter(n)){const t=new i(e.cid);await t.fetchInfo();s.file(e.title+".xml",t.rawXML)}}else{const{convertToAss:e}=await t.importAsync("download-danmaku");for(const t of a.filter(n)){const a=new i(t.cid);await a.fetchInfo();s.file(t.title+".ass",await e(a.rawXML))}}h.downloadBlob(await s.generateAsync({type:"blob"}),this.cid+".danmakus.zip")}catch(e){logError(`弹幕下载失败`)}finally{e.dismiss()}}const r=Toast.info("获取链接中...","批量导出");this.batchExtractor.itemFilter=n;let l;try{switch(e){case"aria2":l=await this.batchExtractor.collectAria2(o,r);h.downloadBlob(new Blob([l],{type:"text/plain"}),s(false)+".txt");return;case"aria2RPC":await this.batchExtractor.collectAria2(o,r,true);Toast.success(`成功发送了批量请求.`,"aria2 RPC",3e3);return;case"copyVLD":GM_setClipboard(await this.batchExtractor.collectData(o,r),{mimetype:"text/plain"});Toast.success("已复制批量vld数据到剪贴板.","批量导出",3e3);return;case"exportVLD":l=await this.batchExtractor.collectData(o,r);h.downloadBlob(new Blob([l],{type:"text/json"}),s(false)+".json");return;default:return}}catch(e){logError(e)}finally{r.dismiss()}},async checkBatch(){const e=["/www.bilibili.com/bangumi","/www.bilibili.com/video/av"];if(!e.some(e=>document.URL.includes(e))){this.batch=false;this.episodeList=[];return}const{BatchExtractor:s}=await t.importAsync("batch-download");if(await s.test()!==true){this.batch=false;this.episodeList=[];return}this.batchExtractor=new s;this.batch=true;this.episodeList=(await this.batchExtractor.getItemList()).map((e,t)=>{return{aid:e.aid,cid:e.cid,title:e.title,index:t,checked:true}})},cancelDownload(){if(n){n.cancelDownload()}},async startDownload(){const e=this.getFormat();try{this.downloading=true;const t=await e.downloadInfo(this.dash);t.videoSpeed.speedUpdate=(e=>this.speed=e);t.danmakuOption=this.danmakuModel.value;t.progress=(e=>{this.progressPercent=Math.trunc(e*100)});n=t;const s=await t.download();const a=document.getElementById("video-complete");a.setAttribute("href",s.url);a.setAttribute("download",s.filename);a.click();Toast.success(`下载完成: ${s.filename} 再次保存`,"下载视频")}catch(e){if(e!=="canceled"){logError(e)}this.progressPercent=0}finally{this.downloading=false;this.speed=""}},selectAllEpisodes(){this.episodeList.forEach(e=>e.checked=true)},unselectAllEpisodes(){this.episodeList.forEach(e=>e.checked=false)},inverseAllEpisodes(){this.episodeList.forEach(e=>e.checked=!e.checked)},toggleRpcSettings(){this.showRpcSettings=!this.showRpcSettings},saveRpcSettings(){if(this.rpcSettings.host===""){this.rpcSettings.host="127.0.0.1"}if(this.rpcSettings.port===""){this.rpcSettings.port="6800"}e.aria2RpcOption=this.rpcSettings;const t=e.aria2RpcOptionProfiles.find(t=>t.name===e.aria2RpcOptionSelectedProfile);if(t){Object.assign(t,this.rpcSettings);e.aria2RpcOptionProfiles=e.aria2RpcOptionProfiles}this.saveRpcSettingsText="已保存";setTimeout(()=>this.saveRpcSettingsText="保存配置",2e3)},updateProfile(t){e.aria2RpcOption=this.rpcSettings=_.omit(t,"name")}}});Observer.videoChange(async()=>{u.close();u.batch=false;u.downloadSingle=true;const e=dq("#download-video");const t=await p();e.style.display=t?"flex":"none";if(!t){return}u.aid=r.aid;u.cid=r.cid;const s=new a(r.aid);await s.fetchInfo();u.coverUrl=s.coverUrl.replace("http:","https:");l=await d.getAvailableFormats();[c]=l;u.qualityModel={value:c.displayName,items:l.map(e=>e.displayName)};u.formatChange();await u.checkBatch()})}return{widget:{content:`\n`,condition:p,success:f}}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/dpi-img.vue.min.js"] = (()=>{return(t,e)=>{const i=``;return{export:Object.assign({template:i},{props:["size","src","blur"],computed:{srcset(){if(!this.src||!this.size){return null}return getDpiSourceSet(this.src,this.size)},width(){if(typeof this.size==="object"&&"width"in this.size){return this.size.width}return null},height(){if(typeof this.size==="object"&&"height"in this.size){return this.size.height}return null}}})}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/expand-danmaku.min.js"] = (()=>{return(e,a)=>{if(typeof isEmbeddedPlayer!=="undefined"&&isEmbeddedPlayer()){return}Observer.videoChange(async()=>{const e=await SpinQuery.select(".bui-collapse-wrap");if(e&&e.classList.contains("bui-collapse-wrap-folded")){const e=await SpinQuery.select(".bui-collapse-header");e.click()}})}})(); @@ -1158,7 +1158,7 @@ onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/m onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/simplify-home.min.css"] = `#app>.bili-wrapper,#app>.elevator-module,.bili-header-m .head-banner .head-content .head-logo,.international-footer,.international-header .b-wrap,.international-home>:not(.international-header){display:none!important}`; onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/simplify-home.min.js"] = (()=>{return(e,i)=>{(async()=>{if(document.URL.replace(window.location.search,"")!=="https://www.bilibili.com/"){i.removeStyle("simplifyHomeStyle");return}document.body.insertAdjacentHTML("beforeend",`\n\n`);const m=new Vue({el:"simplify-home",components:{SimplifyHome:()=>i.importAsync("simplify-home.vue")},data:{homeStyle:e.simplifyHomeStyle}});addSettingsListener("simplifyHomeStyle",e=>m.homeStyle=e,false)})()}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/simplify-home.vue.min.js"] = (()=>{return(e,m)=>{const o=`
    `;m.applyStyleFromText(`.simplify-home{margin-top:32px;display:flex;align-items:center;justify-content:center}.simplify-home .simplify-home-component{max-width:100%}html{scroll-behavior:smooth}`,"simplify-home-style");return{export:Object.assign({template:o},{components:{"minimal-home":()=>m.importAsync("minimal-home.vue"),"simple-home":()=>m.importAsync("simple-home.vue")},computed:{activeComponent(){return this.homeStyle==="清爽"?"simple-home":"minimal-home"}},props:{homeStyle:String}})}}})(); -onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/simplify-liveroom.min.css"] = `.simplify-eventsBanner .activity-pushing-out,.simplify-fansMedal .fans-medal-item-ctnr,.simplify-giftMessage .chat-item.gift-item,.simplify-giftPanel .gift-control-panel .wish-icon,.simplify-giftPanel .gift-control-panel .wish-tip,.simplify-giftPanel .gift-panel,.simplify-giftPanel .gift-panel-switch,.simplify-giftPanel .gift-section.guard-ent,.simplify-giftPanel .seeds-wrap>.dp-i-block>.item:not(.seeds),.simplify-guard i.guard-icon,.simplify-guardPurchase .chat-item.guard-buy,.simplify-popup .chat-popups-section,.simplify-popup .link-popup-ctnr,.simplify-systemMessage .announcement-wrapper,.simplify-systemMessage .system-msg,.simplify-title .title-label,.simplify-userLevel .user-level-icon,.simplify-vip .vip-icon,.simplify-welcomeMessage .welcome-guard,.simplify-welcomeMessage .welcome-msg{display:none!important}.simplify-giftPanel .gift-control-panel,.simplify-giftPanel .gift-control-section{height:48px!important}.simplify-giftPanel .treasure-box{display:flex!important;align-items:center!important;padding:10px 0 0 16px!important}.simplify-giftPanel .treasure-box .box-icon{width:24px!important;height:24px!important;background-position:0 -2.5px!important}.simplify-giftPanel .treasure-box .box-icon.open{background-position:0 -1px!important}.simplify-giftPanel .treasure-box .count-down{margin-left:12px!important;padding:4px 8px!important;max-width:unset!important}.simplify-giftPanel .treasure-box .awarding-panel{bottom:42px!important}.simplify-giftPanel .gift-control-panel .right-part{height:48px!important;display:flex!important;justify-content:flex-end!important}.simplify-giftPanel .gift-control-panel .right-part>.dp-table-cell{display:flex!important;align-items:center!important}.simplify-giftPanel .gift-control-panel .right-part>.dp-table-cell .supporting-info{transform:translateY(-2px)!important}.simplify-skin #gift-control-vm,.simplify-skin #head-info-vm,.simplify-skin #rank-list-ctnr-box{background-image:none!important}.simplify-guard .guard-danmaku::before{border-image:none!important;background-color:transparent!important}.simplify-guard .guard-danmaku::before .guard-danmaku{margin:0!important;padding:4px 5px!important}.simplify-guard .guard-danmaku::before .guard-danmaku::after{background-image:none!important}.simplify-guard [class*=guard-level-]::after{display:none!important}.simplify-liveroom-settings>ul>li{padding:8px 12px;display:flex;align-items:center}.simplify-liveroom-settings>ul>li:hover{background:rgba(0,0,0,.16)}.round-corner .simplify-liveroom-settings>ul>li{border-radius:var(--corner-radius)}`; +onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/simplify-liveroom.min.css"] = `.simplify-eventsBanner .activity-pushing-out,.simplify-fansMedal .fans-medal-item-ctnr,.simplify-giftMessage .chat-item.gift-item,.simplify-giftPanel .gift-control-panel .wish-icon,.simplify-giftPanel .gift-control-panel .wish-tip,.simplify-giftPanel .gift-panel,.simplify-giftPanel .gift-panel-switch,.simplify-giftPanel .gift-section.guard-ent,.simplify-giftPanel .seeds-wrap>.dp-i-block>.item:not(.seeds),.simplify-guard i.guard-icon,.simplify-guardPurchase .chat-item.guard-buy,.simplify-popup .chat-popups-section,.simplify-popup .link-popup-ctnr,.simplify-systemMessage .announcement-wrapper,.simplify-systemMessage .system-msg,.simplify-title .title-label,.simplify-userLevel .user-level-icon,.simplify-vip .vip-icon,.simplify-welcomeMessage .welcome-guard,.simplify-welcomeMessage .welcome-msg{display:none!important}.simplify-giftPanel .gift-control-panel,.simplify-giftPanel .gift-control-section{height:48px!important}.simplify-giftPanel .treasure-box{display:flex!important;align-items:center!important;padding:10px 0 0 16px!important}.simplify-giftPanel .treasure-box .box-icon{width:24px!important;height:24px!important;background-position:0 -2.5px!important}.simplify-giftPanel .treasure-box .box-icon.open{background-position:0 -1px!important}.simplify-giftPanel .treasure-box .count-down{margin-left:12px!important;padding:4px 8px!important;max-width:unset!important}.simplify-giftPanel .treasure-box .awarding-panel{bottom:42px!important}.simplify-giftPanel .gift-control-panel .right-part{height:48px!important;display:flex!important;justify-content:flex-end!important}.simplify-giftPanel .gift-control-panel .right-part>.dp-table-cell{display:flex!important;align-items:center!important}.simplify-giftPanel .gift-control-panel .right-part>.dp-table-cell .supporting-info{transform:translateY(-2px)!important}.simplify-skin #gift-control-vm,.simplify-skin #head-info-vm,.simplify-skin #rank-list-ctnr-box{background-image:none!important}.simplify-guard .guard-danmaku::before{border-image:none!important;background-color:transparent!important}.simplify-guard .guard-danmaku::before .guard-danmaku{margin:0!important;padding:4px 5px!important}.simplify-guard .guard-danmaku::before .guard-danmaku::after{background-image:none!important}.simplify-guard [class*=guard-level-]{padding:0!important;margin:0!important}.simplify-guard [class*=guard-level-]::after{display:none!important}.simplify-liveroom-settings>ul>li{padding:8px 12px;display:flex;align-items:center}.simplify-liveroom-settings>ul>li:hover{background:rgba(0,0,0,.16)}.round-corner .simplify-liveroom-settings>ul>li{border-radius:var(--corner-radius)}`; onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/simplify-liveroom.min.js"] = (()=>{return(e,i)=>{const s={vip:"老爷图标",fansMedal:"粉丝勋章",title:"活动头衔",userLevel:"用户等级",guard:"舰长图标",systemMessage:"全区广播",welcomeMessage:"欢迎信息",giftMessage:"礼物弹幕",guardPurchase:"上舰提示",giftPanel:"付费礼物",eventsBanner:"活动横幅",popup:"抽奖提示",skin:"房间皮肤"};class t{constructor(i,s){this.skinDisabled=e.simplifyLiveroomSettings.skin;this.skinSelectors=i;this.skinClass=s;i.forEach(e=>{SpinQuery.select(e,i=>{Observer.attributes(e,e=>{e.forEach(e=>{if(e.attributeName==="class"){if(this.skinDisabled&&i.classList.contains(s)){i.classList.remove(s)}else if(!this.skinDisabled&&!i.classList.contains(s)){i.classList.add(s)}}})})})})}setSkin(e){this.skinDisabled=!e;this.skinSelectors.forEach(i=>{SpinQuery.select(i,i=>i.classList[e?"add":"remove"](this.skinClass))})}}const n=[new t(["#head-info-vm","#gift-control-vm","#rank-list-vm","#rank-list-ctnr-box",".gift-panel.base-panel",".gift-panel.extend-panel",".seeds-wrap>div:first-child",".gift-section>div:last-child",".z-gift-package>div>div",".right-action"],"live-skin-coloration-area"),new t([".rank-list-ctnr .tabs"],"isHundred"),new t([".rank-list-ctnr .tab-content > div"],"hundred")];const a=(e,i)=>{document.body.classList[e?"add":"remove"](`simplify-${i}`);if(i==="skin"){n.forEach(i=>i.setSkin(!e))}};const c=()=>document.URL.startsWith(`https://live.bilibili.com/`);if(c()){Object.keys(s).forEach(i=>{const s=e.simplifyLiveroomSettings[i];a(s,i)})}return{widget:{condition:c,content:`\n
    \n\n简化直播间\n\n
    \n`,success:()=>{const i=document.querySelector("#simplify-liveroom");const t=document.querySelector(".gui-settings-mask");i.addEventListener("click",e=>{const i=document.querySelector(".simplify-liveroom-settings");if(i.contains(e.target)||e.target===i){return}i.classList.toggle("opened")});i.addEventListener("mouseenter",()=>t.classList.add("transparent"));i.addEventListener("mouseleave",()=>t.classList.remove("transparent"));new Vue({el:".simplify-liveroom-settings",data:{items:Object.entries(s).map(([i,s])=>{const t=e.simplifyLiveroomSettings[i];a(t,i);return{key:i,name:s,checked:t}})},methods:{itemClick(i){i.checked=!i.checked;a(i.checked,i.key);e.simplifyLiveroomSettings=Object.assign(e.simplifyLiveroomSettings,{[i.key]:i.checked})}}})}}}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/skip-charge-list.min.css"] = `.bilibili-player .bilibili-player-area .bilibili-player-electric-panel{display:none!important}`; onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/skip-charge-list.min.js"] = (()=>{return(e,i)=>{async function n(){const e=await SpinQuery.select(()=>document.querySelector("video"));e&&e.addEventListener("ended",async()=>{const e=await SpinQuery.select(()=>document.querySelector(".bilibili-player-electric-panel-jump"));e&&e.click()})}if(Observer.videoChange){Observer.videoChange(n)}else{Observer.childList("#bofqi",n)}}})(); diff --git a/bilibili-evolved.user.js b/bilibili-evolved.user.js index 851ce1851..1f0781f8b 100644 --- a/bilibili-evolved.user.js +++ b/bilibili-evolved.user.js @@ -1055,7 +1055,7 @@ onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/mi onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/custom-navbar.min.html"] = `

    顶栏布局

    边缘间距: 设定两侧边缘处的间距, 单位为百分比, 100%为整个顶栏的宽度. 允许设置的范围为 0% ~ 40%
    {{boundsPadding}}%
    顺序与显示: 在左侧的条状图标上拖动可以改变它们的顺序, 或者按住名字一会再拖动也可以调顺序. 点击右侧的眼睛图标可以显示/隐藏它们.
    `; onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/custom-navbar.min.js"] = (()=>{return(i,t)=>{if(isIframe()){return}document.body.style.setProperty("--navbar-bounds-padding",`0 ${i.customNavbarBoundsPadding}%`);document.body.style.setProperty("--navbar-blur-opacity",i.customNavbarBlurOpacity||.7);addSettingsListener("customNavbarBlurOpacity",i=>{document.body.style.setProperty("--navbar-blur-opacity",i)});let e=true;const a={widget:{content:`\n
    \n\n顶栏布局\n
    `,condition:()=>e,success:async()=>{await SpinQuery.select(".custom-navbar-settings");await t.importAsync("slip");const{debounce:e}=await t.importAsync("debounce");const a=document.querySelector("#custom-navbar-settings");a.addEventListener("click",async()=>{const i=dq(".custom-navbar-settings");if(i){i.classList.toggle("show");document.querySelector(".gui-settings-mask").click()}});a.addEventListener("mouseover",()=>{const t={blank1:"弹性空白1",logo:"Logo",category:"主站",rankingLink:"排行",drawingLink:"相簿",musicLink:"音频",gamesIframe:"游戏中心",livesIframe:"直播",shopLink:"会员购",mangaLink:"漫画",blank2:"弹性空白2",search:"搜索框",userInfo:"用户信息",messages:"消息",activities:"动态",bangumi:"订阅",watchlaterList:"稍后再看",favoritesList:"收藏",historyList:"历史",upload:"投稿入口",blank3:"弹性空白3"};Vue.component("order-item",{props:["item"],template:`\n
  • \n\n{{item.displayName}}\n\n
  • \n`,methods:{hidden(){return i.customNavbarHidden.includes(this.item.name)},viewBorder(i){const t=document.querySelector(`.custom-navbar li[data-name='${this.item.name}']`);if(t!==null){t.classList[i?"add":"remove"]("view-border")}},toggleHidden(){const t=this.hidden();if(t===false){i.customNavbarHidden.push(this.item.name);i.customNavbarHidden=i.customNavbarHidden}else{const t=i.customNavbarHidden.indexOf(this.item.name);if(t===-1){return}i.customNavbarHidden.splice(t,1);i.customNavbarHidden=i.customNavbarHidden}this.$forceUpdate();const e=document.querySelector(`.custom-navbar li[data-name='${this.item.name}']`);if(e!==null){e.style.display=t?"flex":"none"}}}});const a=e(t=>{i.customNavbarBoundsPadding=t;document.body.style.setProperty("--navbar-bounds-padding",`0 ${t}%`)},200);new Vue({el:".custom-navbar-settings",mounted(){const t=document.querySelector(".custom-navbar-settings .order-list");const e=({sourceItem:e,targetItem:a,orderBefore:s,orderAfter:n})=>{if(s===n){return}const l=Object.entries(i.customNavbarOrder).filter(([i])=>i in customNavbarDefaultOrders);const o=l.sort((i,t)=>i[1]-t[1]).map(i=>i[0]);if(s=n;t--){const e=o[t];i.customNavbarOrder[e]=t+1;document.querySelector(`.custom-navbar li[data-name='${e}']`).style.order=t+1}}i.customNavbarOrder[o[s]]=n;document.querySelector(`.custom-navbar li[data-name='${o[s]}']`).style.order=n;i.customNavbarOrder=i.customNavbarOrder;t.insertBefore(e,a)};new Slip(t);t.addEventListener("slip:beforewait",i=>{if(i.target.classList.contains("mdi-menu")){i.preventDefault()}},false);t.addEventListener("slip:beforeswipe",i=>i.preventDefault(),false);t.addEventListener("slip:reorder",i=>{e({sourceItem:i.target,targetItem:i.detail.insertBefore,orderBefore:i.detail.originalIndex,orderAfter:i.detail.spliceIndex});return false},false)},computed:{orderList(){const e=Object.entries(i.customNavbarOrder);return e.filter(i=>i[0]in t).sort((i,t)=>i[1]-t[1]).map(i=>{return{displayName:t[i[0]],name:i[0],order:i[1]}})}},data:{boundsPadding:i.customNavbarBoundsPadding},watch:{boundsPadding(i){a(i)}},methods:{close(){document.querySelector(".custom-navbar-settings").classList.remove("show")},restoreDefault(){if(typeof customNavbarDefaultOrders==="undefined"){Toast.error("未找到默认值设定, 请更新您的脚本.");return}if(confirm("确定要恢复默认顶栏布局吗? 恢复后页面将刷新.")){this.boundsPadding=5;i.customNavbarOrder=customNavbarDefaultOrders;location.reload()}}}})},{once:true})}},unload:()=>{const i=document.querySelectorAll(".custom-navbar,.custom-navbar-settings");i.forEach(i=>i.style.display="none");t.removeStyle("customNavbarStyle")},reload:()=>{const i=document.querySelectorAll(".custom-navbar,.custom-navbar-settings");i.forEach(i=>i.style.display="flex");t.applyImportantStyle("customNavbarStyle")}};const s=(i,t,e)=>{e.classList[t?"add":"remove"](i)};const n=i=>{document.querySelector(".custom-navbar").classList[i?"add":"remove"]("dark");document.querySelector(".custom-navbar-settings").classList[i?"add":"remove"]("dark")};addSettingsListener("allNavbarFill",i=>s("all-navbar-fill",i,document.body));s("all-navbar-fill",i.allNavbarFill,document.body);const l=["//www.bilibili.com","//t.bilibili.com","//search.bilibili.com","//space.bilibili.com","//account.bilibili.com","//pay.bilibili.com","//member.bilibili.com","//big.bilibili.com","//message.bilibili.com","//app.bilibili.com","//passport.bilibili.com","//game.bilibili.com","//live.bilibili.com/blackboard/"];const o=["//t.bilibili.com/lottery/h5/index/#/result","//member.bilibili.com/video/upload","//space.bilibili.com/ajax/","//www.bilibili.com/h5/comment/"];if(!l.some(i=>document.URL.includes(i))||o.some(i=>document.URL.includes(i))){e=false;return a}document.body.classList.add("custom-navbar-loading");let c={};let r={};let d;class m{constructor(){this.html=``;this.popupHtml=``;this.flex=`0 0 auto`;this.disabled=false;this.requestedPopup=false;this.initialPopup=null;this.onPopup=null;this.href=null;this.notifyCount=0;this.touch=i.touchNavBar;this.active=false}get name(){return"undefined"}get order(){return i.customNavbarOrder[this.name]}get hidden(){return i.customNavbarHidden.includes(this.name)}async setNotifyCount(i){const t=await SpinQuery.select(`.custom-navbar li[data-name='${this.name}'] .notify-count`);if(!t||!i){t.innerHTML="";return}t.innerHTML=i}}class u extends m{constructor(i){super();this.number=i;this.flex="1 0 auto";this.disabled=true}get name(){return"blank"+this.number}}class p extends m{constructor(){super();this.getLogo();this.href=`https://www.bilibili.com/`;this.touch=false;addSettingsListener("customNavbarSeasonLogo",()=>this.getLogo())}async getLogo(){if(i.customNavbarSeasonLogo){const i=await Ajax.getJson("https://api.bilibili.com/x/web-show/res/locs?pf=0&ids=142");if(i.code===0){this.html=``;return}}this.html=``}get name(){return"logo"}}class b extends m{constructor(i,t,e){super();this.linkName=e;this.html=i;this.href=t;this.touch=false;this.active=document.URL.startsWith(t)}get name(){return this.linkName+"Link"}}class h extends m{constructor(){super();this.href="https://member.bilibili.com/v2#/upload/video/frame";this.html=`\n\n\n\n
    投稿
    `;this.popupHtml=`\n\n`}get name(){return"upload"}}class v extends m{constructor(){super();this.href="https://message.bilibili.com/";this.html="消息";this.popupHtml=`\n\n`;this.requestedPopup=true;this.active=document.URL.startsWith("https://message.bilibili.com/");this.init()}get name(){return"messages"}async init(){const i=await Ajax.getJsonWithCredentials("https://message.bilibili.com/api/notify/query.notify.count.do");const t=await SpinQuery.select("#message-list");const e=[...t.querySelectorAll("a[data-name]")];const a=e.map(i=>i.getAttribute("data-name"));if(i.code!==0){return}let s=a.reduce((t,e)=>t+i.data[e],0);if(!s){return}await this.setNotifyCount(s);a.forEach((t,a)=>{const s=i.data[t];if(s>0){e[a].setAttribute("data-count",s)}else{e[a].removeAttribute("data-count")}});e.forEach(i=>{i.addEventListener("click",()=>{const t=i.getAttribute("data-count");i.removeAttribute("data-count");s-=t;this.setNotifyCount(s)})})}}class w extends m{constructor(){super();this.html=`主站`;this.popupHtml=`\n\n`;const i=async()=>{const i=await Ajax.getJson("https://api.bilibili.com/x/web-interface/online");if(parseInt(i.code)!==0){throw new Error(`[自定义顶栏] 分区投稿信息获取失败: ${i.message}`)}const t=i.data.region_count;await SpinQuery.select("#custom-navbar-home-popup");return{"动画":{icon:"douga",count:t[1],link:`https://www.bilibili.com/v/douga/`,subRegions:{"MAD·AMV":`https://www.bilibili.com/v/douga/mad/`,"MMD·3D":`https://www.bilibili.com/v/douga/mmd/`,"短片·手书·配音":`https://www.bilibili.com/v/douga/voice/`,"综合":`https://www.bilibili.com/v/douga/other/`}},"番剧":{icon:"anime",count:t[13],link:`https://www.bilibili.com/anime/`,subRegions:{"连载动画":`https://www.bilibili.com/v/anime/serial/`,"完结动画":`https://www.bilibili.com/v/anime/finish/`,"资讯":`https://www.bilibili.com/v/anime/information/`,"官方延伸":`https://www.bilibili.com/v/anime/offical/`,"新番时间表":`https://www.bilibili.com/anime/timeline/`}},"国创":{icon:"guochuang",count:t[167],link:`https://www.bilibili.com/guochuang/`,subRegions:{"国产动画":`https://www.bilibili.com/v/guochuang/chinese/`,"国产原创相关":`https://www.bilibili.com/v/guochuang/original/`,"布袋戏":`https://www.bilibili.com/v/guochuang/puppetry/`,"资讯":`https://www.bilibili.com/v/guochuang/information/`,"新番时间表":`https://www.bilibili.com/guochuang/timeline/`,"国产动画索引":`https://www.bilibili.com/guochuang/index/`}},"音乐":{icon:"music",count:t[3],link:`https://www.bilibili.com/v/music/`,subRegions:{"原创音乐":"https://www.bilibili.com/v/music/original/","翻唱":"https://www.bilibili.com/v/music/cover/","VOCALOID·UTAU":"https://www.bilibili.com/v/music/vocaloid/","电音":"https://www.bilibili.com/v/music/electronic/","演奏":"https://www.bilibili.com/v/music/perform/",MV:"https://www.bilibili.com/v/music/mv/","音乐现场":"https://www.bilibili.com/v/music/live/","音乐综合":"https://www.bilibili.com/v/music/other/","音频":"https://www.bilibili.com/audio/home?musicType=music"}},"舞蹈":{icon:"dance",count:t[129],link:`https://www.bilibili.com/v/dance/`,subRegions:{"宅舞":"https://www.bilibili.com/v/dance/otaku/","三次元舞蹈":"https://www.bilibili.com/v/dance/three_d/","舞蹈教程":"https://www.bilibili.com/v/dance/demo/"}},"游戏":{icon:"game",count:t[4],link:`https://www.bilibili.com/v/game/`,subRegions:{"单机游戏":"https://www.bilibili.com/v/game/stand_alone/","电子竞技":"https://www.bilibili.com/v/game/esports/","手机游戏":"https://www.bilibili.com/v/game/mobile/","网络游戏":"https://www.bilibili.com/v/game/online/","桌游棋牌":"https://www.bilibili.com/v/game/board/",GMV:"https://www.bilibili.com/v/game/gmv/","音游":"https://www.bilibili.com/v/game/music/",Mugen:"https://www.bilibili.com/v/game/mugen/","游戏赛事":"https://www.bilibili.com/v/game/match/"}},"科技":{icon:"technology",count:t[36],link:`https://www.bilibili.com/v/technology/`,subRegions:{"趣味科普人文":"https://www.bilibili.com/v/technology/fun/","野生技术协会":"https://www.bilibili.com/v/technology/wild/","演讲·公开课":"https://www.bilibili.com/v/technology/speech_course/","星海":"https://www.bilibili.com/v/technology/military/","机械":"https://www.bilibili.com/v/technology/mechanical/","汽车":"https://www.bilibili.com/v/technology/automobile/"}},"数码":{icon:"digital",count:t[188],link:`https://www.bilibili.com/v/digital/`,subRegions:{"手机平板":"https://www.bilibili.com/v/digital/mobile/","电脑装机":"https://www.bilibili.com/v/digital/pc/","摄影摄像":"https://www.bilibili.com/v/digital/photography/","影音智能":"https://www.bilibili.com/v/digital/intelligence_av/"}},"生活":{icon:"life",count:t[160],link:`https://www.bilibili.com/v/life/`,subRegions:{"搞笑":"https://www.bilibili.com/v/life/funny/","日常":"https://www.bilibili.com/v/life/daily/","美食圈":"https://www.bilibili.com/v/life/food/","动物圈":"https://www.bilibili.com/v/life/animal/","手工":"https://www.bilibili.com/v/life/handmake/","绘画":"https://www.bilibili.com/v/life/painting/","运动":"https://www.bilibili.com/v/life/sports/","其他":"https://www.bilibili.com/v/life/other/"}},"鬼畜":{icon:"kichiku",count:t[119],link:`https://www.bilibili.com/v/kichiku/`,subRegions:{"鬼畜调教":"https://www.bilibili.com/v/kichiku/guide/","音MAD":"https://www.bilibili.com/v/kichiku/mad/","人力VOCALOID":"https://www.bilibili.com/v/kichiku/manual_vocaloid/","教程演示":"https://www.bilibili.com/v/kichiku/course/"}},"时尚":{icon:"fashion",count:t[155],link:`https://www.bilibili.com/v/fashion/`,subRegions:{"美妆":"https://www.bilibili.com/v/fashion/makeup/","服饰":"https://www.bilibili.com/v/fashion/clothing/","健身":"https://www.bilibili.com/v/fashion/aerobics/","T台":"https://www.bilibili.com/v/fashion/catwalk/","风尚标":"https://www.bilibili.com/v/fashion/trends/"}},"广告":{icon:"ad",count:t[165],link:`https://www.bilibili.com/v/ad/ad/`},"娱乐":{icon:"ent",count:t[5],link:`https://www.bilibili.com/v/ent/`,subRegions:{"综艺":"https://www.bilibili.com/v/ent/variety/","明星":"https://www.bilibili.com/v/ent/star/","Korea相关":"https://www.bilibili.com/v/ent/korea/"}},"影视":{icon:"cinephile",count:t[181],link:`https://www.bilibili.com/v/cinephile/`,subRegions:{"影视杂谈":"https://www.bilibili.com/v/cinephile/cinecism/","影视剪辑":"https://www.bilibili.com/v/cinephile/montage/","短片":"https://www.bilibili.com/v/cinephile/shortfilm/","预告·资讯":"https://www.bilibili.com/v/cinephile/trailer_info/","特摄":"https://www.bilibili.com/v/cinephile/tokusatsu/"}},"放映厅":{icon:"cinema",count:t[177]+t[23]+t[11],link:`https://www.bilibili.com/cinema/`,subRegions:{"纪录片":"https://www.bilibili.com/documentary/","电影":"https://www.bilibili.com/movie/","电视剧":"https://www.bilibili.com/tv/"}},"专栏":{icon:"read",count:``,link:`https://www.bilibili.com/read/home`},"直播":{icon:"zhibo",count:``,link:`https://live.bilibili.com`,subRegions:{"全部直播":"https://live.bilibili.com/all?visit_id=5icxsa0kmts0","游戏直播":"https://live.bilibili.com/p/eden/area-tags?parentAreaId=2&areaId=0&visit_id=5icxsa0kmts0#/2/0","手游直播":"https://live.bilibili.com/p/eden/area-tags?parentAreaId=3&areaId=0&visit_id=5icxsa0kmts0#/3/0","娱乐直播":"https://live.bilibili.com/p/eden/area-tags?parentAreaId=1&areaId=0&visit_id=5icxsa0kmts0#/1/0","电台直播":"https://live.bilibili.com/p/eden/area-tags?parentAreaId=5&areaId=0&visit_id=5icxsa0kmts0#/5/0","绘画直播":"https://live.bilibili.com/p/eden/area-tags?parentAreaId=4&areaId=0&visit_id=5icxsa0kmts0#/4/0"}},"小黑屋":{icon:"blackroom",count:``,link:`https://www.bilibili.com/blackroom/`},"话题":{icon:"topic",count:``,link:`https://www.bilibili.com/blackboard/topic_list.html`},"活动":{icon:"activit",count:``,link:`https://www.bilibili.com/blackboard/x/act_list`}}};this.initialPopup=(async()=>{new Vue({el:await SpinQuery.select("#custom-navbar-home-popup"),data:{info:[],loading:true},async mounted(){try{this.info=Object.entries(await i())}finally{this.loading=false}}})})}get name(){return"category"}}class g extends m{constructor(){super();this.noPadding=true;this.href="https://space.bilibili.com";this.html=`\n
    \n\n\n
    \n`;this.popupHtml=`\n\n`;this.requestedPopup=true;this.init()}get name(){return"userInfo"}async init(){const i=await SpinQuery.select(".custom-navbar .user-info-panel");new Vue({el:i,data:{...c},computed:{userType(){if(!this.isLogin){return"未登录"}if(this.level_info.current_level===0){return"注册会员"}if(this.vipStatus===1){if(this.vipType===1){return this.vip_theme_type?"小会员":"大会员"}else if(this.vipType===2){return this.vip_theme_type?"年度小会员":"年度大会员"}}return"正式会员"},levelProgressStyle(){const i=(this.level_info.current_exp-this.level_info.current_min)/(this.level_info.next_exp-this.level_info.current_min);return{transform:`scaleX(${i})`}}}});const t=await SpinQuery.select(".custom-navbar .user-face-container .user-face");if(c.isLogin){const i=c.face.replace("http","https");const e=68;const a=[1,1.25,1.5,1.75,2,2.25,2.5,2.75,3,3.25,3.5,3.75,4];t.setAttribute("srcset",a.map(t=>{return`${i}@${parseInt(e*t)}w_${parseInt(e*t)}h.jpg ${t}x`}).join(","));if(c.pendant.image){const i=await SpinQuery.select(".custom-navbar .user-face-container .user-pendant");const t=c.pendant.image.replace("http","https");const e=116;i.setAttribute("srcset",a.reduce((i,a)=>{return i+`, ${t}@${parseInt(e*a)}w_${parseInt(e*a)}h.png ${a}x`},""))}}else{t.setAttribute("src","https://static.hdslb.com/images/akari.jpg")}}}class f extends m{constructor(){super();this.disabled=true;this.html=`\n\n\n`;this.init()}async init(){const e=await SpinQuery.select("#custom-navbar-search");const a=e.querySelector("input[name='keyword']");e.addEventListener("submit",t=>{if(a.value===""){if(!i.hideTopSearch){e.querySelector(".recommended-target").click()}t.preventDefault();return false}const s=i.searchHistory.find(i=>i.keyword===a.value);if(s){s.count++}else{i.searchHistory.push({count:1,keyword:a.value})}i.searchHistory=i.searchHistory;return true});if(!i.hideTopSearch){const i=await Ajax.getJson("https://api.bilibili.com/x/web-interface/search/default");if(i.code===0){a.setAttribute("placeholder",i.data.show_name);let t;if(i.data.url!==""){t=i.data.url}else if(i.data.name.startsWith("av")){t=`https://www.bilibili.com/${i.data.name}`}else{t=`https://search.bilibili.com/all?keyword=${i.data.name}`}e.querySelector(".recommended-target").setAttribute("href",t)}else{console.error("[自定义顶栏] 获取搜索推荐词失败")}}const s=new Vue({el:dq(".popup.search-list"),data:{items:[],isHistory:true},methods:{submit(i){a.value=i;e.submit();raiseEvent(e,"submit")},nextItem(i){const t=dq(`.custom-navbar .search-list-item:nth-child(${i+2})`);if(t){t.focus()}},previousItem(i){const t=dq(`.custom-navbar .search-list-item:nth-child(${i})`);if(t){t.focus()}else{a.focus();return}},deleteItem(t,e){i.searchHistory.splice(i.searchHistory.findIndex(i=>i.keyword===t.value),1);i.searchHistory=i.searchHistory;this.items.splice(e,1)},clearSearchHistory(){i.searchHistory=[];this.items=[]}}});const{debounce:n}=await t.importAsync("debounce");let l="";const o=async()=>{const t=a.value;s.isHistory=t==="";if(s.isHistory){s.items=i.searchHistory.sort((i,t)=>t.count-i.count).map(i=>{return{value:i.keyword,html:i.keyword}}).slice(0,10)}else{const i=`https://s.search.bilibili.com/main/suggest?func=suggest&suggest_type=accurate&sub_type=tag&main_ver=v1&highlight=&userid=${c.mid}&bangumi_acc_num=1&special_acc_num=1&topic_acc_num=1&upuser_acc_num=3&tag_num=10&special_num=10&bangumi_num=10&upuser_num=3&term=${t}`;l=i;const e=await Ajax.getJson(i);if(e.code!==0||l!==i){return}const a=e.result.tag;if(a===undefined){s.items=[];return}s.items=a.map(i=>{return{value:i.value,html:i.name.replace(/suggest_high_light/g,"suggest-highlight")}})}};o();const r=n(o,200);let d=false;a.addEventListener("compositionstart",()=>d=true);a.addEventListener("compositionend",()=>{d=false;raiseEvent(a,"input")});a.addEventListener("input",()=>{if(!d){r()}});a.addEventListener("keydown",i=>{if(i.key==="ArrowDown"&&s.items.length>0){i.preventDefault();dq(".custom-navbar .search-list-item:first-child").focus()}})}get name(){return"search"}}class y extends m{constructor(i,t,{src:e,width:a,height:s,lazy:n,iframeName:l}){super();this.iframeName=l;this.html=i;this.href=t;this.popupHtml=`\n\n`;this.noPadding=true;this.requestedPopup=n?false:true;this.touch=false;this.transparent=true}get name(){return this.iframeName+"Iframe"}}class _ extends y{constructor(...t){super(...t);this.touch=i.touchNavBar;this.getNotifyCount()}getApiUrl(){return null}getCount(){return 0}async getNotifyCount(){const i=await SpinQuery.select(`.custom-navbar li[data-name='${this.name}'] .notify-count`);const t=await Ajax.getJsonWithCredentials(this.getApiUrl());const e=this.getCount(t);if(t.code===0&&e){i.innerHTML=e;this.initialPopup=(()=>{i.innerHTML=""})}}}let k=()=>{};let x=()=>{};const $=({dataObject:i,apiUrl:e,name:a,handleJson:s,template:n})=>{return{template:n,components:{"dpi-img":()=>t.importAsync("dpi-img.vue")},methods:{handleJson:s,async fetchData(i=false){try{const t=await Ajax.getJsonWithCredentials(e);if(t.code!==0){throw new Error(t.message)}await this.handleJson(t)}catch(t){if(i===true){return}logError(`加载${a}动态失败, error = ${t}`)}finally{this.loading=false}}},data(){return Object.assign({loading:true},i)},mounted(){this.fetchData();k=(async()=>await this.fetchData(true))},destroyed(){k=(()=>{})}}};class L extends m{constructor(){super();this.noPadding=true;this.href=i.oldTweets?"https://www.bilibili.com/account/dynamic":"https://t.bilibili.com/";this.html="动态";this.popupHtml=`\n
    \n\n
    \n\n\n\n\x3c!-- 查看更多 --\x3e\n
    \n
    \n`;this.active=document.URL.replace(/\?.*$/,"")==="https://t.bilibili.com/";this.initialPopup=(()=>{this.init()});this.onPopup=(()=>{this.setNotifyCount(0)});this.getNotifyCount();setInterval(async()=>{await this.getNotifyCount();await x();await k()},L.updateInterval)}static get updateInterval(){return 5*60*1e3}static getLatestID(){return document.cookie.replace(new RegExp(`(?:(?:^|.*;\\s*)bp_t_offset_${c.mid}\\s*\\=\\s*([^;]*).*$)|^.*$`),"$1")}static setLatestID(i){const t=L.getLatestID();if(L.compareID(i,t)<0){return}document.cookie=`bp_t_offset_${c.mid}=${i};path=/;domain=.bilibili.com;max-age=${60*60*24*30}`}static compareID(i,t){if(i===t){return 0}if(i.length>t.length){return 1}if(t.length>i.length){return-1}return i>t===true?1:-1}static isNewID(i){return L.compareID(i,d)>0}static updateLatestID(i){const[t]=[...i.map(i=>i.id)].sort(L.compareID).reverse();L.setLatestID(t)}async getNotifyCount(){const i=`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_num?rsp_type=1&uid=${c.mid}&update_num_dy_id=${L.getLatestID()}&type_list=8,64,512`;const t=await Ajax.getJsonWithCredentials(i);if(t.code!==0){return}this.setNotifyCount(t.data.update_num)}async init(){Vue.component("activity-loading",{template:`\n
    \n加载中...\n
    `,props:["loading"]});Vue.component("activity-empty",{template:`\n
    空空如也哦 = ̄ω ̄=
    `});this.popupVM=new Vue({el:await SpinQuery.select(".activity-popup"),data:{tabs:[{name:"视频",component:"video-activity",moreUrl:"https://t.bilibili.com/?tab=8",get notifyApi(){return`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_num?rsp_type=1&uid=${c.mid}&update_num_dy_id=${L.getLatestID()}&type_list=8`},notifyCount:null},{name:"番剧",component:"bangumi-activity",moreUrl:"https://t.bilibili.com/?tab=512",get notifyApi(){return`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_num?rsp_type=1&uid=${c.mid}&update_num_dy_id=${L.getLatestID()}&type_list=512`},notifyCount:null},{name:"专栏",component:"column-activity",moreUrl:"https://t.bilibili.com/?tab=64",get notifyApi(){return`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_num?rsp_type=1&uid=${c.mid}&update_num_dy_id=${L.getLatestID()}&type_list=64`},notifyCount:null},{name:"直播",component:"live-activity",moreUrl:"https://link.bilibili.com/p/center/index#/user-center/follow/1",notifyCount:null}],selectedTab:"视频"},components:{"activity-tabs":{props:["items","tab"],template:`\n\n`,methods:{changeTab(i){if(this.tab===i.name){window.open(i.moreUrl,"_blank")}this.$emit("update:tab",i.name)}}},"video-activity":Object.assign($({dataObject:{leftCards:[],rightCards:[]},apiUrl:`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=${c.mid}&type_list=8`,name:"视频",template:`\n
    \n\n\n
    \n\n
    \n
    \n\n
    \n
    \n`,handleJson:async function(i){const{getWatchlaterList:e}=await t.importAsync("watchlater-api");const a=await e();const s=i.data.cards.map(i=>{const t=JSON.parse(i.card);return{coverUrl:t.pic,title:t.title,timeNumber:t.duration,time:formatDuration(t.duration),description:t.desc,aid:t.aid,videoUrl:`https://www.bilibili.com/av${t.aid}`,faceUrl:i.desc.user_profile.info.face,upName:i.desc.user_profile.info.uname,upUrl:`https://space.bilibili.com/${i.desc.user_profile.info.uid}`,id:i.desc.dynamic_id_str,watchlater:a.includes(t.aid),get new(){return L.isNewID(this.id)}}});this.leftCards=s.filter((i,t)=>t%2===0);this.rightCards=s.filter((i,t)=>t%2===1);if(this.leftCards.length!==this.rightCards.length){this.leftCards.pop()}L.updateLatestID(s)}}),{components:{"video-card":{props:["card","watchlaterInit"],data(){return{watchlater:this.watchlaterInit}},components:{"dpi-img":()=>t.importAsync("dpi-img.vue")},methods:{async toggleWatchlater(){try{this.watchlater=!this.watchlater;const{toggleWatchlater:i}=await t.importAsync("watchlater-api");await i(this.card.aid,this.watchlater)}catch(i){logError(i);this.watchlater=!this.watchlater}}},async mounted(){await t.importAsync("watchlater-api")},template:`\n\n
    \n\n
    {{card.time}}
    \n
    {{watchlater ? '已添加' : '稍后再看'}}
    \n
    \n

    {{card.title}}

    \n
    \n\n{{card.upName}}\n\n\n`}}}),"bangumi-activity":$({dataObject:{cards:[]},apiUrl:`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=${c.mid}&type_list=512`,name:"番剧",template:`\n\n`,handleJson:async function(i){this.cards=i.data.cards.map(i=>{const t=JSON.parse(i.card);return{title:t.apiSeasonInfo.title,coverUrl:t.apiSeasonInfo.cover,epCoverUrl:t.cover,epTitle:t.new_desc,url:t.url,id:i.desc.dynamic_id_str,get new(){return L.isNewID(this.id)}}});L.updateLatestID(this.cards)}}),"column-activity":$({dataObject:{cards:[]},apiUrl:`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=${c.mid}&type_list=64`,name:"专栏",template:`\n
    \n\n\n\n\n

    {{card.title}}

    \n
    {{card.description}}
    \n\n
    \n`,handleJson:async function(i){this.cards=i.data.cards.map(i=>{const t=JSON.parse(i.card);return{covers:t.image_urls,originalCovers:t.origin_image_urls,upName:t.author.name,faceUrl:t.author.face,upUrl:`https://space.bilibili.com/${t.author.mid}`,title:t.title,description:t.summary,url:`https://www.bilibili.com/read/cv${t.id}`,id:i.desc.dynamic_id_str,get new(){return L.isNewID(this.id)}}});L.updateLatestID(this.cards)}}),"live-activity":$({dataObject:{cards:[]},apiUrl:`https://api.live.bilibili.com/relation/v1/feed/feed_list?page=1&pagesize=24`,name:"直播",template:`\n\n`,handleJson:async function(i){this.cards=i.data.list.map(i=>{return{faceUrl:i.face,title:i.title,name:i.uname,id:i.roomid,url:i.link}})}})},computed:{content(){return this.tabs.find(i=>i.name===this.selectedTab).component},viewMoreUrl(){return this.tabs.find(i=>i.name===this.selectedTab).moreUrl}},mounted(){x=(async()=>{for(const i of this.tabs){if(i.notifyApi){const t=await Ajax.getJsonWithCredentials(i.notifyApi);if(t.code!==0||!t.data.update_num||this.selectedTab===i.name){continue}i.notifyCount=t.data.update_num}}});x()},destroyed(){x=(()=>{})},watch:{selectedTab(i){this.tabs.find(t=>t.name===i).notifyCount=null}}})}get name(){return"activities"}}class N extends m{constructor({mainUrl:i,name:t,apiUrl:e,listName:a,listMap:s}){super();this.href=i;this.listName=a;this.html=t;this.noPadding=true;this.requestedPopup=false;this.popupHtml=`\n
      \n
    1. 加载中...
    2. \n
    \n`;this.initialPopup=(async()=>{if(!s){return}const n=await SpinQuery.select(`.video-list.${a}`);if(n===null){return}const l=await Ajax.getJsonWithCredentials(e);let o="";if(l.code!==0){logError(`加载${t}信息失败. 错误码: ${l.code} ${l.message}`)}else{o=s(l).join("")}n.insertAdjacentHTML("beforeend",o+`\n
  • 查看更多
  • \n`);n.classList.add("loaded")})}get name(){return this.listName+"List"}}class C extends N{constructor(){super({name:"稍后再看",mainUrl:"https://www.bilibili.com/watchlater/#/list",apiUrl:"https://api.bilibili.com/x/v2/history/toview/web",listName:"watchlater",listMap:t=>{if(!t.data.list){return[`
  • 空空如也哦 = ̄ω ̄=
  • `]}return t.data.list.slice(0,6).map(t=>{const e=(()=>{if(t.pages===undefined){return i.watchLaterRedirect?`https://www.bilibili.com/video/av${t.aid}`:`https://www.bilibili.com/watchlater/#/av${t.aid}`}const e=t.pages.map(i=>i.cid);const a=t.cid===0?1:e.indexOf(t.cid)+1;return i.watchLaterRedirect?`https://www.bilibili.com/video/av${t.aid}?p=${a}`:`https://www.bilibili.com/watchlater/#/av${t.aid}/p${a}`})();return`
  • ${t.title}
  • `})}});this.active=document.URL.startsWith("https://www.bilibili.com/watchlater/")}}class I extends N{constructor(){super({name:"收藏",mainUrl:`https://space.bilibili.com/${c.mid}/favlist`,apiUrl:"https://api.bilibili.com/medialist/gateway/coll/resource/recent",listName:"favorites",listMap:i=>{if(!i.data||i.data.length===0){return[`
  • 空空如也哦 = ̄ω ̄=
  • `]}return i.data.map(i=>{return`\n
  • \n${i.title}\n
  • `})}});this.active=document.URL.replace(/\?.*$/,"")===`https://space.bilibili.com/${c.mid}/favlist`}}class A extends N{constructor(){super({name:"历史",mainUrl:"https://www.bilibili.com/account/history",apiUrl:"https://api.bilibili.com/x/v2/history?pn=1&ps=6",listName:"history",listMap:i=>{if(!i.data||i.data.length===0){return[`
  • 空空如也哦 = ̄ω ̄=
  • `]}return i.data.map(i=>{let t=[];let e="";const a=i.page?i.page.page:1;let s=i.progress>=0?i.progress/i.duration:1;if(isNaN(s)){s=0}if(a!==1){t.push(`p=${a}`);e+=`看到第${a}话`}if(i.progress>0&&i.progress\n\n${i.title}\n${e}\n
    \n
    \n
    \n
    \n`})}});this.active=document.URL.replace(/\?.*$/,"")==="https://www.bilibili.com/account/history"}}class S extends m{constructor(){super();this.noPadding=true;this.href=`https://space.bilibili.com/${c.mid}/bangumi`;this.html="订阅";this.active=[`https://space.bilibili.com/${c.mid}/bangumi`,`https://space.bilibili.com/${c.mid}/cinema`,`https://space.bilibili.com/${c.mid}/subs`].includes(document.URL.replace(/\?.*$/,""));this.popupHtml=`\n
    \n\n
    \n\n\n\n\n
    \n
    `;this.initialPopup=(()=>{this.init()})}async init(){new Vue({el:await SpinQuery.select(".custom-navbar .subscriptions"),data:{bangumi:true},components:{"bangumi-subscriptions":{props:["type"],components:{"dpi-img":()=>t.importAsync("dpi-img.vue")},template:`\n
    \n
    \n\n加载中...\n
    \n
    空空如也哦 = ̄ω ̄=
    \n\n\n\n\n
    \n`,data(){return{loading:true,cards:[]}},async mounted(){try{const i=await Ajax.getJsonWithCredentials(`https://api.bilibili.com/x/space/bangumi/follow/list?type=${this.type!=="bangumi"?"2":"1"}&pn=1&ps=16&vmid=${c.mid}`);if(i.code!==0){logError(`加载订阅信息失败: ${i.message}`);return}this.cards=i.data.list.map(i=>{return{title:i.title,coverUrl:i.square_cover.replace("http:","https:"),latest:i.new_ep.index_show,progress:i.progress,id:i.season_id,playUrl:`https://www.bilibili.com/bangumi/play/ss${i.season_id}`,mediaUrl:`https://www.bilibili.com/bangumi/media/md${i.media_id}`}})}finally{this.loading=false}}}}})}get name(){return"bangumi"}}(async()=>{const e=await t.importAsync("customNavbarHtml");const a=await Ajax.getJsonWithCredentials("https://api.bilibili.com/x/web-interface/nav");c=a.data;d=L.getLatestID();document.body.insertAdjacentHTML("beforeend",e);addSettingsListener("useDarkStyle",n);n(i.useDarkStyle);["Fill","Shadow","Compact","Blur"].forEach(t=>{addSettingsListener("customNavbar"+t,i=>s(t.toLowerCase(),i,document.querySelector(".custom-navbar")));s(t.toLowerCase(),i["customNavbar"+t],document.querySelector(".custom-navbar"))});SpinQuery.condition(()=>dq("#banner_link,.international-header .bili-banner"),i=>i===null?null:i.style.backgroundImage,i=>{Observer.attributes(i,()=>{const t=document.querySelectorAll(".custom-navbar .blur-layer");t.forEach(t=>{t.style.backgroundImage=i.style.backgroundImage;t.setAttribute("data-image",i.style.backgroundImage)})})});const l=[new u(1),new p,new w,new b("排行","https://www.bilibili.com/ranking","ranking"),new b("相簿","https://h.bilibili.com","drawing"),new b("音频","https://www.bilibili.com/audio/home/","music"),new y("游戏中心","https://game.bilibili.com/",{src:`https://www.bilibili.com/page-proxy/game-nav.html`,width:`680px`,height:`260px`,lazy:true,iframeName:"games"}),new y("直播","https://live.bilibili.com",{src:`https://live.bilibili.com/blackboard/dropdown-menu.html`,width:`528px`,height:`266px`,lazy:true,iframeName:"lives"}),new b("会员购","https://show.bilibili.com","shop"),new b("漫画","https://manga.bilibili.com","manga"),new u(2),new f,new g];if(c.isLogin){l.push(new v,new S,new L,new C,new I,new A)}l.push(new h,new u(3));new Vue({el:".custom-navbar",data:{components:l},methods:{requestPopup(i){if(!i.requestedPopup&&!i.disabled&&!i.active){this.$set(i,`requestedPopup`,true);i.initialPopup&&i.initialPopup()}i.onPopup&&i.onPopup()}},mounted(){document.body.classList.remove("custom-navbar-loading")}})})();return a}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/danmaku-converter.min.js"] = (()=>{return(t,e)=>{class r{constructor({content:t,time:e,type:r,fontSize:i,color:n}){this.content=t;this.time=e;this.startTime=parseFloat(e);this.type=parseInt(r);this.fontSize=parseFloat(i);this.color=parseInt(n)}}class i extends r{constructor({content:t,time:e,type:r,fontSize:i,color:n,timeStamp:a,pool:s,userHash:o,rowId:l}){super({content:t,time:e,type:r,fontSize:i,color:n});this.timeStamp=parseInt(a);this.pool=parseInt(s);this.userHash=o;this.rowId=parseInt(l);this.pDataArray=[e,r,i,n,a,s,o,l]}text(){const t=this.pDataArray.join(",");return`${this.content}`}static parse(t){const e=t.getAttribute("p");const[r,n,a,s,o,l,c,h]=e.split(",");const u=t.innerHTML;return new i({content:u,time:r,type:n,fontSize:a,color:s,timeStamp:o,pool:l,userHash:c,rowId:h})}}class n{constructor(t){this.xml=t;const e=(new DOMParser).parseFromString(t,"application/xml").documentElement;this.danmakus=[...e.querySelectorAll("d[p]")].map(t=>i.parse(t))}}var a;(function(t){t[t["Normal"]=1]="Normal";t[t["Normal2"]=2]="Normal2";t[t["Normal3"]=3]="Normal3";t[t["Bottom"]=4]="Bottom";t[t["Top"]=5]="Top";t[t["Reversed"]=6]="Reversed";t[t["Special"]=7]="Special";t[t["Special2"]=8]="Special2"})(a||(a={}));class s extends r{constructor({content:t,time:e,type:r,fontSize:i,color:n,typeTag:a,colorTag:s,endTime:o}){super({content:t,time:e,type:r,fontSize:i,color:n});this.typeTag=a;this.colorTag=s;this.endTime=o}text(t){let e=t[this.fontSize];if(!e){e=t[25]}const r=t[this.fontSize].match(/Style:(.*?),/)[1].trim();return`Dialogue: 0,${this.time},${this.endTime},${r},,0,0,0,,{${this.typeTag}${this.colorTag}}${this.content}`}}class o{constructor(t,e,r,i,n){this.danmakus=t;this.title=e;this.fontStyles=r;this.blockTypes=i;this.resolution=n}generateAss(){const t=`\n[Script Info]\n; Script generated by Bilibili Evolved Danmaku Converter\n; https://github.com/the1812/Bilibili-Evolved/\nTitle: ${this.title}\nScriptType: v4.00+\nPlayResX: ${this.resolution.x}\nPlayResY: ${this.resolution.y}\nTimer: 10.0000\nWrapStyle: 2\nScaledBorderAndShadow: no\n\n[V4+ Styles]\nFormat: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding\n${Object.values(this.fontStyles).join("\n")}\n\n[Events]\nFormat: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text\n`.trim();return t+"\n"+this.danmakus.map(t=>t.text(this.fontStyles)).filter(t=>t!=="").join("\n")}}class l{constructor(t,e,r,i){this.horizontalStack=[];this.horizontalTrack=[];this.verticalStack=[];this.verticalTrack=[];this.resolution=e;this.duration=r;this.canvas=document.createElement("canvas");this.context=this.canvas.getContext("2d");this.fontSizes={30:`64px ${t}`,25:`52px ${t}`,18:`36px ${t}`,45:`90px ${t}`};this.bottomMarginPercent=i;this.generateTracks()}generateTracks(){const t=52;this.danmakuHeight=t;this.trackHeight=l.margin*2+t;this.trackCount=parseInt(fixed(this.resolution.y*(1-this.bottomMarginPercent)/this.trackHeight,0))}getTextSize(t){this.context.font=this.fontSizes[t.fontSize];const e=this.context.measureText(t.content);const r=e.width/2;return[r,this.danmakuHeight/2]}getTags(t,{targetTrack:e,initTrackNumber:r,nextTrackNumber:i,willOverlay:n,getTrackItem:a,getTag:s}){const[o,c]=this.getTextSize(t);const h=o*2;const u=this.duration(t)*h/(this.resolution.x+h)+l.nextDanmakuDelay;let m=r;let p=null;do{p=e.find(t=>n(t,m,h));m+=i}while(p&&m<=this.trackCount&&m>=0);if(m>this.trackCount||m<0){return`\\pos(0,-999)`}m-=i;e.push(a(m,h,u));return s({trackNumber:m,x:o,y:c})}getHorizontalTags(t){return this.getTags(t,{targetTrack:this.horizontalTrack,initTrackNumber:0,nextTrackNumber:1,willOverlay:(e,r,i)=>{if(e.trackNumber!==r){return false}if(e.widtht.startTime}},getTrackItem:(e,r,i)=>{return{width:r,start:t.startTime,visible:t.startTime+i,end:t.startTime+this.duration(t),trackNumber:e}},getTag:({trackNumber:e,x:r,y:i})=>{return`\\move(${this.resolution.x+r},${e*this.trackHeight+l.margin+i},${-r},${e*this.trackHeight+l.margin+i},0,${this.duration(t)*1e3})`}})}getVerticalTags(t){const e=l.danmakuType[t.type]==="top";return this.getTags(t,{targetTrack:this.verticalTrack,initTrackNumber:e?0:this.trackCount-1,nextTrackNumber:e?1:-1,willOverlay:(e,r)=>{if(e.trackNumber!==r){return false}return e.end>t.startTime},getTrackItem:e=>{return{start:t.startTime,end:t.startTime+this.duration(t),trackNumber:e}},getTag:({trackNumber:t,y:r})=>{if(e){return`\\pos(${this.resolution.x/2},${t*this.trackHeight+l.margin+r})`}else{return`\\pos(${this.resolution.x/2},${this.resolution.y-l.margin-r-(this.trackCount-1-t)*this.trackHeight})`}}})}push(t){let e="";let r=[];switch(l.danmakuType[t.type]){case"normal":case"reversed":{e=this.getHorizontalTags(t);r=this.horizontalStack;break}case"top":case"bottom":{e=this.getVerticalTags(t);r=this.verticalStack;break}case"special":default:{return{tags:`\\pos(0,-999)`}}}const i={tags:e};r.push(i);return i}}l.danmakuType={[a.Normal]:"normal",[a.Normal2]:"normal",[a.Normal3]:"normal",[a.Bottom]:"bottom",[a.Top]:"top",[a.Reversed]:"reversed",[a.Special]:"special",[a.Special2]:"special"};l.margin=4;l.nextDanmakuDelay=.05;class c{constructor({title:t,font:e,alpha:r,duration:i,blockTypes:n,resolution:a,bottomMarginPercent:s,bold:o}){this.title=t;this.font=e;this.alpha=Math.round(r*100).toString(16).toUpperCase();this.duration=i;this.blockTypes=n;this.resolution=a;this.bold=o;this.danmakuStack=new l(e,a,i,s)}get fontStyles(){return{30:`Style: Large,${this.font},64,&H${this.alpha}FFFFFF,&H${this.alpha}FFFFFF,&H${this.alpha}000000,&H${this.alpha}000000,${this.bold?"1":"0"},0,0,0,100,100,0,0,1,1.2,0,5,0,0,0,0`,25:`Style: Medium,${this.font},52,&H${this.alpha}FFFFFF,&H${this.alpha}FFFFFF,&H${this.alpha}000000,&H${this.alpha}000000,${this.bold?"1":"0"},0,0,0,100,100,0,0,1,1.2,0,5,0,0,0,0`,18:`Style: Small,${this.font},36,&H${this.alpha}FFFFFF,&H${this.alpha}FFFFFF,&H${this.alpha}000000,&H${this.alpha}000000,${this.bold?"1":"0"},0,0,0,100,100,0,0,1,1.2,0,5,0,0,0,0`,45:`Style: ExtraLarge,${this.font},90,&H${this.alpha}FFFFFF,&H${this.alpha}FFFFFF,&H${this.alpha}000000,&H${this.alpha}000000,${this.bold?"1":"0"},0,0,0,100,100,0,0,1,1.2,0,5,0,0,0,0`}}convertToAssDocument(t){const e=new n(t);const r=[];for(const t of e.danmakus.sort((t,e)=>t.startTime-e.startTime)){if(this.blockTypes.indexOf(t.type)!==-1||this.blockTypes.indexOf("color")!==-1&&t.color!==c.white){continue}const[e,i]=this.convertTime(t.startTime,this.duration(t));r.push(new s({content:this.convertText(t.content),time:e,endTime:i,type:t.type.valueOf().toString(),fontSize:t.fontSize.toString(),color:t.color.toString(),typeTag:this.convertType(t),colorTag:this.convertColor(t.color)}))}return new o(r,this.title,this.fontStyles,this.blockTypes,this.resolution)}convertText(t){const e={"{":"{","}":"}","&":"&","<":"<",">":">",""":'"',"'":"'"};for(const[r,i]of Object.entries(e)){t=t.replace(new RegExp(r,"g"),i)}return t}convertType(t){return this.danmakuStack.push(t).tags}convertColor(t){if(t===c.white){return""}const e=t.toString(16);const r=e.substring(0,2);const i=e.substring(2,4);const n=e.substring(4,6);return`\\c&H${n}${i}${r}&`}convertTime(t,e){function r(t){const[e,r="00"]=String(t).split(".");return`${e.padStart(2,"0")}.${r.substr(0,2).padEnd(2,"0")}`}function i(t){let e=0;let i=0;while(t>=60){t-=60;i++}while(i>=60){i-=60;e++}return`${e}:${String(i).padStart(2,"0")}:${r(t)}`}return[i(t),i(t+e)]}}c.white=16777215;return{export:{AssDanmaku:s,AssDanmakuDocument:o,Danmaku:r,DanmakuConverter:c,DanmakuStack:l,XmlDanmaku:i,XmlDanmakuDocument:n}}}})(); -onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/dark-important.min.css"] = `#disable-popup-modal .vip-exchange .months button.disabled,#vip-exchange-modal .vip-exchange .months button.disabled,.action-row .publish-btn.disabled,.action-row .publish-btn.publishing,.action-row .sch-pub-btn.disabled,.action-row .sch-pub-btn.publishing,.app-body .section-block,.bl-button--primary:disabled,.link-footer,.live-skin-coloration-area .live-skin-separate-area,.live-skin-coloration-area .live-skin-separate-area-hover:hover,.payment-active,.player-auxiliary-area .player-auxiliary-bscrollbar .bscroll-indicator,.tab-list .tab-item.active:before{background-color:#222!important}.app-body .section-block.with-bottom-radius,.app-body .section-block.with-radius,.bb-comment .no-login .comment-submit,.common .bb-comment .no-login .comment-submit,.container .pagination,.coupon-content-con .coupon-btn-disable,.customize-wrp .select,.f-list-hover:hover,.fjw-case-detail .ban-detail .content-box .video-model,.game-groom-m .num,.main-container .media-info .media-right .media-tool-bar .btn-follow.active,.main-container .pay-bar .vip .btn-pay.active,.open-dialog-masker .open-dialog-content .open-footer .btn-normal.disabled,.open-dialog-masker .open-dialog-content .open-footer .btn-normal.disabled:hover,.pagination-container li.pagination,.status_box .status_btn.disabled,.wrapper .elec-btn.disabled{background-color:#444!important}.danmaku-wrap .player-auxiliary-area .player-auxiliary-danmaku-wrap .bscroll-indicator{background-color:#555!important}.danmaku-wrap .player-auxiliary-area .player-auxiliary-danmaku-wrap .bscroll-vertical-scrollbar.mousedown,.danmaku-wrap .player-auxiliary-area .player-auxiliary-danmaku-wrap:hover .bscroll-vertical-scrollbar,.m-recommend-item div.box,.player-auxiliary-area .player-auxiliary-bscrollbar .bscroll-vertical-scrollbar,.player-auxiliary-area .player-auxiliary-bscrollbar .bscroll-vertical-scrollbar.mousedown,.player-auxiliary-area .player-auxiliary-bscrollbar:hover .bscroll-vertical-scrollbar{background-color:transparent!important}.live-skin-coloration-area .live-skin-normal-a-text,.live-skin-coloration-area .live-skin-normal-a-text:link,.live-skin-coloration-area .live-skin-normal-a-text:visited,.live-skin-coloration-area .live-skin-normal-text,.open-dialog-masker .open-dialog-content .open-footer .btn-normal.disabled,.open-dialog-masker .open-dialog-content .open-footer .btn-normal.disabled:hover,.status_box .status_btn.disabled,blockquote *,blockquote .color-blue-01,blockquote .color-blue-02,blockquote .color-blue-03,blockquote .color-blue-04,blockquote .color-gray-01,blockquote .color-gray-02,blockquote .color-gray-03,blockquote .color-gray-04,blockquote .color-green-01,blockquote .color-green-02,blockquote .color-green-03,blockquote .color-green-04,blockquote .color-lblue-01,blockquote .color-lblue-02,blockquote .color-lblue-03,blockquote .color-lblue-04,blockquote .color-pink-01,blockquote .color-pink-02,blockquote .color-pink-03,blockquote .color-pink-04,blockquote .color-purple-01,blockquote .color-purple-02,blockquote .color-purple-03,blockquote .color-purple-04,blockquote .color-yellow-01,blockquote .color-yellow-02,blockquote .color-yellow-03,blockquote .color-yellow-04{color:#aaa!important}#app .sticky-bar .bar-content .message,.bb-comment .no-login .comment-submit,.bp-popup-panel .title-ctnr .popup-title,.commnent-screen-wrap .el-input__inner,.common .bb-comment .no-login .comment-submit,.coupon-content-con .coupon-btn-disable,.cover .disabled-cover,.customize-wrp .select,.el-input__inner,.home-page .sticky-bar .bar-content .message,.invitation-record-warp .invtable .inputdone,.live-room-app .guard-rank-cntr .tabs.isHundred .item.active,.live-room-app .guard-rank-cntr.hundred .live-skin-highlight-text,.live-room-app .guard-rank-cntr.hundred .live-skin-main-a-text,.live-room-app .guard-rank-cntr.hundred .page-box .live-skin-main-text,.live-room-app .guard-rank-cntr.thousand .live-skin-highlight-text,.live-room-app .guard-rank-cntr.thousand .live-skin-main-a-text,.live-room-app .guard-rank-cntr.thousand .page-box .live-skin-main-text,.live-skin-coloration-area .live-skin-highlight-text,.live-skin-coloration-area .live-skin-main-text,.manga-detail .episode-list-component .episode-list .list-data .list-item.last-read,.popup-content-ctnr .bl-button--ghost,.s-paging>ul>a.current,.s-paging>ul>span.current,.score-info .go-movie,.tag-list li.tag-item.on{color:#eee!important}.bb-comment .no-login .comment-submit,.commnent-screen-wrap .el-input__inner,.common .bb-comment .no-login .comment-submit,.el-input__inner,.enter-failure .password-input .pink-border,.link-footer,.live-skin-coloration-area .live-skin-highlight-border,.live-skin-coloration-area .live-skin-separate-border,.popup-content-ctnr .bl-button--ghost:hover,.score-info .go-movie,.select-box-v2-container .select-box-v2-controller-disabled,.song-info .info-wrap .type-list .item-list .type-item.active,.tabs-bar,.ui-input-textarea.focus,.user-setting-warp .el-radio-button__orig-radio:checked+.el-radio-button__inner{border-color:transparent!important}#app .sticky-bar .bar-content .message:hover,.app-layout .style-section .tag-block .tag-containers .style-tag.selected,.container .video-panel .play-all .bilifont,.detail-wrp .detail-content[data-v-00c9b213] p a span,.drop-list-v2-container .drop-list-v2-item-selected .drop-list-v2-item-cont p.item-cont-main,.edit-button:hover>.icon-font,.edit-button:hover>span .left-nav-item-childed:hover,.el-select-dropdown__item.selected,.home-page .sticky-bar .bar-content .message:hover,.im-popup .bp-popup-panel .title-ctnr .popup-title,.left-nav-wrapper .active,.left-nav-wrapper .active .left-nav-item-child,.left-nav-wrapper .advice-btn:hover,.left-nav-wrapper .left-nav-item.active,.left-nav-wrapper .left-nav-item.active i.active,.left-nav-wrapper .left-nav-list.on .left-nav-item,.left-nav-wrapper .left-nav-list.on .left-nav-item .icon,.live-room-app .guard-rank-cntr.hundred .live-skin-main-a-text:hover,.live-room-app .guard-rank-cntr.thousand .live-skin-main-a-text:hover,.live-skin-coloration-area .live-skin-highlight-text,.live-skin-coloration-area .live-skin-normal-a-text:hover,.live-skin-normal-a-text:active,.manga-detail .episode-list-component .episode-list .list-header .header-item.selected,.more-data a:hover,.other a a:hover,.r-con .members-info .up-card .info-name.is-vip:hover,.rank-item .content .info .detail a a:hover,.rank-item .content .more-data:hover,.rank-item .content .other a:hover,.room-info-down-row .icon-label.hover-text-blue:hover .label,.room-introduction .edit-button:hover>.icon-font,.room-introduction .edit-button:hover>span,.up-info .u-info .name .username.is-vip:hover,.voucher-ing .voucher-left-money,.voucher-ing .voucher-left-money:before,.voucher-no-used .voucher-left-money,.voucher-no-used .voucher-left-money:before{color:var(--theme-color)!important}.aside-ctnr .author-info .communicate-btn,.live-skin-coloration-area .room-info-ctnr .info-section .live-skin-highlight-border,.manga-detail .episode-list-component .episode-list .list-data .list-item.last-read,.page-list-box .page-input:focus,.page-list-box .page-input:hover,.popup-content-ctnr .bl-button--ghost,.season-timeline .season-group.today,.season-timeline .season-group.today .group-time::before,.tag-list li.tag-item.on,.tag-list li.tag-item:hover{border-color:var(--theme-color)!important}.bg-blue,.el-date-table td.current:not(.disabled),.el-date-table td.end-date,.el-date-table td.start-date,.face-g-list#my-g-list .face-g-block .my-mp-block .mp-info .btn-white,.face-g-tab li.current,.live-skin-coloration-area .live-skin-highlight-bg,.popup-content-ctnr .bl-button--ghost:hover,.popup-content-ctnr .bl-button--primary,.season-timeline .season-group.today.is-published .group-time::before,.security-list .child-list li a.bg-blue:hover,.song-info .info-wrap .type-list .item-list .type-item.active,.tag-list li.tag-item.on,.user-my-btn .el-button--primary,.user-setting-warp .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:var(--theme-color)!important}.current .tab-btn-link,.el-date-table td.current:not(.disabled),.el-date-table td.end-date,.el-date-table td.start-date,.face-g-tab li.current,.popup-content-ctnr .bl-button--ghost:hover,.style-section .tag-block .tag-containers .style-tag:active{color:var(--foreground-color)!important}#bilibiliPlayer{box-shadow:0 4px 8px 0 #0004}`; +onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/dark-important.min.css"] = `#disable-popup-modal .vip-exchange .months button.disabled,#vip-exchange-modal .vip-exchange .months button.disabled,.action-row .publish-btn.disabled,.action-row .publish-btn.publishing,.action-row .sch-pub-btn.disabled,.action-row .sch-pub-btn.publishing,.app-body .section-block,.bl-button--primary:disabled,.link-footer,.live-skin-coloration-area .live-skin-separate-area,.live-skin-coloration-area .live-skin-separate-area-hover:hover,.payment-active,.player-auxiliary-area .player-auxiliary-bscrollbar .bscroll-indicator,.tab-list .tab-item.active:before{background-color:#222!important}.app-body .section-block.with-bottom-radius,.app-body .section-block.with-radius,.bb-comment .no-login .comment-submit,.common .bb-comment .no-login .comment-submit,.container .pagination,.coupon-content-con .coupon-btn-disable,.customize-wrp .select,.f-list-hover:hover,.fjw-case-detail .ban-detail .content-box .video-model,.game-groom-m .num,.main-container .media-info .media-right .media-tool-bar .btn-follow.active,.main-container .pay-bar .vip .btn-pay.active,.open-dialog-masker .open-dialog-content .open-footer .btn-normal.disabled,.open-dialog-masker .open-dialog-content .open-footer .btn-normal.disabled:hover,.pagination-container li.pagination,.status_box .status_btn.disabled,.wrapper .elec-btn.disabled{background-color:#444!important}.danmaku-wrap .player-auxiliary-area .player-auxiliary-danmaku-wrap .bscroll-indicator{background-color:#555!important}.danmaku-wrap .player-auxiliary-area .player-auxiliary-danmaku-wrap .bscroll-vertical-scrollbar.mousedown,.danmaku-wrap .player-auxiliary-area .player-auxiliary-danmaku-wrap:hover .bscroll-vertical-scrollbar,.m-recommend-item div.box,.player-auxiliary-area .player-auxiliary-bscrollbar .bscroll-vertical-scrollbar,.player-auxiliary-area .player-auxiliary-bscrollbar .bscroll-vertical-scrollbar.mousedown,.player-auxiliary-area .player-auxiliary-bscrollbar:hover .bscroll-vertical-scrollbar{background-color:transparent!important}.live-skin-coloration-area .live-skin-normal-a-text,.live-skin-coloration-area .live-skin-normal-a-text:link,.live-skin-coloration-area .live-skin-normal-a-text:visited,.live-skin-coloration-area .live-skin-normal-text,.open-dialog-masker .open-dialog-content .open-footer .btn-normal.disabled,.open-dialog-masker .open-dialog-content .open-footer .btn-normal.disabled:hover,.status_box .status_btn.disabled,blockquote *,blockquote .color-blue-01,blockquote .color-blue-02,blockquote .color-blue-03,blockquote .color-blue-04,blockquote .color-gray-01,blockquote .color-gray-02,blockquote .color-gray-03,blockquote .color-gray-04,blockquote .color-green-01,blockquote .color-green-02,blockquote .color-green-03,blockquote .color-green-04,blockquote .color-lblue-01,blockquote .color-lblue-02,blockquote .color-lblue-03,blockquote .color-lblue-04,blockquote .color-pink-01,blockquote .color-pink-02,blockquote .color-pink-03,blockquote .color-pink-04,blockquote .color-purple-01,blockquote .color-purple-02,blockquote .color-purple-03,blockquote .color-purple-04,blockquote .color-yellow-01,blockquote .color-yellow-02,blockquote .color-yellow-03,blockquote .color-yellow-04{color:#aaa!important}#app .sticky-bar .bar-content .message,.bb-comment .no-login .comment-submit,.bp-popup-panel .title-ctnr .popup-title,.commnent-screen-wrap .el-input__inner,.common .bb-comment .no-login .comment-submit,.coupon-content-con .coupon-btn-disable,.cover .disabled-cover,.customize-wrp .select,.el-input__inner,.home-page .sticky-bar .bar-content .message,.invitation-record-warp .invtable .inputdone,.live-room-app .guard-rank-cntr .tabs.isHundred .item.active,.live-room-app .guard-rank-cntr.hundred .live-skin-highlight-text,.live-room-app .guard-rank-cntr.hundred .live-skin-main-a-text,.live-room-app .guard-rank-cntr.hundred .page-box .live-skin-main-text,.live-room-app .guard-rank-cntr.thousand .live-skin-highlight-text,.live-room-app .guard-rank-cntr.thousand .live-skin-main-a-text,.live-room-app .guard-rank-cntr.thousand .page-box .live-skin-main-text,.live-skin-coloration-area .live-skin-highlight-text,.live-skin-coloration-area .live-skin-main-text,.manga-detail .episode-list-component .episode-list .list-data .list-item.last-read,.popup-content-ctnr .bl-button--ghost,.s-paging>ul>a.current,.s-paging>ul>span.current,.score-info .go-movie,.tag-list li.tag-item.on{color:#eee!important}#rank-list-vm .tabs.isHundred .item,.bb-comment .no-login .comment-submit,.commnent-screen-wrap .el-input__inner,.common .bb-comment .no-login .comment-submit,.el-input__inner,.enter-failure .password-input .pink-border,.link-footer,.live-skin-coloration-area .live-skin-highlight-border,.live-skin-coloration-area .live-skin-separate-border,.popup-content-ctnr .bl-button--ghost:hover,.score-info .go-movie,.select-box-v2-container .select-box-v2-controller-disabled,.song-info .info-wrap .type-list .item-list .type-item.active,.tabs-bar,.ui-input-textarea.focus,.user-setting-warp .el-radio-button__orig-radio:checked+.el-radio-button__inner{border-color:transparent!important}#app .sticky-bar .bar-content .message:hover,.app-layout .style-section .tag-block .tag-containers .style-tag.selected,.container .video-panel .play-all .bilifont,.detail-wrp .detail-content[data-v-00c9b213] p a span,.drop-list-v2-container .drop-list-v2-item-selected .drop-list-v2-item-cont p.item-cont-main,.edit-button:hover>.icon-font,.edit-button:hover>span .left-nav-item-childed:hover,.el-select-dropdown__item.selected,.home-page .sticky-bar .bar-content .message:hover,.im-popup .bp-popup-panel .title-ctnr .popup-title,.left-nav-wrapper .active,.left-nav-wrapper .active .left-nav-item-child,.left-nav-wrapper .advice-btn:hover,.left-nav-wrapper .left-nav-item.active,.left-nav-wrapper .left-nav-item.active i.active,.left-nav-wrapper .left-nav-list.on .left-nav-item,.left-nav-wrapper .left-nav-list.on .left-nav-item .icon,.live-room-app .guard-rank-cntr.hundred .live-skin-main-a-text:hover,.live-room-app .guard-rank-cntr.thousand .live-skin-main-a-text:hover,.live-skin-coloration-area .live-skin-highlight-text,.live-skin-coloration-area .live-skin-normal-a-text:hover,.live-skin-normal-a-text:active,.manga-detail .episode-list-component .episode-list .list-header .header-item.selected,.more-data a:hover,.other a a:hover,.r-con .members-info .up-card .info-name.is-vip:hover,.rank-item .content .info .detail a a:hover,.rank-item .content .more-data:hover,.rank-item .content .other a:hover,.room-info-down-row .icon-label.hover-text-blue:hover .label,.room-introduction .edit-button:hover>.icon-font,.room-introduction .edit-button:hover>span,.up-info .u-info .name .username.is-vip:hover,.voucher-ing .voucher-left-money,.voucher-ing .voucher-left-money:before,.voucher-no-used .voucher-left-money,.voucher-no-used .voucher-left-money:before{color:var(--theme-color)!important}.aside-ctnr .author-info .communicate-btn,.live-skin-coloration-area .room-info-ctnr .info-section .live-skin-highlight-border,.manga-detail .episode-list-component .episode-list .list-data .list-item.last-read,.page-list-box .page-input:focus,.page-list-box .page-input:hover,.popup-content-ctnr .bl-button--ghost,.season-timeline .season-group.today,.season-timeline .season-group.today .group-time::before,.tag-list li.tag-item.on,.tag-list li.tag-item:hover{border-color:var(--theme-color)!important}.bg-blue,.el-date-table td.current:not(.disabled),.el-date-table td.end-date,.el-date-table td.start-date,.face-g-list#my-g-list .face-g-block .my-mp-block .mp-info .btn-white,.face-g-tab li.current,.live-skin-coloration-area .live-skin-highlight-bg,.popup-content-ctnr .bl-button--ghost:hover,.popup-content-ctnr .bl-button--primary,.season-timeline .season-group.today.is-published .group-time::before,.security-list .child-list li a.bg-blue:hover,.song-info .info-wrap .type-list .item-list .type-item.active,.tag-list li.tag-item.on,.user-my-btn .el-button--primary,.user-setting-warp .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:var(--theme-color)!important}.current .tab-btn-link,.el-date-table td.current:not(.disabled),.el-date-table td.end-date,.el-date-table td.start-date,.face-g-tab li.current,.popup-content-ctnr .bl-button--ghost:hover,.style-section .tag-block .tag-containers .style-tag:active{color:var(--foreground-color)!important}#bilibiliPlayer{box-shadow:0 4px 8px 0 #0004}`; onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/dark-navbar.min.css"] = `#link-navbar-vm>.link-navbar .nav-item:hover,.bili-header-m .nav-menu .nav-con .nav-item:hover,.link-navbar .nav-item:hover,.nav-header-wrapper .nav-header .nav-header-search-bar,.right-part>.shortcuts-ctnr .shortcut-item:hover,.search-bar-ctnr .search-bar,.shortcuts-ctnr .shortcut-item:hover,.uns_box ul.menu li:not(.b-post):hover,.z_top .z_top_nav ul li:hover{background-color:#222!important}#app>.link-navbar,#app>.nav-header-wrapper,#link-navbar-vm>.link-navbar,#navbar-vm>.link-navbar,.b-header-mask-wrp .b-header-mask,.bili-header-m .nav-menu .nav-mask,.bili-header-m .nav-menu.blur-black .nav-mask,.link-navbar{background-color:#444!important}.z_top .i-link:hover,.z_top .z_top_nav ul li.home:hover{background-color:transparent!important}#app>.nav-header-wrapper>.nav-header{background:0 0!important}#app>.link-navbar .main-ctnr .nav-logo,#app>.link-navbar .nav-item.selected .label,#app>.link-navbar .nav-item:hover .icon-font,#app>.nav-header-wrapper>.nav-header .nav-header-mainsite,#app>.nav-header-wrapper>.nav-header .order-center,#link-navbar-vm>.link-navbar .main-ctnr .nav-logo,#link-navbar-vm>.link-navbar .nav-item:hover,.bili-header-m .nav-menu .nav-con .nav-item .t,.link-navbar .main-ctnr .custom-link>a,.link-navbar .main-ctnr .nav-logo,.my-link-btn .label,.nav-header-wrapper .nav-header .nav-header-search-bar,.right-part>.shortcuts-ctnr,.right-part>.shortcuts-ctnr .shortcut-item:hover,.search-bar-ctnr .search-bar input,.shortcut-item .list-item span,.shortcuts-ctnr .shortcut-item,.uns_box li.u-i a.i-link,.z_top a,.z_top.b-header-blur .uns_box li.u-i a.i-link,.z_top.b-header-blur .z_top_nav li a.i-link{color:#eee!important}.search-bar-ctnr .search-bar .placeholder,.search-bar-ctnr .search-bar .search-btn,.search-bar-ctnr .search-bar input::placeholder{color:#878787!important}.uns_box li.u-i:hover a.i-link,.z_top .i-link:hover{color:var(--theme-color)}.link-navbar,.link-navbar-ctnr{box-shadow:none!important}.link-navbar .main-ctnr .nav-logo::before,.nav-header-wrapper .nav-header .order-icon{filter:brightness(0) invert(1)!important}.search-bar-ctnr .search-bar{border-color:transparent!important;box-shadow:0 2px 10px 1px #0002}`; onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/dark-schedule.min.js"] = (()=>{return(e,t)=>{class i{constructor(...e){if(e.length===0){const e=new Date;this.hour=e.getHours();this.minute=e.getMinutes()}else if(e.length===1){const[t]=e;[this.hour,this.minute]=t.split(":").slice(0,2).map(e=>this.validatePart(e));this.normalize()}else if(v.length===2){[this.hour,this.minute]=e}}validatePart(e){const t=parseInt(e);if(!isNaN(t)&&t>=0&&t<=59){return t}else{return null}}normalize(){while(this.minute<0){this.minute+=60;this.hour-=1}while(this.minute>=60){this.minute-=60;this.hour+=1}while(this.hour<0){this.hour+=24}while(this.hour>=24){this.hour-=24}}lessThan(e){if(this.houre.hour||this.hour===e.hour&&this.minute>e.minute){return true}return false}equals(e){return this.hour===e.hour&&this.minute===e.minute}isInRange(e,t){if(e.equals(t)){return false}let i=this.greaterThan(e)&&this.lessThan(t);if(e.greaterThan(t)){i=this.greaterThan(e)||this.lessThan(t)}const s=i||this.equals(e);return s}static millisecondsBefore(e){const t=new i;const s=(new Date).getSeconds();const r=1e3*(t.hour*3600+t.minute*60+s);const n=1e3*(e.hour*3600+e.minute*60);let h=n-r;if(t.greaterThan(e)||t.equals(e)&&s!==0){h+=24*3600*1e3}return h}}function s(){if(e.darkSchedule){const t=new i(e.darkScheduleStart);const r=new i(e.darkScheduleEnd);const n=new i;const h=n.isInRange(t,r);if(e.useDarkStyle!==h){e.useDarkStyle=h}let u=0;if(h){u=i.millisecondsBefore(r)}else{u=i.millisecondsBefore(t)}if(u!==0){setTimeout(()=>s(),u)}}}fullyLoaded(()=>s());return{export:{ScheduleTime:i}}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/dark-styles.min.js"] = (()=>{return(e,t)=>{const l=()=>{SpinQuery.select(".custom-scrollbar").then(e=>e&&e.classList.remove("custom-scrollbar"))};const r=()=>{document.body.classList.add("dark");l();t.applyStyle("scrollbarStyle");t.applyImportantStyle("darkStyleNavBar");t.applyStyle("darkStyle");t.applyImportantStyle("darkStyleImportant")};r();return{reload:r,unload:()=>{document.body.classList.remove("dark");t.removeStyle("scrollbarStyle");t.removeStyle("darkStyleNavBar");t.removeStyle("darkStyle");t.removeStyle("darkStyleImportant")}}}})(); @@ -1071,7 +1071,7 @@ onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/mi onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/download-audio.min.js"] = (()=>{return(e,t)=>{class n{constructor(){this.sid=null;this.progress=null}async getDownloadUrl(){const e=`https://www.bilibili.com/audio/music-service-c/web/url?sid=${this.sid}&privilege=2&quality=2`;const t=await Ajax.getJsonWithCredentials(e);if(t.code===0){return t.data.cdns.shift()}else{logError("获取下载链接失败, 请确保当前账号有下载权限.","下载音频",1e4);return null}}async download(){const e=await this.getDownloadUrl();return new Promise((t,n)=>{const s=new XMLHttpRequest;s.open("GET",e);s.responseType="blob";s.addEventListener("load",()=>t(s.response));s.addEventListener("error",()=>n(s.status));s.addEventListener("progress",e=>this.progress&&this.progress(100*e.loaded/e.total));s.send()})}}const s="下载音频";return{export:n,widget:{content:`\n\n\n${s}\n\n`,condition:()=>document.URL.includes("bilibili.com/audio"),success:async()=>{await SpinQuery.select(()=>document.querySelector("#app"));const e=document.querySelector("#download-audio");const t=e.querySelector("span");const o=new n;o.progress=(e=>{t.innerHTML=`${Math.round(e)}%`});const i=document.querySelector("#download-audio-link");e.addEventListener("click",async e=>{if(o.sid===null||e.target===i){return}const n=await o.download();t.innerHTML=s;const r=i.getAttribute("href");if(r){URL.revokeObjectURL(r)}i.setAttribute("href",URL.createObjectURL(n));const d=(()=>{const e=document.querySelector(".song-title");if(e){return e.getAttribute("title")}else{return"神秘音频"}})();i.setAttribute("download",d+".m4a");i.click()});Observer.childList("#app",()=>{const t=document.URL.match(/bilibili\.com\/audio\/au([\d]+)/);if(t&&t[1]){e.disabled=false;o.sid=t[1]}else{e.disabled=true}})}}}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/download-danmaku.min.js"] = (()=>{return(t,e)=>{const{getFriendlyTitle:n}=e.import("title");const{DanmakuInfo:i}=e.import("video-info");const{DanmakuConverter:a}=e.import("danmaku-converter");async function o(t){const e=n();let i={title:e};try{await loadDanmakuSettingsPanel();const t=t=>{const e=parseFloat(dq(t).style.transform.replace(/translateX\(([\d\.]+)/,"$1"));const n={0:0,44:1,94:2,144:3,188:4}[e];return n};i.font=dq(".bilibili-player-video-danmaku-setting-right-font .bui-select-result").innerText;i.alpha=parseFloat(dq(".bilibili-player-setting-opacity .bui-bar").style.transform.replace(/scaleX\(([\d\.]+)\)/,"$1"));i.duration=(()=>{const e=[18,14,10,8,6][t(".bilibili-player-setting-speedplus .bui-thumb")];return t=>{switch(t.type){case 4:case 5:return 4;default:return e}}})();i.blockTypes=(()=>{let t=[];const e={".bilibili-player-block-filter-type[ftype=scroll]":[1,2,3],".bilibili-player-block-filter-type[ftype=top]":[5],".bilibili-player-block-filter-type[ftype=bottom]":[4],".bilibili-player-block-filter-type[ftype=color]":["color"]};for(const[n,i]of Object.entries(e)){if(dq(n).classList.contains("disabled")){t=t.concat(i)}}return t.concat(7,8)})();const e=[1.4,1.2,1,.8,.6][t(".bilibili-player-setting-fontsize .bui-thumb")];i.resolution={x:1920*e,y:1080*e};i.bottomMarginPercent=[.75,.5,.25,0,0][t(".bilibili-player-setting-area .bui-thumb")];if(i.bottomMarginPercent===0&&dq(".bilibili-player-video-danmaku-setting-left-preventshade input").checked){i.bottomMarginPercent=.15}i.bold=dq(".bilibili-player-video-danmaku-setting-right-font-bold input").checked}catch(t){i={font:"微软雅黑",alpha:.6,duration:t=>{switch(t.type){case 4:case 5:return 4;default:return 6}},blockTypes:[7,8],resolution:{x:1920,y:1080},bottomMarginPercent:.15,bold:false}}const o=new a(i);const l=o.convertToAssDocument(t);return l.generateAss()}async function l(t,e){const a=n();const l=new i((unsafeWindow||window).cid);await l.fetchInfo();const r=await(async()=>{if(t===true){return new Blob([await o(l.rawXML)],{type:"text/plain"})}else{return new Blob([l.rawXML],{type:"text/plain"})}})();const s=URL.createObjectURL(r);const c=dq("#danmaku-link");const d=c.getAttribute("href");if(d){URL.revokeObjectURL(d)}clearTimeout(e);dq("#download-danmaku>span").innerHTML="下载弹幕";c.setAttribute("download",`${a}.${t?"ass":"xml"}`);c.setAttribute("href",s);c.click()}return{export:{downloadDanmaku:l,convertToAss:o},widget:{content:`\n\n\n下载弹幕\n\n`,condition:async()=>{let t=await SpinQuery.select(()=>(unsafeWindow||window).cid);return Boolean(t)},success:()=>{const t=document.querySelector("#danmaku-link");dq("#download-danmaku").addEventListener("click",e=>{if(e.target!==t){const t=setTimeout(()=>dq("#download-danmaku>span").innerHTML="请稍侯...",200);l(e.shiftKey,t)}})}}}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/download-video.min.css"] = `.download-video{--download-video-background:white;--download-video-foreground:black;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.95);background:var(--download-video-background);color:var(--download-video-foreground);box-shadow:rgba(0,0,0,.2) 0 4px 8px 0;z-index:10001;pointer-events:none;opacity:0;padding:16px;width:300px;display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;max-height:90%}.download-video,.download-video *{transition:.2s ease-out;-webkit-tap-highlight-color:transparent!important}.download-video.opened{pointer-events:initial;opacity:1;transform:translate(-50%,-50%) scale(1)}body.dark .download-video{--download-video-background:#222;--download-video-foreground:#eee}.round-corner .download-video,.round-corner .download-video .episode-list .v-checkbox,.round-corner .download-video .rpc-settings{border-radius:var(--large-corner-radius)}.round-corner .download-video .button,.round-corner .download-video .cover,.round-corner .download-video .direct-download .progress .background,.round-corner .download-video .direct-download .progress .foreground,.round-corner .download-video .rpc-settings input[type=text],.round-corner .download-video .title,.round-corner .download-video button{border-radius:var(--corner-radius)}.download-video .cover{width:240px;min-height:135px;background-color:#8882}.download-video .header{display:flex;justify-content:space-between;align-items:center}.download-video h1{font-size:16pt;font-weight:700;color:var(--download-video-foreground)}.download-video .header .mdi-close{font-size:16pt;color:var(--download-video-foreground);cursor:pointer}.download-video .header .mdi-close:hover{color:var(--theme-color)}.download-video .info{display:flex;flex-direction:column;align-items:center;margin-top:12px}.download-video .title{display:flex;flex-direction:column;justify-content:space-between;align-items:stretch;margin-top:12px}.download-video .title .bold{width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.download-video .title .size{font-size:10pt;color:var(--download-video-foreground);align-self:center;display:flex;align-items:center;height:24px}.download-video .bold{color:var(--download-video-foreground);font-weight:700;font-size:12pt}.download-video .option-item{display:flex;justify-content:space-between;align-items:center;padding-top:12px;font-size:10pt}.download-video .tabs{display:flex;padding-top:12px;font-size:10pt}.download-video .tabs .tab{padding:6px 12px;border-bottom:2px solid transparent;cursor:pointer}.download-video .tabs .tab.active{color:var(--theme-color);border-bottom-color:var(--theme-color)}.download-video .separator{height:1px;background:#8884;width:100%;margin:12px 0;flex-shrink:0}.download-video h2{font-size:12pt;font-weight:700;color:var(--download-video-foreground)}.download-video .direct-download{display:flex;flex-direction:column;align-items:start;justify-content:space-between}.download-video .button,.download-video button{border:none;outline:0!important;padding:6px 16px;font-size:10pt;cursor:pointer;background:#8884;color:var(--download-video-foreground)}.download-video .button:hover,.download-video button:hover{background:#8886}.download-video .primary{background:var(--theme-color);color:var(--foreground-color);align-self:center}.download-video .primary:hover{background:var(--theme-color-90)}.download-video .busy .button,.download-video .busy .primary,.download-video .busy button,.download-video button:disabled{background-color:#0001;color:#8884;cursor:not-allowed}.download-video .busy .button,.download-video .busy button{cursor:wait!important}.download-video .direct-download .progress{align-self:stretch;display:flex;align-items:center;margin-top:8px}.download-video .direct-download .progress .background{flex-grow:1;height:4px;background:#8884;margin-right:4px;position:relative}.download-video .direct-download .progress .background .foreground{position:absolute;top:0;left:0;height:4px;background:linear-gradient(to right,var(--theme-color),var(--theme-color-60))}.download-video .direct-download .progress .percent{width:50px;text-align:right}.download-video .actions{display:flex;flex-wrap:wrap;justify-content:space-between;margin:8px -4px 0}.download-video .actions>*{margin:4px;flex-grow:1;flex-basis:calc(50% - 16px);display:flex;justify-content:center;align-items:center}.download-video i.mdi-alert-circle{font-size:14pt;color:#ff9800}.download-video .size-warning{position:relative;padding:0 8px}.download-video .size-warning-tip{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);background:var(--download-video-background);color:var(--download-video-foreground);border:1px dashed var(--theme-color);z-index:2;font-size:10pt;width:200px;padding:8px;box-shadow:rgba(0,0,0,.2) 0 4px 8px 0;pointer-events:none;opacity:0}.download-video .size-warning:hover .size-warning-tip{opacity:1}.download-video .episode-list .v-checkbox{padding:4px 8px;margin:4px 0;position:relative;background-color:transparent}.download-video .episode-list .v-checkbox.checked{background-color:#8882}.download-video .episode-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.download-video .episode-list{overflow:auto;max-height:320px}.download-video button.list-tool{padding:4px;line-height:1;font-size:12pt;margin:0 4px}.download-video .episode-header h2{flex-grow:1}.download-video .selected-count{width:64px;text-align:right}.download-video .aria2-rpc .mdi{margin-left:8px;font-size:14pt;line-height:1}.download-video .aria2-rpc{position:relative}.download-video .rpc-settings{position:absolute;display:flex;flex-direction:column;align-items:stretch;color:var(--download-video-foreground);background:#fff;bottom:120%;left:50%;cursor:initial;box-shadow:rgba(0,0,0,.2) 0 4px 8px 0;transform-origin:bottom;transform:translateX(-50%) scale(.9);opacity:0;pointer-events:none;padding:8px;z-index:3;transition:.3s cubic-bezier(.18,.89,.32,1.28);width:100%}body.dark .download-video .rpc-settings{background:#282828}.download-video .rpc-settings>*{margin:8px}.download-video .rpc-settings.show{opacity:1;transform:translateX(-50%) scale(1);pointer-events:initial}.download-video .rpc-settings input[type=text]{background:0 0;color:var(--download-video-foreground);border:1px solid #8884;padding:4px;margin-left:8px}.download-video .rpc-settings input[type=text]:focus{border-color:var(--theme-color)}.download-video .rpc-settings .operations{display:flex;align-items:center;justify-content:space-evenly}.download-video .rpc-settings-item{display:flex;align-items:center;justify-content:space-between;white-space:nowrap}.download-video .rpc-settings-item input[type=text]{flex-grow:1;margin-left:24px}.download-video button.cancel-download,.download-video button.start-download{margin-top:8px}.download-video .direct-download-header{align-self:stretch;display:flex;justify-content:space-between;align-items:center}body.dark .download-video .direct-download .progress .foreground{background:linear-gradient(to right,var(--theme-color-70),var(--theme-color))}`; -onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/download-video.min.html"] = `

    下载视频

    单个视频
    批量导出
    警告: 过大的视频大小会在直接下载时占用大量内存, 并可能导致浏览器标签页崩溃. 请考虑降低清晰度或使用导出选项.
    预计大小: {{displaySize}}
    格式
    清晰度
    弹幕

    直接下载

    {{speed}}
    {{progressPercent}}%

    选集

    {{selectedEpisodeCount}}/{{episodeList.length}}

    导出

    {{showRpcSettings ? '取消' : 'aria2 RPC'}}

    aria2 RPC

    配置

    主机
    端口
    密钥
    限速
    默认路径
    路径
    最终路径: {{rpcSettings.baseDir + rpcSettings.dir}}
    方法
    开始下载
    {{saveRpcSettingsText}}
    `; +onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/download-video.min.html"] = `

    下载视频

    单个视频
    批量导出
    警告: 过大的视频大小会在直接下载时占用大量内存, 并可能导致浏览器标签页崩溃. 请考虑降低清晰度或使用导出选项.
    预计大小: {{displaySize}}
    格式
    清晰度
    弹幕

    直接下载

    {{speed}}
    {{progressPercent}}%

    选集

    {{selectedEpisodeCount}}/{{episodeList.length}}

    导出

    {{showRpcSettings ? '取消' : 'aria2 RPC'}}

    aria2 RPC

    配置

    主机
    端口
    密钥
    限速
    默认路径
    路径
    最终路径: {{rpcSettings.baseDir + rpcSettings.dir}}
    方法
    开始下载
    {{saveRpcSettingsText}}
    `; onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/download-video.min.js"] = (()=>{return(e,t)=>{const{getFriendlyTitle:s}=t.import("title");const{VideoInfo:a,DanmakuInfo:i}=t.import("video-info");class n{constructor(){this.menuClasses=["quality","action","progress"];[this.currentMenuClass]=this.menuClasses}get menuPanel(){return document.querySelector(".download-video-panel")}addMenuClass(){this.menuPanel.classList.remove(...this.menuClasses);this.menuPanel.classList.add(this.currentMenuClass);return this.currentMenuClass}resetMenuClass(){[this.currentMenuClass]=this.menuClasses;this.addMenuClass()}nextMenuClass(){const e=this.menuClasses.indexOf(this.currentMenuClass)+1;const t=this.menuClasses[e>=this.menuClasses.length?0:e];this.currentMenuClass=t;this.addMenuClass();return t}closeMenu(){this.menuPanel.classList.remove("opened");setTimeout(()=>this.resetMenuClass(),200)}addError(){this.menuPanel.classList.add("error")}removeError(){this.menuPanel.classList.remove("error");this.resetMenuClass()}async getDashUrl(e){throw new Error("video dash is not supported")}async getUrl(e){if(e){return`https://api.bilibili.com/x/player/playurl?avid=${r.aid}&cid=${r.cid}&qn=${e}&otype=json`}else{return`https://api.bilibili.com/x/player/playurl?avid=${r.aid}&cid=${r.cid}&otype=json`}}}class o extends n{async getDashUrl(e){if(e){return`https://api.bilibili.com/pgc/player/web/playurl?avid=56995872&cid=99547543&qn=${e}&otype=json&fourk=1&fnval=16`}else{return`https://api.bilibili.com/pgc/player/web/playurl?avid=56995872&cid=99547543&otype=json&fourk=1&fnval=16`}}async getUrl(e){if(e){return`https://api.bilibili.com/pgc/player/web/playurl?avid=${r.aid}&cid=${r.cid}&qn=${e}&otype=json`}else{return`https://api.bilibili.com/pgc/player/web/playurl?avid=${r.aid}&cid=${r.cid}&qn=&otype=json`}}}const r={entity:new n,aid:"",cid:""};let l=[];let c=null;class d{constructor(e,t,s){this.quality=e;this.internalName=t;this.displayName=s}async downloadInfo(e=false){const t=new h(this);await t.fetchVideoInfo(e);return t}static parseFormats(e){const t=e.accept_quality;const s=e.accept_format.split(",");const a=e.accept_description;const i=t.map((e,t)=>{return new d(e,s[t],a[t])});return i}static async getAvailableDashFormats(){const e=await r.entity.getDashUrl();const t=await Ajax.getJsonWithCredentials(e);if(t.code!==0){throw new Error("获取清晰度信息失败.")}return d.parseFormats(t.result)}static async getAvailableFormats(){const e=await r.entity.getUrl();const t=await Ajax.getJsonWithCredentials(e);if(t.code!==0){throw new Error("获取清晰度信息失败.")}const s=t.data||t.result||t;return d.parseFormats(s)}}class h{constructor(e,t){this.fragmentSplitFactor=6*2;this.workingXhr=null;this.progressMap=new Map;this.format=e;this.fragments=t||[];this.videoSpeed=new u(this)}get totalSize(){return this.fragments.map(e=>e.size).reduce((e,t)=>e+t)}async fetchVideoInfo(e=false){if(!e){const e=await r.entity.getUrl(this.format.quality);const t=await Ajax.getTextWithCredentials(e);const s=JSON.parse(t.replace(/http:/g,"https:"));const a=s.data||s.result||s;if(a.quality!==this.format.quality){throw new Error("获取下载链接失败, 请确认当前账号有下载权限后重试.")}const i=a.durl;this.fragments=i.map(e=>{return{length:e.length,size:e.size,url:e.url,backupUrls:e.backup_url}})}else{const{dashToFragment:e,getDashInfo:s}=await t.importAsync("video-dash");const a=await s(r.aid,r.cid,this.format.quality);const i=a.videoDashes.sort(descendingSort(e=>e.bandWidth))[0];const n=a.audioDashes.sort(descendingSort(e=>e.bandWidth))[0];this.fragments=[e(i),e(n)]}return this.fragments}updateProgress(){const e=this.progressMap?[...this.progressMap.values()].reduce((e,t)=>e+t,0)/this.totalSize:0;if(e>1||e<0){console.error(`[下载视频] 进度异常: ${e}`,this.progressMap.values())}this.progress&&this.progress(e)}cancelDownload(){this.videoSpeed.stopMeasure();if(this.workingXhr!==null){this.workingXhr.forEach(e=>e.abort())}else{logError("Cancel Download Failed: forEach in this.workingXhr not found.")}}downloadFragment(e){const t=[];this.workingXhr=[];this.progressMap=new Map;this.updateProgress();let s;if(e.size<=96*1024*1024){s=e.size/this.fragmentSplitFactor}else{s=16*1024*1024}let a=0;const i=e=>[...this.progressMap.keys()].indexOf(e)+1;while(a{const a=new XMLHttpRequest;a.open("GET",e.url);a.responseType="arraybuffer";a.withCredentials=false;a.addEventListener("progress",e=>{console.log(`[下载视频] 视频片段${i(a)}下载进度: ${e.loaded}/${r} bytes loaded, ${o}`);this.progressMap.set(a,e.loaded);this.updateProgress()});a.addEventListener("load",()=>{if((""+a.status)[0]==="2"){console.log(`[下载视频] 视频片段${i(a)}下载完成`);t(a.response)}else{s(`视频片段${i(a)}请求失败, response = ${a.status}`)}});a.addEventListener("abort",()=>s("canceled"));a.addEventListener("error",()=>{console.error(`[下载视频] 视频片段${i(a)}下载失败: ${o}`);this.progressMap.set(a,0);this.updateProgress();a.open("GET",e.url);a.setRequestHeader("Range",o);a.send()});a.setRequestHeader("Range",o);this.progressMap.set(a,0);a.send();this.workingXhr.push(a)}));a=Math.round(a+s)+1}return Promise.all(t)}async copyUrl(){const e=this.fragments.map(e=>e.url).reduce((e,t)=>e+"\r\n"+t);GM_setClipboard(e,"text")}async showUrl(){const e=this.fragments.map(e=>`\n${e.url}\n`).reduce((e,t)=>e+"\r\n"+t);Toast.success(e,"显示链接")}static downloadBlob(e,t){const s=document.createElement("a");let a;if(typeof e==="string"){a=e}else{a=URL.createObjectURL(e)}s.setAttribute("href",a);s.setAttribute("download",t);document.body.appendChild(s);s.click();s.remove();URL.revokeObjectURL(a)}async exportData(e=false){const t=JSON.stringify([{fragments:this.fragments,title:s(),totalSize:this.fragments.map(e=>e.size).reduce((e,t)=>e+t),referer:document.URL.replace(window.location.search,"")}]);if(e){GM_setClipboard(t,"text")}else{const e=new Blob([t],{type:"text/json"});const a=await this.downloadDanmaku();if(a!==null){const t=new JSZip;t.file(`${s()}.json`,e);t.file(s()+"."+this.danmakuOption.toLowerCase(),a);h.downloadBlob(await t.generateAsync({type:"blob"}),`${s()}.zip`)}else{h.downloadBlob(e,`${s()}.json`)}}}async exportAria2(a=false){if(a){const a=await this.downloadDanmaku();if(a!==null){h.downloadBlob(new Blob([a]),`${s()}.${this.danmakuOption==="ASS"?"ass":"xml"}`)}const i=e.aria2RpcOption;const n=this.fragments.map((e,t)=>{let a="";if(this.fragments.length>1){a=" - "+(t+1)}const n=[];if(i.secretKey!==""){n.push(`token:${i.secretKey}`)}n.push([e.url]);n.push({referer:document.URL.replace(window.location.search,""),"user-agent":UserAgent,out:`${s()}${a}${this.extension(e)}`,split:this.fragmentSplitFactor,dir:i.baseDir+i.dir||undefined,"max-download-limit":i.maxDownloadLimit||undefined});const o=encodeURIComponent(`${s()}${a}`);return{params:n,id:o}});const{sendRpc:o}=await t.importAsync("aria2-rpc");await o(n)}else{const e=`\n# Generated by Bilibili Evolved Video Export\n# https://github.com/the1812/Bilibili-Evolved/\n${this.fragments.map((e,t)=>{let a="";if(this.fragments.length>1){a=" - "+(t+1)}return`\n${e.url}\nreferer=${document.URL.replace(window.location.search,"")}\nuser-agent=${UserAgent}\nout=${s()}${a}${this.extension(e)}\nsplit=${this.fragmentSplitFactor}\n`.trim()}).join("\n")}\n`.trim();const t=new Blob([e],{type:"text/plain"});const a=await this.downloadDanmaku();if(a!==null){const e=new JSZip;e.file(`${s()}.txt`,t);e.file(s()+"."+this.danmakuOption.toLowerCase(),a);h.downloadBlob(await e.generateAsync({type:"blob"}),`${s()}.zip`)}else{h.downloadBlob(t,`${s()}.txt`)}}}extension(e){const t=e||this.fragments[0];const s=[".flv",".mp4",".m4s"].find(e=>t.url.includes(e));if(s){return s}else{console.warn("No extension detected.");return".flv"}}makeBlob(e,t){return new Blob(Array.isArray(e)?e:[e],{type:this.extension(t)===".flv"?"video/x-flv":"video/mp4"})}cleanUpOldBlobUrl(){const e=dq("a#video-complete").getAttribute("href");if(e&&!dq(`.link[href="${e}"]`)){URL.revokeObjectURL(e)}dqa(".toast-card-header").filter(e=>e.innerText.includes("下载视频")).forEach(e=>e.querySelector(".toast-card-dismiss").click())}async downloadDanmaku(){if(this.danmakuOption!=="无"){const e=new i(r.cid);await e.fetchInfo();if(this.danmakuOption==="XML"){return e.rawXML}else{const{convertToAss:s}=await t.importAsync("download-danmaku");return s(e.rawXML)}}else{return null}}async downloadSingle(e){const t=await this.downloadDanmaku();const[a]=e;if(t===null){const e=this.makeBlob(a);const t=s()+this.extension();return{blob:e,filename:t}}else{const e=new JSZip;e.file(s()+this.extension(),this.makeBlob(a));e.file(s()+"."+this.danmakuOption.toLowerCase(),t);const i=await e.generateAsync({type:"blob"});const n=s()+".zip";return{blob:i,filename:n}}}async downloadMultiple(e){const t=new JSZip;const a=s();if(e.length>1){e.forEach((e,s)=>{const i=this.fragments[s];t.file(`${a} - ${s+1}${this.extension(i)}`,this.makeBlob(e,i))})}else{const[s]=e;t.file(`${a}${this.extension()}`,this.makeBlob(s))}const i=await this.downloadDanmaku();if(i!==null){t.file(s()+"."+this.danmakuOption.toLowerCase(),i)}const n=await t.generateAsync({type:"blob"});const o=a+".zip";return{blob:n,filename:o}}async download(){const e=[];this.videoSpeed.startMeasure();for(const t of this.fragments){const s=await this.downloadFragment(t);e.push(s)}if(e.length<1){throw new Error("下载失败.")}let{blob:t,filename:s}=await(async()=>{if(e.length===1){return await this.downloadSingle(e)}else{return await this.downloadMultiple(e)}})();this.cleanUpOldBlobUrl();const a=URL.createObjectURL(t);this.progress&&this.progress(0);this.videoSpeed.stopMeasure();return{url:a,filename:s}}}class u{constructor(e){this.lastProgress=0;this.measureInterval=1e3;this.workingDownloader=e}startMeasure(){this.intervalTimer=setInterval(()=>{const e=this.workingDownloader.progressMap?[...this.workingDownloader.progressMap.values()].reduce((e,t)=>e+t,0):0;const t=e-this.lastProgress;if(this.speedUpdate!==undefined){this.speedUpdate(formatFileSize(t)+"/s")}this.lastProgress=e},this.measureInterval)}stopMeasure(){clearInterval(this.intervalTimer)}}async function p(){const e=await SpinQuery.select(()=>(unsafeWindow||window).aid);const t=await SpinQuery.select(()=>(unsafeWindow||window).cid);if(!(e&&t)){return false}r.aid=e;r.cid=t;if(document.URL.indexOf("bangumi")!==-1){r.entity=new o}else{r.entity=new n}try{l=await d.getAvailableFormats()}catch(e){return false}return true}async function f(){c=l[0];t.applyStyle("downloadVideoStyle");dq("#download-video").addEventListener("click",()=>{dq(".download-video").classList.toggle("opened");dq(".gui-settings-mask").click()});dq("#download-video").addEventListener("mouseover",()=>{document.body.insertAdjacentHTML("beforeend",t.import("downloadVideoHtml"));m()},{once:true})}async function m(){let n;const o=new Map;const u=new Vue({el:".download-video",components:{VDropdown:()=>t.importAsync("v-dropdown.vue"),VCheckbox:()=>t.importAsync("v-checkbox.vue"),RpcProfiles:()=>t.importAsync("aria2-rpc-profiles.vue")},data:{downloadSingle:true,coverUrl:EmptyImageUrl,aid:r.aid,cid:r.cid,dashModel:{value:e.downloadVideoFormat,items:["flv","dash"]},qualityModel:{value:c.displayName,items:l.map(e=>e.displayName)},danmakuModel:{value:e.downloadVideoDefaultDanmaku,items:["无","XML","ASS"]},progressPercent:0,size:"获取大小中",blobUrl:"",episodeList:[],downloading:false,speed:"",batch:false,rpcSettings:e.aria2RpcOption,showRpcSettings:false,busy:false,saveRpcSettingsText:"保存配置",enableDash:e.enableDashDownload},computed:{displaySize(){if(typeof this.size==="string"){return this.size}return formatFileSize(this.size)},sizeWarning(){if(typeof this.size==="string"){return false}return this.size>1073741824},selectedEpisodeCount(){return this.episodeList.filter(e=>e.checked).length},dash(){return this.dashModel.value==="dash"}},methods:{close(){this.$el.classList.remove("opened")},danmakuOptionChange(){e.downloadVideoDefaultDanmaku=this.danmakuModel.value},async dashChange(){const e=this.dashModel.value;let t=[];if(e==="flv"){t=await d.getAvailableFormats()}else{t=await d.getAvailableDashFormats()}l=t;[c]=e;this.qualityModel.items=t.map(e=>e.displayName);[this.qualityModel.value]=this.qualityModel.items},async formatChange(){const e=this.getFormat();const t=o.get(e);if(t){this.size=t;return}try{this.size="获取大小中";const t=await e.downloadInfo(this.dash);this.size=t.totalSize;o.set(e,this.size)}catch(e){this.size="获取大小失败"}},getFormat(){const e=l.find(e=>e.displayName===this.qualityModel.value);if(!e){console.error(`No format found. model value = ${this.qualityModel.value}`);return null}return e},async exportData(e){if(this.busy===true){return}try{this.busy=true;if(!this.downloadSingle){await this.exportBatchData(e);return}const t=this.getFormat();const s=await t.downloadInfo(this.dash);s.danmakuOption=this.danmakuModel.value;switch(e){case"copyLink":await s.copyUrl();Toast.success("已复制链接到剪贴板.","下载视频",3e3);break;case"showLink":await s.showUrl();break;case"aria2":await s.exportAria2(false);break;case"aria2RPC":await s.exportAria2(true);break;case"copyVLD":await s.exportData(true);Toast.success("已复制VLD数据到剪贴板.","下载视频",3e3);break;case"exportVLD":await s.exportData(false);break;default:break}}catch(e){logError(e)}finally{this.busy=false}},async exportBatchData(e){const a=this.episodeList;if(a.every(e=>e.checked===false)){Toast.info("请至少选择1集或以上的数量!","批量导出",3e3);return}const n=e=>{const t=a.find(t=>t.cid===e.cid);if(t===undefined){return false}return t.checked};const o=this.getFormat();if(this.danmakuModel.value!=="无"){const e=Toast.info("下载弹幕中...","批量导出");const s=new JSZip;try{if(this.danmakuModel.value==="XML"){for(const e of a.filter(n)){const t=new i(e.cid);await t.fetchInfo();s.file(e.title+".xml",t.rawXML)}}else{const{convertToAss:e}=await t.importAsync("download-danmaku");for(const t of a.filter(n)){const a=new i(t.cid);await a.fetchInfo();s.file(t.title+".ass",await e(a.rawXML))}}h.downloadBlob(await s.generateAsync({type:"blob"}),this.cid+".danmakus.zip")}catch(e){logError(`弹幕下载失败`)}finally{e.dismiss()}}const r=Toast.info("获取链接中...","批量导出");this.batchExtractor.itemFilter=n;let l;try{switch(e){case"aria2":l=await this.batchExtractor.collectAria2(o,r);h.downloadBlob(new Blob([l],{type:"text/plain"}),s(false)+".txt");return;case"aria2RPC":await this.batchExtractor.collectAria2(o,r,true);Toast.success(`成功发送了批量请求.`,"aria2 RPC",3e3);return;case"copyVLD":GM_setClipboard(await this.batchExtractor.collectData(o,r),{mimetype:"text/plain"});Toast.success("已复制批量vld数据到剪贴板.","批量导出",3e3);return;case"exportVLD":l=await this.batchExtractor.collectData(o,r);h.downloadBlob(new Blob([l],{type:"text/json"}),s(false)+".json");return;default:return}}catch(e){logError(e)}finally{r.dismiss()}},async checkBatch(){const e=["/www.bilibili.com/bangumi","/www.bilibili.com/video/av"];if(!e.some(e=>document.URL.includes(e))){this.batch=false;this.episodeList=[];return}const{BatchExtractor:s}=await t.importAsync("batch-download");if(await s.test()!==true){this.batch=false;this.episodeList=[];return}this.batchExtractor=new s;this.batch=true;this.episodeList=(await this.batchExtractor.getItemList()).map((e,t)=>{return{aid:e.aid,cid:e.cid,title:e.title,index:t,checked:true}})},cancelDownload(){if(n){n.cancelDownload()}},async startDownload(){const e=this.getFormat();try{this.downloading=true;const t=await e.downloadInfo(this.dash);t.videoSpeed.speedUpdate=(e=>this.speed=e);t.danmakuOption=this.danmakuModel.value;t.progress=(e=>{this.progressPercent=Math.trunc(e*100)});n=t;const s=await t.download();const a=document.getElementById("video-complete");a.setAttribute("href",s.url);a.setAttribute("download",s.filename);a.click();Toast.success(`下载完成: ${s.filename} 再次保存`,"下载视频")}catch(e){if(e!=="canceled"){logError(e)}this.progressPercent=0}finally{this.downloading=false;this.speed=""}},selectAllEpisodes(){this.episodeList.forEach(e=>e.checked=true)},unselectAllEpisodes(){this.episodeList.forEach(e=>e.checked=false)},inverseAllEpisodes(){this.episodeList.forEach(e=>e.checked=!e.checked)},toggleRpcSettings(){this.showRpcSettings=!this.showRpcSettings},saveRpcSettings(){if(this.rpcSettings.host===""){this.rpcSettings.host="127.0.0.1"}if(this.rpcSettings.port===""){this.rpcSettings.port="6800"}e.aria2RpcOption=this.rpcSettings;const t=e.aria2RpcOptionProfiles.find(t=>t.name===e.aria2RpcOptionSelectedProfile);if(t){Object.assign(t,this.rpcSettings);e.aria2RpcOptionProfiles=e.aria2RpcOptionProfiles}this.saveRpcSettingsText="已保存";setTimeout(()=>this.saveRpcSettingsText="保存配置",2e3)},updateProfile(t){e.aria2RpcOption=this.rpcSettings=_.omit(t,"name")}}});Observer.videoChange(async()=>{u.close();u.batch=false;u.downloadSingle=true;const e=dq("#download-video");const t=await p();e.style.display=t?"flex":"none";if(!t){return}u.aid=r.aid;u.cid=r.cid;const s=new a(r.aid);await s.fetchInfo();u.coverUrl=s.coverUrl.replace("http:","https:");l=await d.getAvailableFormats();[c]=l;u.qualityModel={value:c.displayName,items:l.map(e=>e.displayName)};u.formatChange();await u.checkBatch()})}return{widget:{content:`\n`,condition:p,success:f}}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/dpi-img.vue.min.js"] = (()=>{return(t,e)=>{const i=``;return{export:Object.assign({template:i},{props:["size","src","blur"],computed:{srcset(){if(!this.src||!this.size){return null}return getDpiSourceSet(this.src,this.size)},width(){if(typeof this.size==="object"&&"width"in this.size){return this.size.width}return null},height(){if(typeof this.size==="object"&&"height"in this.size){return this.size.height}return null}}})}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/expand-danmaku.min.js"] = (()=>{return(e,a)=>{if(typeof isEmbeddedPlayer!=="undefined"&&isEmbeddedPlayer()){return}Observer.videoChange(async()=>{const e=await SpinQuery.select(".bui-collapse-wrap");if(e&&e.classList.contains("bui-collapse-wrap-folded")){const e=await SpinQuery.select(".bui-collapse-header");e.click()}})}})(); @@ -1158,7 +1158,7 @@ onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/mi onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/simplify-home.min.css"] = `#app>.bili-wrapper,#app>.elevator-module,.bili-header-m .head-banner .head-content .head-logo,.international-footer,.international-header .b-wrap,.international-home>:not(.international-header){display:none!important}`; onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/simplify-home.min.js"] = (()=>{return(e,i)=>{(async()=>{if(document.URL.replace(window.location.search,"")!=="https://www.bilibili.com/"){i.removeStyle("simplifyHomeStyle");return}document.body.insertAdjacentHTML("beforeend",`\n\n`);const m=new Vue({el:"simplify-home",components:{SimplifyHome:()=>i.importAsync("simplify-home.vue")},data:{homeStyle:e.simplifyHomeStyle}});addSettingsListener("simplifyHomeStyle",e=>m.homeStyle=e,false)})()}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/simplify-home.vue.min.js"] = (()=>{return(e,m)=>{const o=`
    `;m.applyStyleFromText(`.simplify-home{margin-top:32px;display:flex;align-items:center;justify-content:center}.simplify-home .simplify-home-component{max-width:100%}html{scroll-behavior:smooth}`,"simplify-home-style");return{export:Object.assign({template:o},{components:{"minimal-home":()=>m.importAsync("minimal-home.vue"),"simple-home":()=>m.importAsync("simple-home.vue")},computed:{activeComponent(){return this.homeStyle==="清爽"?"simple-home":"minimal-home"}},props:{homeStyle:String}})}}})(); -onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/simplify-liveroom.min.css"] = `.simplify-eventsBanner .activity-pushing-out,.simplify-fansMedal .fans-medal-item-ctnr,.simplify-giftMessage .chat-item.gift-item,.simplify-giftPanel .gift-control-panel .wish-icon,.simplify-giftPanel .gift-control-panel .wish-tip,.simplify-giftPanel .gift-panel,.simplify-giftPanel .gift-panel-switch,.simplify-giftPanel .gift-section.guard-ent,.simplify-giftPanel .seeds-wrap>.dp-i-block>.item:not(.seeds),.simplify-guard i.guard-icon,.simplify-guardPurchase .chat-item.guard-buy,.simplify-popup .chat-popups-section,.simplify-popup .link-popup-ctnr,.simplify-systemMessage .announcement-wrapper,.simplify-systemMessage .system-msg,.simplify-title .title-label,.simplify-userLevel .user-level-icon,.simplify-vip .vip-icon,.simplify-welcomeMessage .welcome-guard,.simplify-welcomeMessage .welcome-msg{display:none!important}.simplify-giftPanel .gift-control-panel,.simplify-giftPanel .gift-control-section{height:48px!important}.simplify-giftPanel .treasure-box{display:flex!important;align-items:center!important;padding:10px 0 0 16px!important}.simplify-giftPanel .treasure-box .box-icon{width:24px!important;height:24px!important;background-position:0 -2.5px!important}.simplify-giftPanel .treasure-box .box-icon.open{background-position:0 -1px!important}.simplify-giftPanel .treasure-box .count-down{margin-left:12px!important;padding:4px 8px!important;max-width:unset!important}.simplify-giftPanel .treasure-box .awarding-panel{bottom:42px!important}.simplify-giftPanel .gift-control-panel .right-part{height:48px!important;display:flex!important;justify-content:flex-end!important}.simplify-giftPanel .gift-control-panel .right-part>.dp-table-cell{display:flex!important;align-items:center!important}.simplify-giftPanel .gift-control-panel .right-part>.dp-table-cell .supporting-info{transform:translateY(-2px)!important}.simplify-skin #gift-control-vm,.simplify-skin #head-info-vm,.simplify-skin #rank-list-ctnr-box{background-image:none!important}.simplify-guard .guard-danmaku::before{border-image:none!important;background-color:transparent!important}.simplify-guard .guard-danmaku::before .guard-danmaku{margin:0!important;padding:4px 5px!important}.simplify-guard .guard-danmaku::before .guard-danmaku::after{background-image:none!important}.simplify-guard [class*=guard-level-]::after{display:none!important}.simplify-liveroom-settings>ul>li{padding:8px 12px;display:flex;align-items:center}.simplify-liveroom-settings>ul>li:hover{background:rgba(0,0,0,.16)}.round-corner .simplify-liveroom-settings>ul>li{border-radius:var(--corner-radius)}`; +onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/simplify-liveroom.min.css"] = `.simplify-eventsBanner .activity-pushing-out,.simplify-fansMedal .fans-medal-item-ctnr,.simplify-giftMessage .chat-item.gift-item,.simplify-giftPanel .gift-control-panel .wish-icon,.simplify-giftPanel .gift-control-panel .wish-tip,.simplify-giftPanel .gift-panel,.simplify-giftPanel .gift-panel-switch,.simplify-giftPanel .gift-section.guard-ent,.simplify-giftPanel .seeds-wrap>.dp-i-block>.item:not(.seeds),.simplify-guard i.guard-icon,.simplify-guardPurchase .chat-item.guard-buy,.simplify-popup .chat-popups-section,.simplify-popup .link-popup-ctnr,.simplify-systemMessage .announcement-wrapper,.simplify-systemMessage .system-msg,.simplify-title .title-label,.simplify-userLevel .user-level-icon,.simplify-vip .vip-icon,.simplify-welcomeMessage .welcome-guard,.simplify-welcomeMessage .welcome-msg{display:none!important}.simplify-giftPanel .gift-control-panel,.simplify-giftPanel .gift-control-section{height:48px!important}.simplify-giftPanel .treasure-box{display:flex!important;align-items:center!important;padding:10px 0 0 16px!important}.simplify-giftPanel .treasure-box .box-icon{width:24px!important;height:24px!important;background-position:0 -2.5px!important}.simplify-giftPanel .treasure-box .box-icon.open{background-position:0 -1px!important}.simplify-giftPanel .treasure-box .count-down{margin-left:12px!important;padding:4px 8px!important;max-width:unset!important}.simplify-giftPanel .treasure-box .awarding-panel{bottom:42px!important}.simplify-giftPanel .gift-control-panel .right-part{height:48px!important;display:flex!important;justify-content:flex-end!important}.simplify-giftPanel .gift-control-panel .right-part>.dp-table-cell{display:flex!important;align-items:center!important}.simplify-giftPanel .gift-control-panel .right-part>.dp-table-cell .supporting-info{transform:translateY(-2px)!important}.simplify-skin #gift-control-vm,.simplify-skin #head-info-vm,.simplify-skin #rank-list-ctnr-box{background-image:none!important}.simplify-guard .guard-danmaku::before{border-image:none!important;background-color:transparent!important}.simplify-guard .guard-danmaku::before .guard-danmaku{margin:0!important;padding:4px 5px!important}.simplify-guard .guard-danmaku::before .guard-danmaku::after{background-image:none!important}.simplify-guard [class*=guard-level-]{padding:0!important;margin:0!important}.simplify-guard [class*=guard-level-]::after{display:none!important}.simplify-liveroom-settings>ul>li{padding:8px 12px;display:flex;align-items:center}.simplify-liveroom-settings>ul>li:hover{background:rgba(0,0,0,.16)}.round-corner .simplify-liveroom-settings>ul>li{border-radius:var(--corner-radius)}`; onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/simplify-liveroom.min.js"] = (()=>{return(e,i)=>{const s={vip:"老爷图标",fansMedal:"粉丝勋章",title:"活动头衔",userLevel:"用户等级",guard:"舰长图标",systemMessage:"全区广播",welcomeMessage:"欢迎信息",giftMessage:"礼物弹幕",guardPurchase:"上舰提示",giftPanel:"付费礼物",eventsBanner:"活动横幅",popup:"抽奖提示",skin:"房间皮肤"};class t{constructor(i,s){this.skinDisabled=e.simplifyLiveroomSettings.skin;this.skinSelectors=i;this.skinClass=s;i.forEach(e=>{SpinQuery.select(e,i=>{Observer.attributes(e,e=>{e.forEach(e=>{if(e.attributeName==="class"){if(this.skinDisabled&&i.classList.contains(s)){i.classList.remove(s)}else if(!this.skinDisabled&&!i.classList.contains(s)){i.classList.add(s)}}})})})})}setSkin(e){this.skinDisabled=!e;this.skinSelectors.forEach(i=>{SpinQuery.select(i,i=>i.classList[e?"add":"remove"](this.skinClass))})}}const n=[new t(["#head-info-vm","#gift-control-vm","#rank-list-vm","#rank-list-ctnr-box",".gift-panel.base-panel",".gift-panel.extend-panel",".seeds-wrap>div:first-child",".gift-section>div:last-child",".z-gift-package>div>div",".right-action"],"live-skin-coloration-area"),new t([".rank-list-ctnr .tabs"],"isHundred"),new t([".rank-list-ctnr .tab-content > div"],"hundred")];const a=(e,i)=>{document.body.classList[e?"add":"remove"](`simplify-${i}`);if(i==="skin"){n.forEach(i=>i.setSkin(!e))}};const c=()=>document.URL.startsWith(`https://live.bilibili.com/`);if(c()){Object.keys(s).forEach(i=>{const s=e.simplifyLiveroomSettings[i];a(s,i)})}return{widget:{condition:c,content:`\n
    \n\n简化直播间\n\n
    \n`,success:()=>{const i=document.querySelector("#simplify-liveroom");const t=document.querySelector(".gui-settings-mask");i.addEventListener("click",e=>{const i=document.querySelector(".simplify-liveroom-settings");if(i.contains(e.target)||e.target===i){return}i.classList.toggle("opened")});i.addEventListener("mouseenter",()=>t.classList.add("transparent"));i.addEventListener("mouseleave",()=>t.classList.remove("transparent"));new Vue({el:".simplify-liveroom-settings",data:{items:Object.entries(s).map(([i,s])=>{const t=e.simplifyLiveroomSettings[i];a(t,i);return{key:i,name:s,checked:t}})},methods:{itemClick(i){i.checked=!i.checked;a(i.checked,i.key);e.simplifyLiveroomSettings=Object.assign(e.simplifyLiveroomSettings,{[i.key]:i.checked})}}})}}}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/skip-charge-list.min.css"] = `.bilibili-player .bilibili-player-area .bilibili-player-electric-panel{display:none!important}`; onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/skip-charge-list.min.js"] = (()=>{return(e,i)=>{async function n(){const e=await SpinQuery.select(()=>document.querySelector("video"));e&&e.addEventListener("ended",async()=>{const e=await SpinQuery.select(()=>document.querySelector(".bilibili-player-electric-panel-jump"));e&&e.click()})}if(Observer.videoChange){Observer.videoChange(n)}else{Observer.childList("#bofqi",n)}}})(); diff --git a/min/bundle.json b/min/bundle.json index b3f0246a0..deb5b2dc0 100644 --- a/min/bundle.json +++ b/min/bundle.json @@ -27,7 +27,7 @@ "custom-navbar.min.html": "8A5332791C9693A571F7B885D6367616F519054CACEDA2DDA147735638EDEE15", "custom-navbar.min.js": "42C134E8BB2F984AC711C68A8FD89367468F216E80E8A4085CB1D5F011445431", "danmaku-converter.min.js": "FDAB4DB2E3C79730A39CDA7C5FD193693621FED206C6549E9B8F13778080CC12", - "dark-important.min.css": "241B733A5B0570FF9EE1EF039E3652DBBC92F742B3C403B38B2DDDEEF5C0A655", + "dark-important.min.css": "8B6A2F5E976565E607B8FDFA6428B0FA688577EC0BB2EE0B7495BE1CD1D12355", "dark-navbar.min.css": "A2D91F11127D165571ACCC53004EDDB118CEE110F9B020D7E0541E1C8FAEA478", "dark-schedule.min.js": "853C446547603F4F0425F19F09F73335C9EC451A790C1C07E5E5B88A09E9B453", "dark-styles.min.js": "C62AFBB47DDC1E2F3F45D688B0F98394E471A423BE26BF47504D5C7D069ADBA1", @@ -43,7 +43,7 @@ "download-audio.min.js": "96245533BB7FCB3297F0049198BB29B3D41CE85B4BE77DA2AE20931A25C7401E", "download-danmaku.min.js": "B462990C301C924B64687A734A02396B621A939EAC422B96868F49D615D77927", "download-video.min.css": "3C542A4ADB01F1E93DFFFAA9789287EE6712897DB6DFB5764F47E3DFAD51959E", - "download-video.min.html": "3AED52E086BDC624B6ABC1ADF99A898FDFF4C68565B790F8AA805BD184ECD286", + "download-video.min.html": "4311ABAF2886EB02B1003EA864DD605B113CDB05FF04C3A6882AD931F320D216", "download-video.min.js": "19BF033199C9C6AEE542187A8CBC87243CBB01DC098BC6D733AA0E36456B1D0B", "dpi-img.vue.min.js": "D4833A242EBDD84834B11DB4CEB68B8807BDFC9693C3E1AAE73071986FE26F78", "expand-danmaku.min.js": "B21658C40085AEA8DC49652AE62EB8610BB2EBEAF7A9C9AF69EF3B11E08EEC8D", @@ -130,7 +130,7 @@ "simplify-home.min.css": "C12B89218065EB887D4330C93747822115B31AD93073FF9F89AA585AEC9752CD", "simplify-home.min.js": "F6D7F8E0D45847C3E056711AECE3832785603E7EF85A4B995C028F5CBE539C94", "simplify-home.vue.min.js": "073A24094C480D6DD79006C3704002563AD9DF1BA496FF937DFE4A25869722E8", - "simplify-liveroom.min.css": "1724F27E6D511B0CA3F52C2B36B96F4DE638F27AD0EE49BD78913B5E1BA0830A", + "simplify-liveroom.min.css": "98F872E5BE28B4949302145A12ED047EF01C4E40A16176E5C39A6AFD540CCC41", "simplify-liveroom.min.js": "16C7DFF5204E5A020371C5F050A9557C65C8B25283145FBC6BBD892E82016C35", "skip-charge-list.min.css": "D3C988CE131CEBFAC8A60360529C83EC4AE1B9EA122F9A6924F19963E25A4FE9", "skip-charge-list.min.js": "D057258F8EE77D949147174585B1A8C640DDB74E0C0B711A50AEAC8D6792F49F", diff --git a/min/bundle.zip b/min/bundle.zip index 7b030dbd32be7ba6ec4126fd4900a373531779f4..08fefe54fb8554b262c5475775e374e476834964 100644 GIT binary patch delta 2066 zcmZWp2~d=E6#ou^Z+BsVZ=c)(nlXtihE8RPAXgk|VBVR72x}s^D7%_crc^V`B-A&Gvc(fzj^!i|K9um-tm9mZeLi# z-{2Z~LvH$;VKo(DHKHS|MoKdIl;);qe>>^G+}cP%sCBHpB+c=E&s$}SEwp89v=)?F3L;|*?Ur?j{7HHYIaj1{j%&Y4t9|A5x#^CCMk&W%w&kW* zRP{;>nK6#x!SHlc^?DuqQzPJ*^`p`r>TlHnQ1kWSyJaR_F{4Y*FfhCsJ`5wnm*L0ocg*NgYpaY}dU2-1 zCo=SckfC?@zGYH%*pQ*pyXW>Q7>*}Hg{#u!a8=Sr*=}x!{w8nn;i}-wb$Tj-6U

    UGmV|=5(jv3XzNOfLlXXNRCWY*CL>!0&1A&oItrIBA5n1bh%y1r z-^d%jHz{0PkJy`(F1oPkCS{60-~wy1$7xQ~p+sOxJw?lbXBGIJRRU0~X@@T<_~4Qf zwC5IiYw6=cJ%vgy{D_GSG#-mv$T#ADZF-1z3L+aQN^2A{8`#w}H0t_l1I38TalC;N zb^B6vf@SmiJS(c}DGY~NX&n4+QHbPBL(DCDRy>EPtYYUa_IUzdYk&DbY@}pShtx(& z(k+{-6IPcL7nqUz7aQgbaD>kqIYM*}<~K3Z>y2cVniq{KPd1PrEK77Wro_(0+F6p+ zvjXomQHJ<9t~XICSBga-p1w^nQqfABxXs1icAH}jxRt0!xhB~*=gTW5O&0_W^icLk zR_TP7Hx^=f9Zf($Glfh2@8QX2N)q>Cb2HDw+c?8QYWIe#nbM_?eUREhi9T&cy|AXR zz+zsNXSL#+LC)Z43wwX)i_0zST?Vf^O!l51vRI1Gq4Ex;h%e!%JCtlhh+Zg+n`w<@ z|I{?(HIWH3{-JPVZ0LUn7OQ#Dg3*JNZF*84aQ@@t-qu@yGapZjO@;MkJ2pY!J zi(M{v;^%*8rq@orLAwtV>xnSAl`q;5;Qq%NTeil$aLMRJ`Fx#O zGWZ!D+#QDVt@Moii^YJP)rKHMcktLo-sQ0^LgHOca{N$Q8?GmCI0;}i1%o=f>rSLjPozH=R6i z-S_xWN-%ctcy7R=4odLKk5>gAOU!TK(wyjEqNlS^+d-*P);vuHVrnN(*5rja*hv8> z=_Ir0i36S7%t+LCGRZPb>Y^m2Y^5q_OBc1n{6gIGy`zglVN9ripFbk*d3ycq-0zQzCDO!EQ>BhN=+XL$gH- z%6ce4T#7S2lq`+x!B7un%9r-4NZQA@uI%L9u`WKfsOnVSty5Kb!+JQ}^99lQ6oO-Hpq3a!PYyb@E;=2gDCccA16Vu@wq69gnny{jpCgP=G ziWc8O#W44-6<3DYWF~YY++Qm)N7%CV3Ss05kKCaVw)_lNN9cL6^! delta 1945 zcmY*Zdr(w$6uu9{yDYol-J`sBfy{h>VGjdSWKmI!2{X(PD-h9^1h>GlsT4D%M$y#t zvzihrGsSTr(=AJLM)R-oHTh^zWO)fLpolydrE}MDl$|+q?%i{K=YHpW=lfL@rJXEF zs|c!)L)Tf?hE^1ZR)~(!3dw3Rgs-!v{)%TV?+X`%eU97{Qo^upEvpO|e^v^{oKupQ zqxWBFiJx}Rv8Y~}GfZBYF|GJer^F_+d9e*)^L8BS9J=Q}nd>>;IHR5UT%LM+q;yxs`iv(%YW;MF_G~NKa@0ldKkT3N|<9ym$K1YelKI1 zBmAziDM$NoapfYNqjHgtd9&y3e7jHa`F1^kE5^2%7l{kN!Tvv1*DF*P^GICd4GID3tf<&<&-CFM#8_SQZK>kcaZhKJ=Z{j4DHpb~~xo#cd}(F}11 zeypP;F(0jUlqlvRrko8 zpjqM;7#kTwO#?+s3p3%@$hH2)+(t^07G&Y8Mj92)%%>LgEqyKWDM8ST1~oM#8#RrT zAf<0d$V>&n`xSO6n```&>jplQ@pqt@i+Kj z+-j`4K^D)ZmfoNcY1C~Ty+N@`n~z?wO^D4$#3de$zl-6V$CEBTS&w`dO%^{wxr-*r zPcPBqW{y5^M+=SRA&hI`75T-khuy9p;o%osS{ShR3RJexB>}qAzY(PybB}&;t;A~|q&$V%H0V9yp#?(YTfqiY< zc(uVC$qdX-SgLQl(tipxCZ~UGsr3!Z}Y6H zFo&I7y+lP!t{Q;y+bq|@T+dq&VmnxEd-K#s)z%M72LnxAj>YWd-F6jOcGZNV9X!x; zXzE~=Uf+t*cW8>wscouIkdyUJ_M09NtiQuJf5YxOlqhFHMJQA=(yJIJbu!M8U#h6t z$skfXX{?;MOU1o!)gZ*Ral*HpAa>(uC(Rb$htfr}y^?}W0<1cp0OWPC-lZ^suL-0kAAC&y!4H;;2$feEPvrZ9Zu=3=GYT+EI?yEQ^q!K+6jWHn~?@QNp`!Dl@* z$};#G6@;Kcg6PKS9#+qoO*qp-ff(P*gY8E~FH81wl=aedGFw5Rhun*NQcOYT kJ(?ul>a.current,.s-paging>ul>span.current,.score-info .go-movie,.tag-list li.tag-item.on{color:#eee!important}.bb-comment .no-login .comment-submit,.commnent-screen-wrap .el-input__inner,.common .bb-comment .no-login .comment-submit,.el-input__inner,.enter-failure .password-input .pink-border,.link-footer,.live-skin-coloration-area .live-skin-highlight-border,.live-skin-coloration-area .live-skin-separate-border,.popup-content-ctnr .bl-button--ghost:hover,.score-info .go-movie,.select-box-v2-container .select-box-v2-controller-disabled,.song-info .info-wrap .type-list .item-list .type-item.active,.tabs-bar,.ui-input-textarea.focus,.user-setting-warp .el-radio-button__orig-radio:checked+.el-radio-button__inner{border-color:transparent!important}#app .sticky-bar .bar-content .message:hover,.app-layout .style-section .tag-block .tag-containers .style-tag.selected,.container .video-panel .play-all .bilifont,.detail-wrp .detail-content[data-v-00c9b213] p a span,.drop-list-v2-container .drop-list-v2-item-selected .drop-list-v2-item-cont p.item-cont-main,.edit-button:hover>.icon-font,.edit-button:hover>span .left-nav-item-childed:hover,.el-select-dropdown__item.selected,.home-page .sticky-bar .bar-content .message:hover,.im-popup .bp-popup-panel .title-ctnr .popup-title,.left-nav-wrapper .active,.left-nav-wrapper .active .left-nav-item-child,.left-nav-wrapper .advice-btn:hover,.left-nav-wrapper .left-nav-item.active,.left-nav-wrapper .left-nav-item.active i.active,.left-nav-wrapper .left-nav-list.on .left-nav-item,.left-nav-wrapper .left-nav-list.on .left-nav-item .icon,.live-room-app .guard-rank-cntr.hundred .live-skin-main-a-text:hover,.live-room-app .guard-rank-cntr.thousand .live-skin-main-a-text:hover,.live-skin-coloration-area .live-skin-highlight-text,.live-skin-coloration-area .live-skin-normal-a-text:hover,.live-skin-normal-a-text:active,.manga-detail .episode-list-component .episode-list .list-header .header-item.selected,.more-data a:hover,.other a a:hover,.r-con .members-info .up-card .info-name.is-vip:hover,.rank-item .content .info .detail a a:hover,.rank-item .content .more-data:hover,.rank-item .content .other a:hover,.room-info-down-row .icon-label.hover-text-blue:hover .label,.room-introduction .edit-button:hover>.icon-font,.room-introduction .edit-button:hover>span,.up-info .u-info .name .username.is-vip:hover,.voucher-ing .voucher-left-money,.voucher-ing .voucher-left-money:before,.voucher-no-used .voucher-left-money,.voucher-no-used .voucher-left-money:before{color:var(--theme-color)!important}.aside-ctnr .author-info .communicate-btn,.live-skin-coloration-area .room-info-ctnr .info-section .live-skin-highlight-border,.manga-detail .episode-list-component .episode-list .list-data .list-item.last-read,.page-list-box .page-input:focus,.page-list-box .page-input:hover,.popup-content-ctnr .bl-button--ghost,.season-timeline .season-group.today,.season-timeline .season-group.today .group-time::before,.tag-list li.tag-item.on,.tag-list li.tag-item:hover{border-color:var(--theme-color)!important}.bg-blue,.el-date-table td.current:not(.disabled),.el-date-table td.end-date,.el-date-table td.start-date,.face-g-list#my-g-list .face-g-block .my-mp-block .mp-info .btn-white,.face-g-tab li.current,.live-skin-coloration-area .live-skin-highlight-bg,.popup-content-ctnr .bl-button--ghost:hover,.popup-content-ctnr .bl-button--primary,.season-timeline .season-group.today.is-published .group-time::before,.security-list .child-list li a.bg-blue:hover,.song-info .info-wrap .type-list .item-list .type-item.active,.tag-list li.tag-item.on,.user-my-btn .el-button--primary,.user-setting-warp .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:var(--theme-color)!important}.current .tab-btn-link,.el-date-table td.current:not(.disabled),.el-date-table td.end-date,.el-date-table td.start-date,.face-g-tab li.current,.popup-content-ctnr .bl-button--ghost:hover,.style-section .tag-block .tag-containers .style-tag:active{color:var(--foreground-color)!important}#bilibiliPlayer{box-shadow:0 4px 8px 0 #0004} \ No newline at end of file +#disable-popup-modal .vip-exchange .months button.disabled,#vip-exchange-modal .vip-exchange .months button.disabled,.action-row .publish-btn.disabled,.action-row .publish-btn.publishing,.action-row .sch-pub-btn.disabled,.action-row .sch-pub-btn.publishing,.app-body .section-block,.bl-button--primary:disabled,.link-footer,.live-skin-coloration-area .live-skin-separate-area,.live-skin-coloration-area .live-skin-separate-area-hover:hover,.payment-active,.player-auxiliary-area .player-auxiliary-bscrollbar .bscroll-indicator,.tab-list .tab-item.active:before{background-color:#222!important}.app-body .section-block.with-bottom-radius,.app-body .section-block.with-radius,.bb-comment .no-login .comment-submit,.common .bb-comment .no-login .comment-submit,.container .pagination,.coupon-content-con .coupon-btn-disable,.customize-wrp .select,.f-list-hover:hover,.fjw-case-detail .ban-detail .content-box .video-model,.game-groom-m .num,.main-container .media-info .media-right .media-tool-bar .btn-follow.active,.main-container .pay-bar .vip .btn-pay.active,.open-dialog-masker .open-dialog-content .open-footer .btn-normal.disabled,.open-dialog-masker .open-dialog-content .open-footer .btn-normal.disabled:hover,.pagination-container li.pagination,.status_box .status_btn.disabled,.wrapper .elec-btn.disabled{background-color:#444!important}.danmaku-wrap .player-auxiliary-area .player-auxiliary-danmaku-wrap .bscroll-indicator{background-color:#555!important}.danmaku-wrap .player-auxiliary-area .player-auxiliary-danmaku-wrap .bscroll-vertical-scrollbar.mousedown,.danmaku-wrap .player-auxiliary-area .player-auxiliary-danmaku-wrap:hover .bscroll-vertical-scrollbar,.m-recommend-item div.box,.player-auxiliary-area .player-auxiliary-bscrollbar .bscroll-vertical-scrollbar,.player-auxiliary-area .player-auxiliary-bscrollbar .bscroll-vertical-scrollbar.mousedown,.player-auxiliary-area .player-auxiliary-bscrollbar:hover .bscroll-vertical-scrollbar{background-color:transparent!important}.live-skin-coloration-area .live-skin-normal-a-text,.live-skin-coloration-area .live-skin-normal-a-text:link,.live-skin-coloration-area .live-skin-normal-a-text:visited,.live-skin-coloration-area .live-skin-normal-text,.open-dialog-masker .open-dialog-content .open-footer .btn-normal.disabled,.open-dialog-masker .open-dialog-content .open-footer .btn-normal.disabled:hover,.status_box .status_btn.disabled,blockquote *,blockquote .color-blue-01,blockquote .color-blue-02,blockquote .color-blue-03,blockquote .color-blue-04,blockquote .color-gray-01,blockquote .color-gray-02,blockquote .color-gray-03,blockquote .color-gray-04,blockquote .color-green-01,blockquote .color-green-02,blockquote .color-green-03,blockquote .color-green-04,blockquote .color-lblue-01,blockquote .color-lblue-02,blockquote .color-lblue-03,blockquote .color-lblue-04,blockquote .color-pink-01,blockquote .color-pink-02,blockquote .color-pink-03,blockquote .color-pink-04,blockquote .color-purple-01,blockquote .color-purple-02,blockquote .color-purple-03,blockquote .color-purple-04,blockquote .color-yellow-01,blockquote .color-yellow-02,blockquote .color-yellow-03,blockquote .color-yellow-04{color:#aaa!important}#app .sticky-bar .bar-content .message,.bb-comment .no-login .comment-submit,.bp-popup-panel .title-ctnr .popup-title,.commnent-screen-wrap .el-input__inner,.common .bb-comment .no-login .comment-submit,.coupon-content-con .coupon-btn-disable,.cover .disabled-cover,.customize-wrp .select,.el-input__inner,.home-page .sticky-bar .bar-content .message,.invitation-record-warp .invtable .inputdone,.live-room-app .guard-rank-cntr .tabs.isHundred .item.active,.live-room-app .guard-rank-cntr.hundred .live-skin-highlight-text,.live-room-app .guard-rank-cntr.hundred .live-skin-main-a-text,.live-room-app .guard-rank-cntr.hundred .page-box .live-skin-main-text,.live-room-app .guard-rank-cntr.thousand .live-skin-highlight-text,.live-room-app .guard-rank-cntr.thousand .live-skin-main-a-text,.live-room-app .guard-rank-cntr.thousand .page-box .live-skin-main-text,.live-skin-coloration-area .live-skin-highlight-text,.live-skin-coloration-area .live-skin-main-text,.manga-detail .episode-list-component .episode-list .list-data .list-item.last-read,.popup-content-ctnr .bl-button--ghost,.s-paging>ul>a.current,.s-paging>ul>span.current,.score-info .go-movie,.tag-list li.tag-item.on{color:#eee!important}#rank-list-vm .tabs.isHundred .item,.bb-comment .no-login .comment-submit,.commnent-screen-wrap .el-input__inner,.common .bb-comment .no-login .comment-submit,.el-input__inner,.enter-failure .password-input .pink-border,.link-footer,.live-skin-coloration-area .live-skin-highlight-border,.live-skin-coloration-area .live-skin-separate-border,.popup-content-ctnr .bl-button--ghost:hover,.score-info .go-movie,.select-box-v2-container .select-box-v2-controller-disabled,.song-info .info-wrap .type-list .item-list .type-item.active,.tabs-bar,.ui-input-textarea.focus,.user-setting-warp .el-radio-button__orig-radio:checked+.el-radio-button__inner{border-color:transparent!important}#app .sticky-bar .bar-content .message:hover,.app-layout .style-section .tag-block .tag-containers .style-tag.selected,.container .video-panel .play-all .bilifont,.detail-wrp .detail-content[data-v-00c9b213] p a span,.drop-list-v2-container .drop-list-v2-item-selected .drop-list-v2-item-cont p.item-cont-main,.edit-button:hover>.icon-font,.edit-button:hover>span .left-nav-item-childed:hover,.el-select-dropdown__item.selected,.home-page .sticky-bar .bar-content .message:hover,.im-popup .bp-popup-panel .title-ctnr .popup-title,.left-nav-wrapper .active,.left-nav-wrapper .active .left-nav-item-child,.left-nav-wrapper .advice-btn:hover,.left-nav-wrapper .left-nav-item.active,.left-nav-wrapper .left-nav-item.active i.active,.left-nav-wrapper .left-nav-list.on .left-nav-item,.left-nav-wrapper .left-nav-list.on .left-nav-item .icon,.live-room-app .guard-rank-cntr.hundred .live-skin-main-a-text:hover,.live-room-app .guard-rank-cntr.thousand .live-skin-main-a-text:hover,.live-skin-coloration-area .live-skin-highlight-text,.live-skin-coloration-area .live-skin-normal-a-text:hover,.live-skin-normal-a-text:active,.manga-detail .episode-list-component .episode-list .list-header .header-item.selected,.more-data a:hover,.other a a:hover,.r-con .members-info .up-card .info-name.is-vip:hover,.rank-item .content .info .detail a a:hover,.rank-item .content .more-data:hover,.rank-item .content .other a:hover,.room-info-down-row .icon-label.hover-text-blue:hover .label,.room-introduction .edit-button:hover>.icon-font,.room-introduction .edit-button:hover>span,.up-info .u-info .name .username.is-vip:hover,.voucher-ing .voucher-left-money,.voucher-ing .voucher-left-money:before,.voucher-no-used .voucher-left-money,.voucher-no-used .voucher-left-money:before{color:var(--theme-color)!important}.aside-ctnr .author-info .communicate-btn,.live-skin-coloration-area .room-info-ctnr .info-section .live-skin-highlight-border,.manga-detail .episode-list-component .episode-list .list-data .list-item.last-read,.page-list-box .page-input:focus,.page-list-box .page-input:hover,.popup-content-ctnr .bl-button--ghost,.season-timeline .season-group.today,.season-timeline .season-group.today .group-time::before,.tag-list li.tag-item.on,.tag-list li.tag-item:hover{border-color:var(--theme-color)!important}.bg-blue,.el-date-table td.current:not(.disabled),.el-date-table td.end-date,.el-date-table td.start-date,.face-g-list#my-g-list .face-g-block .my-mp-block .mp-info .btn-white,.face-g-tab li.current,.live-skin-coloration-area .live-skin-highlight-bg,.popup-content-ctnr .bl-button--ghost:hover,.popup-content-ctnr .bl-button--primary,.season-timeline .season-group.today.is-published .group-time::before,.security-list .child-list li a.bg-blue:hover,.song-info .info-wrap .type-list .item-list .type-item.active,.tag-list li.tag-item.on,.user-my-btn .el-button--primary,.user-setting-warp .el-radio-button__orig-radio:checked+.el-radio-button__inner{background-color:var(--theme-color)!important}.current .tab-btn-link,.el-date-table td.current:not(.disabled),.el-date-table td.end-date,.el-date-table td.start-date,.face-g-tab li.current,.popup-content-ctnr .bl-button--ghost:hover,.style-section .tag-block .tag-containers .style-tag:active{color:var(--foreground-color)!important}#bilibiliPlayer{box-shadow:0 4px 8px 0 #0004} \ No newline at end of file diff --git a/min/download-video.min.html b/min/download-video.min.html index 89f423fbf..7152231a6 100644 --- a/min/download-video.min.html +++ b/min/download-video.min.html @@ -1 +1 @@ -

    下载视频

    单个视频
    批量导出
    警告: 过大的视频大小会在直接下载时占用大量内存, 并可能导致浏览器标签页崩溃. 请考虑降低清晰度或使用导出选项.
    预计大小: {{displaySize}}
    格式
    清晰度
    弹幕

    直接下载

    {{speed}}
    {{progressPercent}}%

    选集

    {{selectedEpisodeCount}}/{{episodeList.length}}

    导出

    {{showRpcSettings ? '取消' : 'aria2 RPC'}}

    aria2 RPC

    配置

    主机
    端口
    密钥
    限速
    默认路径
    路径
    最终路径: {{rpcSettings.baseDir + rpcSettings.dir}}
    方法
    开始下载
    {{saveRpcSettingsText}}
    \ No newline at end of file +

    下载视频

    单个视频
    批量导出
    警告: 过大的视频大小会在直接下载时占用大量内存, 并可能导致浏览器标签页崩溃. 请考虑降低清晰度或使用导出选项.
    预计大小: {{displaySize}}
    格式
    清晰度
    弹幕

    直接下载

    {{speed}}
    {{progressPercent}}%

    选集

    {{selectedEpisodeCount}}/{{episodeList.length}}

    导出

    {{showRpcSettings ? '取消' : 'aria2 RPC'}}

    aria2 RPC

    配置

    主机
    端口
    密钥
    限速
    默认路径
    路径
    最终路径: {{rpcSettings.baseDir + rpcSettings.dir}}
    方法
    开始下载
    {{saveRpcSettingsText}}
    \ No newline at end of file diff --git a/min/simplify-liveroom.min.css b/min/simplify-liveroom.min.css index 086932ea6..3458608e2 100644 --- a/min/simplify-liveroom.min.css +++ b/min/simplify-liveroom.min.css @@ -1 +1 @@ -.simplify-eventsBanner .activity-pushing-out,.simplify-fansMedal .fans-medal-item-ctnr,.simplify-giftMessage .chat-item.gift-item,.simplify-giftPanel .gift-control-panel .wish-icon,.simplify-giftPanel .gift-control-panel .wish-tip,.simplify-giftPanel .gift-panel,.simplify-giftPanel .gift-panel-switch,.simplify-giftPanel .gift-section.guard-ent,.simplify-giftPanel .seeds-wrap>.dp-i-block>.item:not(.seeds),.simplify-guard i.guard-icon,.simplify-guardPurchase .chat-item.guard-buy,.simplify-popup .chat-popups-section,.simplify-popup .link-popup-ctnr,.simplify-systemMessage .announcement-wrapper,.simplify-systemMessage .system-msg,.simplify-title .title-label,.simplify-userLevel .user-level-icon,.simplify-vip .vip-icon,.simplify-welcomeMessage .welcome-guard,.simplify-welcomeMessage .welcome-msg{display:none!important}.simplify-giftPanel .gift-control-panel,.simplify-giftPanel .gift-control-section{height:48px!important}.simplify-giftPanel .treasure-box{display:flex!important;align-items:center!important;padding:10px 0 0 16px!important}.simplify-giftPanel .treasure-box .box-icon{width:24px!important;height:24px!important;background-position:0 -2.5px!important}.simplify-giftPanel .treasure-box .box-icon.open{background-position:0 -1px!important}.simplify-giftPanel .treasure-box .count-down{margin-left:12px!important;padding:4px 8px!important;max-width:unset!important}.simplify-giftPanel .treasure-box .awarding-panel{bottom:42px!important}.simplify-giftPanel .gift-control-panel .right-part{height:48px!important;display:flex!important;justify-content:flex-end!important}.simplify-giftPanel .gift-control-panel .right-part>.dp-table-cell{display:flex!important;align-items:center!important}.simplify-giftPanel .gift-control-panel .right-part>.dp-table-cell .supporting-info{transform:translateY(-2px)!important}.simplify-skin #gift-control-vm,.simplify-skin #head-info-vm,.simplify-skin #rank-list-ctnr-box{background-image:none!important}.simplify-guard .guard-danmaku::before{border-image:none!important;background-color:transparent!important}.simplify-guard .guard-danmaku::before .guard-danmaku{margin:0!important;padding:4px 5px!important}.simplify-guard .guard-danmaku::before .guard-danmaku::after{background-image:none!important}.simplify-guard [class*=guard-level-]::after{display:none!important}.simplify-liveroom-settings>ul>li{padding:8px 12px;display:flex;align-items:center}.simplify-liveroom-settings>ul>li:hover{background:rgba(0,0,0,.16)}.round-corner .simplify-liveroom-settings>ul>li{border-radius:var(--corner-radius)} \ No newline at end of file +.simplify-eventsBanner .activity-pushing-out,.simplify-fansMedal .fans-medal-item-ctnr,.simplify-giftMessage .chat-item.gift-item,.simplify-giftPanel .gift-control-panel .wish-icon,.simplify-giftPanel .gift-control-panel .wish-tip,.simplify-giftPanel .gift-panel,.simplify-giftPanel .gift-panel-switch,.simplify-giftPanel .gift-section.guard-ent,.simplify-giftPanel .seeds-wrap>.dp-i-block>.item:not(.seeds),.simplify-guard i.guard-icon,.simplify-guardPurchase .chat-item.guard-buy,.simplify-popup .chat-popups-section,.simplify-popup .link-popup-ctnr,.simplify-systemMessage .announcement-wrapper,.simplify-systemMessage .system-msg,.simplify-title .title-label,.simplify-userLevel .user-level-icon,.simplify-vip .vip-icon,.simplify-welcomeMessage .welcome-guard,.simplify-welcomeMessage .welcome-msg{display:none!important}.simplify-giftPanel .gift-control-panel,.simplify-giftPanel .gift-control-section{height:48px!important}.simplify-giftPanel .treasure-box{display:flex!important;align-items:center!important;padding:10px 0 0 16px!important}.simplify-giftPanel .treasure-box .box-icon{width:24px!important;height:24px!important;background-position:0 -2.5px!important}.simplify-giftPanel .treasure-box .box-icon.open{background-position:0 -1px!important}.simplify-giftPanel .treasure-box .count-down{margin-left:12px!important;padding:4px 8px!important;max-width:unset!important}.simplify-giftPanel .treasure-box .awarding-panel{bottom:42px!important}.simplify-giftPanel .gift-control-panel .right-part{height:48px!important;display:flex!important;justify-content:flex-end!important}.simplify-giftPanel .gift-control-panel .right-part>.dp-table-cell{display:flex!important;align-items:center!important}.simplify-giftPanel .gift-control-panel .right-part>.dp-table-cell .supporting-info{transform:translateY(-2px)!important}.simplify-skin #gift-control-vm,.simplify-skin #head-info-vm,.simplify-skin #rank-list-ctnr-box{background-image:none!important}.simplify-guard .guard-danmaku::before{border-image:none!important;background-color:transparent!important}.simplify-guard .guard-danmaku::before .guard-danmaku{margin:0!important;padding:4px 5px!important}.simplify-guard .guard-danmaku::before .guard-danmaku::after{background-image:none!important}.simplify-guard [class*=guard-level-]{padding:0!important;margin:0!important}.simplify-guard [class*=guard-level-]::after{display:none!important}.simplify-liveroom-settings>ul>li{padding:8px 12px;display:flex;align-items:center}.simplify-liveroom-settings>ul>li:hover{background:rgba(0,0,0,.16)}.round-corner .simplify-liveroom-settings>ul>li{border-radius:var(--corner-radius)} \ No newline at end of file diff --git a/src/style/simplify-liveroom/simplify-liveroom.scss b/src/style/simplify-liveroom/simplify-liveroom.scss index d0ab66b4f..0881dfe62 100644 --- a/src/style/simplify-liveroom/simplify-liveroom.scss +++ b/src/style/simplify-liveroom/simplify-liveroom.scss @@ -80,8 +80,12 @@ background-image: none !important; } } - [class*='guard-level-']::after { - display: none !important; + [class*="guard-level-"] { + padding: 0 !important; + margin: 0 !important; + &::after { + display: none !important; + } } } .simplify-liveroom-settings > ul > li {