mirror of
https://github.com/the1812/Bilibili-Evolved.git
synced 2025-11-04 21:22:45 +08:00
Allow combo like with L keymap
This commit is contained in:
parent
8a25811279
commit
e09fd791db
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -22,7 +22,7 @@
|
||||
"clear-cache.min.js": "9AB1536D8278DA681831A589AD1414425BF206B36AE109FB4EC1E8A685BB2A9F",
|
||||
"collapse-live-side-bar.min.css": "22348786547D2D8DB659A306AF2E9C1F2050D66488778C71545AAEF785FD57E6",
|
||||
"collapse-live-side-bar.min.js": "BB1B1CF157099A70F1AEA3F154C84D9CA1A84A29B5F6E42357CA9F51FFC4965C",
|
||||
"combo-like.min.js": "239FC1F3AC50C9BBF3788E9C3ECADEEB0CA0F435D1EA7AD4A4AB471C8549A0C2",
|
||||
"combo-like.min.js": "368DA34768E947628099D258ED23BC5FFFCFFD25A47346E086C7975C8A52F997",
|
||||
"comment.min.css": "CEDA2E6733E294A608812309FA6629045ABBC55A55C7677B6B60F019C0B62CAB",
|
||||
"comment.min.js": "64F7B6951861C25799C48BB1ABCF2A73F79BCBBFC1E9D3BD45EC1F16F94F6451",
|
||||
"comment-dark.min.css": "E980508E86203743C36FEE4F7149BFF53961ECBC4EC140E8C162D18D395B940A",
|
||||
@ -126,7 +126,7 @@
|
||||
"image-viewer.min.css": "0CF849C6546AEBD2E7EB42F42368BC87B95536840F8A364413DB9A6E37AF5EA8",
|
||||
"image-viewer.min.html": "763742E79923A7918F281AEBB3CEE76FE2A0AE94CACE325AE4BEE1AED451DAEA",
|
||||
"index.min.html": "94B83D9EBB9005C1286A7E0759A7683932F8DADA20D07E5E9D8FF867B04D4B95",
|
||||
"keymap.min.js": "85A81D89505EBBA8547BAD6F53802740C2959574940DFDB3042BDE1E1E938C74",
|
||||
"keymap.min.js": "97F968FE6B8719E4A22FC8A23DD6369548BDABE7574BE1539217DD52CA297884",
|
||||
"live-socket.min.js": "FB799DA10059CC7EF934F6C678EE91729A0FB00D5D1EC24D7FBFC75FD8FA12FB",
|
||||
"magic-grid.min.js": "30BA27115FAC84B018A5A8C64031939DF1E324AE199F2F3675925ECF427CBFFC",
|
||||
"mdi.min.js": "8A22F2F37F88F74FC07CE2FECA7CE135182058BE24409BAF3DEF0D5845B0BE1A",
|
||||
|
||||
BIN
min/bundle.zip
BIN
min/bundle.zip
Binary file not shown.
2
min/combo-like.min.js
vendored
2
min/combo-like.min.js
vendored
@ -1 +1 @@
|
||||
(()=>{return(e,t)=>{(async()=>{const e=await SpinQuery.select(()=>document.querySelector(".ops span.like"));if(!e){return}e.style.userSelect="none";function t(t,n){const u=new CustomEvent(t,n);e.dispatchEvent(u)}const n=200;let u=true;e.addEventListener("touchstart",e=>{e.preventDefault();u=true;setTimeout(()=>u=false,n);t("mousedown",e)});e.addEventListener("touchend",e=>{e.preventDefault();t("mouseup",e);if(u===true){t("click",e)}})})()}})();
|
||||
(()=>{return(e,t)=>{(async()=>{const e=await SpinQuery.select(()=>document.querySelector(".ops span.like"));if(!e){return}e.style.userSelect="none";function t(t,n){const s=new CustomEvent(t,n);e.dispatchEvent(s)}const n=200;let s=true;e.addEventListener("touchstart",e=>{e.preventDefault();s=true;setTimeout(()=>s=false,n);t("mousedown",e)});e.addEventListener("touchend",e=>{e.preventDefault();t("mouseup",e);if(s){t("click",e)}})})()}})();
|
||||
2
min/keymap.min.js
vendored
2
min/keymap.min.js
vendored
@ -1 +1 @@
|
||||
(()=>{return(e,i)=>{const t=["https://www.bilibili.com/bangumi/","https://www.bilibili.com/video/"];if(t.some(e=>document.URL.startsWith(e))){const t={f:".bilibili-player-video-fullscreen",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"," ":".bilibili-player-video-btn-start"};let a;const n=e=>{let t=dq(".keymap-playback-tip");if(!t){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");t=dq(".keymap-playback-tip")}t.innerHTML=e.toString();if(a){clearTimeout(a)}dq(".keymap-playback-tip-container").classList.add("show");a=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 a=i.key.toLowerCase();const o=!i.shiftKey&&!i.altKey&&!i.ctrlKey&&!i.metaKey;if(a in t&&o){const e=dq(t[a]);if(!e){return}i.stopPropagation();i.preventDefault();e.click()}else if(a==="d"&&o){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(a==="j"&&o){const t=dq(".bilibili-player-video video");t.currentTime+=e.keymapJumpSeconds;i.stopPropagation();i.preventDefault()}else if(i.shiftKey){const t=dq(".bilibili-player-video video");if(t===null){return}const o=[.5,.75,1,1.25,1.5,2,2.5,3];let l=true;if(a===">"||a==="ArrowUp".toLowerCase()){t.playbackRate=o.find(e=>e>t.playbackRate)||o[o.length-1];n(t.playbackRate)}else if(a==="<"||a==="ArrowDown".toLowerCase()){t.playbackRate=[...o].reverse().find(e=>e<t.playbackRate)||o[0];n(t.playbackRate)}else if(a==="?"){t.playbackRate=1;n(t.playbackRate)}else if(a==="w"){const e=dq(".video-toolbar .ops .watchlater,.more-ops-list .ops-watch-later");if(e!==null){e.click()}}else if(a==="j"){t.currentTime-=e.keymapJumpSeconds}else{l=false}if(l){i.stopPropagation();i.preventDefault()}}})}}})();
|
||||
(()=>{return(e,i)=>{const t=["https://www.bilibili.com/bangumi/","https://www.bilibili.com/video/"];if(t.some(e=>document.URL.startsWith(e))){const t={f:".bilibili-player-video-fullscreen",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",c:".video-toolbar .coin,.tool-bar .coin-info",s:".video-toolbar .collect"," ":".bilibili-player-video-btn-start"};let n=true;let a;const o=e=>{let t=dq(".keymap-playback-tip");if(!t){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");t=dq(".keymap-playback-tip")}t.innerHTML=e.toString();if(a){clearTimeout(a)}dq(".keymap-playback-tip-container").classList.add("show");a=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 a=i.key.toLowerCase();const l=!i.shiftKey&&!i.altKey&&!i.ctrlKey&&!i.metaKey;if(a in t&&l){const e=dq(t[a]);if(!e){return}i.stopPropagation();i.preventDefault();e.click()}else if(a==="d"&&l){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(a==="j"&&l){const t=dq(".bilibili-player-video video");t.currentTime+=e.keymapJumpSeconds;i.stopPropagation();i.preventDefault()}else if(a==="l"&&l){const e=dq(".video-toolbar .like");i.preventDefault();const t=(i,t)=>{const n=new CustomEvent(i,t);e.dispatchEvent(n)};n=true;setTimeout(()=>n=false,200);t("mousedown",i);document.body.addEventListener("keyup",e=>{e.preventDefault();t("mouseup",e);if(n){t("click",e)}},{once:true})}else if(i.shiftKey){const t=dq(".bilibili-player-video video");if(t===null){return}const n=[.5,.75,1,1.25,1.5,2,2.5,3];let l=true;if(a===">"||a==="ArrowUp".toLowerCase()){t.playbackRate=n.find(e=>e>t.playbackRate)||n[n.length-1];o(t.playbackRate)}else if(a==="<"||a==="ArrowDown".toLowerCase()){t.playbackRate=[...n].reverse().find(e=>e<t.playbackRate)||n[0];o(t.playbackRate)}else if(a==="?"){t.playbackRate=1;o(t.playbackRate)}else if(a==="w"){const e=dq(".video-toolbar .ops .watchlater,.more-ops-list .ops-watch-later");if(e!==null){e.click()}}else if(a==="j"){t.currentTime-=e.keymapJumpSeconds}else{l=false}if(l){i.stopPropagation();i.preventDefault()}}})}}})();
|
||||
@ -1,33 +1,27 @@
|
||||
(async () =>
|
||||
{
|
||||
const likeButton = await SpinQuery.select(() => document.querySelector(".ops span.like"));
|
||||
if (!likeButton)
|
||||
{
|
||||
return;
|
||||
}
|
||||
likeButton.style.userSelect = "none";
|
||||
function mountEvent(name, args)
|
||||
{
|
||||
const event = new CustomEvent(name, args);
|
||||
likeButton.dispatchEvent(event);
|
||||
}
|
||||
(async () => {
|
||||
const likeButton = await SpinQuery.select(() => document.querySelector('.ops span.like'))
|
||||
if (!likeButton) {
|
||||
return
|
||||
}
|
||||
likeButton.style.userSelect = 'none'
|
||||
function mountEvent (name, args) {
|
||||
const event = new CustomEvent(name, args)
|
||||
likeButton.dispatchEvent(event)
|
||||
}
|
||||
|
||||
const clickInterval = 200;
|
||||
let click = true;
|
||||
likeButton.addEventListener("touchstart", e =>
|
||||
{
|
||||
e.preventDefault();
|
||||
click = true;
|
||||
setTimeout(() => click = false, clickInterval);
|
||||
mountEvent("mousedown", e);
|
||||
});
|
||||
likeButton.addEventListener("touchend", e =>
|
||||
{
|
||||
e.preventDefault();
|
||||
mountEvent("mouseup", e);
|
||||
if (click === true)
|
||||
{
|
||||
mountEvent("click", e);
|
||||
}
|
||||
});
|
||||
})();
|
||||
const clickInterval = 200
|
||||
let click = true
|
||||
likeButton.addEventListener('touchstart', e => {
|
||||
e.preventDefault()
|
||||
click = true
|
||||
setTimeout(() => click = false, clickInterval)
|
||||
mountEvent('mousedown', e)
|
||||
})
|
||||
likeButton.addEventListener('touchend', e => {
|
||||
e.preventDefault()
|
||||
mountEvent('mouseup', e)
|
||||
if (click) {
|
||||
mountEvent('click', e)
|
||||
}
|
||||
})
|
||||
})()
|
||||
|
||||
@ -9,11 +9,12 @@ if (supportedUrls.some(url => document.URL.startsWith(url))) {
|
||||
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', // 点赞
|
||||
// l: '.video-toolbar .like', // 点赞
|
||||
c: '.video-toolbar .coin,.tool-bar .coin-info', // 投币
|
||||
s: '.video-toolbar .collect', // 收藏
|
||||
' ': '.bilibili-player-video-btn-start', // 砸瓦撸多
|
||||
} as { [key: string]: string }
|
||||
let likeClick = true
|
||||
let showPlaybackTipOldTimeout: number
|
||||
const showPlaybackTip = (speed: number) => {
|
||||
let tip = dq('.keymap-playback-tip') as HTMLDivElement
|
||||
@ -94,6 +95,23 @@ if (supportedUrls.some(url => document.URL.startsWith(url))) {
|
||||
video.currentTime += settings.keymapJumpSeconds
|
||||
e.stopPropagation()
|
||||
e.preventDefault()
|
||||
} else if (key === 'l' && noModifyKeys) {
|
||||
const likeButton = dq('.video-toolbar .like') as HTMLSpanElement
|
||||
e.preventDefault()
|
||||
const fireEvent = (name: string, args: Event) => {
|
||||
const event = new CustomEvent(name, args)
|
||||
likeButton.dispatchEvent(event)
|
||||
}
|
||||
likeClick = true
|
||||
setTimeout(() => likeClick = false, 200)
|
||||
fireEvent('mousedown', e)
|
||||
document.body.addEventListener('keyup', e => {
|
||||
e.preventDefault()
|
||||
fireEvent('mouseup', e)
|
||||
if (likeClick) {
|
||||
fireEvent('click', e)
|
||||
}
|
||||
}, { once: true })
|
||||
} else if (e.shiftKey) {
|
||||
const video = dq('.bilibili-player-video video') as HTMLVideoElement
|
||||
if (video === null) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user