Greasy Fork

Greasy Fork is available in English.

简易自动搜题职教云

简易自动搜题

目前为 2024-12-16 提交的版本,查看 最新版本

// ==UserScript==
// @name              简易自动搜题职教云
// @namespace         a
// @version           0.0.1
// @description       简易自动搜题
// @author            Sokowm
// @match             *://*.zjy2.icve.com.cn/*
// @license           MIT
// ==/UserScript==

//填写搜题服务器地址和端口,如https://www.baidu.com:8085/
// 获取所有包含 'wrkxajis' 的元素ID
const elementsWithSpecificId = [...document.getElementsByTagName('*')]
    .filter(element => element.id && element.id.includes('wrkxajis'))
    .map(element => element.id);

// 打印符合条件的元素数量和ID列表
console.log(`Total elements with ID containing 'wrkxajis': ${elementsWithSpecificId.length}`);
// console.log('Element IDs:', elementsWithSpecificId);

// 添加计数器
let answersCount = 0;

// 将forEach改为Promise.all方式执行
Promise.all(elementsWithSpecificId.map(async (id) => {
    const selector = `#${id} > div > div.titleBox > div.seeTitle.titleTwo > span.htmlP.ql-editor`;
    const element = document.querySelector(selector);
   
    if (element) {
        try {
            const response = await fetch('填写服务器地址', {
                method: 'POST',
                body: JSON.stringify({
                    question: element.textContent
                })
            });
           
            // 检查响应是否成功
            if (!response.ok) {
                throw new Error(`HTTP error! status: ${response.status}`);
            }

            // 解析JSON响应
            const result = await response.json();
            // 获取第一个结果对象
            const answerData = result[0];
           
            // 获取正确答案的选项内容
            const correctAnswerText = answerData.options[answerData.answer];
           
            // 增加计数器
            answersCount++;
           
            console.log('问题:', answerData.question);
            console.log('正确答案:', `${answerData.answer} - ${correctAnswerText}`);
           
        } catch (error) {
            console.error('Error fetching data from API:', error);
        }
    }
})).then(() => {
    // 所有请求完成后打印最终数量
    console.log(`\n获取答案完成!总共获取到 ${answersCount} 个答案`);
});