IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> 油猴脚本 from greasyfork -> 正文阅读

[游戏开发]油猴脚本 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

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-04-24 09:46:08  更:2022-04-24 09:46:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:40:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码