您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
注释:1.实现富学宝典的后台播放(可倍速),2.进入对应的页面自动完成视频或阅读任务,3.部分浏览器会阻止视频自动播放,需要开放对应的权限,4.执行任务的顺序是从上到下
// ==UserScript== // @name 富学宝典 // @namespace *://iedu.foxconn.com/ // @version 1.05 // @description 注释:1.实现富学宝典的后台播放(可倍速),2.进入对应的页面自动完成视频或阅读任务,3.部分浏览器会阻止视频自动播放,需要开放对应的权限,4.执行任务的顺序是从上到下 // @author dieout // @license MIT // @run-at document-end // @match *://iedu.foxconn.com/public/user/playCourse?* // @match *://iedu.foxconn.com/public/play/play* // @match *://10.134.149.121/* // @icon http://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; } //设置清晰度(无效) // sd:标清 // hd:高清 var clarity = "hd"; //倍速设置 //volvo:1.0X //saab:1.25X //opel:1.5X //audi:2.0X // var Double_speed = "volvo"; //默认为1倍速 var Double_speed = "audi"; var rate = 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 // alert("变量:"+ document.getElementsByTagName("dd").length); document.getElementsByTagName("dd")[i].click(); console.log(document.getElementsByClassName("pdfwarp dpn").length); // alert("变量1:"+ document.getElementsByClassName("pdfwarp dpn").length); if (document.getElementsByClassName("pdfwarp dpn").length > 0) { document.getElementsByClassName("pdfwarp dpn")[0].children[2].click(); // alert("变量2:"+ document.getElementsByTagName("dd")[i].children[1].innerText); if (document.getElementsByTagName("dd")[i].children[1].innerText != "已完成") { // alert("变量3:"+ document.getElementsByTagName("video").length); // if (document.getElementsByTagName("video").length > 0) { // //id="realvideo_html5_api" // break; // } await sleep(3000); // palyfirstpdf(); // alert("2024" ); while (document.getElementsByTagName("dd")[i].children[1].innerText != "已完成") { console.log(document.getElementsByTagName("dd")[i].children[1].innerText); // alert( 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("本章已全部完成!请手动切换到下一章。"); // alert("11"); // return; if (document.getElementById("realvideo_html5_api")) { //id="realvideo_html5_api" // alert("变量3:"); main(); } } //main(); } async function main() { 'use strict'; let video = document.getElementsByTagName("video"); let i = 0; let j = 0; // alert("变量1:"+ document.getElementsByTagName("dd").length); 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("本章已全部完成!请手动切换到下一章。"); alert("123"); 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++) { alert("变量2:"+ document.getElementsByTagName("dd")[i].children[1].innerText); document.getElementsByTagName("dd")[i].click(); //dianji(i,this); 调用网页中自带的函数 video = document.getElementsByTagName("video"); // video.play(); // document.querySelector('video').play(); 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]; select.autocomplete="off"; for (let z = 0; z < select.options.length; ++z) { if (select.options[z].value == clarity) { select.options[z].selected = true; break; } } //设置倍速播放 let select2 = document.getElementsByTagName("select")[1]; select2.autocomplete="off"; for (let y = 0; y < select2.options.length; ++y) { if (select2.options[y].value == Double_speed) { select2.options[y].selected = true; if(Double_speed == "saab"){ rate =1.25 }else if(Double_speed == "opel"){ rate =1.5 }else if(Double_speed == "audi"){ rate =2 } break; } } mp4.muted = true; //静音播放 while (document.getElementsByTagName("dd")[i].children[1].innerText != "已完成") { console.log(document.getElementsByTagName("dd")[i].children[1].innerText); await sleep(1000) document.querySelector('video').playbackRate = rate; 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]; select2.autocomplete="off"; for (let z = 0; z < select.options.length; ++z) { if (select.options[z].value == clarity) { select.options[z].selected = true; break; } } //设置倍速播放 let select2 = document.getElementsByTagName("select")[1]; select2.autocomplete="off"; for (let y = 0; y < select2.options.length; ++y) { if (select2.options[y].value == Double_speed) { select2.options[y].selected = true; if(Double_speed == "saab"){ rate =1.25 }else if(Double_speed == "opel"){ rate =1.5 }else if(Double_speed == "audi"){ rate =2 } 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) document.querySelector('video').playbackRate = rate; 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)); }