mirror of
https://github.com/the1812/Bilibili-Evolved.git
synced 2025-11-04 21:22:45 +08:00
Add old watchlater support
- dark styles - keymap
This commit is contained in:
parent
bd153b69b7
commit
c16d14201e
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
@ -54,13 +54,12 @@
|
||||
"custom-navbar-video-list.min.js": "08D6713144E910C1303CB610A5890A5663B92BE82630BDA3C8E6299FB4A429E2",
|
||||
"custom-navbar-watchlater-list.min.js": "57EA2C62F7442750BB177B9898CF07BA61C45F0FD99737516ED609051699B054",
|
||||
"danmaku-converter.min.js": "6C844406F060DCF2483F9CC4C7329911ED77BC77097F2BC5B925B6F12C990820",
|
||||
"dark.min.css": "9B13589C9A72DFEEF33E6170F65C8420330D4C53B97D43AC8FE50F304609D390",
|
||||
"dark.user.css": "7854B0AFA31668D11291DECC820214B53108439286871645852C6D0AE0900316",
|
||||
"dark.min.css": "46D137FB18CF84CCEE83511308C6CB0B59EA0EEB4628180205EDFB5B2294CF81",
|
||||
"dark.user.css": "71B7B1A60059149D1F96FB92F7F4ADAB120999DA9348B46CDA089BC2882E83F4",
|
||||
"dark-color-scheme.min.js": "6D353AC738180317ACF9D2E046BFFBA0ACC0FA7A8D22B8E16C51127CDE4FE96B",
|
||||
"dark-important.min.css": "9381B563726BCA701DD77C7AD572793538A45CB839F56008A55EE46821EA1B05",
|
||||
"dark-navbar.min.css": "7FAD547E326B768904B3739C978DF86FFDDD5E5064FB8F490710D197CCC3018B",
|
||||
"dark-schedule.min.js": "853C446547603F4F0425F19F09F73335C9EC451A790C1C07E5E5B88A09E9B453",
|
||||
"dark-slice-9.min.css": "0ECA7B7E317F42005F64EB10C47EA57A092DA3970F6B88439114FBDA2F4F6712",
|
||||
"dark-styles.min.js": "74E6D655F88E50A27D60F189554F6656CCD2A6EA2686FD9946CA9A89EABF7719",
|
||||
"debounce.min.js": "54D33E1273C1F3FE19550BF1844339C3D54D6B01DF8A39C3162D95B93B079CFA",
|
||||
"default-danmaku-settings.min.css": "D9942B184FEDA7B08CFA0C34920E97D7A83B81762DCBF757642EBB60F95FF25D",
|
||||
@ -136,7 +135,7 @@
|
||||
"image-viewer.min.css": "0CF849C6546AEBD2E7EB42F42368BC87B95536840F8A364413DB9A6E37AF5EA8",
|
||||
"image-viewer.min.html": "763742E79923A7918F281AEBB3CEE76FE2A0AE94CACE325AE4BEE1AED451DAEA",
|
||||
"index.min.html": "94B83D9EBB9005C1286A7E0759A7683932F8DADA20D07E5E9D8FF867B04D4B95",
|
||||
"keymap.min.js": "7645CAC3AD71EB78349619C3513FCC70CDDCD6C389D7F91FD4E5B3D9C925366A",
|
||||
"keymap.min.js": "94C4B883AA71185E9D13FD815C9DFC637D59FD95422E61CF0A57AA2F303F6936",
|
||||
"live-pip.min.js": "04169E2F2E7462846D82EA119D740B18A59A3BF009DA5A4BAB70293AEF9C0E26",
|
||||
"live-socket.min.js": "8C59B0458D14FBA9233847F18D82F3DAA558A0DA432B63409050C1A27D871C51",
|
||||
"magic-grid.min.js": "30BA27115FAC84B018A5A8C64031939DF1E324AE199F2F3675925ECF427CBFFC",
|
||||
|
||||
BIN
min/bundle.zip
BIN
min/bundle.zip
Binary file not shown.
2
min/dark.min.css
vendored
2
min/dark.min.css
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
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/"];let n=true;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",p:".bilibili-player-video-btn-pip",c:".video-toolbar .coin,.tool-bar .coin-info",s:".video-toolbar .collect"," ":".bilibili-player-video-btn-start"};let a=true;let o;const l=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(o){clearTimeout(o)}dq(".keymap-playback-tip-container").classList.add("show");o=setTimeout(()=>{dq(".keymap-playback-tip-container").classList.remove("show")},2e3)};document.body.addEventListener("keydown",i=>{if(!n){return}if(document.activeElement&&["input","textarea"].includes(document.activeElement.nodeName.toLowerCase())){return}const o=i.key.toLowerCase();const r=!i.shiftKey&&!i.altKey&&!i.ctrlKey&&!i.metaKey;if(o in t&&r){const e=dq(t[o]);if(!e){return}i.stopPropagation();i.preventDefault();e.click()}else if(o==="d"&&r){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(o==="j"&&r){const t=dq(".bilibili-player-video video");t.currentTime+=e.keymapJumpSeconds;i.stopPropagation();i.preventDefault()}else if(o==="l"&&r){const e=dq(".video-toolbar .like");i.preventDefault();const t=(i,t)=>{const n=new CustomEvent(i,t);e.dispatchEvent(n)};a=true;setTimeout(()=>a=false,200);t("mousedown",i);document.body.addEventListener("keyup",e=>{e.preventDefault();t("mouseup",e);if(a){t("click",e)}},{once:true})}else if(o==="`"&&r){const e=dq(".bilibili-player-video-wrap");const i=e.getBoundingClientRect();e.dispatchEvent(new MouseEvent("contextmenu",{bubbles:true,cancelable:false,view:unsafeWindow,button:2,buttons:0,clientX:i.x+i.width/2-386.6/2,clientY:i.y+i.height/2-311/2}))}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 a=true;if(o===">"||o==="ArrowUp".toLowerCase()){t.playbackRate=n.find(e=>e>t.playbackRate)||n[n.length-1];l(t.playbackRate)}else if(o==="<"||o==="ArrowDown".toLowerCase()){t.playbackRate=[...n].reverse().find(e=>e<t.playbackRate)||n[0];l(t.playbackRate)}else if(o==="?"){t.playbackRate=1;l(t.playbackRate)}else if(o==="w"){const e=dq(".video-toolbar .ops .watchlater,.more-ops-list .ops-watch-later");if(e!==null){e.click()}}else if(o==="j"){t.currentTime-=e.keymapJumpSeconds}else{a=false}if(a){i.stopPropagation();i.preventDefault()}}})}return{reload:()=>n=true,unload:()=>n=false}}})();
|
||||
(()=>{return(e,i)=>{const t=["https://www.bilibili.com/bangumi/","https://www.bilibili.com/video/","https://www.bilibili.com/watchlater/"];let a=true;if(t.some(e=>document.URL.startsWith(e))){console.log("keymap");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",p:".bilibili-player-video-btn-pip",c:".video-toolbar .coin,.tool-bar .coin-info, .video-toolbar-module .coin-box",s:".video-toolbar .collect, .video-toolbar-module .fav-box"," ":".bilibili-player-video-btn-start"};let n=true;let o=false;const l=document.URL.startsWith("https://www.bilibili.com/watchlater/");if(l){Observer.videoChange(()=>{Ajax.getJsonWithCredentials(`https://api.bilibili.com/x/web-interface/archive/has/like?aid=${unsafeWindow.aid}`).then(e=>{o=Boolean(e.data)})})}let s;const r=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(s){clearTimeout(s)}dq(".keymap-playback-tip-container").classList.add("show");s=setTimeout(()=>{dq(".keymap-playback-tip-container").classList.remove("show")},2e3)};document.body.addEventListener("keydown",i=>{if(!a){return}if(l&&document.URL.endsWith("list")){return}if(document.activeElement&&["input","textarea"].includes(document.activeElement.nodeName.toLowerCase())){return}const s=i.key.toLowerCase();const c=!i.shiftKey&&!i.altKey&&!i.ctrlKey&&!i.metaKey;if(s in t&&c){const e=dq(t[s]);if(!e){return}i.stopPropagation();i.preventDefault();e.click()}else if(s==="d"&&c){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(s==="j"&&c){const t=dq(".bilibili-player-video video");t.currentTime+=e.keymapJumpSeconds;i.stopPropagation();i.preventDefault()}else if(s==="l"&&c){if(l){const e={aid:unsafeWindow.aid,like:o?2:1,csrf:getCsrf()};Ajax.postTextWithCredentials(`https://api.bilibili.com/x/web-interface/archive/like`,Object.entries(e).map(([e,i])=>`${e}=${i}`).join("&")).then(()=>{o=!o;if(o){Toast.success(`已点赞`,`快捷键扩展`,1e3)}else{Toast.success(`已取消点赞`,`快捷键扩展`,1e3)}})}else{const e=dq(".video-toolbar .like");i.preventDefault();const t=(i,t)=>{const a=new CustomEvent(i,t);e.dispatchEvent(a)};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(s==="`"&&c){const e=dq(".bilibili-player-video-wrap");const i=e.getBoundingClientRect();e.dispatchEvent(new MouseEvent("contextmenu",{bubbles:true,cancelable:false,view:unsafeWindow,button:2,buttons:0,clientX:i.x+i.width/2-386.6/2,clientY:i.y+i.height/2-311/2}))}else if(i.shiftKey){const t=dq(".bilibili-player-video video");if(t===null){return}const a=[.5,.75,1,1.25,1.5,2,2.5,3];let n=true;if(s===">"||s==="ArrowUp".toLowerCase()){t.playbackRate=a.find(e=>e>t.playbackRate)||a[a.length-1];r(t.playbackRate)}else if(s==="<"||s==="ArrowDown".toLowerCase()){t.playbackRate=[...a].reverse().find(e=>e<t.playbackRate)||a[0];r(t.playbackRate)}else if(s==="?"){t.playbackRate=1;r(t.playbackRate)}else if(s==="w"){const e=dq(".video-toolbar .ops .watchlater, .more-ops-list .ops-watch-later, .video-toolbar-module .see-later-box");if(e!==null){e.click()}}else if(s==="j"){t.currentTime-=e.keymapJumpSeconds}else{n=false}if(n){i.stopPropagation();i.preventDefault()}}})}return{reload:()=>a=true,unload:()=>a=false}}})();
|
||||
@ -273,7 +273,8 @@
|
||||
.comment-bilibili-fold .comment-list .list-item .blacklist-font-color,
|
||||
.list-item .publish-time,
|
||||
.share-content .video-card .up-info .tip,
|
||||
.live-panel .title .count {
|
||||
.live-panel .title .count,
|
||||
.video-desc .reprint {
|
||||
@include color("a");
|
||||
}
|
||||
#biliAppHomeSetting {
|
||||
|
||||
@ -1,9 +1,11 @@
|
||||
const supportedUrls = [
|
||||
'https://www.bilibili.com/bangumi/',
|
||||
'https://www.bilibili.com/video/',
|
||||
'https://www.bilibili.com/watchlater/',
|
||||
]
|
||||
let enabled = true
|
||||
if (supportedUrls.some(url => document.URL.startsWith(url))) {
|
||||
console.log('keymap')
|
||||
const clickableKeymap = {
|
||||
f: '.bilibili-player-video-fullscreen', // 全屏
|
||||
w: '.bilibili-player-video-web-fullscreen', // 网页全屏
|
||||
@ -12,12 +14,28 @@ if (supportedUrls.some(url => document.URL.startsWith(url))) {
|
||||
m: '.bilibili-player-video-btn-volume .bilibili-player-iconfont-volume', // 切换静音
|
||||
p: '.bilibili-player-video-btn-pip', // 画中画
|
||||
// l: '.video-toolbar .like', // 点赞
|
||||
c: '.video-toolbar .coin,.tool-bar .coin-info', // 投币
|
||||
s: '.video-toolbar .collect', // 收藏
|
||||
c: '.video-toolbar .coin,.tool-bar .coin-info, .video-toolbar-module .coin-box', // 投币
|
||||
s: '.video-toolbar .collect, .video-toolbar-module .fav-box', // 收藏
|
||||
' ': '.bilibili-player-video-btn-start', // 砸瓦撸多
|
||||
} as { [key: string]: string }
|
||||
/** 长按`L`三连使用的记忆变量 */
|
||||
let likeClick = true
|
||||
/** 在稍后再看页面里, 记录当前视频是否赞过 */
|
||||
let liked = false
|
||||
const isWatchlater = document.URL.startsWith('https://www.bilibili.com/watchlater/')
|
||||
if (isWatchlater) {
|
||||
Observer.videoChange(() => {
|
||||
Ajax.getJsonWithCredentials(`https://api.bilibili.com/x/web-interface/archive/has/like?aid=${unsafeWindow.aid}`).then(json => {
|
||||
liked = Boolean(json.data)
|
||||
})
|
||||
})
|
||||
}
|
||||
/** 播放速度提示框用的`setTimeout`句柄 */
|
||||
let showPlaybackTipOldTimeout: number
|
||||
/**
|
||||
* 显示播放速度提示框
|
||||
* @param speed 播放速度
|
||||
*/
|
||||
const showPlaybackTip = (speed: number) => {
|
||||
let tip = dq('.keymap-playback-tip') as HTMLDivElement
|
||||
if (!tip) {
|
||||
@ -73,6 +91,9 @@ if (supportedUrls.some(url => document.URL.startsWith(url))) {
|
||||
if (!enabled) {
|
||||
return
|
||||
}
|
||||
if (isWatchlater && document.URL.endsWith('list')) {
|
||||
return
|
||||
}
|
||||
if (document.activeElement && ["input", "textarea"].includes(document.activeElement.nodeName.toLowerCase())) {
|
||||
return
|
||||
}
|
||||
@ -101,22 +122,39 @@ if (supportedUrls.some(url => document.URL.startsWith(url))) {
|
||||
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)
|
||||
if (isWatchlater) {
|
||||
const formData = {
|
||||
aid: unsafeWindow.aid,
|
||||
/** `1`点赞; `2`取消赞 */
|
||||
like: liked ? 2 : 1,
|
||||
csrf: getCsrf(),
|
||||
}
|
||||
}, { once: true })
|
||||
Ajax.postTextWithCredentials(`https://api.bilibili.com/x/web-interface/archive/like`, Object.entries(formData).map(([k, v]) => `${k}=${v}`).join('&')).then(() => {
|
||||
liked = !liked
|
||||
if (liked) {
|
||||
Toast.success(`已点赞`, `快捷键扩展`, 1000)
|
||||
} else {
|
||||
Toast.success(`已取消点赞`, `快捷键扩展`, 1000)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
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 (key === '`' && noModifyKeys) {
|
||||
// menu size: 386.6 x 311 (2020-03-29)
|
||||
const player = dq('.bilibili-player-video-wrap') as HTMLElement
|
||||
@ -147,7 +185,7 @@ if (supportedUrls.some(url => document.URL.startsWith(url))) {
|
||||
video.playbackRate = 1
|
||||
showPlaybackTip(video.playbackRate)
|
||||
} else if (key === 'w') { // 稍后再看
|
||||
const watchlater = dq('.video-toolbar .ops .watchlater,.more-ops-list .ops-watch-later') as HTMLSpanElement
|
||||
const watchlater = dq('.video-toolbar .ops .watchlater, .more-ops-list .ops-watch-later, .video-toolbar-module .see-later-box') as HTMLElement
|
||||
if (watchlater !== null) {
|
||||
watchlater.click()
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user