age动漫视频播放器扩展

替换原有播放器,新增:自上次观看位置继续播放,播放结束自动跳转下一集

目前为 2021-08-17 提交的版本,查看 最新版本

// ==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)

};