// ==UserScript==
// @name 记者之家合体版
// @namespace http://tampermonkey.net/
// @version 0.1
// @description 自动回答记者之家的问题和视频操作
// @author You
// @match *://*/*
// @grant GM_xmlhttpRequest
// ==/UserScript==
(function() {
'use strict';
// 检查视频是否正在播放
function isVideoPlaying() {
var videos = document.getElementsByTagName("video");
for (var i = 0; i < videos.length; i++) {
if (!videos[i].paused) {
console.log("视频当前时间:", videos[i].currentTime);
var targetTime = videos[i].duration - 1;
videos[i].currentTime = targetTime;
return true;
}
}
return false;
}
// 定期检查是否有视频在播放
setInterval(function() {
var isPlaying = isVideoPlaying();
console.log("是否有视频在播放:", isPlaying);
// 如果视频正在播放,则执行答题逻辑
if (isPlaying) {
checkForDatiContainer();
}
}, 3000);
// 检查页面是否存在 dati_container 类
function checkForDatiContainer() {
var datiContainer = document.querySelector('.dati_container');
if (datiContainer) {
// 如果存在,则执行答题逻辑
console.log("发现 dati_container,执行答题逻辑");
// 获取当前页面的 URL
var currentURL = window.location.href;
console.log(currentURL);
// 解析 URL,获取路径参数
var urlParts = currentURL.split('/');
var courseIdIndex = urlParts.indexOf('learning-course') + 1;
if (courseIdIndex > 0 && courseIdIndex < urlParts.length) {
var courseIdWithQuery = urlParts[courseIdIndex];
// 提取等号后面的部分
var courseId = courseIdWithQuery.split('=')[1];
// 打印获取到的课程ID
console.log("课程ID:", courseId);
} else {
console.log("未找到课程ID");
}
var section=1;
// 获取所有课时项元素
// 获取所有包含 course_houre_item 类的元素
var videoItems = document.querySelectorAll('.course_houre_item');
var totalVideos = videoItems.length;
// 遍历这些元素
videoItems.forEach(function(videoItem, index) {
// 检查当前视频项是否包含 course_houre_item_current 类
var isCurrent = videoItem.classList.contains('course_houre_item_current');
if (isCurrent) {
section=index+1;
console.log("当前正在播放的是第", index + 1, "个视频");
// 在这里可以进行相关操作
}
});
// 获取 Local Storage 中的 token
var token = localStorage.getItem('token');
// 打印获取到的 token
console.log('从 Local Storage 中获取的 token:', token);
// 发起向 API 端点的 GET 请求
GM_xmlhttpRequest({
method: "GET",
url: "https://jzzj-api.zgjx.cn/api/course_questions?course_id=" + courseId + "§ion="+section,
headers: {
":authority": "jzzj-api.zgjx.cn",
":method": "GET",
":path": "/api/course_questions?course_id=" + courseId + "§ion="+section,
":scheme": "https",
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "zh-CN,zh;q=0.9,en-GB;q=0.8,en-US;q=0.7,en;q=0.6",
"Origin": "https://jzzj-h5.zgjx.cn",
"Referer": "https://jzzj-h5.zgjx.cn/",
"Sec-Ch-Ua": '""',
"Sec-Ch-Ua-Mobile": "?1",
"Sec-Ch-Ua-Platform": '""',
"Sec-Fetch-Dest": "empty",
"Sec-Fetch-Mode": "cors",
"Sec-Fetch-Site": "same-site",
"Token": token,
"User-Agent": "Mozilla/5.0 (Linux; Android 5.0; SM-N9100 Build/LRX21V) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/37.0.0.0 Mobile Safari/537.36 MicroMessenger/6.0.2.56_r958800.520 NetType/WIFI",
},
onload: function(response) {
// 解析 JSON 响应
var quizData = JSON.parse(response.responseText);
// 处理问题数据并在网页上选择正确答案
processQuizData(quizData);
},
onerror: function(error) {
console.error("获取问题数据时出错:", error);
}
});
}
}
// 定期检查是否有 dati_container 类
setInterval(checkForDatiContainer, 3000);
// 处理问题数据并选择正确答案的函数
function processQuizData(quizData) {
// 假设数据中只有一个问题
var question = quizData.data[0];
// 获取正确答案对应的选项
console.log(quizData);
var correctAnswerOption = question.item.find(function(option) {
return option.answer === "1";
});
// 在 DOM 中查找并点击正确答案的选项
var answerOptions = document.querySelectorAll('.daan_item');
answerOptions.forEach(function(option) {
var optionText = option.querySelector('.text').innerText;
if (optionText.trim() === correctAnswerOption.option) {
option.click();
}
});
// 提交问题
var submitButton = document.querySelector('.dati_submit');
if (submitButton) {
submitButton.click();
}
}
})();