mirror of
https://github.com/the1812/Bilibili-Evolved.git
synced 2025-11-04 21:22:45 +08:00
1 line
1.1 KiB
JavaScript
1 line
1.1 KiB
JavaScript
(()=>(e,t)=>{let a=true;const n="airborneStyle";(async()=>{if(!document.URL.match(/\/\/www\.bilibili\.com\/video\//)){return}const{forEachVideoDanmaku:e}=await t.importAsync("video-danmaku");t.applyStyle(n);const r=e=>{if(!e){return NaN}const t=e.match(/(\d+)[ ]*[::][ ]*(\d+)([ ]*[::][ ]*(\d+))?/);if(!t){return NaN}if(t[3]){const[,e,a,,n]=t.map((e=>parseInt(e)));if([e,a,n].some((e=>Number.isNaN(e)))){return NaN}return e*3600+a*60+n}const[,a,n]=t.map((e=>parseInt(e)));if([a,n].some((e=>Number.isNaN(e)))){return NaN}return a*60+n};const i=e=>{if(!a){return}const t=e.target;if(!t.classList.contains("b-danmaku")){return}const n=r(t.textContent);if(!Number.isNaN(n)){const e=dq("video");e.currentTime=n;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:()=>{a=true;t.applyStyle(n)},unload:()=>{a=false;t.removeStyle(n)}}})(); |