// ==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自动阅读,临时解决办法,刷新iframelet 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++) {//开始阅读pdfdocument.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_apilet 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_apilet 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 jamlet 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

油猴脚本 from greasyfork相关推荐

  1. 油猴脚本第一家,网页网盘链接实时判断+资源搜索网站导航,资源重度患者的福利...

    现在网络上找资源,资源都是存在百度网盘的,大家都知道,百度网盘链接失效的非常之多.遇到网盘链接我们都要一个一个点进去查看链接是否失效,这样操作费时又累人.这时这个油猴脚本就可以帮忙了.实时判断网页中百 ...

  2. 【油猴脚本 Greasemonkey】GM_xmlhttpRequest内部实现原理

    好久没在CSDN发文章了,自从有了自己的网站,自己的想怎么折腾就怎么折腾,逐步的完善. 另一方面,技术上一直在吃老本,没什么进步,也没什么可发的. 最近在写一个Chrome浏览器扩展,了解到一个扩展和 ...

  3. 【教程、无技术含量】简单的油猴脚本编写教程

    不建议阅读者: 前端大神 想要深入学习(涉及到分析挖掘调用网站中js算法/自己写算法)油猴脚本的读者[备注:楼主也不会,楼主也很绝望啊...] 阅读以下内容所需知识: javascript/jQuer ...

  4. Chrome插件与油猴脚本

    Chrome插件与油猴脚本 简介 油猴脚本编写要点 简介 开发过Chrome插件的开发者,都会被Chrome插件的content,background(service),popup,inject 等各 ...

  5. Tampermonkey(油猴)脚本编写快速入门

    目录 油猴脚本概述 脚本注释/注解 脚本权限 grant 添加新脚本 自定义网页倒计时 网页浏览离开黑屏保护 微博视频下载助手 华为云工作项列表突出展示工作项 Greasy Fork 发布脚本 油猴脚 ...

  6. 油猴脚本第一家,网页网盘链接实时判断+资源搜索网站导航,资源重度患者的福利... 1

    现在网络上找资源,资源都是存在百度网盘的,大家都知道,百度网盘链接失效的非常之多.遇到网盘链接我们都要一个一个点进去查看链接是否失效,这样操作费时又累人.这时这个油猴脚本就可以帮忙了.实时判断网页中百 ...

  7. Tampermonkey油猴脚本开发视频教程-3.脚本配置和权限申请UserScript

    视频和代码https://www.toolchest.cn/static/mv3.html 脚本头部2个"// ==UserScript=="之间编写脚本相关的配置信息和权限申请等 ...

  8. 油猴脚本推荐:讨厌广告的进,去除百度、360、搜狗、必应的广告和重复内容!广告害人,且用且珍惜

    由于搜索引擎的特殊性,搜索引擎确实给我们带来了方便,但是你给我推荐大片大片的广告是几个意思~~ 退一步说,你们搜索引擎运行有成本,广告可以支持你们更好的维护产品,我们也能理解和接受!广告我不反对,垃圾 ...

  9. 自用chrome+油猴脚本,使用迅雷下载百度云大文件,一键离线下载

    油猴是有名的火狐浏览器插件(Greasemonkey),当然也有Chrome版本(tampermonkey),甚至IE.Safari.Opera都有--虽然这些插件是由不同的开发者开发出来的,界面也可 ...

最新文章

  1. cent os mysql下载_Cent OS 6.4安装mysql
  2. 前端如何转换 schema 和 xml
  3. 微信小程序开发系列教程三:微信小程序的调试方法
  4. Quick Cocos2dx 场景转换问题
  5. 【HDU - 1937 】Finding Seats(二维前缀和+尺取法)
  6. [BUAA OO]第三次博客作业
  7. linux三剑客应用到工作中,LINUX 三剑客老大(AWK) 日常工作总结(示例代码)
  8. PCL之点特征直方图(PFH)
  9. Factory Method 工厂方法
  10. [转]网店博客营销之微博实战技巧:还没有做微博的掌柜看过来
  11. 学习LINQ,发现一个好的工具。LINQPad!!
  12. jquery ajax select 二级联动
  13. Python连接Access数据库详细步骤
  14. c语言除法计算和取模计算
  15. intel网卡驱动下载linux,Intel网卡驱动下载_万能英特尔网卡驱动_万能网卡驱动_5分享...
  16. 解决 Sketch 在MAC M1上运行卡顿等问题!
  17. 融云出海洞察,海外社交市场地区篇
  18. HTML / CSS / JS 编程入门 —— 使用 Lightly 制作可切换主题的简单网页
  19. 七段数码管的使用(使能端分时控制)
  20. 戴尔笔记本提示“您已插入低瓦数电源适配器 在bios设置中可以禁用此警告”

热门文章

  1. 实验:网络常见的9个命令
  2. GOM传奇引擎登录器商业版与免费版的区别
  3. 吴军《数学之美》部分概念笔记(1-11章)
  4. leangoo大讲堂—北京站
  5. postgresql10监控-使用EXTENSIONS模式
  6. 自用推荐,heic格式转换工具
  7. 如何写朋克摇滚原创歌曲
  8. 智能手机上的常用传感器
  9. 基于PHP+小程序(MINA框架)+Mysql数据库的小说小程序系统设计与实现
  10. ####好好好#####知识图谱上的双塔召回:阿里的IntentGC模型