Bilibili-Evolved/min/keymap.min.js
2019-10-18 08:04:11 +08:00

1 line
2.8 KiB
JavaScript

(()=>{return(e,i)=>{const t=["https://www.bilibili.com/bangumi/","https://www.bilibili.com/video/"];if(t.some(e=>document.URL.startsWith(e))){const e={w:".bilibili-player-video-web-fullscreen",t:".bilibili-player-video-btn-widescreen",r:".bilibili-player-video-btn-repeat",m:".bilibili-player-video-btn-volume .bilibili-player-iconfont-volume",l:".video-toolbar .like",c:".video-toolbar .coin,.tool-bar .coin-info",s:".video-toolbar .collect"};let t;const a=e=>{let a=dq(".keymap-playback-tip");if(!a){const e=dq(".bilibili-player-video-wrap");if(!e){return}e.insertAdjacentHTML("afterbegin",`\n<div class="keymap-playback-tip-container">\n<i class="mdi mdi-fast-forward"></i>\n<div class="keymap-playback-tip"></div>x\n</div>\n`);i.applyStyleFromText(`\n .keymap-playback-tip-container {\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n padding: 8px 16px;\n background-color: #000A;\n color: white;\n pointer-events: none;\n opacity: 0;\n z-index: 100;\n display: flex;\n align-items: center;\n font-size: 14pt;\n border-radius: 4px;\n transition: .2s ease-out;\n }\n .keymap-playback-tip-container.show {\n opacity: 1;\n }\n .keymap-playback-tip-container i {\n line-height: 1;\n margin-right: 8px;\n font-size: 18pt;\n }\n`,"keymapStyle");a=dq(".keymap-playback-tip")}a.innerHTML=e.toString();if(t){clearTimeout(t)}dq(".keymap-playback-tip-container").classList.add("show");t=setTimeout(()=>{dq(".keymap-playback-tip-container").classList.remove("show")},2e3)};document.body.addEventListener("keydown",i=>{if(document.activeElement&&["input","textarea"].includes(document.activeElement.nodeName.toLowerCase())){return}const t=i.key.toLowerCase();const n=!i.shiftKey&&!i.altKey&&!i.ctrlKey;if(t in e&&n){const a=dq(e[t]);if(!a){return}i.stopPropagation();i.preventDefault();a.click()}else if(t==="d"&&n){const e=dq(".bilibili-player-video-danmaku-switch input");if(!e){return}i.stopPropagation();i.preventDefault();e.checked=!e.checked;raiseEvent(e,"change")}else if(i.shiftKey){const e=dq(".bilibili-player-video video");if(e===null){return}const n=[.5,.75,1,1.25,1.5,2];let o=true;if(t===">"||t==="ArrowUp".toLowerCase()){e.playbackRate=n.find(i=>i>e.playbackRate)||n[n.length-1];a(e.playbackRate)}else if(t==="<"||t==="ArrowDown".toLowerCase()){e.playbackRate=[...n].reverse().find(i=>i<e.playbackRate)||n[0];a(e.playbackRate)}else if(t==="?"){e.playbackRate=1;a(e.playbackRate)}else if(t==="w"){const e=dq(".video-toolbar .ops .watchlater,.more-ops-list .ops-watch-later");if(e!==null){e.click()}}else{o=false}if(o){i.stopPropagation();i.preventDefault()}}})}}})();