油猴脚本 from greasyfork

// ==UserScript==
// @name         富学宝典
// @namespace    http://iedu.foxconn.com/
// @version      1.01
// @description  功能:1.实现富学宝典的后台播放,2.进入对应的页面自动播放视频
// @description  注意:1.部分浏览器会阻止视频自动播放,需要开发对应的权限,2.播放视频顺序是从上到下
// @author       Hodge
// @license      MIT
// @run-at       document-end
// @match        http://iedu.foxconn.com/public/user/playCourse?*
// @match        http://iedu.foxconn.com/public/play/play*
// @match        http://10.134.149.121/*
// @match        https://iedu.foxconn.com/public/user/playCourse?*
// @match        https://iedu.foxconn.com/public/play/play*
// @match        https://10.134.149.121/*
// @icon         https://video.fulearn.com/images/logo2.png
// ==/UserScript==
var lang = (navigator.systemLanguage ? navigator.systemLanguage: navigator.language);
//获取浏览器配置语言 #括号内是个运算,运算过后赋值给lang,当?前的内容为true时把?后的值赋给lang,为False时把:后的值赋给lang
var text = lang.substr(0, 2); //获取lang字符串的前两位
var status = 0;
if (text == 'zh') {
    status = 0;
} else {
    status = 1;
}

(function() {
    Refresh();
    window.onload = readPdf();
})();


async function readPdf() {
    //pdf自动阅读,临时解决办法,刷新iframe
    let j = 0;
    let i = 0;
    for (; j < document.getElementsByTagName("dd").length;) {
        if (status == 0) {
            if (document.getElementsByTagName("dd")[j].children[1].innerText != "已完成") {
                i = j;
                break;
            } else {++j;
                   }
        } else {
            if (document.getElementsByTagName("dd")[j].children[1].innerText != "Finished") {
                i = j;
                break;
            } else {++j;
                   }
        }
    }
    if(j == document.getElementsByTagName("dd").length ){
        alert("本章已全部完成!请手动切换到下一章。");
        return;
    }
    for (; i < document.getElementsByTagName("dd").length; i++) {
        //开始阅读pdf
        document.getElementsByTagName("dd")[i].click();
        console.log(document.getElementsByClassName("pdfwarp dpn").length);
        if (document.getElementsByClassName("pdfwarp dpn").length > 0) {
            document.getElementsByClassName("pdfwarp dpn")[0].children[2].click();
            if (document.getElementsByTagName("dd")[i].children[1].innerText != "已完成") {
                if (document.getElementsByTagName("video").length > 0) {
                    break;
                }
                await sleep(3000);
                while (document.getElementsByTagName("dd")[i].children[1].innerText != "已完成") {
                    console.log(document.getElementsByTagName("dd")[i].children[1].innerText);
                    document.getElementById("pdf").contentWindow.document.getElementsByClassName("toolbarButton pageDown")[0].click();
                    await sleep(1000);
                    document.getElementById("pdf").contentWindow.document.getElementsByClassName("toolbarButton pageDown")[0].click();
                    await sleep(1000);
                    document.getElementById("pdf").contentWindow.document.getElementsByClassName("toolbarButton pageDown")[0].click();
                    await sleep(1000);
                    document.getElementById("pdf").contentWindow.document.getElementsByClassName("toolbarButton pageUp")[0].click();
                    await sleep(1000);
                    if(document.getElementsByTagName("dd")[i].children[1].innerText == "已完成") break;
                }
            } else if (document.getElementsByTagName("dd")[i].children[1].innerText != "Finished") {
                if (document.getElementsByTagName("video").length > 0) {
                    break;
                }
                await sleep(3000);
                while (document.getElementsByTagName("dd")[i].children[1].innerText != "Finished") {
                    document.getElementById("pdf").contentWindow.document.getElementsByClassName("toolbarButton pageDown")[0].click();
                    await sleep(1000);
                    document.getElementById("pdf").contentWindow.document.getElementsByClassName("toolbarButton pageDown")[0].click();
                    await sleep(1000);
                    document.getElementById("pdf").contentWindow.document.getElementsByClassName("toolbarButton pageDown")[0].click();
                    await sleep(1000);
                    document.getElementById("pdf").contentWindow.document.getElementsByClassName("toolbarButton pageUp")[0].click();
                    await sleep(1000);
                    if(document.getElementsByTagName("dd")[i].children[1].innerText == "Finished") break;
                }
            } else {
                if (document.getElementsByTagName("video").length > 0) {
                    break;
                }
                continue;
            }
        }
    }
    if(i == document.getElementsByTagName("dd").length){
        alert("本章已全部完成!请手动切换到下一章。");
        return;
    }
    main();
}

