奈菲影视小猪手

全自动播放下集。页面右上角添加按钮以保存用户设置。可设置播放速度,跳过片尾时间(时间置空则不自动播放),鼠标滚轮控制视频进退。可在视频框内鼠标右击视频或按ctrl键,直接跳下集。去除影响画面的右上角logo。视频自动全屏(火狐需新标签打开about:config页面,搜索full-screen-api.allow-trusted-requests-only 把其属性点击设置为false,才可自动全屏)

当前为 2020-05-29 提交的版本,查看 最新版本

// ==UserScript==
// @name         奈菲影视小猪手
// @namespace
// @version      2.1.2
// @description  全自动播放下集。页面右上角添加按钮以保存用户设置。可设置播放速度,跳过片尾时间(时间置空则不自动播放),鼠标滚轮控制视频进退。可在视频框内鼠标右击视频或按ctrl键,直接跳下集。去除影响画面的右上角logo。视频自动全屏(火狐需新标签打开about:config页面,搜索full-screen-api.allow-trusted-requests-only 把其属性点击设置为false,才可自动全屏)
// @author       ok!
// @match        https://www.nfmovies.com/*
// @grant        unsafeWindow
// @run-at       document-idle

// @namespace 
// ==/UserScript==

var sec_sub;
var wheel_sec;

setTimeout(
function () {
    if(document.querySelectorAll("#header-top > div.container > div > ul.myui-header__user > li:nth-child(1) > div > div > div > p")){
	//播放设置菜单
    var li_new = document.createElement("li");
    li_new.innerHTML='<a title="设置"><i class="fa fa-gear"></i></a><div class="dropdown-box fadeInDown"><div class="item clearfix"><p class="text-muted">播放设置</p><div class="history-list clearfix"></div><span>当前速度:</span><span id="speed_display"></span><p>选择播放速度:&nbsp;&nbsp;<button id="speed_button" style="background-color: #5bb7fe;border-radius:5px;color:white;"> &nbsp;默认 1x&nbsp; </button></p><input type="range" min="1" max="100" value="25" class="slider" id="speed_slider"><p style="display: inline;white-space:nowrap;"><span>跳过片尾秒数:</span><input type="text" id="sec_sub" style="width:71px;height:22px;vertical-align: middle;margin: 5px 10px 5px 0;padding: 10px;background-color: #fff;border: 2px solid #ddd;" placeholder="空则不播"></p><p><span>鼠标滚动秒数:</span><input type="text" id="wheel_sec" style="width:71px;height:22px;vertical-align: middle;margin: 5px 10px 5px 0;padding: 10px;background-color: #fff;border: 2px solid #ddd;" placeholder="空则不动"></p></div></div>';
    li_new.classList.add('dropdown-hover');
    document.querySelector("#header-top > div.container > div > ul.myui-header__user").appendChild(li_new);


	//删除选定历史播放记录
    var p_add = document.querySelectorAll("#header-top > div.container > div > ul.myui-header__user > li:nth-child(1) > div > div > div > p");

    for(var i = 0;i<p_add.length;i++){
        var a_elem = document.createElement("a");

        a_elem.innerHTML= '<span style="background-color: #5bb7fe;border-radius:5px;font-size:70%;"> &nbsp;-删 除-&nbsp;&nbsp </span>';
        p_add[i].appendChild(a_elem);
        p_add[i].lastChild.addEventListener('click',change_cookie)};

    function change_cookie(e){
        var str_del = e.target.parentElement.parentElement.firstElementChild.title;
        console.log(str_del);
        var reg_exp =new RegExp(`{\"name\":\"${str_del}[^}]*},?`);
        var xyza= encodeURIComponent(decodeURIComponent(document.cookie.replace(/(?:(?:^|.*;\s*)history\s*\=\s*([^;]*).*$)|^.*$/, "$1")).replace(reg_exp,''));
        var exp = new Date();
        exp.setTime(exp.getTime() + 365 * 24 * 60 * 60 * 1000);
        document.cookie=`history=${xyza}; path=/; expires=${exp.toUTCString()}`;
        e.target.parentElement.parentElement.remove();
    }



	//播放设置
    var speed_display=document.getElementById("speed_display"),speed_slider=document.getElementById("speed_slider"),speed_button=document.getElementById("speed_button"),y=document.getElementById("sec_sub"),z=document.getElementById("wheel_sec");
    var video_speed;

    video_speed = MyTheme.Cookie.Get('speed');sec_sub = MyTheme.Cookie.Get('sec_sub');wheel_sec = MyTheme.Cookie.Get('wheel_sec');
    video_speed?speed_display.innerHTML=video_speed+"x":speed_display.innerHTML="1x";

    setTimeout(function (){if(video_speed)
        document.querySelector('iframe').contentDocument.body.querySelector("#video > div.dplayer-video-wrap > video").playbackRate = video_speed;},4000);


    speed_slider.oninput=function(){MyTheme.Cookie.Set('speed',this.value/25);video_speed = MyTheme.Cookie.Get('speed');video_speed?speed_display.innerHTML=video_speed+"x":speed_display.innerHTML="1x";
                                    document.querySelector('iframe').contentDocument.body.querySelector("#video > div.dplayer-video-wrap > video").playbackRate = video_speed;
                                   }

    speed_button.onclick=function(){MyTheme.Cookie.Set('speed',1);video_speed = MyTheme.Cookie.Get('speed');video_speed?speed_display.innerHTML=video_speed+"x":speed_display.innerHTML="1x";
                                    document.querySelector('iframe').contentDocument.body.querySelector("#video > div.dplayer-video-wrap > video").playbackRate = video_speed;}

	sec_sub?y.value=sec_sub:y.value="";
    y.onchange=function(){MyTheme.Cookie.Set('sec_sub',this.value);sec_sub = MyTheme.Cookie.Get('sec_sub');sec_sub?y.value=sec_sub:y.value="";
                         }

	wheel_sec?z.value=wheel_sec:z.value="";
	z.onchange=function(){MyTheme.Cookie.Set('wheel_sec',this.value);wheel_sec = MyTheme.Cookie.Get('wheel_sec');wheel_sec?z.value=wheel_sec:z.value="";
                         }

    }
},5000)


