(()=>(e,o)=>{const r=`
记录弹幕
`;o.applyStyleFromText(`.live-danmaku-recorder{position:fixed;top:100%;left:0;transform:translateX(8px) translateY(calc(-100% + 8px));opacity:0;pointer-events:none;display:flex;flex-direction:column;align-items:center;padding:12px;z-index:1000;color:#000;background-color:#fff;box-shadow:rgba(0,0,0,.2) 0 4px 8px 0;border-radius:8px 8px 0 0;min-width:200px}.live-danmaku-recorder.opened{transform:translateX(8px) translateY(calc(-100%));opacity:1;pointer-events:initial}body.dark .live-danmaku-recorder{color:#fff;background-color:#282828}.live-danmaku-recorder,.live-danmaku-recorder *{transition:.2s ease-out}.live-danmaku-recorder .header{display:flex;align-items:center;align-self:stretch}.live-danmaku-recorder .header .collapse{cursor:pointer}.live-danmaku-recorder .header .collapse-danmaku-count{flex-grow:1;padding-right:24px}.live-danmaku-recorder .header .title{flex-grow:1;font-weight:700;font-size:15px;padding-right:16px}.live-danmaku-recorder .header .close{cursor:pointer}.live-danmaku-recorder .header .close .be-icon{font-size:20px}.live-danmaku-recorder .record-stats{margin-top:16px;margin-bottom:8px}.live-danmaku-recorder .loading-tip{margin-bottom:16px}.live-danmaku-recorder .toggle-record{display:flex;align-items:center;padding:8px;margin-bottom:16px;background-color:var(--theme-color);color:var(--foreground-color);cursor:pointer;border-radius:8px}.live-danmaku-recorder .toggle-record .be-icon{font-size:14px;margin-right:8px}.live-danmaku-recorder .exports{align-self:stretch;display:flex;align-items:center}.live-danmaku-recorder .exports>*{border-radius:8px;cursor:pointer;padding:8px;text-align:center;white-space:nowrap;background-color:#8882}.live-danmaku-recorder .exports>:hover{background-color:#8884}.live-danmaku-recorder .exports .export-xml{flex:2 0 0}.live-danmaku-recorder .exports .export-ass{flex:1 0 0;margin-left:8px}`,"record-live-danmaku-style");return{export:Object.assign({template:r},{components:{Icon:()=>o.importAsync("icon.vue")},data(){return{isRecording:true,danmakus:[],opened:false,collapsed:false,loading:true}},async mounted(){try{const{LiveSocket:e}=await o.importAsync("live-socket");const r=await SpinQuery.select(".header-info-ctnr .room-cover");let a;if(r!==null){const e=r.href.match(/space\.bilibili\.com\/(\d+)/)[1];const o=await Ajax.getJson(`https://api.live.bilibili.com/room/v1/Room/getRoomInfoOld?mid=${e}`);a=_.get(o,"data.roomid",document.URL.match(/live\.bilibili\.com\/(blanc\/)?(\d+)/)[1])}else{a=document.URL.match(/live\.bilibili\.com\/(blanc\/)?(\d+)/)[1]}const i=new e(parseInt(a));i.addEventListener("danmaku",(e=>{if(this.isRecording){console.log(e.detail.content);this.danmakus.push(e.detail)}}));await i.start()}catch(e){logError(e)}finally{this.loading=false}},methods:{getXML(){const e=this.danmakus.map((e=>{const o=e.content.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'");return`${o}`}));const o=`\n\n\n ${e.join("\n ")}\n\n`.trim();return o},async exportXML(){const{getFriendlyTitle:e}=await o.importAsync("title");const{DownloadPackage:r}=await o.importAsync("download-package");const a=new r;a.add(e()+".xml",this.getXML());await a.emit()},async exportASS(){const e=this.getXML();console.log(e)}}})}})();