async function main() {
    'use strict';
    let video = document.getElementsByTagName("video");
    let i = 0;
    let j = 0;
    for (; j < document.getElementsByTagName("dd").length;) {
        if (status == 0) {
            if (document.getElementsByTagName("dd")[j].children[1].innerText != "已完成") {
                i = j;
                break;
            } else {++j;
                   }
        } else {
            if (document.getElementsByTagName("dd")[j].children[1].innerText != "Finished") {
                i = j;
                break;
            } else {++j;
                   }
        }
    }
    if(j == document.getElementsByTagName("dd").length ){
        alert("本章已全部完成!请手动切换到下一章。");
        return;
    }
    //隐藏视频上的账号信息
    if (document.getElementsByClassName("vjs-userName").length > 0) {
        document.getElementsByClassName("vjs-userName")[0].style.display = "none";
        document.getElementsByClassName("vjs-userName")[0].style.visibility = "hidden";
        document.getElementsByClassName("vjs-userName")[0].innerText = "";
    }
    //视频播放
    for (; i < document.getElementsByTagName("dd").length; i++) {
        document.getElementsByTagName("dd")[i].click(); //dianji(i,this); 调用网页中自带的函数
        video = document.getElementsByTagName("video");
        if(document.getElementById("pdf").style.display != "none"){
            readPdf();
        }
        if (status == 0) {
            if (video.length != 0 && document.getElementsByTagName("dd")[i].children[1].innerText != "已完成") {
                let id = video[0].getAttribute("id"); //realvideo_html5_api
                let mp4 = document.getElementById(id);
                //设置默认为高清播放模式
                let select = document.getElementsByTagName("select")[0];
                for (let z = 0; z < select.options.length; ++z) {
                    if (select.options[z].value == "hd") {
                        select.options[z].selected = true;
                        break;
                    }
                }
                mp4.muted = true; //静音播放
                while (document.getElementsByTagName("dd")[i].children[1].innerText != "已完成") {
                    console.log(document.getElementsByTagName("dd")[i].children[1].innerText);
                    await sleep(1000)
                    mp4.play();
                    if(document.getElementsByTagName("dd")[i].children[1].innerText == "已完成") break;
                }
            }
        } else {
            if (video.length != 0 && document.getElementsByTagName("dd")[i].children[1].innerText != "Finished") {
                document.getElementsByTagName("dd")[i].click(); //dianji(i,this); 调用网页中自带的函数
                let id = video[0].getAttribute("id"); //realvideo_html5_api
                let mp4 = document.getElementById(id);
                //设置默认为高清播放模式
                let select = document.getElementsByTagName("select")[0];
                for (let z = 0; z < select.options.length; ++z) {
                    if (select.options[z].value == "hd") {
                        select.options[z].selected = true;
                        break;
                    }
                }
                mp4.muted = true; //静音播放
                while (document.getElementsByTagName("dd")[i].children[1].innerText != "Finished") {
                    console.log(document.getElementsByTagName("dd")[i].children[1].innerText);
                    await sleep(1000)
                    mp4.play();
                    if(document.getElementsByTagName("dd")[i].children[1].innerText == "Finished") break;
                }
            }
        }
    }
    if(i == document.getElementsByTagName("dd").length){
        alert("本章已全部完成!请手动切换到下一章。");
        return;
    }
};
//刷新页面
function Refresh() {
    // Reload every 10 minutes to avoid video jam
    let k2 = 0;
    for (; k2 < document.getElementsByTagName("dd").length;) {
        if (status == 0) {
            if (document.getElementsByTagName("dd")[k2].children[1].innerText != "已完成") {
                setTimeout(()=>{
                    location.reload()
                },600000); //每10分钟重新加载一次,避免视频卡住
                break;
            } else {++k2;
                   }
        } else {
            if (document.getElementsByTagName("dd")[k2].children[1].innerText != "Finished") {
                setTimeout(()=>{
                    location.reload()
                },600000); //每10分钟重新加载一次,避免视频卡住
                break;
            } else {
                ++k2;
            }
        }
    }
    if(k2 == document.getElementsByTagName("dd").length){
        alert("本章已全部完成!请手动切换到下一章。");
    }
}
//休眠等待
function sleep(time) {
    return new Promise((resolve)=>setTimeout(resolve, time));
}

参考
https://greasyfork.org/zh-CN/scripts?q=%E5%AF%8C%E5%AD%A6%E5%AE%9D%E5%85%B8

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值