//错就错
document.querySelector('iframe#cciframe').onload=function (){

    sec_sub = MyTheme.Cookie.Get('sec_sub');
	wheel_sec=MyTheme.Cookie.Get('wheel_sec');

    var video_speed = MyTheme.Cookie.Get('speed');

    var video_elem;var v_elem;
    //视频自动全屏

    var fullscreen_req = setInterval(function () {

        video_elem = document.querySelector('#cciframe').contentDocument.body.querySelector("#video > div.dplayer-video-wrap > video");
        v_elem =document.querySelector('#cciframe').contentDocument.body.querySelector("#video");

        if (video_elem&&v_elem.requestFullscreen) {
            v_elem.requestFullscreen();main_opr();
        }
        else if (video_elem&&v_elem.requestFullscreen) {
            v_elem.webkitRequestFullScreen();main_opr();
        }
        else if (video_elem&&v_elem.requestFullscreen) {
            v_elem.mozRequestFullScreen();main_opr();
        } },2000);

    //主应用操作
    function main_opr() {
        if(video_speed&&video_elem){video_elem.playbackRate = video_speed;}

        // 在视频框内按键ctrl或鼠标右键,直接跳到下一集
        document.querySelector('#cciframe').contentDocument.body.addEventListener("keydown", function(e) {
            if (e.keyCode == 17) {
                e.preventDefault();
                next_exec();
            }
        }, false);
        document.querySelector('#cciframe').contentDocument.body.querySelector('#video').addEventListener("contextmenu", function(e) {
            e.preventDefault();
            next_exec();
        }, false);

        // 滚轮前进后退
        var caught_you=document.querySelector('iframe').contentDocument.body.querySelector("#video");


        caught_you.onwheel = wheel_e;

        function wheel_e (event) {
            event.preventDefault();

            //console.log(event.deltaY);
            // event.deltaY = Math.min(Math.max(.125,event.deltaY), 4);
            //console.log(wheel_sec);
            video_elem.currentTime += (event.deltaY>0?wheel_sec/1:-wheel_sec) ;

            caught_you.onwheel="";
            setTimeout(function(){caught_you.onwheel= wheel_e;},1200);

        }


        // 去右上角logo
        if(document.querySelector('iframe').contentDocument.body.querySelector("#video > div.dplayer-video-wrap > div.dplayer-logo"))
        {document.querySelector('iframe').contentDocument.body.querySelector("#video > div.dplayer-video-wrap > div.dplayer-logo").innerHTML="";
        }
        //
        clearInterval(fullscreen_req);



    }


    /*
       setTimeout(function () {
        var play = document.querySelector('iframe').contentWindow.play;
        play.logo = "";
        document.querySelector('iframe').contentWindow.vfed.player.dplayer(play.auto, play.live, play.trys, play.seek, play.take, play.urls, play.jump, play.logo, play.pics);


    }, 8000);
    */


    //每隔25秒获取播放剩余时间,如在25秒内则执行主程序

    if(sec_sub !== ""){
    const sec_sub2=sec_sub+25;
    setInterval(function(){if(get_dura() < sec_sub2 && get_dura() !== 0){next_part()};}, 25000);
}
    //next_part();
    function next_part() {
        const sel_part1 = document.querySelector('div.tab-content.mb10 div[class*="active"] ul li[class$="active"] + li a');
        if (sel_part1 != null) {
            const sec = (get_dura()-sec_sub)*1000;
            // console.log(typeof sec);
            // console.log(sec);
            if (sec !== 0) {
                setTimeout(next_exec, sec);
            }
        }
    }

    //next part 执行
    function next_exec(){
        if(next === now){
            const sel_part2 = document.querySelector('div.tab-content.mb10 div[class*="active"] ul li[class$="active"] + li +li a');
            if (sel_part2 != null)
            {sel_part2.click();}
        }
        else{now = next;
             const iframe_fresh2 = document.querySelector('iframe');
             iframe_fresh2.src = iframe_fresh2.src;

            }
    }
    //获取播放剩余时间
    function get_dura() {
        const sel_start = document.querySelector('iframe').contentDocument.body.querySelector("#video > div.dplayer-controller > div.dplayer-icons.dplayer-icons-left > span > span.dplayer-ptime");
        const sel_fin = document.querySelector('iframe').contentDocument.body.querySelector("#video > div.dplayer-controller > div.dplayer-icons.dplayer-icons-left > span > span.dplayer-dtime");

        if (sel_start !== null) {
            const str_start_time = sel_start.textContent;
            const arr_start_time = str_start_time.split(":");
            let secS = 0;
            for (let i = arr_start_time.length - 1, t = 1; i >= 0; i--, t *= 60) {
                secS += arr_start_time[i] * t;
            }

            const str_fin_time = sel_fin.textContent;
            const arr_fin_time = str_fin_time.split(":");
            let secF = 0;
            for (let j = arr_fin_time.length - 1, y = 1; j >= 0; j--, y *= 60) {
                secF += arr_fin_time[j] * y;
            }
            return secF-secS;
        }
        return 0;
    }
}

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址