Greasy Fork is available in English.
替换原有播放器,新增:自上次观看位置继续播放,播放结束自动跳转下一集
当前为
// ==UserScript==
// @name age动漫视频播放器扩展
// @namespace http://tampermonkey.net/
// @version 0.3
// @description 替换原有播放器,新增:自上次观看位置继续播放,播放结束自动跳转下一集
// @author 林狗dan
// @match http://www.agefans.top/acg/*.html
// @icon https://www.google.com/s2/favicons?domain=agefans.top
// @grant none
// @require https://cdn.bootcdn.net/ajax/libs/dplayer/1.25.0/DPlayer.min.js
// @run-at document-end
// ==/UserScript==
(function() {
'use strict';
init();
// const Delay = 3000;
// setTimeout(()=>{
// init();
// },Delay);
})();
function init(){
//获取动漫的目录列表元素
let list = document.querySelectorAll("#stab_1_71 > ul > div > div > ul > li > a");
console.log(list );
for(let i=0; i< list.length; i++){
let text = list[i].innerText;
let url = list[i].href;
//去除全部备用
if(text.indexOf('备用')!=-1){
list.splice(i,1);
}
}
let test = document.querySelector("#playiframe")
console.log(test)
console.log(decodeURIComponent(test.src))
let video_src = test.src
let start = video_src.search('vid=') + 4
let end = video_src.indexOf('&')
let src = video_src.slice(start,end)
src = decodeURIComponent(src)
console.log(src)
//注入video标签
//引入script及css 1.9.1的最新版有问题,不断跳出错误
/* let script = document.createElement('script');
script.setAttribute('type', 'text/javascript');
script.src = "https://cdn.bootcdn.net/ajax/libs/dplayer/1.25.0/DPlayer.min.js";
document.documentElement.appendChild(script); */
let link = document.createElement('link');
link.setAttribute('rel', 'stylesheet');
link.setAttribute('type', 'text/css');
link.href = "https://cdn.bootcdn.net/ajax/libs/dplayer/1.25.0/DPlayer.min.css";
document.documentElement.appendChild(link);
let video_ele = document.createElement('div')
video_ele.style.height = '100%'
video_ele.style.width = 'auto'
video_ele.id = 'lin_player'
//视频播放器
let player = document.querySelector("#player")
player.appendChild(video_ele)
test.remove()
//注入播放器
let dp = new DPlayer({
container: document.getElementById('lin_player'),
autoplay: true,
video: {
url: src,
},
});
//跳转到历史位置
let to_time = localStorage.getItem(location.href)
dp.seek(to_time)
//播放结束后自动下一个
dp.on("ended",() => {
console.log('video end')
let index;
for(let i=0; i< list.length; i++){
//定位当前正在播放的是哪一个
if(location.href == list[i].href){
index = i;
break;
}
}
if(index<1){
return;
}
dp.notice('即将播放下一集',3000)
//倒计时
let timeout = setTimeout(function(){
clearTimeout(timeout)
location.assign(list[index-1].href)
},3000)
})
//记录播放进度
setInterval(function(){
let current = dp.video.currentTime
console.log(current,location.href)
localStorage.setItem(location.href,current)
}, 5000)
};