mirror of
https://github.com/the1812/Bilibili-Evolved.git
synced 2025-11-04 21:22:45 +08:00
1 line
6.0 KiB
JavaScript
1 line
6.0 KiB
JavaScript
(()=>(e,i)=>{function t(e,i,t){if(i in e){Object.defineProperty(e,i,{value:t,enumerable:true,configurable:true,writable:true})}else{e[i]=t}return e}const l=e=>{const i=()=>SpinQuery.select(e);i.selector=e;return i};const r=e=>{const i=e=>{if(typeof e!=="string"){return _.mapValues(e,i)}return l(e)};return _.mapValues(e,i)};class a{constructor(){t(this,"type",void 0);t(this,"query",void 0)}async click(e){const i=await e();i===null||i===void 0?void 0:i.click()}provideCustomQuery(e){var i;const t=r((i=e[this.type])!==null&&i!==void 0?i:e.video);return{...this,custom:t}}async widescreen(){await this.click(this.query.control.buttons.widescreen)}async webFullscreen(){await this.click(this.query.control.buttons.webFullscreen)}async fullscreen(){await this.click(this.query.control.buttons.fullscreen)}async togglePlay(){await this.click(this.query.control.buttons.start)}async togglePip(){await this.click(this.query.control.buttons.pip)}async toggleMute(){await this.click(this.query.control.buttons.volume)}async toggleDanmaku(){const e=await this.query.danmakuSwitch();if(!e){return}e.checked=!e.checked;raiseEvent(e,"change")}}class o extends a{constructor(...e){super(...e);t(this,"type","video");t(this,"query",r({playerWrap:".player-wrap",bilibiliPlayer:".bilibili-player",playerArea:".bilibili-player-area",video:{element:"video",wrap:".bilibili-player-video-wrap",top:".bilibili-player-top",state:".bilibili-player-state",panel:".bilibili-player-video-panel",popup:".bilibili-player-video-popup",subtitle:".bilibili-player-video-subtitle",basDanmaku:".bilibili-player-bas-danmaku",advDanmaku:".bilibili-player-adv-danmaku",danmaku:".bilibili-player-danmaku",container:".bilibili-player-video"},control:{element:".bilibili-player-control",wrap:".bilibili-player-control-wrap",mask:".bilibili-player-control-mask",top:".bilibili-player-control-top",progress:".bilibili-player-video-progress",bottom:".bilibili-player-control-bottom",bottomLeft:".bilibili-player-control-bottom-left",bottomCenter:".bilibili-player-control-bottom-center",bottomRight:".bilibili-player-control-bottom-right",buttons:{start:".bilibili-player-video-btn-start",next:".bilibili-player-video-btn-next",time:".bilibili-player-video-time",quality:".bilibili-player-btn-quality",pageList:".bilibili-player-video-btn-pagelist",speed:".bilibili-player-video-btn-speed",subtitle:".bilibili-player-video-btn-subtitle",volume:".bilibili-player-video-btn-volume .bilibili-player-iconfont-volume",settings:".bilibili-player-video-btn-setting",pip:".bilibili-player-video-btn-pip",widescreen:".bilibili-player-video-btn-widescreen",webFullscreen:".bilibili-player-video-web-fullscreen",fullscreen:".bilibili-player-video-btn-fullscreen"}},toastWrap:".bilibili-player-video-toast-wrp",danmakuTipLayer:".bilibili-player-dm-tip-wrap",danmakuSwitch:".bilibili-player-video-danmaku-switch input"}))}get nativeApi(){return unsafeWindow.player}async isMute(){return this.nativeApi.isMute()}async changeVolume(e){const i=this.nativeApi.volume();this.nativeApi.volume(i+e/100);return Math.round(this.nativeApi.volume()*100)}async seek(e){this.nativeApi.play();setTimeout((()=>{this.nativeApi.seek(e);const i=dq(".bilibili-player-video-toast-bottom .bilibili-player-video-toast-item:first-child .bilibili-player-video-toast-item-text span:nth-child(2)");if(i){i.textContent=" 00:00"}}));return this.nativeApi.getCurrentTime()}async changeTime(e){const i=await this.query.video.element();this.nativeApi.seek(i.currentTime+e,i.paused);return this.nativeApi.getCurrentTime()}}class n extends o{constructor(){super();t(this,"type","bwp");this.query.video.element=l("bwp-video")}}class s extends a{constructor(...e){super(...e);t(this,"type","bangumi");t(this,"query",r({playerWrap:".player-module",bilibiliPlayer:".bpx-player-container",playerArea:".bpx-player-primary-area",video:{element:"video",wrap:".bpx-player-video-area",top:".bpx-player-top-wrap",state:".bpx-player-state-wrap",panel:".bpx-player-ending-panel",popup:".bpx-player-dialog-wrap",subtitle:".bpx-player-subtitle-wrap",basDanmaku:".bpx-player-bas-dm-wrap",advDanmaku:".bpx-player-adv-dm-wrap",danmaku:".bpx-player-row-dm-wrap",container:".bpx-player-video-wrap"},control:{element:".squirtle-controller",wrap:".bpx-player-control-wrap",mask:".bpx-player-control-mask",top:".bpx-player-control-top",progress:".squirtle-progress-wrap",bottom:".squirtle-controller-wrap",bottomLeft:".squirtle-controller-wrap-left",bottomCenter:".squirtle-controller-wrap-center",bottomRight:".squirtle-controller-wrap-right",buttons:{start:".squirtle-video-start",next:".squirtle-video-next",time:".squirtle-time-wrap",quality:".squirtle-video-quality",pageList:".squirtle-video-pagelist",speed:".squirtle-video-speed",subtitle:".squirtle-video-subtitle",volume:".squirtle-video-volume .squirtle-volume-icon",settings:".squirtle-video-setting",pip:".squirtle-video-pip",widescreen:".squirtle-video-widescreen",webFullscreen:".squirtle-video-pagefullscreen",fullscreen:".squirtle-video-fullscreen"}},toastWrap:".bpx-player-tooltip-area",danmakuTipLayer:".bpx-player-dialog-wrap",danmakuSwitch:".bpx-player-dm-switch input"}))}async isMute(){var e;const i=await this.query.control.buttons.volume();return(e=i===null||i===void 0?void 0:i.classList.contains("squirtle-volume-mute-state"))!==null&&e!==void 0?e:false}async changeVolume(e){const i=await this.query.video.element();i.volume=_.clamp(i.volume+e/100,0,1);return Math.round(i.volume*100)}async seek(e){const i=await this.query.video.element();i.play();setTimeout((()=>{var t;i.currentTime=_.clamp(e,0,i.duration);const l=dq(".bpx-player-toast-row .bpx-player-toast-item .bpx-player-toast-text");if(l===null||l===void 0?void 0:(t=l.textContent)===null||t===void 0?void 0:t.startsWith("已为您定位至")){l.textContent="已为您定位至00:00"}}));return i.currentTime}async changeTime(e){const i=await this.query.video.element();i.currentTime=_.clamp(i.currentTime+e,0,i.duration);return i.currentTime}}const p=(()=>{if(document.URL.includes("//www.bilibili.com/bangumi/play")){return new s}if(unsafeWindow.__ENABLE_WASM_PLAYER__){return new n}return new o})();return{export:{playerAgent:p}}})(); |