Fix BiliPlus in deleted videos

This commit is contained in:
the1812 2020-10-02 16:26:52 +08:00
parent dae4b4fe4f
commit bef054a970
9 changed files with 53 additions and 16 deletions

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

View File

@ -1 +1 @@
(()=>{return(i,e)=>{const n=`www.biliplus.com`;const c=["bilibili.com/video/","bilibili.com/bangumi/play","bilibili.com/bangumi/media","space.bilibili.com"];return{widget:{condition:()=>{return c.some(i=>document.URL.includes(i))},content:`\n<a class="gui-settings-flat-button" id="biliplus-redirect">\n<i class="icon-biliplus"></i>\n<span>转到BiliPlus</span>\n</a>`,success:()=>{const i=document.querySelector("#biliplus-redirect");const e=e=>{if(document.URL!==e){i.href=e}else{i.disabled=true}};if(location.host==="space.bilibili.com"){const i=document.URL.replace("space.bilibili.com/",`${n}/space/`);e(i)}else if(document.URL.includes("/bangumi/")){Observer.videoChange(()=>{const i=unsafeWindow.aid||document.querySelector(".av-link,.info-sec-av").innerText.replace(/[aAvV]/g,"");const c=`https://${n}/video/av${i}/`;e(c)})}else{Observer.videoChange(()=>{const i=document.URL.replace(window.location.host,n);e(i)})}}}}}})();
(()=>{return(i,e)=>{const n=`www.biliplus.com`;const c=["bilibili.com/video/","bilibili.com/bangumi/play","bilibili.com/bangumi/media","space.bilibili.com"];return{widget:{condition:()=>{return c.some(i=>document.URL.includes(i))},content:`\n<a class="gui-settings-flat-button" id="biliplus-redirect">\n<i class="icon-biliplus"></i>\n<span>转到BiliPlus</span>\n</a>`,success:()=>{const i=document.querySelector("#biliplus-redirect");const e=/\/video\/(av[\d]+|BV.+)/i;const c=e=>{if(document.URL!==e){i.href=e}else{i.href="";i.disabled=true}};if(location.host==="space.bilibili.com"){const i=document.URL.replace("space.bilibili.com/",`${n}/space/`);c(i)}else if(document.URL.includes("/bangumi/")){Observer.videoChange(()=>{const i=document.querySelector(".av-link,.info-sec-av");const e=unsafeWindow.aid||i.innerText.replace(/[aAvV]/g,"");const o=`https://${n}/video/av${e}/`;c(o)})}else if(e.test(document.URL)){const[,i]=document.URL.match(e);c(`https://${n}/video/${i}/`)}else{Observer.videoChange(()=>{const i=document.URL.replace(window.location.host,n);c(i)})}}}}}})();

View File

@ -15,7 +15,7 @@
"bangumi-timeline.vue.min.js": "3A02A24CA45655763C3A568F618A10F4009747FB67FCD002EAEBE256F03CEDC4",
"batch-download.min.js": "73D9904D157C9F105B0C10329447F5F47CD8ACAB0944A083110520A4E847412C",
"batch-warning.min.js": "C4D35814CBCFAD0EFB166D0F34B6F37E034DC59E09719BC3656520120E493475",
"biliplus-redirect.min.js": "54F389F88D24D47DAFEB9603CABFD1C56E13E5CBC46B0DA67EE439A7E913B330",
"biliplus-redirect.min.js": "45D9E9CAE332FE8929863FE987DDAFEE239931254BCD82B46DD2D887B6277A5B",
"blackboard.min.js": "5F50F1DDA203AC0C54AB52868881AA43B22007EAEF042618B1A093BBAFFDEE5B",
"blackboard.vue.min.js": "65C08D7C295519E833C1CE001E583726410603A482B3036D55F0186ADC5BE1EF",
"blur-video-control.min.css": "B72FA7AD198ED1C9A9620A83881441F96F9FF3083ED12203A324B9753A7CCFFD",

Binary file not shown.

View File

@ -192,7 +192,13 @@ export const matchPattern = (str, pattern) => {
}
export const playerReady = () => {
return SpinQuery.condition(
() => parseInt(dq('.video-data .dm').textContent),
() => {
const danmakuInfo = dq('.video-data .dm')
if (danmakuInfo) {
return parseInt(danmakuInfo.textContent)
}
return NaN
},
it => !Number.isNaN(it),
)
}

View File

@ -17,11 +17,13 @@ export default {
<span>BiliPlus</span>
</a>`,
success: () => {
const button = document.querySelector('#biliplus-redirect')
const setUrl = url => {
const button = document.querySelector('#biliplus-redirect') as HTMLAnchorElement & HTMLButtonElement
const videoRegex = /\/video\/(av[\d]+|BV.+)/i
const setUrl = (url: string) => {
if (document.URL !== url) {
button.href = url
} else {
button.href = ''
button.disabled = true
}
}
@ -32,11 +34,16 @@ export default {
}
else if (document.URL.includes('/bangumi/')) {
Observer.videoChange(() => {
const aid = unsafeWindow.aid || document.querySelector('.av-link,.info-sec-av').innerText.replace(/[aAvV]/g, '')
const bangumiAid = document.querySelector('.av-link,.info-sec-av') as HTMLElement
const aid = unsafeWindow.aid || bangumiAid.innerText.replace(/[aAvV]/g, '')
const url = `https://${host}/video/av${aid}/`
setUrl(url)
})
}
else if (videoRegex.test(document.URL)) {
const [, id] = document.URL.match(videoRegex)!
setUrl(`https://${host}/video/${id}/`)
}
else {
Observer.videoChange(() => {
const url = document.URL.replace(window.location.host, host)