这学期还弄了个1+web的什么考核, 天天让看视频做那个作业, 打游戏的时候还要盯着时长, 回来切视频
太麻烦了, 干脆写了个脚本自动帮我切换, 如果有习题就会播放语音提醒
(一点小提示, 可以配合tampermonkey的H5播放器控制来实现16倍速播放, 畅享极致丝滑, 几秒一个视频, 我也是听我朋友说的传智不计观看视频时长, 如果计视频观看时长给分数的话就GG了, 酌情使用)
使用方法:
在传智播客视频播放页按F12, 将下面的代码粘贴到控制台里面, 回车即可运行
(本项目已在GitHub开源, 如果对你有用的话, 顺路给个starrrrrr吧!)
console.log("欢迎使用传智自动播放插件, 作者博客:https://www.nothamor.cn");
setTimeout(function() {
let url = window.location.href;
if(url.includes("http://stu.ityxb.com/lookPaper/busywork/")) {
auto_search();
console.log("检测到为测试页面, 开始自动查询题目");
} else if(url.includes("http://stu.ityxb.com/preview/detail/")) {
auto_play();
console.log("检测到为视频播放页面, 开始自动播放视频");
}
}, 5000);
function auto_play() {
const CLASS_LIST = document.getElementsByClassName("point-progress-box");
const CLASS_NAME = document.getElementsByClassName("point-text ellipsis");
let question_text = document.getElementsByTagName("pre")[0];
let player = document.getElementsByTagName("video")[0].id;
let question_text_value;
document.getElementById(player).click();
let counter = 0;
const TIMER = setInterval(function () {
let percent = CLASS_LIST[counter].innerHTML.replace(/\ +/g, "").replace(/[\r\n]/g, "");
let title_name = CLASS_NAME[counter].innerHTML.replace(/\ +/g, "").replace(/[\r\n]/g, "");
if (percent.includes("100%") && counter == (CLASS_LIST.length - 1)) {
clearInterval(TIMER);
alert("当前页所有视频均已播放完成");
} else if (percent.includes("100%")) {
CLASS_LIST[counter + 1].click();
player = document.getElementsByTagName("video")[0].id;
document.getElementById(player).click();
counter++;
}
if (title_name.includes("习题")) {
question_text = document.getElementsByTagName("pre")[0];
question_text_value = question_text.innerHTML;
console.log(" ");
GM_xmlhttpRequest({
method: 'GET',
url: 'http://jb.s759n.cn/chati.php?w=' + encodeURIComponent(QUESTION[counter].innerHTML),
headers: {
'Content-type': 'application/x-www-form-urlencoded',
},
data: 'q=' + encodeURIComponent(QUESTION[counter].innerHTML),
onload: function (response) {
if (response.status == 200) {
let obj = $.parseJSON(response.responseText.replace(/^操作数据失败!/, '')) || {};
obj.answer = obj.data;
console.log("题目:" + QUESTION[counter].innerHTML + "的答案为:" + obj.answer);
if (obj.code) {
} else {
console.log('服务器繁忙,正在重试...');
}
} else if (response.status == 403) {
console.log('请求过于频繁,建议稍后再试');
} else {
console.log('服务器异常,正在重试...');
}
}
});
}
}, 1000);
}
function auto_search() {
const QUESTION = document.getElementsByTagName("pre");
let counter = 0;
const SEARCH = setInterval(function() {
GM_xmlhttpRequest({
method: 'GET',
url: 'http://jb.s759n.cn/chati.php?w=' + encodeURIComponent(QUESTION[counter].innerHTML),
headers: {
'Content-type': 'application/x-www-form-urlencoded',
},
onload: function (response) {
if (response.status == 200) {
let obj = $.parseJSON(response.responseText.replace(/^操作数据失败!/, '')) || {};
console.log("第" + counter + "题" + "的答案为:" + obj.data);
if (obj.code) {
} else {
console.log('服务器繁忙,正在重试...');
}
} else if (response.status == 403) {
console.log('请求过于频繁,建议稍后再试');
} else {
console.log('服务器异常,正在重试...');
}
}
});
counter++;
if(counter == (QUESTION.length)) {
clearInterval(SEARCH);
console.log("题目搜索完成");
}
}, 1000);
}
当然还有另外一个版本, 这个依赖于浏览器插件tampermonkey, 不用每次都手动去输入脚本内容
可以手动添加, 也可以直接在greasy fork上下载本脚本
greasy fork下载链接:https://greasyfork.org/zh-CN/scripts/405920-传智自动播放视频
// ==UserScript==
// @name 传智自动播放视频
// @namespace http://tampermonkey.net/
// @version 0.3
// @description 自动播放传智播客课程视频, 开发者博客:http://www.nothamor.cn
// @author nothamor
// @match *.ityxb.com/*
// @grant GM_xmlhttpRequest
// ==/UserScript==
(function() {
'use strict';
console.log("欢迎使用传智自动播放插件, 作者博客:https://www.nothamor.cn");
setTimeout(function() {
let url = window.location.href;
if(url.includes("http://stu.ityxb.com/lookPaper/busywork/")) {
auto_search();
console.log("检测到为测试页面, 开始自动查询题目");
} else if(url.includes("http://stu.ityxb.com/preview/detail/")) {
auto_play();
console.log("检测到为视频播放页面, 开始自动播放视频");
}
}, 5000);
function auto_play() {
const CLASS_LIST = document.getElementsByClassName("point-progress-box");
const CLASS_NAME = document.getElementsByClassName("point-text ellipsis");
let question_text = document.getElementsByTagName("pre")[0];
let player = document.getElementsByTagName("video")[0].id;
let question_text_value;
document.getElementById(player).click();
let counter = 0;
const TIMER = setInterval(function () {
let percent = CLASS_LIST[counter].innerHTML.replace(/\ +/g, "").replace(/[\r\n]/g, "");
let title_name = CLASS_NAME[counter].innerHTML.replace(/\ +/g, "").replace(/[\r\n]/g, "");
if (percent.includes("100%") && counter == (CLASS_LIST.length - 1)) {
clearInterval(TIMER);
alert("当前页所有视频均已播放完成");
} else if (percent.includes("100%")) {
CLASS_LIST[counter + 1].click();
player = document.getElementsByTagName("video")[0].id;
document.getElementById(player).click();
counter++;
}
if (title_name.includes("习题")) {
question_text = document.getElementsByTagName("pre")[0];
question_text_value = question_text.innerHTML;
console.log(" ");
GM_xmlhttpRequest({
method: 'GET',
url: 'http://jb.s759n.cn/chati.php?w=' + encodeURIComponent(QUESTION[counter].innerHTML),
headers: {
'Content-type': 'application/x-www-form-urlencoded',
},
data: 'q=' + encodeURIComponent(QUESTION[counter].innerHTML),
onload: function (response) {
if (response.status == 200) {
let obj = $.parseJSON(response.responseText.replace(/^操作数据失败!/, '')) || {};
obj.answer = obj.data;
console.log("题目:" + QUESTION[counter].innerHTML + "的答案为:" + obj.answer);
if (obj.code) {
} else {
console.log('服务器繁忙,正在重试...');
}
} else if (response.status == 403) {
console.log('请求过于频繁,建议稍后再试');
} else {
console.log('服务器异常,正在重试...');
}
}
});
}
}, 1000);
}
function auto_search() {
const QUESTION = document.getElementsByTagName("pre");
let counter = 0;
const SEARCH = setInterval(function() {
GM_xmlhttpRequest({
method: 'GET',
url: 'http://jb.s759n.cn/chati.php?w=' + encodeURIComponent(QUESTION[counter].innerHTML),
headers: {
'Content-type': 'application/x-www-form-urlencoded',
},
onload: function (response) {
if (response.status == 200) {
let obj = $.parseJSON(response.responseText.replace(/^操作数据失败!/, '')) || {};
console.log("第" + counter + "题" + "的答案为:" + obj.data);
if (obj.code) {
} else {
console.log('服务器繁忙,正在重试...');
}
} else if (response.status == 403) {
console.log('请求过于频繁,建议稍后再试');
} else {
console.log('服务器异常,正在重试...');
}
}
});
counter++;
if(counter == (QUESTION.length)) {
clearInterval(SEARCH);
console.log("题目搜索完成");
}
}, 1000);
}
})();
楼主太牛逼了!!!
我是垃圾
师见打\#(喜极而泣)
我还把代码截图发了个空间,给这个老师看见了,没说我啥,还说我是她教过最好的学生@(挖鼻)
用js偷懒js\#(赞一个)
@(阴险)别人家的孩子。
兄弟,有没有自动查题目的,就传智播客的题目,那些网上智慧树之类的的接口基本都有答案。@(乖)
在研究了, 不确定能不能做出来, 做出来的话会更新的@(滑稽)
好的大佬!!我时刻等更新啊,下周考试要用,你可以参考那些智慧树和超星的查题脚本的,查题接口用一样的就行,题库是一样的,都有的。@(你懂的)
好的, 我现在做, 更新的话邮件通知你
谢谢大佬!!!大恩不言谢@(真棒)
查题功能更新好了, 你看看能不能用吧, 有问题的话及时反馈
可以在greasy fork上直接更新0.2版本, 也可以把代码复制粘贴过去