add next
// ==UserScript==
// @name imomoe
// @version 0.0.1
// @include http://www.imomoe.io/player/*
// @include https://api.xiaomingming.org/cloud/*
// @description add next
// @namespace https://greasyfork.org/users/164996a
// ==/UserScript==
const m = document.querySelector('iframe[src]')
const c = document.querySelector('div.dplayer-icons-right')
const dp = unsafeWindow.dp
if (dp) {
dp.play()
const next = () => {
window.top.postMessage('next', '*')
}
c.insertAdjacentHTML(
'afterbegin',
"<button id='next' class='dplayer-quality dplayer-icon dplayer-quality-icon'>下一集</button>"
)
const b = document.querySelector('#next')
b.addEventListener('click', next)
window.addEventListener('message', e => {
if (e.data === 'next unavailable') {
b.remove()
}
})
dp.on('ended', next)
} else if (m) {
m.focus()
let a, b
for (let i of document.querySelectorAll('.movurls')) {
a = [...i.querySelectorAll('a')]
b = a.findIndex(i => i.href === window.location.href)
if (b === -1) continue
a = a[b + 1]
if (a) a = a.href
break
}
document
.querySelectorAll('.movurls a')
.forEach(i => i.setAttribute('target', '_self'))
window.addEventListener('message', e => {
if (e.data === 'next') {
window.location.href = a
}
})
;(async () => {
await new Promise(r => setTimeout(r, 5000))
if (!a) m.contentWindow.postMessage('next unavailable', '*')
})()
}