diff --git a/bilibili-evolved.offline.user.js b/bilibili-evolved.offline.user.js
index 64907d7f3..60a6d7c1f 100644
--- a/bilibili-evolved.offline.user.js
+++ b/bilibili-evolved.offline.user.js
@@ -1,6 +1,6 @@
// ==UserScript==
// @name Bilibili Evolved (Offline)
-// @version 693.29
+// @version 693.34
// @description Bilibili Evolved 的离线版, 所有功能都已内置于脚本中.
// @author Grant Howard, Coulomb-G
// @copyright 2020, Grant Howard (https://github.com/the1812) & Coulomb-G (https://github.com/Coulomb-G)
@@ -1297,7 +1297,7 @@ offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/m
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/custom-navbar-upload.min.js"] = (()=>{return(i,t)=>{const{NavbarComponent:e}=t.import("custom-navbar-component");class a extends e{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"}}return{export:{Upload:a}}}})();
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/custom-navbar-user-info.min.js"] = (()=>{return(e,i)=>{const{NavbarComponent:n}=i.import("custom-navbar-component");class t extends n{constructor(){super();this.userInfo={mid:getUID(),isLogin:Boolean(getUID())};this.boundingWidth=240;this.noPadding=true;this.href="https://space.bilibili.com";this.html=`\n\n
\n
\n
\n`;this.popupHtml=`
`;this.requestedPopup=true;this.init()}get name(){return"userInfo"}async init(){const e=await SpinQuery.select(".custom-navbar .user-info-panel");const i=await SpinQuery.select(".custom-navbar .user-face-container .user-face");const n=await Ajax.getJsonWithCredentials("https://api.bilibili.com/x/web-interface/nav");const t=await Ajax.getJsonWithCredentials("https://api.bilibili.com/x/web-interface/nav/stat");Object.assign(this.userInfo,n.data);Object.assign(this.userInfo,t.data);const s=new Vue({template:`\n\n
\n
\n
欢迎来到 bilibili \n
注册 \n
登录 \n
\n
\n`,data:{...this.userInfo,privileges:{bCoin:{received:false,expire:""},coupons:{received:false,expire:""}}},filters:{count(e){return formatCount(e)}},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 e=(this.level_info.current_exp-this.level_info.current_min)/(this.level_info.next_exp-this.level_info.current_min);return{transform:`scaleX(${e})`}}},methods:{async privilegeReceive(e){const i={1:"bCoin",2:"coupons"};if(this.privileges[i[e]].received){return}this.privileges[i[e]].received=true;const n=getCsrf();const t=await(await fetch("https://api.bilibili.com/x/vip/privilege/receive",{credentials:"include",headers:{"content-type":"application/x-www-form-urlencoded"},body:`type=${e}&csrf=${n}`,method:"POST"})).json();console.log(t);if(t.code===0){if(i[e]==="bCoin"){this.wallet.bcoin_balance+=5}}else if(t.code===69801){return}else{this.privileges[i[e]].received=false;logError(t.message)}}}});s.$mount(e);if(this.userInfo.isLogin){const e=this.userInfo.face.replace("http","https");const n="//static.hdslb.com/images/member/noface.gif";if(!e.includes(n)){const n=68;i.setAttribute("srcset",getDpiSourceSet(e,n))}else{i.setAttribute("src",n)}if(this.userInfo.pendant.image){const e=await SpinQuery.select(".custom-navbar .user-face-container .user-pendant");const i=this.userInfo.pendant.image.replace("http","https");const n=116;e.setAttribute("srcset",getDpiSourceSet(i,n,"png"))}if(this.userInfo.vipType===2){const e=await Ajax.getJsonWithCredentials("https://api.bilibili.com/x/vip/privilege/my");if(e.code===0){const i=e.data.list.find(e=>e.type===1);s.privileges.bCoin.received=i.state===1;s.privileges.bCoin.expire=new Date(i.expire_time*1e3).toLocaleDateString();const n=e.data.list.find(e=>e.type===2);s.privileges.coupons.received=n.state===1;s.privileges.coupons.expire=new Date(n.expire_time*1e3).toLocaleDateString()}}}else{i.setAttribute("src","https://static.hdslb.com/images/akari.jpg")}}}return{export:{UserInfo:t}}}})();
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/custom-navbar-video-list.min.js"] = (()=>{return(t,i)=>{const{NavbarComponent:s}=i.import("custom-navbar-component");class e extends s{constructor({mainUrl:t,name:i,apiUrl:s,listName:e,listMap:a}){super();this.href=t;this.listName=e;this.html=i;this.noPadding=true;this.requestedPopup=false;this.popupHtml=`\n\n加载中... \n \n`;this.initialPopup=(async()=>{if(!a){return}const l=await SpinQuery.select(`.video-list.${e}`);if(l===null){return}const r=await Ajax.getJsonWithCredentials(s);let n="";if(r.code!==0){logError(`加载${i}信息失败. 错误码: ${r.code} ${r.message}`)}else{n=a(r).join("")}l.insertAdjacentHTML("beforeend",n+`\n查看更多 \n`);l.classList.add("loaded")})}get name(){return this.listName+"List"}}class a extends e{constructor(){super({name:"收藏",mainUrl:`https://space.bilibili.com/${getUID()}/favlist`,apiUrl:"https://api.bilibili.com/medialist/gateway/coll/resource/recent",listName:"favorites",listMap:t=>{if(!t.data||t.data.length===0){return[`空空如也哦 = ̄ω ̄= `]}return t.data.map(t=>{return`\n\n${t.title} \n `})}});this.active=document.URL.replace(/\?.*$/,"")===`https://space.bilibili.com/${getUID()}/favlist`}}class l extends e{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:t=>{if(!t.data||t.data.length===0){return[`空空如也哦 = ̄ω ̄= `]}return t.data.map(t=>{let i=[];let s="";const e=t.page?t.page.page:1;let a=t.progress>=0?t.progress/t.duration:1;if(isNaN(a)){a=0}if(e!==1){i.push(`p=${e}`);s+=`看到第${e}话`}if(t.progress>0&&t.progress\n\n${t.title} \n${s} \n\n \n`})}});this.active=document.URL.replace(/\?.*$/,"")==="https://www.bilibili.com/account/history"}}return{export:{FavoritesList:a,HistoryList:l}}}})();
-offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/custom-navbar-watchlater-list.min.js"] = (()=>{return(t,i)=>{const{NavbarComponent:a}=i.import("custom-navbar-component");class e extends a{constructor(){super();this.boundingWidth=380;this.noPadding=true;this.href="https://www.bilibili.com/watchlater/#/list";this.html="稍后再看";this.active=document.URL.startsWith("https://www.bilibili.com/watchlater/");this.popupHtml=`\n\n
\n 加载中...\n
\n
\n 空空如也哦 = ̄ω ̄=\n
\n\n
\n\n \n \x3c!--
\n \n 撤销\n
--\x3e\n
\n`;this.initialPopup=(()=>{this.init()})}async init(){new Vue({el:await SpinQuery.select(`.custom-navbar [data-name="${this.name}"] .watchlater-list`),store:store,components:{DpiImg:()=>i.importAsync("dpi-img.vue")},data:{cards:[],filteredCards:[],search:"",lastRemovedAid:0,redirect:t.watchLaterRedirect&&t.watchLaterRedirectNavbar},computed:{...Vuex.mapState(["watchlaterList"])},watch:{watchlaterList(){this.updateList()},search(){this.updateFilteredCards()}},methods:{...Vuex.mapActions(["toggleWatchlater"]),async updateList(){const{getWatchlaterList:t}=await i.importAsync("watchlater-api");const a=await t(true);if(!a){this.cards=[];return}const e=t=>{if(this.redirect){return`https://www.bilibili.com/video/av${t.aid}`}if(t.bvid){return`https://www.bilibili.com/watchlater/#/${t.bvid}`}return`https://www.bilibili.com/watchlater/#/av${t.aid}`};const s=a.map(t=>{const i=(()=>{if(t.pages===undefined){return e(t)}const i=t.pages.map(t=>t.cid);const a=t.cid===0?1:i.indexOf(t.cid)+1;return this.redirect?`${e(t)}?p=${a}`:`${e(t)}/p${a}`})();const a=Math.round(1e3*t.progress/t.duration)/1e3;return{aid:t.aid,href:i,coverUrl:t.pic.replace("http:","https:"),durationText:formatDuration(t.duration),duration:t.duration,complete:t.progress<0||a>.95,title:t.title,upName:t.owner.name,upFaceUrl:t.owner.face.replace("http:","https:"),upID:t.owner.mid}});this.cards=s;if(this.search){this.updateFilteredCards()}else{this.filteredCards=s}},async remove(t,i){this.cards.splice(i,1);await this.toggleWatchlater(t);this.lastRemovedAid=t},async undo(){const t=this.lastRemovedAid;if(t!==0){await this.toggleWatchlater(t)}},updateFilteredCards:_.debounce(function(){const t=this.search.toLowerCase();const i=this.$el.querySelector(".cards");i.scrollTo(0,0);this.filteredCards=this.cards.filter(i=>{return i.title.toLowerCase().includes(t)||i.upName.toLowerCase().includes(t)})},100)},async mounted(){try{await this.updateList()}finally{this.$el.classList.remove("loading")}}})}get name(){return"watchlaterList"}}return{export:{WatchlaterList:e}}}})();
+offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/custom-navbar-watchlater-list.min.js"] = (()=>{return(t,i)=>{const{NavbarComponent:a}=i.import("custom-navbar-component");class e extends a{constructor(){super();this.boundingWidth=380;this.noPadding=true;this.href="https://www.bilibili.com/watchlater/#/list";this.html="稍后再看";this.active=document.URL.startsWith("https://www.bilibili.com/watchlater/");this.popupHtml=`\n\n
\n 加载中...\n
\n
\n 空空如也哦 = ̄ω ̄=\n
\n\n
\n\n \n \x3c!--
\n \n 撤销\n
--\x3e\n
\n`;this.initialPopup=(()=>{this.init()})}async init(){new Vue({el:await SpinQuery.select(`.custom-navbar [data-name="${this.name}"] .watchlater-list`),store:store,components:{DpiImg:()=>i.importAsync("dpi-img.vue")},data:{cards:[],filteredCards:[],search:"",lastRemovedAid:0,redirect:t.watchLaterRedirect&&t.watchLaterRedirectNavbar},computed:{...Vuex.mapState(["watchlaterList"])},watch:{watchlaterList(){this.updateList()},search(){this.updateFilteredCards()}},methods:{...Vuex.mapActions(["toggleWatchlater"]),async updateList(){const{getWatchlaterList:t}=await i.importAsync("watchlater-api");const a=await t(true);if(!a){this.cards=[];return}const e=t=>{if(this.redirect){return`https://www.bilibili.com/video/av${t.aid}`}if(t.bvid){return`https://www.bilibili.com/watchlater/#/${t.bvid}`}return`https://www.bilibili.com/watchlater/#/av${t.aid}`};const s=a.map(t=>{const i=(()=>{if(t.pages===undefined){return e(t)}const i=t.pages.map(t=>t.cid);const a=t.cid===0?1:i.indexOf(t.cid)+1;return this.redirect?`${e(t)}?p=${a}`:`${e(t)}/p${a}`})();const a=Math.round(1e3*t.progress/t.duration)/1e3;return{aid:t.aid,href:i,coverUrl:t.pic.replace("http:","https:"),durationText:formatDuration(t.duration),duration:t.duration,complete:t.progress<0||a>.95,title:t.title,upName:t.owner.name,upFaceUrl:t.owner.face.replace("http:","https:"),upID:t.owner.mid}});this.cards=s;if(this.search){this.updateFilteredCards()}else{this.filteredCards=s}},async remove(t,i){this.cards.splice(i,1);await this.toggleWatchlater(t);this.lastRemovedAid=t},async undo(){const t=this.lastRemovedAid;if(t!==0){await this.toggleWatchlater(t)}},updateFilteredCards:_.debounce(function(){const t=this.search.toLowerCase();const i=this.$el.querySelector(".cards");i.scrollTo(0,0);this.filteredCards=this.cards.filter(i=>{return i.title.toLowerCase().includes(t)||i.upName.toLowerCase().includes(t)})},100)},async mounted(){try{await this.updateList()}finally{this.$el.classList.remove("loading")}}})}get name(){return"watchlaterList"}}return{export:{WatchlaterList:e}}}})();
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/danmaku-converter.min.js"] = (()=>{return(t,e)=>{class i{constructor({content:t,time:e,type:i,fontSize:r,color:a}){this.content=t;this.time=e;this.startTime=parseFloat(e);this.type=parseInt(i);this.fontSize=parseFloat(r);this.color=parseInt(a)}}class r extends i{constructor({content:t,time:e,type:i,fontSize:r,color:a,timeStamp:s,pool:n,userHash:o,rowId:l}){super({content:t,time:e,type:i,fontSize:r,color:a});this.timeStamp=parseInt(s);this.pool=parseInt(n);this.userHash=o;this.rowId=parseInt(l);this.pDataArray=[e,i,r,a,s,n,o,l]}text(){const t=this.pDataArray.join(",");return`${this.content} `}static parse(t){const e=t.getAttribute("p");const[i,a,s,n,o,l,h,c]=e.split(",");const u=t.innerHTML;return new r({content:u,time:i,type:a,fontSize:s,color:n,timeStamp:o,pool:l,userHash:h,rowId:c})}}class a{constructor(t){this.xml=t;const e=(new DOMParser).parseFromString(t,"application/xml").documentElement;this.danmakus=[...e.querySelectorAll("d[p]")].map(t=>r.parse(t))}}var s;(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"})(s||(s={}));class n extends i{constructor({content:t,time:e,type:i,fontSize:r,color:a,typeTag:s,colorTag:n,endTime:o}){super({content:t,time:e,type:i,fontSize:r,color:a});this.typeTag=s;this.colorTag=n;this.endTime=o}text(t){let e=t[this.fontSize];if(!e){e=t[25]}const i=e.match(/Style:(.*?),/)[1].trim();return`Dialogue: 0,${this.time},${this.endTime},${i},,0,0,0,,{${this.typeTag}${this.colorTag}}${this.content}`}}class o{constructor(t,e,i,r,a){this.danmakus=t;this.title=e;this.fontStyles=i;this.blockTypes=r;this.resolution=a}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,i,r){this.horizontalStack=[];this.horizontalTrack=[];this.verticalStack=[];this.verticalTrack=[];this.resolution=e;this.duration=i;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=r;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 i=e.width/2;return[i,this.danmakuHeight/2]}getTags(t,{targetTrack:e,initTrackNumber:i,nextTrackNumber:r,willOverlay:a,getTrackItem:s,getTag:n}){const[o,h]=this.getTextSize(t);const c=o*2;const u=this.duration(t)*c/(this.resolution.x+c)+l.nextDanmakuDelay;let m=i;let p=null;do{p=e.find(t=>a(t,m,c));m+=r}while(p&&m<=this.trackCount&&m>=0);if(m>this.trackCount||m<0){return`\\pos(0,-999)`}m-=r;e.push(s(m,c,u));return n({trackNumber:m,x:o,y:h})}getHorizontalTags(t){return this.getTags(t,{targetTrack:this.horizontalTrack,initTrackNumber:0,nextTrackNumber:1,willOverlay:(e,i,r)=>{if(e.trackNumber!==i){return false}if(e.widtht.startTime}},getTrackItem:(e,i,r)=>{return{width:i,start:t.startTime,visible:t.startTime+r,end:t.startTime+this.duration(t),trackNumber:e}},getTag:({trackNumber:e,x:i,y:r})=>{return`\\move(${this.resolution.x+i},${e*this.trackHeight+l.margin+r},${-i},${e*this.trackHeight+l.margin+r},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,i)=>{if(e.trackNumber!==i){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:i})=>{if(e){return`\\pos(${this.resolution.x/2},${t*this.trackHeight+l.margin+i})`}else{return`\\pos(${this.resolution.x/2},${this.resolution.y-l.margin-i-(this.trackCount-1-t)*this.trackHeight})`}}})}push(t){let e="";let i=[];switch(l.danmakuType[t.type]){case"normal":case"reversed":{e=this.getHorizontalTags(t);i=this.horizontalStack;break}case"top":case"bottom":{e=this.getVerticalTags(t);i=this.verticalStack;break}case"special":default:{return{tags:`\\pos(0,-999)`}}}const r={tags:e};i.push(r);return r}}l.danmakuType={[s.Normal]:"normal",[s.Normal2]:"normal",[s.Normal3]:"normal",[s.Bottom]:"bottom",[s.Top]:"top",[s.Reversed]:"reversed",[s.Special]:"special",[s.Special2]:"special"};l.margin=4;l.nextDanmakuDelay=.05;class h{constructor({title:t,font:e,alpha:i,duration:r,blockTypes:a,resolution:s,bottomMarginPercent:n,bold:o}){this.title=t;this.font=e;this.alpha=Math.round(i*255).toString(16).toUpperCase().padStart(2,"0");this.duration=r;this.blockTypes=a;this.resolution=s;this.bold=o;this.danmakuStack=new l(e,s,r,n)}get fontStyles(){return{36:`Style: Larger,${this.font},72,&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`,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 a(t);const i=[];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!==h.white){continue}const[e,r]=this.convertTime(t.startTime,this.duration(t));i.push(new n({content:this.convertText(t.content),time:e,endTime:r,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(i,this.title,this.fontStyles,this.blockTypes,this.resolution)}convertText(t){const e={"{":"{","}":"}","&":"&","<":"<",">":">",""":'"',"'":"'"};for(const[i,r]of Object.entries(e)){t=t.replace(new RegExp(i,"g"),r)}return t}convertType(t){return this.danmakuStack.push(t).tags}convertColor(t){if(t===h.white){return""}const e=t.toString(16);const i=e.substring(0,2);const r=e.substring(2,4);const a=e.substring(4,6);return`\\c&H${a}${r}${i}&`}convertTime(t,e){function i(t){const[e,i="00"]=String(t).split(".");return`${e.padStart(2,"0")}.${i.substr(0,2).padEnd(2,"0")}`}function r(t){let e=0;let r=0;while(t>=60){t-=60;r++}while(r>=60){r-=60;e++}return`${e}:${String(r).padStart(2,"0")}:${i(t)}`}return[r(t),r(t+e)]}}h.white=16777215;return{export:{AssDanmaku:n,AssDanmakuDocument:o,Danmaku:i,DanmakuConverter:h,DanmakuStack:l,XmlDanmaku:r,XmlDanmakuDocument:a}}}})();
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/danmaku-send-bar.min.css"] = `.bilibili-live-player-video-controller-content .danmaku-send-bar{display:none}@media screen and (min-width:1038px){.fullscreen-fix:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content,.player-full-win:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content{display:flex;justify-content:space-between;align-items:center}.fullscreen-fix:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content::after,.fullscreen-fix:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content::before,.player-full-win:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content::after,.player-full-win:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content::before{content:none!important}.fullscreen-fix:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content .danmaku-send-bar,.player-full-win:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content .danmaku-send-bar{display:flex;margin:0 24px;flex:1 1 0;height:24px;justify-content:center;align-items:center}.fullscreen-fix:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content .danmaku-send-bar input,.player-full-win:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content .danmaku-send-bar input{border:none;border-bottom:2px solid #fff8;background-color:transparent;color:#fff;padding:4px;flex:1;width:0;max-width:400px;min-width:70px}.fullscreen-fix:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content .danmaku-send-bar input:focus-within,.player-full-win:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content .danmaku-send-bar input:focus-within{border-color:var(--theme-color)}.fullscreen-fix:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content .danmaku-send-bar input::-webkit-input-placeholder,.player-full-win:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content .danmaku-send-bar input::-webkit-input-placeholder{color:#fff8!important}}`;
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/danmaku-send-bar.min.js"] = (()=>{return(e,t)=>{(async()=>{if(!document.URL.match(/^https:\/\/live.bilibili.com\/(blanc\/)?(\d+)/)){return}const e=await SpinQuery.select(".bilibili-live-player-video-controller-left");const n=await SpinQuery.select(".chat-input-ctnr .chat-input");const a=await SpinQuery.select(".chat-input-ctnr ~ .bottom-actions .bl-button--primary");if([e,n,a].some(e=>e===null)){return}t.applyStyle("danmakuSendBarStyle");let i=false;const l=Vue.extend({template:`\n\n \n
\n`,data(){return{value:n.value}},mounted(){n.addEventListener("input",this.listenChange);n.addEventListener("change",this.listenChange);if(!i){const e=Object.getOwnPropertyDescriptors(HTMLTextAreaElement.prototype).value;Object.defineProperty(n,"value",{...e,set(t){e.set.call(this,t);raiseEvent(n,"input")}});i=true}},beforeDestroy(){n.removeEventListener("input",this.listenChange);n.removeEventListener("change",this.listenChange)},methods:{updateValue(e){n.value=e;raiseEvent(n,"input")},send(){if(!a.disabled){this.value="";a.click()}},listenChange(e){this.value=e.target.value}}});const s=(new l).$mount().$el;e.insertAdjacentElement("afterend",s)})();return{reload:()=>document.body.classList.remove("danmaku-send-bar-unloaded"),unload:()=>document.body.classList.add("danmaku-send-bar-unloaded")}}})();
diff --git a/bilibili-evolved.preview-offline.user.js b/bilibili-evolved.preview-offline.user.js
index 80498ad8e..fc8d50266 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 693.29
+// @version 693.34
// @description Bilibili Evolved 的预览离线版, 可以抢先体验新功能, 并且所有功能都已内置于脚本中.
// @author Grant Howard, Coulomb-G
// @copyright 2020, Grant Howard (https://github.com/the1812) & Coulomb-G (https://github.com/Coulomb-G)
@@ -1297,7 +1297,7 @@ offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/m
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/custom-navbar-upload.min.js"] = (()=>{return(i,t)=>{const{NavbarComponent:e}=t.import("custom-navbar-component");class a extends e{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"}}return{export:{Upload:a}}}})();
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/custom-navbar-user-info.min.js"] = (()=>{return(e,i)=>{const{NavbarComponent:n}=i.import("custom-navbar-component");class t extends n{constructor(){super();this.userInfo={mid:getUID(),isLogin:Boolean(getUID())};this.boundingWidth=240;this.noPadding=true;this.href="https://space.bilibili.com";this.html=`\n\n
\n
\n
\n`;this.popupHtml=`
`;this.requestedPopup=true;this.init()}get name(){return"userInfo"}async init(){const e=await SpinQuery.select(".custom-navbar .user-info-panel");const i=await SpinQuery.select(".custom-navbar .user-face-container .user-face");const n=await Ajax.getJsonWithCredentials("https://api.bilibili.com/x/web-interface/nav");const t=await Ajax.getJsonWithCredentials("https://api.bilibili.com/x/web-interface/nav/stat");Object.assign(this.userInfo,n.data);Object.assign(this.userInfo,t.data);const s=new Vue({template:`\n\n
\n
\n
欢迎来到 bilibili \n
注册 \n
登录 \n
\n
\n`,data:{...this.userInfo,privileges:{bCoin:{received:false,expire:""},coupons:{received:false,expire:""}}},filters:{count(e){return formatCount(e)}},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 e=(this.level_info.current_exp-this.level_info.current_min)/(this.level_info.next_exp-this.level_info.current_min);return{transform:`scaleX(${e})`}}},methods:{async privilegeReceive(e){const i={1:"bCoin",2:"coupons"};if(this.privileges[i[e]].received){return}this.privileges[i[e]].received=true;const n=getCsrf();const t=await(await fetch("https://api.bilibili.com/x/vip/privilege/receive",{credentials:"include",headers:{"content-type":"application/x-www-form-urlencoded"},body:`type=${e}&csrf=${n}`,method:"POST"})).json();console.log(t);if(t.code===0){if(i[e]==="bCoin"){this.wallet.bcoin_balance+=5}}else if(t.code===69801){return}else{this.privileges[i[e]].received=false;logError(t.message)}}}});s.$mount(e);if(this.userInfo.isLogin){const e=this.userInfo.face.replace("http","https");const n="//static.hdslb.com/images/member/noface.gif";if(!e.includes(n)){const n=68;i.setAttribute("srcset",getDpiSourceSet(e,n))}else{i.setAttribute("src",n)}if(this.userInfo.pendant.image){const e=await SpinQuery.select(".custom-navbar .user-face-container .user-pendant");const i=this.userInfo.pendant.image.replace("http","https");const n=116;e.setAttribute("srcset",getDpiSourceSet(i,n,"png"))}if(this.userInfo.vipType===2){const e=await Ajax.getJsonWithCredentials("https://api.bilibili.com/x/vip/privilege/my");if(e.code===0){const i=e.data.list.find(e=>e.type===1);s.privileges.bCoin.received=i.state===1;s.privileges.bCoin.expire=new Date(i.expire_time*1e3).toLocaleDateString();const n=e.data.list.find(e=>e.type===2);s.privileges.coupons.received=n.state===1;s.privileges.coupons.expire=new Date(n.expire_time*1e3).toLocaleDateString()}}}else{i.setAttribute("src","https://static.hdslb.com/images/akari.jpg")}}}return{export:{UserInfo:t}}}})();
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/custom-navbar-video-list.min.js"] = (()=>{return(t,i)=>{const{NavbarComponent:s}=i.import("custom-navbar-component");class e extends s{constructor({mainUrl:t,name:i,apiUrl:s,listName:e,listMap:a}){super();this.href=t;this.listName=e;this.html=i;this.noPadding=true;this.requestedPopup=false;this.popupHtml=`\n\n加载中... \n \n`;this.initialPopup=(async()=>{if(!a){return}const l=await SpinQuery.select(`.video-list.${e}`);if(l===null){return}const r=await Ajax.getJsonWithCredentials(s);let n="";if(r.code!==0){logError(`加载${i}信息失败. 错误码: ${r.code} ${r.message}`)}else{n=a(r).join("")}l.insertAdjacentHTML("beforeend",n+`\n查看更多 \n`);l.classList.add("loaded")})}get name(){return this.listName+"List"}}class a extends e{constructor(){super({name:"收藏",mainUrl:`https://space.bilibili.com/${getUID()}/favlist`,apiUrl:"https://api.bilibili.com/medialist/gateway/coll/resource/recent",listName:"favorites",listMap:t=>{if(!t.data||t.data.length===0){return[`空空如也哦 = ̄ω ̄= `]}return t.data.map(t=>{return`\n\n${t.title} \n `})}});this.active=document.URL.replace(/\?.*$/,"")===`https://space.bilibili.com/${getUID()}/favlist`}}class l extends e{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:t=>{if(!t.data||t.data.length===0){return[`空空如也哦 = ̄ω ̄= `]}return t.data.map(t=>{let i=[];let s="";const e=t.page?t.page.page:1;let a=t.progress>=0?t.progress/t.duration:1;if(isNaN(a)){a=0}if(e!==1){i.push(`p=${e}`);s+=`看到第${e}话`}if(t.progress>0&&t.progress\n\n${t.title} \n${s} \n\n \n`})}});this.active=document.URL.replace(/\?.*$/,"")==="https://www.bilibili.com/account/history"}}return{export:{FavoritesList:a,HistoryList:l}}}})();
-offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/custom-navbar-watchlater-list.min.js"] = (()=>{return(t,i)=>{const{NavbarComponent:a}=i.import("custom-navbar-component");class e extends a{constructor(){super();this.boundingWidth=380;this.noPadding=true;this.href="https://www.bilibili.com/watchlater/#/list";this.html="稍后再看";this.active=document.URL.startsWith("https://www.bilibili.com/watchlater/");this.popupHtml=`\n\n
\n 加载中...\n
\n
\n 空空如也哦 = ̄ω ̄=\n
\n\n
\n\n \n \x3c!--
\n \n 撤销\n
--\x3e\n
\n`;this.initialPopup=(()=>{this.init()})}async init(){new Vue({el:await SpinQuery.select(`.custom-navbar [data-name="${this.name}"] .watchlater-list`),store:store,components:{DpiImg:()=>i.importAsync("dpi-img.vue")},data:{cards:[],filteredCards:[],search:"",lastRemovedAid:0,redirect:t.watchLaterRedirect&&t.watchLaterRedirectNavbar},computed:{...Vuex.mapState(["watchlaterList"])},watch:{watchlaterList(){this.updateList()},search(){this.updateFilteredCards()}},methods:{...Vuex.mapActions(["toggleWatchlater"]),async updateList(){const{getWatchlaterList:t}=await i.importAsync("watchlater-api");const a=await t(true);if(!a){this.cards=[];return}const e=t=>{if(this.redirect){return`https://www.bilibili.com/video/av${t.aid}`}if(t.bvid){return`https://www.bilibili.com/watchlater/#/${t.bvid}`}return`https://www.bilibili.com/watchlater/#/av${t.aid}`};const s=a.map(t=>{const i=(()=>{if(t.pages===undefined){return e(t)}const i=t.pages.map(t=>t.cid);const a=t.cid===0?1:i.indexOf(t.cid)+1;return this.redirect?`${e(t)}?p=${a}`:`${e(t)}/p${a}`})();const a=Math.round(1e3*t.progress/t.duration)/1e3;return{aid:t.aid,href:i,coverUrl:t.pic.replace("http:","https:"),durationText:formatDuration(t.duration),duration:t.duration,complete:t.progress<0||a>.95,title:t.title,upName:t.owner.name,upFaceUrl:t.owner.face.replace("http:","https:"),upID:t.owner.mid}});this.cards=s;if(this.search){this.updateFilteredCards()}else{this.filteredCards=s}},async remove(t,i){this.cards.splice(i,1);await this.toggleWatchlater(t);this.lastRemovedAid=t},async undo(){const t=this.lastRemovedAid;if(t!==0){await this.toggleWatchlater(t)}},updateFilteredCards:_.debounce(function(){const t=this.search.toLowerCase();const i=this.$el.querySelector(".cards");i.scrollTo(0,0);this.filteredCards=this.cards.filter(i=>{return i.title.toLowerCase().includes(t)||i.upName.toLowerCase().includes(t)})},100)},async mounted(){try{await this.updateList()}finally{this.$el.classList.remove("loading")}}})}get name(){return"watchlaterList"}}return{export:{WatchlaterList:e}}}})();
+offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/custom-navbar-watchlater-list.min.js"] = (()=>{return(t,i)=>{const{NavbarComponent:a}=i.import("custom-navbar-component");class e extends a{constructor(){super();this.boundingWidth=380;this.noPadding=true;this.href="https://www.bilibili.com/watchlater/#/list";this.html="稍后再看";this.active=document.URL.startsWith("https://www.bilibili.com/watchlater/");this.popupHtml=`\n\n
\n 加载中...\n
\n
\n 空空如也哦 = ̄ω ̄=\n
\n\n
\n\n \n \x3c!--
\n \n 撤销\n
--\x3e\n
\n`;this.initialPopup=(()=>{this.init()})}async init(){new Vue({el:await SpinQuery.select(`.custom-navbar [data-name="${this.name}"] .watchlater-list`),store:store,components:{DpiImg:()=>i.importAsync("dpi-img.vue")},data:{cards:[],filteredCards:[],search:"",lastRemovedAid:0,redirect:t.watchLaterRedirect&&t.watchLaterRedirectNavbar},computed:{...Vuex.mapState(["watchlaterList"])},watch:{watchlaterList(){this.updateList()},search(){this.updateFilteredCards()}},methods:{...Vuex.mapActions(["toggleWatchlater"]),async updateList(){const{getWatchlaterList:t}=await i.importAsync("watchlater-api");const a=await t(true);if(!a){this.cards=[];return}const e=t=>{if(this.redirect){return`https://www.bilibili.com/video/av${t.aid}`}if(t.bvid){return`https://www.bilibili.com/watchlater/#/${t.bvid}`}return`https://www.bilibili.com/watchlater/#/av${t.aid}`};const s=a.map(t=>{const i=(()=>{if(t.pages===undefined){return e(t)}const i=t.pages.map(t=>t.cid);const a=t.cid===0?1:i.indexOf(t.cid)+1;return this.redirect?`${e(t)}?p=${a}`:`${e(t)}/p${a}`})();const a=Math.round(1e3*t.progress/t.duration)/1e3;return{aid:t.aid,href:i,coverUrl:t.pic.replace("http:","https:"),durationText:formatDuration(t.duration),duration:t.duration,complete:t.progress<0||a>.95,title:t.title,upName:t.owner.name,upFaceUrl:t.owner.face.replace("http:","https:"),upID:t.owner.mid}});this.cards=s;if(this.search){this.updateFilteredCards()}else{this.filteredCards=s}},async remove(t,i){this.cards.splice(i,1);await this.toggleWatchlater(t);this.lastRemovedAid=t},async undo(){const t=this.lastRemovedAid;if(t!==0){await this.toggleWatchlater(t)}},updateFilteredCards:_.debounce(function(){const t=this.search.toLowerCase();const i=this.$el.querySelector(".cards");i.scrollTo(0,0);this.filteredCards=this.cards.filter(i=>{return i.title.toLowerCase().includes(t)||i.upName.toLowerCase().includes(t)})},100)},async mounted(){try{await this.updateList()}finally{this.$el.classList.remove("loading")}}})}get name(){return"watchlaterList"}}return{export:{WatchlaterList:e}}}})();
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/danmaku-converter.min.js"] = (()=>{return(t,e)=>{class i{constructor({content:t,time:e,type:i,fontSize:r,color:a}){this.content=t;this.time=e;this.startTime=parseFloat(e);this.type=parseInt(i);this.fontSize=parseFloat(r);this.color=parseInt(a)}}class r extends i{constructor({content:t,time:e,type:i,fontSize:r,color:a,timeStamp:s,pool:n,userHash:o,rowId:l}){super({content:t,time:e,type:i,fontSize:r,color:a});this.timeStamp=parseInt(s);this.pool=parseInt(n);this.userHash=o;this.rowId=parseInt(l);this.pDataArray=[e,i,r,a,s,n,o,l]}text(){const t=this.pDataArray.join(",");return`${this.content} `}static parse(t){const e=t.getAttribute("p");const[i,a,s,n,o,l,h,c]=e.split(",");const u=t.innerHTML;return new r({content:u,time:i,type:a,fontSize:s,color:n,timeStamp:o,pool:l,userHash:h,rowId:c})}}class a{constructor(t){this.xml=t;const e=(new DOMParser).parseFromString(t,"application/xml").documentElement;this.danmakus=[...e.querySelectorAll("d[p]")].map(t=>r.parse(t))}}var s;(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"})(s||(s={}));class n extends i{constructor({content:t,time:e,type:i,fontSize:r,color:a,typeTag:s,colorTag:n,endTime:o}){super({content:t,time:e,type:i,fontSize:r,color:a});this.typeTag=s;this.colorTag=n;this.endTime=o}text(t){let e=t[this.fontSize];if(!e){e=t[25]}const i=e.match(/Style:(.*?),/)[1].trim();return`Dialogue: 0,${this.time},${this.endTime},${i},,0,0,0,,{${this.typeTag}${this.colorTag}}${this.content}`}}class o{constructor(t,e,i,r,a){this.danmakus=t;this.title=e;this.fontStyles=i;this.blockTypes=r;this.resolution=a}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,i,r){this.horizontalStack=[];this.horizontalTrack=[];this.verticalStack=[];this.verticalTrack=[];this.resolution=e;this.duration=i;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=r;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 i=e.width/2;return[i,this.danmakuHeight/2]}getTags(t,{targetTrack:e,initTrackNumber:i,nextTrackNumber:r,willOverlay:a,getTrackItem:s,getTag:n}){const[o,h]=this.getTextSize(t);const c=o*2;const u=this.duration(t)*c/(this.resolution.x+c)+l.nextDanmakuDelay;let m=i;let p=null;do{p=e.find(t=>a(t,m,c));m+=r}while(p&&m<=this.trackCount&&m>=0);if(m>this.trackCount||m<0){return`\\pos(0,-999)`}m-=r;e.push(s(m,c,u));return n({trackNumber:m,x:o,y:h})}getHorizontalTags(t){return this.getTags(t,{targetTrack:this.horizontalTrack,initTrackNumber:0,nextTrackNumber:1,willOverlay:(e,i,r)=>{if(e.trackNumber!==i){return false}if(e.widtht.startTime}},getTrackItem:(e,i,r)=>{return{width:i,start:t.startTime,visible:t.startTime+r,end:t.startTime+this.duration(t),trackNumber:e}},getTag:({trackNumber:e,x:i,y:r})=>{return`\\move(${this.resolution.x+i},${e*this.trackHeight+l.margin+r},${-i},${e*this.trackHeight+l.margin+r},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,i)=>{if(e.trackNumber!==i){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:i})=>{if(e){return`\\pos(${this.resolution.x/2},${t*this.trackHeight+l.margin+i})`}else{return`\\pos(${this.resolution.x/2},${this.resolution.y-l.margin-i-(this.trackCount-1-t)*this.trackHeight})`}}})}push(t){let e="";let i=[];switch(l.danmakuType[t.type]){case"normal":case"reversed":{e=this.getHorizontalTags(t);i=this.horizontalStack;break}case"top":case"bottom":{e=this.getVerticalTags(t);i=this.verticalStack;break}case"special":default:{return{tags:`\\pos(0,-999)`}}}const r={tags:e};i.push(r);return r}}l.danmakuType={[s.Normal]:"normal",[s.Normal2]:"normal",[s.Normal3]:"normal",[s.Bottom]:"bottom",[s.Top]:"top",[s.Reversed]:"reversed",[s.Special]:"special",[s.Special2]:"special"};l.margin=4;l.nextDanmakuDelay=.05;class h{constructor({title:t,font:e,alpha:i,duration:r,blockTypes:a,resolution:s,bottomMarginPercent:n,bold:o}){this.title=t;this.font=e;this.alpha=Math.round(i*255).toString(16).toUpperCase().padStart(2,"0");this.duration=r;this.blockTypes=a;this.resolution=s;this.bold=o;this.danmakuStack=new l(e,s,r,n)}get fontStyles(){return{36:`Style: Larger,${this.font},72,&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`,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 a(t);const i=[];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!==h.white){continue}const[e,r]=this.convertTime(t.startTime,this.duration(t));i.push(new n({content:this.convertText(t.content),time:e,endTime:r,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(i,this.title,this.fontStyles,this.blockTypes,this.resolution)}convertText(t){const e={"{":"{","}":"}","&":"&","<":"<",">":">",""":'"',"'":"'"};for(const[i,r]of Object.entries(e)){t=t.replace(new RegExp(i,"g"),r)}return t}convertType(t){return this.danmakuStack.push(t).tags}convertColor(t){if(t===h.white){return""}const e=t.toString(16);const i=e.substring(0,2);const r=e.substring(2,4);const a=e.substring(4,6);return`\\c&H${a}${r}${i}&`}convertTime(t,e){function i(t){const[e,i="00"]=String(t).split(".");return`${e.padStart(2,"0")}.${i.substr(0,2).padEnd(2,"0")}`}function r(t){let e=0;let r=0;while(t>=60){t-=60;r++}while(r>=60){r-=60;e++}return`${e}:${String(r).padStart(2,"0")}:${i(t)}`}return[r(t),r(t+e)]}}h.white=16777215;return{export:{AssDanmaku:n,AssDanmakuDocument:o,Danmaku:i,DanmakuConverter:h,DanmakuStack:l,XmlDanmaku:r,XmlDanmakuDocument:a}}}})();
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/danmaku-send-bar.min.css"] = `.bilibili-live-player-video-controller-content .danmaku-send-bar{display:none}@media screen and (min-width:1038px){.fullscreen-fix:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content,.player-full-win:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content{display:flex;justify-content:space-between;align-items:center}.fullscreen-fix:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content::after,.fullscreen-fix:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content::before,.player-full-win:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content::after,.player-full-win:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content::before{content:none!important}.fullscreen-fix:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content .danmaku-send-bar,.player-full-win:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content .danmaku-send-bar{display:flex;margin:0 24px;flex:1 1 0;height:24px;justify-content:center;align-items:center}.fullscreen-fix:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content .danmaku-send-bar input,.player-full-win:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content .danmaku-send-bar input{border:none;border-bottom:2px solid #fff8;background-color:transparent;color:#fff;padding:4px;flex:1;width:0;max-width:400px;min-width:70px}.fullscreen-fix:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content .danmaku-send-bar input:focus-within,.player-full-win:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content .danmaku-send-bar input:focus-within{border-color:var(--theme-color)}.fullscreen-fix:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content .danmaku-send-bar input::-webkit-input-placeholder,.player-full-win:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content .danmaku-send-bar input::-webkit-input-placeholder{color:#fff8!important}}`;
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/danmaku-send-bar.min.js"] = (()=>{return(e,t)=>{(async()=>{if(!document.URL.match(/^https:\/\/live.bilibili.com\/(blanc\/)?(\d+)/)){return}const e=await SpinQuery.select(".bilibili-live-player-video-controller-left");const n=await SpinQuery.select(".chat-input-ctnr .chat-input");const a=await SpinQuery.select(".chat-input-ctnr ~ .bottom-actions .bl-button--primary");if([e,n,a].some(e=>e===null)){return}t.applyStyle("danmakuSendBarStyle");let i=false;const l=Vue.extend({template:`\n\n \n
\n`,data(){return{value:n.value}},mounted(){n.addEventListener("input",this.listenChange);n.addEventListener("change",this.listenChange);if(!i){const e=Object.getOwnPropertyDescriptors(HTMLTextAreaElement.prototype).value;Object.defineProperty(n,"value",{...e,set(t){e.set.call(this,t);raiseEvent(n,"input")}});i=true}},beforeDestroy(){n.removeEventListener("input",this.listenChange);n.removeEventListener("change",this.listenChange)},methods:{updateValue(e){n.value=e;raiseEvent(n,"input")},send(){if(!a.disabled){this.value="";a.click()}},listenChange(e){this.value=e.target.value}}});const s=(new l).$mount().$el;e.insertAdjacentElement("afterend",s)})();return{reload:()=>document.body.classList.remove("danmaku-send-bar-unloaded"),unload:()=>document.body.classList.add("danmaku-send-bar-unloaded")}}})();
diff --git a/bilibili-evolved.preview.user.js b/bilibili-evolved.preview.user.js
index d6f05a5f7..335c9290f 100644
--- a/bilibili-evolved.preview.user.js
+++ b/bilibili-evolved.preview.user.js
@@ -1296,7 +1296,7 @@ onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/m
onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/custom-navbar-upload.min.js"] = (()=>{return(i,t)=>{const{NavbarComponent:e}=t.import("custom-navbar-component");class a extends e{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"}}return{export:{Upload:a}}}})();
onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/custom-navbar-user-info.min.js"] = (()=>{return(e,i)=>{const{NavbarComponent:n}=i.import("custom-navbar-component");class t extends n{constructor(){super();this.userInfo={mid:getUID(),isLogin:Boolean(getUID())};this.boundingWidth=240;this.noPadding=true;this.href="https://space.bilibili.com";this.html=`\n\n
\n
\n
\n`;this.popupHtml=`
`;this.requestedPopup=true;this.init()}get name(){return"userInfo"}async init(){const e=await SpinQuery.select(".custom-navbar .user-info-panel");const i=await SpinQuery.select(".custom-navbar .user-face-container .user-face");const n=await Ajax.getJsonWithCredentials("https://api.bilibili.com/x/web-interface/nav");const t=await Ajax.getJsonWithCredentials("https://api.bilibili.com/x/web-interface/nav/stat");Object.assign(this.userInfo,n.data);Object.assign(this.userInfo,t.data);const s=new Vue({template:`\n\n
\n
\n
欢迎来到 bilibili \n
注册 \n
登录 \n
\n
\n`,data:{...this.userInfo,privileges:{bCoin:{received:false,expire:""},coupons:{received:false,expire:""}}},filters:{count(e){return formatCount(e)}},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 e=(this.level_info.current_exp-this.level_info.current_min)/(this.level_info.next_exp-this.level_info.current_min);return{transform:`scaleX(${e})`}}},methods:{async privilegeReceive(e){const i={1:"bCoin",2:"coupons"};if(this.privileges[i[e]].received){return}this.privileges[i[e]].received=true;const n=getCsrf();const t=await(await fetch("https://api.bilibili.com/x/vip/privilege/receive",{credentials:"include",headers:{"content-type":"application/x-www-form-urlencoded"},body:`type=${e}&csrf=${n}`,method:"POST"})).json();console.log(t);if(t.code===0){if(i[e]==="bCoin"){this.wallet.bcoin_balance+=5}}else if(t.code===69801){return}else{this.privileges[i[e]].received=false;logError(t.message)}}}});s.$mount(e);if(this.userInfo.isLogin){const e=this.userInfo.face.replace("http","https");const n="//static.hdslb.com/images/member/noface.gif";if(!e.includes(n)){const n=68;i.setAttribute("srcset",getDpiSourceSet(e,n))}else{i.setAttribute("src",n)}if(this.userInfo.pendant.image){const e=await SpinQuery.select(".custom-navbar .user-face-container .user-pendant");const i=this.userInfo.pendant.image.replace("http","https");const n=116;e.setAttribute("srcset",getDpiSourceSet(i,n,"png"))}if(this.userInfo.vipType===2){const e=await Ajax.getJsonWithCredentials("https://api.bilibili.com/x/vip/privilege/my");if(e.code===0){const i=e.data.list.find(e=>e.type===1);s.privileges.bCoin.received=i.state===1;s.privileges.bCoin.expire=new Date(i.expire_time*1e3).toLocaleDateString();const n=e.data.list.find(e=>e.type===2);s.privileges.coupons.received=n.state===1;s.privileges.coupons.expire=new Date(n.expire_time*1e3).toLocaleDateString()}}}else{i.setAttribute("src","https://static.hdslb.com/images/akari.jpg")}}}return{export:{UserInfo:t}}}})();
onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/custom-navbar-video-list.min.js"] = (()=>{return(t,i)=>{const{NavbarComponent:s}=i.import("custom-navbar-component");class e extends s{constructor({mainUrl:t,name:i,apiUrl:s,listName:e,listMap:a}){super();this.href=t;this.listName=e;this.html=i;this.noPadding=true;this.requestedPopup=false;this.popupHtml=`\n\n加载中... \n \n`;this.initialPopup=(async()=>{if(!a){return}const l=await SpinQuery.select(`.video-list.${e}`);if(l===null){return}const r=await Ajax.getJsonWithCredentials(s);let n="";if(r.code!==0){logError(`加载${i}信息失败. 错误码: ${r.code} ${r.message}`)}else{n=a(r).join("")}l.insertAdjacentHTML("beforeend",n+`\n查看更多 \n`);l.classList.add("loaded")})}get name(){return this.listName+"List"}}class a extends e{constructor(){super({name:"收藏",mainUrl:`https://space.bilibili.com/${getUID()}/favlist`,apiUrl:"https://api.bilibili.com/medialist/gateway/coll/resource/recent",listName:"favorites",listMap:t=>{if(!t.data||t.data.length===0){return[`空空如也哦 = ̄ω ̄= `]}return t.data.map(t=>{return`\n\n${t.title} \n `})}});this.active=document.URL.replace(/\?.*$/,"")===`https://space.bilibili.com/${getUID()}/favlist`}}class l extends e{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:t=>{if(!t.data||t.data.length===0){return[`空空如也哦 = ̄ω ̄= `]}return t.data.map(t=>{let i=[];let s="";const e=t.page?t.page.page:1;let a=t.progress>=0?t.progress/t.duration:1;if(isNaN(a)){a=0}if(e!==1){i.push(`p=${e}`);s+=`看到第${e}话`}if(t.progress>0&&t.progress\n\n${t.title} \n${s} \n\n \n`})}});this.active=document.URL.replace(/\?.*$/,"")==="https://www.bilibili.com/account/history"}}return{export:{FavoritesList:a,HistoryList:l}}}})();
-onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/custom-navbar-watchlater-list.min.js"] = (()=>{return(t,i)=>{const{NavbarComponent:a}=i.import("custom-navbar-component");class e extends a{constructor(){super();this.boundingWidth=380;this.noPadding=true;this.href="https://www.bilibili.com/watchlater/#/list";this.html="稍后再看";this.active=document.URL.startsWith("https://www.bilibili.com/watchlater/");this.popupHtml=`\n\n
\n 加载中...\n
\n
\n 空空如也哦 = ̄ω ̄=\n
\n\n
\n\n \n \x3c!--
\n \n 撤销\n
--\x3e\n
\n`;this.initialPopup=(()=>{this.init()})}async init(){new Vue({el:await SpinQuery.select(`.custom-navbar [data-name="${this.name}"] .watchlater-list`),store:store,components:{DpiImg:()=>i.importAsync("dpi-img.vue")},data:{cards:[],filteredCards:[],search:"",lastRemovedAid:0,redirect:t.watchLaterRedirect&&t.watchLaterRedirectNavbar},computed:{...Vuex.mapState(["watchlaterList"])},watch:{watchlaterList(){this.updateList()},search(){this.updateFilteredCards()}},methods:{...Vuex.mapActions(["toggleWatchlater"]),async updateList(){const{getWatchlaterList:t}=await i.importAsync("watchlater-api");const a=await t(true);if(!a){this.cards=[];return}const e=t=>{if(this.redirect){return`https://www.bilibili.com/video/av${t.aid}`}if(t.bvid){return`https://www.bilibili.com/watchlater/#/${t.bvid}`}return`https://www.bilibili.com/watchlater/#/av${t.aid}`};const s=a.map(t=>{const i=(()=>{if(t.pages===undefined){return e(t)}const i=t.pages.map(t=>t.cid);const a=t.cid===0?1:i.indexOf(t.cid)+1;return this.redirect?`${e(t)}?p=${a}`:`${e(t)}/p${a}`})();const a=Math.round(1e3*t.progress/t.duration)/1e3;return{aid:t.aid,href:i,coverUrl:t.pic.replace("http:","https:"),durationText:formatDuration(t.duration),duration:t.duration,complete:t.progress<0||a>.95,title:t.title,upName:t.owner.name,upFaceUrl:t.owner.face.replace("http:","https:"),upID:t.owner.mid}});this.cards=s;if(this.search){this.updateFilteredCards()}else{this.filteredCards=s}},async remove(t,i){this.cards.splice(i,1);await this.toggleWatchlater(t);this.lastRemovedAid=t},async undo(){const t=this.lastRemovedAid;if(t!==0){await this.toggleWatchlater(t)}},updateFilteredCards:_.debounce(function(){const t=this.search.toLowerCase();const i=this.$el.querySelector(".cards");i.scrollTo(0,0);this.filteredCards=this.cards.filter(i=>{return i.title.toLowerCase().includes(t)||i.upName.toLowerCase().includes(t)})},100)},async mounted(){try{await this.updateList()}finally{this.$el.classList.remove("loading")}}})}get name(){return"watchlaterList"}}return{export:{WatchlaterList:e}}}})();
+onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/custom-navbar-watchlater-list.min.js"] = (()=>{return(t,i)=>{const{NavbarComponent:a}=i.import("custom-navbar-component");class e extends a{constructor(){super();this.boundingWidth=380;this.noPadding=true;this.href="https://www.bilibili.com/watchlater/#/list";this.html="稍后再看";this.active=document.URL.startsWith("https://www.bilibili.com/watchlater/");this.popupHtml=`\n\n
\n 加载中...\n
\n
\n 空空如也哦 = ̄ω ̄=\n
\n\n
\n\n \n \x3c!--
\n \n 撤销\n
--\x3e\n
\n`;this.initialPopup=(()=>{this.init()})}async init(){new Vue({el:await SpinQuery.select(`.custom-navbar [data-name="${this.name}"] .watchlater-list`),store:store,components:{DpiImg:()=>i.importAsync("dpi-img.vue")},data:{cards:[],filteredCards:[],search:"",lastRemovedAid:0,redirect:t.watchLaterRedirect&&t.watchLaterRedirectNavbar},computed:{...Vuex.mapState(["watchlaterList"])},watch:{watchlaterList(){this.updateList()},search(){this.updateFilteredCards()}},methods:{...Vuex.mapActions(["toggleWatchlater"]),async updateList(){const{getWatchlaterList:t}=await i.importAsync("watchlater-api");const a=await t(true);if(!a){this.cards=[];return}const e=t=>{if(this.redirect){return`https://www.bilibili.com/video/av${t.aid}`}if(t.bvid){return`https://www.bilibili.com/watchlater/#/${t.bvid}`}return`https://www.bilibili.com/watchlater/#/av${t.aid}`};const s=a.map(t=>{const i=(()=>{if(t.pages===undefined){return e(t)}const i=t.pages.map(t=>t.cid);const a=t.cid===0?1:i.indexOf(t.cid)+1;return this.redirect?`${e(t)}?p=${a}`:`${e(t)}/p${a}`})();const a=Math.round(1e3*t.progress/t.duration)/1e3;return{aid:t.aid,href:i,coverUrl:t.pic.replace("http:","https:"),durationText:formatDuration(t.duration),duration:t.duration,complete:t.progress<0||a>.95,title:t.title,upName:t.owner.name,upFaceUrl:t.owner.face.replace("http:","https:"),upID:t.owner.mid}});this.cards=s;if(this.search){this.updateFilteredCards()}else{this.filteredCards=s}},async remove(t,i){this.cards.splice(i,1);await this.toggleWatchlater(t);this.lastRemovedAid=t},async undo(){const t=this.lastRemovedAid;if(t!==0){await this.toggleWatchlater(t)}},updateFilteredCards:_.debounce(function(){const t=this.search.toLowerCase();const i=this.$el.querySelector(".cards");i.scrollTo(0,0);this.filteredCards=this.cards.filter(i=>{return i.title.toLowerCase().includes(t)||i.upName.toLowerCase().includes(t)})},100)},async mounted(){try{await this.updateList()}finally{this.$el.classList.remove("loading")}}})}get name(){return"watchlaterList"}}return{export:{WatchlaterList:e}}}})();
onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/danmaku-converter.min.js"] = (()=>{return(t,e)=>{class i{constructor({content:t,time:e,type:i,fontSize:r,color:a}){this.content=t;this.time=e;this.startTime=parseFloat(e);this.type=parseInt(i);this.fontSize=parseFloat(r);this.color=parseInt(a)}}class r extends i{constructor({content:t,time:e,type:i,fontSize:r,color:a,timeStamp:s,pool:n,userHash:o,rowId:l}){super({content:t,time:e,type:i,fontSize:r,color:a});this.timeStamp=parseInt(s);this.pool=parseInt(n);this.userHash=o;this.rowId=parseInt(l);this.pDataArray=[e,i,r,a,s,n,o,l]}text(){const t=this.pDataArray.join(",");return`${this.content} `}static parse(t){const e=t.getAttribute("p");const[i,a,s,n,o,l,h,c]=e.split(",");const u=t.innerHTML;return new r({content:u,time:i,type:a,fontSize:s,color:n,timeStamp:o,pool:l,userHash:h,rowId:c})}}class a{constructor(t){this.xml=t;const e=(new DOMParser).parseFromString(t,"application/xml").documentElement;this.danmakus=[...e.querySelectorAll("d[p]")].map(t=>r.parse(t))}}var s;(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"})(s||(s={}));class n extends i{constructor({content:t,time:e,type:i,fontSize:r,color:a,typeTag:s,colorTag:n,endTime:o}){super({content:t,time:e,type:i,fontSize:r,color:a});this.typeTag=s;this.colorTag=n;this.endTime=o}text(t){let e=t[this.fontSize];if(!e){e=t[25]}const i=e.match(/Style:(.*?),/)[1].trim();return`Dialogue: 0,${this.time},${this.endTime},${i},,0,0,0,,{${this.typeTag}${this.colorTag}}${this.content}`}}class o{constructor(t,e,i,r,a){this.danmakus=t;this.title=e;this.fontStyles=i;this.blockTypes=r;this.resolution=a}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,i,r){this.horizontalStack=[];this.horizontalTrack=[];this.verticalStack=[];this.verticalTrack=[];this.resolution=e;this.duration=i;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=r;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 i=e.width/2;return[i,this.danmakuHeight/2]}getTags(t,{targetTrack:e,initTrackNumber:i,nextTrackNumber:r,willOverlay:a,getTrackItem:s,getTag:n}){const[o,h]=this.getTextSize(t);const c=o*2;const u=this.duration(t)*c/(this.resolution.x+c)+l.nextDanmakuDelay;let m=i;let p=null;do{p=e.find(t=>a(t,m,c));m+=r}while(p&&m<=this.trackCount&&m>=0);if(m>this.trackCount||m<0){return`\\pos(0,-999)`}m-=r;e.push(s(m,c,u));return n({trackNumber:m,x:o,y:h})}getHorizontalTags(t){return this.getTags(t,{targetTrack:this.horizontalTrack,initTrackNumber:0,nextTrackNumber:1,willOverlay:(e,i,r)=>{if(e.trackNumber!==i){return false}if(e.widtht.startTime}},getTrackItem:(e,i,r)=>{return{width:i,start:t.startTime,visible:t.startTime+r,end:t.startTime+this.duration(t),trackNumber:e}},getTag:({trackNumber:e,x:i,y:r})=>{return`\\move(${this.resolution.x+i},${e*this.trackHeight+l.margin+r},${-i},${e*this.trackHeight+l.margin+r},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,i)=>{if(e.trackNumber!==i){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:i})=>{if(e){return`\\pos(${this.resolution.x/2},${t*this.trackHeight+l.margin+i})`}else{return`\\pos(${this.resolution.x/2},${this.resolution.y-l.margin-i-(this.trackCount-1-t)*this.trackHeight})`}}})}push(t){let e="";let i=[];switch(l.danmakuType[t.type]){case"normal":case"reversed":{e=this.getHorizontalTags(t);i=this.horizontalStack;break}case"top":case"bottom":{e=this.getVerticalTags(t);i=this.verticalStack;break}case"special":default:{return{tags:`\\pos(0,-999)`}}}const r={tags:e};i.push(r);return r}}l.danmakuType={[s.Normal]:"normal",[s.Normal2]:"normal",[s.Normal3]:"normal",[s.Bottom]:"bottom",[s.Top]:"top",[s.Reversed]:"reversed",[s.Special]:"special",[s.Special2]:"special"};l.margin=4;l.nextDanmakuDelay=.05;class h{constructor({title:t,font:e,alpha:i,duration:r,blockTypes:a,resolution:s,bottomMarginPercent:n,bold:o}){this.title=t;this.font=e;this.alpha=Math.round(i*255).toString(16).toUpperCase().padStart(2,"0");this.duration=r;this.blockTypes=a;this.resolution=s;this.bold=o;this.danmakuStack=new l(e,s,r,n)}get fontStyles(){return{36:`Style: Larger,${this.font},72,&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`,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 a(t);const i=[];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!==h.white){continue}const[e,r]=this.convertTime(t.startTime,this.duration(t));i.push(new n({content:this.convertText(t.content),time:e,endTime:r,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(i,this.title,this.fontStyles,this.blockTypes,this.resolution)}convertText(t){const e={"{":"{","}":"}","&":"&","<":"<",">":">",""":'"',"'":"'"};for(const[i,r]of Object.entries(e)){t=t.replace(new RegExp(i,"g"),r)}return t}convertType(t){return this.danmakuStack.push(t).tags}convertColor(t){if(t===h.white){return""}const e=t.toString(16);const i=e.substring(0,2);const r=e.substring(2,4);const a=e.substring(4,6);return`\\c&H${a}${r}${i}&`}convertTime(t,e){function i(t){const[e,i="00"]=String(t).split(".");return`${e.padStart(2,"0")}.${i.substr(0,2).padEnd(2,"0")}`}function r(t){let e=0;let r=0;while(t>=60){t-=60;r++}while(r>=60){r-=60;e++}return`${e}:${String(r).padStart(2,"0")}:${i(t)}`}return[r(t),r(t+e)]}}h.white=16777215;return{export:{AssDanmaku:n,AssDanmakuDocument:o,Danmaku:i,DanmakuConverter:h,DanmakuStack:l,XmlDanmaku:r,XmlDanmakuDocument:a}}}})();
onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/danmaku-send-bar.min.css"] = `.bilibili-live-player-video-controller-content .danmaku-send-bar{display:none}@media screen and (min-width:1038px){.fullscreen-fix:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content,.player-full-win:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content{display:flex;justify-content:space-between;align-items:center}.fullscreen-fix:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content::after,.fullscreen-fix:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content::before,.player-full-win:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content::after,.player-full-win:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content::before{content:none!important}.fullscreen-fix:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content .danmaku-send-bar,.player-full-win:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content .danmaku-send-bar{display:flex;margin:0 24px;flex:1 1 0;height:24px;justify-content:center;align-items:center}.fullscreen-fix:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content .danmaku-send-bar input,.player-full-win:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content .danmaku-send-bar input{border:none;border-bottom:2px solid #fff8;background-color:transparent;color:#fff;padding:4px;flex:1;width:0;max-width:400px;min-width:70px}.fullscreen-fix:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content .danmaku-send-bar input:focus-within,.player-full-win:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content .danmaku-send-bar input:focus-within{border-color:var(--theme-color)}.fullscreen-fix:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content .danmaku-send-bar input::-webkit-input-placeholder,.player-full-win:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content .danmaku-send-bar input::-webkit-input-placeholder{color:#fff8!important}}`;
onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/danmaku-send-bar.min.js"] = (()=>{return(e,t)=>{(async()=>{if(!document.URL.match(/^https:\/\/live.bilibili.com\/(blanc\/)?(\d+)/)){return}const e=await SpinQuery.select(".bilibili-live-player-video-controller-left");const n=await SpinQuery.select(".chat-input-ctnr .chat-input");const a=await SpinQuery.select(".chat-input-ctnr ~ .bottom-actions .bl-button--primary");if([e,n,a].some(e=>e===null)){return}t.applyStyle("danmakuSendBarStyle");let i=false;const l=Vue.extend({template:`\n\n \n
\n`,data(){return{value:n.value}},mounted(){n.addEventListener("input",this.listenChange);n.addEventListener("change",this.listenChange);if(!i){const e=Object.getOwnPropertyDescriptors(HTMLTextAreaElement.prototype).value;Object.defineProperty(n,"value",{...e,set(t){e.set.call(this,t);raiseEvent(n,"input")}});i=true}},beforeDestroy(){n.removeEventListener("input",this.listenChange);n.removeEventListener("change",this.listenChange)},methods:{updateValue(e){n.value=e;raiseEvent(n,"input")},send(){if(!a.disabled){this.value="";a.click()}},listenChange(e){this.value=e.target.value}}});const s=(new l).$mount().$el;e.insertAdjacentElement("afterend",s)})();return{reload:()=>document.body.classList.remove("danmaku-send-bar-unloaded"),unload:()=>document.body.classList.add("danmaku-send-bar-unloaded")}}})();
diff --git a/bilibili-evolved.user.js b/bilibili-evolved.user.js
index 4d8fa5fff..858465b2d 100644
--- a/bilibili-evolved.user.js
+++ b/bilibili-evolved.user.js
@@ -1296,7 +1296,7 @@ onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/mi
onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/custom-navbar-upload.min.js"] = (()=>{return(i,t)=>{const{NavbarComponent:e}=t.import("custom-navbar-component");class a extends e{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"}}return{export:{Upload:a}}}})();
onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/custom-navbar-user-info.min.js"] = (()=>{return(e,i)=>{const{NavbarComponent:n}=i.import("custom-navbar-component");class t extends n{constructor(){super();this.userInfo={mid:getUID(),isLogin:Boolean(getUID())};this.boundingWidth=240;this.noPadding=true;this.href="https://space.bilibili.com";this.html=`\n\n
\n
\n
\n`;this.popupHtml=`
`;this.requestedPopup=true;this.init()}get name(){return"userInfo"}async init(){const e=await SpinQuery.select(".custom-navbar .user-info-panel");const i=await SpinQuery.select(".custom-navbar .user-face-container .user-face");const n=await Ajax.getJsonWithCredentials("https://api.bilibili.com/x/web-interface/nav");const t=await Ajax.getJsonWithCredentials("https://api.bilibili.com/x/web-interface/nav/stat");Object.assign(this.userInfo,n.data);Object.assign(this.userInfo,t.data);const s=new Vue({template:`\n\n
\n
\n
欢迎来到 bilibili \n
注册 \n
登录 \n
\n
\n`,data:{...this.userInfo,privileges:{bCoin:{received:false,expire:""},coupons:{received:false,expire:""}}},filters:{count(e){return formatCount(e)}},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 e=(this.level_info.current_exp-this.level_info.current_min)/(this.level_info.next_exp-this.level_info.current_min);return{transform:`scaleX(${e})`}}},methods:{async privilegeReceive(e){const i={1:"bCoin",2:"coupons"};if(this.privileges[i[e]].received){return}this.privileges[i[e]].received=true;const n=getCsrf();const t=await(await fetch("https://api.bilibili.com/x/vip/privilege/receive",{credentials:"include",headers:{"content-type":"application/x-www-form-urlencoded"},body:`type=${e}&csrf=${n}`,method:"POST"})).json();console.log(t);if(t.code===0){if(i[e]==="bCoin"){this.wallet.bcoin_balance+=5}}else if(t.code===69801){return}else{this.privileges[i[e]].received=false;logError(t.message)}}}});s.$mount(e);if(this.userInfo.isLogin){const e=this.userInfo.face.replace("http","https");const n="//static.hdslb.com/images/member/noface.gif";if(!e.includes(n)){const n=68;i.setAttribute("srcset",getDpiSourceSet(e,n))}else{i.setAttribute("src",n)}if(this.userInfo.pendant.image){const e=await SpinQuery.select(".custom-navbar .user-face-container .user-pendant");const i=this.userInfo.pendant.image.replace("http","https");const n=116;e.setAttribute("srcset",getDpiSourceSet(i,n,"png"))}if(this.userInfo.vipType===2){const e=await Ajax.getJsonWithCredentials("https://api.bilibili.com/x/vip/privilege/my");if(e.code===0){const i=e.data.list.find(e=>e.type===1);s.privileges.bCoin.received=i.state===1;s.privileges.bCoin.expire=new Date(i.expire_time*1e3).toLocaleDateString();const n=e.data.list.find(e=>e.type===2);s.privileges.coupons.received=n.state===1;s.privileges.coupons.expire=new Date(n.expire_time*1e3).toLocaleDateString()}}}else{i.setAttribute("src","https://static.hdslb.com/images/akari.jpg")}}}return{export:{UserInfo:t}}}})();
onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/custom-navbar-video-list.min.js"] = (()=>{return(t,i)=>{const{NavbarComponent:s}=i.import("custom-navbar-component");class e extends s{constructor({mainUrl:t,name:i,apiUrl:s,listName:e,listMap:a}){super();this.href=t;this.listName=e;this.html=i;this.noPadding=true;this.requestedPopup=false;this.popupHtml=`\n\n加载中... \n \n`;this.initialPopup=(async()=>{if(!a){return}const l=await SpinQuery.select(`.video-list.${e}`);if(l===null){return}const r=await Ajax.getJsonWithCredentials(s);let n="";if(r.code!==0){logError(`加载${i}信息失败. 错误码: ${r.code} ${r.message}`)}else{n=a(r).join("")}l.insertAdjacentHTML("beforeend",n+`\n查看更多 \n`);l.classList.add("loaded")})}get name(){return this.listName+"List"}}class a extends e{constructor(){super({name:"收藏",mainUrl:`https://space.bilibili.com/${getUID()}/favlist`,apiUrl:"https://api.bilibili.com/medialist/gateway/coll/resource/recent",listName:"favorites",listMap:t=>{if(!t.data||t.data.length===0){return[`空空如也哦 = ̄ω ̄= `]}return t.data.map(t=>{return`\n\n${t.title} \n `})}});this.active=document.URL.replace(/\?.*$/,"")===`https://space.bilibili.com/${getUID()}/favlist`}}class l extends e{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:t=>{if(!t.data||t.data.length===0){return[`空空如也哦 = ̄ω ̄= `]}return t.data.map(t=>{let i=[];let s="";const e=t.page?t.page.page:1;let a=t.progress>=0?t.progress/t.duration:1;if(isNaN(a)){a=0}if(e!==1){i.push(`p=${e}`);s+=`看到第${e}话`}if(t.progress>0&&t.progress\n\n${t.title} \n${s} \n\n \n`})}});this.active=document.URL.replace(/\?.*$/,"")==="https://www.bilibili.com/account/history"}}return{export:{FavoritesList:a,HistoryList:l}}}})();
-onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/custom-navbar-watchlater-list.min.js"] = (()=>{return(t,i)=>{const{NavbarComponent:a}=i.import("custom-navbar-component");class e extends a{constructor(){super();this.boundingWidth=380;this.noPadding=true;this.href="https://www.bilibili.com/watchlater/#/list";this.html="稍后再看";this.active=document.URL.startsWith("https://www.bilibili.com/watchlater/");this.popupHtml=`\n\n
\n 加载中...\n
\n
\n 空空如也哦 = ̄ω ̄=\n
\n\n
\n\n \n \x3c!--
\n \n 撤销\n
--\x3e\n
\n`;this.initialPopup=(()=>{this.init()})}async init(){new Vue({el:await SpinQuery.select(`.custom-navbar [data-name="${this.name}"] .watchlater-list`),store:store,components:{DpiImg:()=>i.importAsync("dpi-img.vue")},data:{cards:[],filteredCards:[],search:"",lastRemovedAid:0,redirect:t.watchLaterRedirect&&t.watchLaterRedirectNavbar},computed:{...Vuex.mapState(["watchlaterList"])},watch:{watchlaterList(){this.updateList()},search(){this.updateFilteredCards()}},methods:{...Vuex.mapActions(["toggleWatchlater"]),async updateList(){const{getWatchlaterList:t}=await i.importAsync("watchlater-api");const a=await t(true);if(!a){this.cards=[];return}const e=t=>{if(this.redirect){return`https://www.bilibili.com/video/av${t.aid}`}if(t.bvid){return`https://www.bilibili.com/watchlater/#/${t.bvid}`}return`https://www.bilibili.com/watchlater/#/av${t.aid}`};const s=a.map(t=>{const i=(()=>{if(t.pages===undefined){return e(t)}const i=t.pages.map(t=>t.cid);const a=t.cid===0?1:i.indexOf(t.cid)+1;return this.redirect?`${e(t)}?p=${a}`:`${e(t)}/p${a}`})();const a=Math.round(1e3*t.progress/t.duration)/1e3;return{aid:t.aid,href:i,coverUrl:t.pic.replace("http:","https:"),durationText:formatDuration(t.duration),duration:t.duration,complete:t.progress<0||a>.95,title:t.title,upName:t.owner.name,upFaceUrl:t.owner.face.replace("http:","https:"),upID:t.owner.mid}});this.cards=s;if(this.search){this.updateFilteredCards()}else{this.filteredCards=s}},async remove(t,i){this.cards.splice(i,1);await this.toggleWatchlater(t);this.lastRemovedAid=t},async undo(){const t=this.lastRemovedAid;if(t!==0){await this.toggleWatchlater(t)}},updateFilteredCards:_.debounce(function(){const t=this.search.toLowerCase();const i=this.$el.querySelector(".cards");i.scrollTo(0,0);this.filteredCards=this.cards.filter(i=>{return i.title.toLowerCase().includes(t)||i.upName.toLowerCase().includes(t)})},100)},async mounted(){try{await this.updateList()}finally{this.$el.classList.remove("loading")}}})}get name(){return"watchlaterList"}}return{export:{WatchlaterList:e}}}})();
+onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/custom-navbar-watchlater-list.min.js"] = (()=>{return(t,i)=>{const{NavbarComponent:a}=i.import("custom-navbar-component");class e extends a{constructor(){super();this.boundingWidth=380;this.noPadding=true;this.href="https://www.bilibili.com/watchlater/#/list";this.html="稍后再看";this.active=document.URL.startsWith("https://www.bilibili.com/watchlater/");this.popupHtml=`\n\n
\n 加载中...\n
\n
\n 空空如也哦 = ̄ω ̄=\n
\n\n
\n\n \n \x3c!--
\n \n 撤销\n
--\x3e\n
\n`;this.initialPopup=(()=>{this.init()})}async init(){new Vue({el:await SpinQuery.select(`.custom-navbar [data-name="${this.name}"] .watchlater-list`),store:store,components:{DpiImg:()=>i.importAsync("dpi-img.vue")},data:{cards:[],filteredCards:[],search:"",lastRemovedAid:0,redirect:t.watchLaterRedirect&&t.watchLaterRedirectNavbar},computed:{...Vuex.mapState(["watchlaterList"])},watch:{watchlaterList(){this.updateList()},search(){this.updateFilteredCards()}},methods:{...Vuex.mapActions(["toggleWatchlater"]),async updateList(){const{getWatchlaterList:t}=await i.importAsync("watchlater-api");const a=await t(true);if(!a){this.cards=[];return}const e=t=>{if(this.redirect){return`https://www.bilibili.com/video/av${t.aid}`}if(t.bvid){return`https://www.bilibili.com/watchlater/#/${t.bvid}`}return`https://www.bilibili.com/watchlater/#/av${t.aid}`};const s=a.map(t=>{const i=(()=>{if(t.pages===undefined){return e(t)}const i=t.pages.map(t=>t.cid);const a=t.cid===0?1:i.indexOf(t.cid)+1;return this.redirect?`${e(t)}?p=${a}`:`${e(t)}/p${a}`})();const a=Math.round(1e3*t.progress/t.duration)/1e3;return{aid:t.aid,href:i,coverUrl:t.pic.replace("http:","https:"),durationText:formatDuration(t.duration),duration:t.duration,complete:t.progress<0||a>.95,title:t.title,upName:t.owner.name,upFaceUrl:t.owner.face.replace("http:","https:"),upID:t.owner.mid}});this.cards=s;if(this.search){this.updateFilteredCards()}else{this.filteredCards=s}},async remove(t,i){this.cards.splice(i,1);await this.toggleWatchlater(t);this.lastRemovedAid=t},async undo(){const t=this.lastRemovedAid;if(t!==0){await this.toggleWatchlater(t)}},updateFilteredCards:_.debounce(function(){const t=this.search.toLowerCase();const i=this.$el.querySelector(".cards");i.scrollTo(0,0);this.filteredCards=this.cards.filter(i=>{return i.title.toLowerCase().includes(t)||i.upName.toLowerCase().includes(t)})},100)},async mounted(){try{await this.updateList()}finally{this.$el.classList.remove("loading")}}})}get name(){return"watchlaterList"}}return{export:{WatchlaterList:e}}}})();
onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/danmaku-converter.min.js"] = (()=>{return(t,e)=>{class i{constructor({content:t,time:e,type:i,fontSize:r,color:a}){this.content=t;this.time=e;this.startTime=parseFloat(e);this.type=parseInt(i);this.fontSize=parseFloat(r);this.color=parseInt(a)}}class r extends i{constructor({content:t,time:e,type:i,fontSize:r,color:a,timeStamp:s,pool:n,userHash:o,rowId:l}){super({content:t,time:e,type:i,fontSize:r,color:a});this.timeStamp=parseInt(s);this.pool=parseInt(n);this.userHash=o;this.rowId=parseInt(l);this.pDataArray=[e,i,r,a,s,n,o,l]}text(){const t=this.pDataArray.join(",");return`${this.content} `}static parse(t){const e=t.getAttribute("p");const[i,a,s,n,o,l,h,c]=e.split(",");const u=t.innerHTML;return new r({content:u,time:i,type:a,fontSize:s,color:n,timeStamp:o,pool:l,userHash:h,rowId:c})}}class a{constructor(t){this.xml=t;const e=(new DOMParser).parseFromString(t,"application/xml").documentElement;this.danmakus=[...e.querySelectorAll("d[p]")].map(t=>r.parse(t))}}var s;(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"})(s||(s={}));class n extends i{constructor({content:t,time:e,type:i,fontSize:r,color:a,typeTag:s,colorTag:n,endTime:o}){super({content:t,time:e,type:i,fontSize:r,color:a});this.typeTag=s;this.colorTag=n;this.endTime=o}text(t){let e=t[this.fontSize];if(!e){e=t[25]}const i=e.match(/Style:(.*?),/)[1].trim();return`Dialogue: 0,${this.time},${this.endTime},${i},,0,0,0,,{${this.typeTag}${this.colorTag}}${this.content}`}}class o{constructor(t,e,i,r,a){this.danmakus=t;this.title=e;this.fontStyles=i;this.blockTypes=r;this.resolution=a}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,i,r){this.horizontalStack=[];this.horizontalTrack=[];this.verticalStack=[];this.verticalTrack=[];this.resolution=e;this.duration=i;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=r;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 i=e.width/2;return[i,this.danmakuHeight/2]}getTags(t,{targetTrack:e,initTrackNumber:i,nextTrackNumber:r,willOverlay:a,getTrackItem:s,getTag:n}){const[o,h]=this.getTextSize(t);const c=o*2;const u=this.duration(t)*c/(this.resolution.x+c)+l.nextDanmakuDelay;let m=i;let p=null;do{p=e.find(t=>a(t,m,c));m+=r}while(p&&m<=this.trackCount&&m>=0);if(m>this.trackCount||m<0){return`\\pos(0,-999)`}m-=r;e.push(s(m,c,u));return n({trackNumber:m,x:o,y:h})}getHorizontalTags(t){return this.getTags(t,{targetTrack:this.horizontalTrack,initTrackNumber:0,nextTrackNumber:1,willOverlay:(e,i,r)=>{if(e.trackNumber!==i){return false}if(e.widtht.startTime}},getTrackItem:(e,i,r)=>{return{width:i,start:t.startTime,visible:t.startTime+r,end:t.startTime+this.duration(t),trackNumber:e}},getTag:({trackNumber:e,x:i,y:r})=>{return`\\move(${this.resolution.x+i},${e*this.trackHeight+l.margin+r},${-i},${e*this.trackHeight+l.margin+r},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,i)=>{if(e.trackNumber!==i){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:i})=>{if(e){return`\\pos(${this.resolution.x/2},${t*this.trackHeight+l.margin+i})`}else{return`\\pos(${this.resolution.x/2},${this.resolution.y-l.margin-i-(this.trackCount-1-t)*this.trackHeight})`}}})}push(t){let e="";let i=[];switch(l.danmakuType[t.type]){case"normal":case"reversed":{e=this.getHorizontalTags(t);i=this.horizontalStack;break}case"top":case"bottom":{e=this.getVerticalTags(t);i=this.verticalStack;break}case"special":default:{return{tags:`\\pos(0,-999)`}}}const r={tags:e};i.push(r);return r}}l.danmakuType={[s.Normal]:"normal",[s.Normal2]:"normal",[s.Normal3]:"normal",[s.Bottom]:"bottom",[s.Top]:"top",[s.Reversed]:"reversed",[s.Special]:"special",[s.Special2]:"special"};l.margin=4;l.nextDanmakuDelay=.05;class h{constructor({title:t,font:e,alpha:i,duration:r,blockTypes:a,resolution:s,bottomMarginPercent:n,bold:o}){this.title=t;this.font=e;this.alpha=Math.round(i*255).toString(16).toUpperCase().padStart(2,"0");this.duration=r;this.blockTypes=a;this.resolution=s;this.bold=o;this.danmakuStack=new l(e,s,r,n)}get fontStyles(){return{36:`Style: Larger,${this.font},72,&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`,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 a(t);const i=[];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!==h.white){continue}const[e,r]=this.convertTime(t.startTime,this.duration(t));i.push(new n({content:this.convertText(t.content),time:e,endTime:r,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(i,this.title,this.fontStyles,this.blockTypes,this.resolution)}convertText(t){const e={"{":"{","}":"}","&":"&","<":"<",">":">",""":'"',"'":"'"};for(const[i,r]of Object.entries(e)){t=t.replace(new RegExp(i,"g"),r)}return t}convertType(t){return this.danmakuStack.push(t).tags}convertColor(t){if(t===h.white){return""}const e=t.toString(16);const i=e.substring(0,2);const r=e.substring(2,4);const a=e.substring(4,6);return`\\c&H${a}${r}${i}&`}convertTime(t,e){function i(t){const[e,i="00"]=String(t).split(".");return`${e.padStart(2,"0")}.${i.substr(0,2).padEnd(2,"0")}`}function r(t){let e=0;let r=0;while(t>=60){t-=60;r++}while(r>=60){r-=60;e++}return`${e}:${String(r).padStart(2,"0")}:${i(t)}`}return[r(t),r(t+e)]}}h.white=16777215;return{export:{AssDanmaku:n,AssDanmakuDocument:o,Danmaku:i,DanmakuConverter:h,DanmakuStack:l,XmlDanmaku:r,XmlDanmakuDocument:a}}}})();
onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/danmaku-send-bar.min.css"] = `.bilibili-live-player-video-controller-content .danmaku-send-bar{display:none}@media screen and (min-width:1038px){.fullscreen-fix:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content,.player-full-win:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content{display:flex;justify-content:space-between;align-items:center}.fullscreen-fix:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content::after,.fullscreen-fix:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content::before,.player-full-win:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content::after,.player-full-win:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content::before{content:none!important}.fullscreen-fix:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content .danmaku-send-bar,.player-full-win:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content .danmaku-send-bar{display:flex;margin:0 24px;flex:1 1 0;height:24px;justify-content:center;align-items:center}.fullscreen-fix:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content .danmaku-send-bar input,.player-full-win:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content .danmaku-send-bar input{border:none;border-bottom:2px solid #fff8;background-color:transparent;color:#fff;padding:4px;flex:1;width:0;max-width:400px;min-width:70px}.fullscreen-fix:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content .danmaku-send-bar input:focus-within,.player-full-win:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content .danmaku-send-bar input:focus-within{border-color:var(--theme-color)}.fullscreen-fix:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content .danmaku-send-bar input::-webkit-input-placeholder,.player-full-win:not(.danmaku-send-bar-unloaded) .bilibili-live-player-video-controller-content .danmaku-send-bar input::-webkit-input-placeholder{color:#fff8!important}}`;
onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/danmaku-send-bar.min.js"] = (()=>{return(e,t)=>{(async()=>{if(!document.URL.match(/^https:\/\/live.bilibili.com\/(blanc\/)?(\d+)/)){return}const e=await SpinQuery.select(".bilibili-live-player-video-controller-left");const n=await SpinQuery.select(".chat-input-ctnr .chat-input");const a=await SpinQuery.select(".chat-input-ctnr ~ .bottom-actions .bl-button--primary");if([e,n,a].some(e=>e===null)){return}t.applyStyle("danmakuSendBarStyle");let i=false;const l=Vue.extend({template:`\n\n \n
\n`,data(){return{value:n.value}},mounted(){n.addEventListener("input",this.listenChange);n.addEventListener("change",this.listenChange);if(!i){const e=Object.getOwnPropertyDescriptors(HTMLTextAreaElement.prototype).value;Object.defineProperty(n,"value",{...e,set(t){e.set.call(this,t);raiseEvent(n,"input")}});i=true}},beforeDestroy(){n.removeEventListener("input",this.listenChange);n.removeEventListener("change",this.listenChange)},methods:{updateValue(e){n.value=e;raiseEvent(n,"input")},send(){if(!a.disabled){this.value="";a.click()}},listenChange(e){this.value=e.target.value}}});const s=(new l).$mount().$el;e.insertAdjacentElement("afterend",s)})();return{reload:()=>document.body.classList.remove("danmaku-send-bar-unloaded"),unload:()=>document.body.classList.add("danmaku-send-bar-unloaded")}}})();
diff --git a/min/bundle.json b/min/bundle.json
index a595e41d5..f6dfbe692 100644
--- a/min/bundle.json
+++ b/min/bundle.json
@@ -53,7 +53,7 @@
"custom-navbar-upload.min.js": "0CDEEA46DCF0D6187C86BB12DE8CD36737116EF171AA1F63AB20C5DC7549C976",
"custom-navbar-user-info.min.js": "86C30E3AD71C99630933B231861A271A647D9D6625CB46AB61D65F5F9560F188",
"custom-navbar-video-list.min.js": "08D6713144E910C1303CB610A5890A5663B92BE82630BDA3C8E6299FB4A429E2",
- "custom-navbar-watchlater-list.min.js": "E9D98431DB15E3CA31CE29B5480B1A71BCD9178E783BF8BDF8F68333130DD403",
+ "custom-navbar-watchlater-list.min.js": "1ED83050F1966EC229B006CEE97F74E98430F658B4636BDDD774B7455E53A012",
"danmaku-converter.min.js": "6C844406F060DCF2483F9CC4C7329911ED77BC77097F2BC5B925B6F12C990820",
"danmaku-send-bar.min.css": "3FA93C0897014E89A8F904407CD6404AB9A15148D6BEB1334939F69A87ADF845",
"danmaku-send-bar.min.js": "7108E72F00C169F26E20409F4AA79F05553310375BABC392EB7E2166224B800A",
diff --git a/min/bundle.zip b/min/bundle.zip
index 55bddb375..aaba37de0 100644
Binary files a/min/bundle.zip and b/min/bundle.zip differ
diff --git a/min/custom-navbar-watchlater-list.min.js b/min/custom-navbar-watchlater-list.min.js
index 0342d9295..bbc036d66 100644
--- a/min/custom-navbar-watchlater-list.min.js
+++ b/min/custom-navbar-watchlater-list.min.js
@@ -1 +1 @@
-(()=>{return(t,i)=>{const{NavbarComponent:a}=i.import("custom-navbar-component");class e extends a{constructor(){super();this.boundingWidth=380;this.noPadding=true;this.href="https://www.bilibili.com/watchlater/#/list";this.html="稍后再看";this.active=document.URL.startsWith("https://www.bilibili.com/watchlater/");this.popupHtml=`\n\n
\n 加载中...\n
\n
\n 空空如也哦 = ̄ω ̄=\n
\n\n
\n\n \n \x3c!--
\n \n 撤销\n
--\x3e\n
\n`;this.initialPopup=(()=>{this.init()})}async init(){new Vue({el:await SpinQuery.select(`.custom-navbar [data-name="${this.name}"] .watchlater-list`),store:store,components:{DpiImg:()=>i.importAsync("dpi-img.vue")},data:{cards:[],filteredCards:[],search:"",lastRemovedAid:0,redirect:t.watchLaterRedirect&&t.watchLaterRedirectNavbar},computed:{...Vuex.mapState(["watchlaterList"])},watch:{watchlaterList(){this.updateList()},search(){this.updateFilteredCards()}},methods:{...Vuex.mapActions(["toggleWatchlater"]),async updateList(){const{getWatchlaterList:t}=await i.importAsync("watchlater-api");const a=await t(true);if(!a){this.cards=[];return}const e=t=>{if(this.redirect){return`https://www.bilibili.com/video/av${t.aid}`}if(t.bvid){return`https://www.bilibili.com/watchlater/#/${t.bvid}`}return`https://www.bilibili.com/watchlater/#/av${t.aid}`};const s=a.map(t=>{const i=(()=>{if(t.pages===undefined){return e(t)}const i=t.pages.map(t=>t.cid);const a=t.cid===0?1:i.indexOf(t.cid)+1;return this.redirect?`${e(t)}?p=${a}`:`${e(t)}/p${a}`})();const a=Math.round(1e3*t.progress/t.duration)/1e3;return{aid:t.aid,href:i,coverUrl:t.pic.replace("http:","https:"),durationText:formatDuration(t.duration),duration:t.duration,complete:t.progress<0||a>.95,title:t.title,upName:t.owner.name,upFaceUrl:t.owner.face.replace("http:","https:"),upID:t.owner.mid}});this.cards=s;if(this.search){this.updateFilteredCards()}else{this.filteredCards=s}},async remove(t,i){this.cards.splice(i,1);await this.toggleWatchlater(t);this.lastRemovedAid=t},async undo(){const t=this.lastRemovedAid;if(t!==0){await this.toggleWatchlater(t)}},updateFilteredCards:_.debounce(function(){const t=this.search.toLowerCase();const i=this.$el.querySelector(".cards");i.scrollTo(0,0);this.filteredCards=this.cards.filter(i=>{return i.title.toLowerCase().includes(t)||i.upName.toLowerCase().includes(t)})},100)},async mounted(){try{await this.updateList()}finally{this.$el.classList.remove("loading")}}})}get name(){return"watchlaterList"}}return{export:{WatchlaterList:e}}}})();
\ No newline at end of file
+(()=>{return(t,i)=>{const{NavbarComponent:a}=i.import("custom-navbar-component");class e extends a{constructor(){super();this.boundingWidth=380;this.noPadding=true;this.href="https://www.bilibili.com/watchlater/#/list";this.html="稍后再看";this.active=document.URL.startsWith("https://www.bilibili.com/watchlater/");this.popupHtml=`\n\n
\n 加载中...\n
\n
\n 空空如也哦 = ̄ω ̄=\n
\n\n
\n\n \n \x3c!--
\n \n 撤销\n
--\x3e\n
\n`;this.initialPopup=(()=>{this.init()})}async init(){new Vue({el:await SpinQuery.select(`.custom-navbar [data-name="${this.name}"] .watchlater-list`),store:store,components:{DpiImg:()=>i.importAsync("dpi-img.vue")},data:{cards:[],filteredCards:[],search:"",lastRemovedAid:0,redirect:t.watchLaterRedirect&&t.watchLaterRedirectNavbar},computed:{...Vuex.mapState(["watchlaterList"])},watch:{watchlaterList(){this.updateList()},search(){this.updateFilteredCards()}},methods:{...Vuex.mapActions(["toggleWatchlater"]),async updateList(){const{getWatchlaterList:t}=await i.importAsync("watchlater-api");const a=await t(true);if(!a){this.cards=[];return}const e=t=>{if(this.redirect){return`https://www.bilibili.com/video/av${t.aid}`}if(t.bvid){return`https://www.bilibili.com/watchlater/#/${t.bvid}`}return`https://www.bilibili.com/watchlater/#/av${t.aid}`};const s=a.map(t=>{const i=(()=>{if(t.pages===undefined){return e(t)}const i=t.pages.map(t=>t.cid);const a=t.cid===0?1:i.indexOf(t.cid)+1;return this.redirect?`${e(t)}?p=${a}`:`${e(t)}/p${a}`})();const a=Math.round(1e3*t.progress/t.duration)/1e3;return{aid:t.aid,href:i,coverUrl:t.pic.replace("http:","https:"),durationText:formatDuration(t.duration),duration:t.duration,complete:t.progress<0||a>.95,title:t.title,upName:t.owner.name,upFaceUrl:t.owner.face.replace("http:","https:"),upID:t.owner.mid}});this.cards=s;if(this.search){this.updateFilteredCards()}else{this.filteredCards=s}},async remove(t,i){this.cards.splice(i,1);await this.toggleWatchlater(t);this.lastRemovedAid=t},async undo(){const t=this.lastRemovedAid;if(t!==0){await this.toggleWatchlater(t)}},updateFilteredCards:_.debounce(function(){const t=this.search.toLowerCase();const i=this.$el.querySelector(".cards");i.scrollTo(0,0);this.filteredCards=this.cards.filter(i=>{return i.title.toLowerCase().includes(t)||i.upName.toLowerCase().includes(t)})},100)},async mounted(){try{await this.updateList()}finally{this.$el.classList.remove("loading")}}})}get name(){return"watchlaterList"}}return{export:{WatchlaterList:e}}}})();
\ No newline at end of file
diff --git a/src/style/custom-navbar/watchlater-list/custom-navbar-watchlater-list.ts b/src/style/custom-navbar/watchlater-list/custom-navbar-watchlater-list.ts
index 757210e84..353ddbf3f 100644
--- a/src/style/custom-navbar/watchlater-list/custom-navbar-watchlater-list.ts
+++ b/src/style/custom-navbar/watchlater-list/custom-navbar-watchlater-list.ts
@@ -37,7 +37,7 @@ export class WatchlaterList extends NavbarComponent {
-
+