Bilibili-Evolved/min/airborne.min.js
2020-12-11 23:38:32 +08:00

1 line
1.2 KiB
JavaScript

(()=>(e,t)=>{let n=true;const a="airborneStyle";(async()=>{if(!document.URL.match(/\/\/www\.bilibili\.com\/video\//)){return}const{forEachVideoDanmaku:e}=await t.importAsync("video-danmaku");t.applyStyle(a);const r=e=>{if(!e){return NaN}const t=e.match(/(\d+)[ ]*[::时分][ ]*(\d+)([ ]*[::分][ ]*(\d+))?/);if(!t){return NaN}if(t[3]){const[,n,a,,r]=t.map((e=>parseInt(e)));if([n,a,r].some((e=>Number.isNaN(e)))){return NaN}if(e.includes("分")&&!e.includes("时")){return NaN}return n*3600+a*60+r}const[,n,a]=t.map((e=>parseInt(e)));if([n,a].some((e=>Number.isNaN(e)))){return NaN}return n*60+a};const i=e=>{if(!n){return}const t=e.target;if(!t.classList.contains("b-danmaku")){return}const a=r(t.textContent);if(!Number.isNaN(a)){const e=dq("video");e.currentTime=a;e.play()}};const s=e=>{const t=!Number.isNaN(r(e.text));e.element.classList.toggle("airborne",t)};e({added:s});Observer.videoChange((async()=>{const e=await SpinQuery.select(".bilibili-player-video-wrap");if(e.classList.contains("airborne-enabled")){return}e.classList.add("airborne-enabled");e.addEventListener("click",i)}))})();return{reload:()=>{n=true;t.applyStyle(a)},unload:()=>{n=false;t.removeStyle(a)}}})();