// ==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 + "&section="+section,

                headers: {

                    ":authority": "jzzj-api.zgjx.cn",

                    ":method": "GET",

                    ":path": "/api/course_questions?course_id=" + courseId + "&section="+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();

        }

    }


})();


点赞(0)

备注