Greasy Fork

2023华医公需课

2023华医公需课<<中国式现代化>>自动听课和自动考试脚本.华医的其它课程可以自动听课,但没有自动考试.

目前为 2023-06-06 提交的版本。查看 最新版本

// ==UserScript==
// @name         2023华医公需课
// @namespace    http://tampermonkey.net/
// @version      1.2
// @description  2023华医公需课<<中国式现代化>>自动听课和自动考试脚本.华医的其它课程可以自动听课,但没有自动考试.
// @author       han2ee
// @include        http://cme*.91huayi.com/*
// @include        https://cme*.91huayi.com/*
// @run-at        document-start
// @grant   GM_xmlhttpRequest
// @grant   GM.setValue
// @grant   GM.getValue
// @grant unsafeWindow
// @license MIT
// ==/UserScript==


(function() {
    'use strict';

    const requestAsync = function(url, data) {
        // console.log(data);
        return new Promise((resolve, reject) => {
            var reportAJAX_Error = (rspObj) => {
                console.error (`Request error: ${data}`);
                reject(`Request => Error ${data}  RES ${rspObj.status}!  ${rspObj.statusText}`);
            }

            var processJSON_Response = (rspObj) => {
                if (rspObj.status != 200 && rspObj.status != 304) {
                    reportAJAX_Error (rspObj);
                } else {
                    resolve(rspObj.responseText);
                }
            };
            GM_xmlhttpRequest ( {
                method:         "GET",
                url:            url,
                timeout: 6000,
                headers: {
                    "Referer": document.location.href,
                    "Content-Type": "application/x-www-form-urlencoded"
                },
                data:           data,
                // responseType:   "json",
                onload:         processJSON_Response,
                onabort:        reportAJAX_Error,
                onerror:        reportAJAX_Error,
                ontimeout:      reportAJAX_Error
            });
        });
    }

    const getUrlParameter = function getUrlParameter(sParam) {
        var sPageURL = window.location.search.substring(1),
            sURLVariables = sPageURL.split('&'),
            sParameterName,
            i;

        for (i = 0; i < sURLVariables.length; i++) {
            sParameterName = sURLVariables[i].split('=');

            if (sParameterName[0] === sParam) {
                return typeof sParameterName[1] === undefined ? true : decodeURIComponent(sParameterName[1]);
            }
        }
        return false;
    };

    const findFirstLesson = function(studyImgArr) {
        if (studyImgArr) {
            for (let i = 0; i < studyImgArr.length; i++) {
                if (studyImgArr[i].src.endsWith("anniu_01a.gif")) {
                    return i;
                }
            }
        }
        return -1;
    }
    const nextLesson = async function(cwid) {
        let cid = await GM.getValue('cid');
        console.log("CID", cid);
        let hrefs = await GM.getValue(cid);
        for (let i = 0; i < hrefs.length - 1; i++) {
            if (hrefs[i].indexOf(cwid) != -1) {
                window.location = hrefs[i + 1];
            }
        }
    }

    const wait = ms => new Promise(resolve => setTimeout(resolve, ms));

    const ANSWER_DICT = {
        // 2022年公需课:数字化转型与产业创新发展
        '9be362b6-2fde-4b75-9770-ae8e010d9ebc' : ['e30a7b94-22c4-4aed-915d-ae9101069f4d', '9ae2593a-86c7-471e-a19e-ae9101069f4d', 'c259883a-795e-409d-8a76-ae9101069f4d', 'edede8b6-2b43-4cd9-88ee-ae9101069f4d'],
        '5e2264e6-748f-428f-934d-ae8d0156fff9' : ['gvQuestion_rbl_0_0_0', 'gvQuestion_rbl_1_0_1'],
        '2f1f5ef1-8966-4c2e-acda-ae8d0156fff9' : ['bd12f879-af0c-4b42-b84b-ae8d0155ebc4', '207cf0bc-075d-4346-8f8f-ae8d0155ebc4', '1ef6971a-0ad1-4062-bbc8-ae8d0155ebc4', '5181c173-40c2-4f88-afbe-ae8d0155ebc4'],
        '48e195b0-1280-43f4-baa3-ae8d0156fff9' : ['7b64bd98-00e6-44a7-b016-ae8d01560092', 'e6d9ef3c-dfb5-463d-939c-ae8d01560092'],
        '4a67b92f-2df2-4eb4-bc7c-ae8d0156fff9' : ['6dd293d2-a118-4178-8ffa-ae8d01561540', '545b1dbc-96a6-4217-a37d-ae8d01561540', '7664d913-ef59-4f9c-ad85-ae8d01561540', 'a9da7058-77ff-4a42-95b8-ae8d01561540'],
        '89bafb6b-339d-4f3f-8d6a-ae8d01574de3' : ['3e960945-d795-4f93-9ad6-ae8d01563d30', '76ed21c2-ba60-44c1-9073-ae8d01563d30', '86d1d88c-259e-4b26-afc4-ae8d01563d30', 'f3c385f1-b6a3-41e9-9b77-ae8d01563d30', '58db967b-7c81-45c3-938f-ae8d01563d30'],
        'c393d570-f550-46da-813f-ae8d01574de3' : ['fb7d1bdc-d6e5-43ce-82d3-ae8d01565234', '4ec3ad76-f55a-4490-8e8e-ae8d01565234', 'b62fcf9f-1f3c-49ea-9c53-ae8d01565234', '1eba07d7-e438-48e1-93a2-ae8d01565234', 'a2afcc8a-1362-4eaf-b486-ae8d01565234'],
        'cfe8a18f-8140-4f60-ade6-ae8d01574de3' : ['e2d27318-eef4-4384-9ad0-ae8d015667b0', '68f433be-df2b-4c7c-8dc9-ae8d015667b0', '0f1939ff-2ff8-46f5-99c2-ae8d015667b0', '628faec8-10e0-412e-85b0-ae8d015667b0', '73c715c8-5a60-49b0-bf62-ae8d015667b0'],
        '07c0ebb0-6335-4670-af51-ae8e00d10831' : ['61d360d2-60ef-4d3c-9481-ae8e00cd1539', 'af885125-68ee-4d51-9c30-ae8e00cd1539', '41d33ba2-2ba6-4d9f-934e-ae8e00cd1539', 'd374868b-ae80-4e14-9646-ae8e00cd1539', 'ac01525b-a30b-4a93-ae8f-ae8e00cd1539'],
        'e5fc1168-b4bc-4c3c-acb8-ae8e00d11c0c' : ['eacc82e1-e18c-4694-9f0c-ae8e00cd36d4', 'c2614c25-c970-4ef0-b01e-ae8e00cd36d4', '81ec8bab-a921-4dc2-b480-ae8e00cd36d4', 'dd0a662f-cf41-416e-9b73-ae8e00cd36d4', 'a86413a8-12dc-43eb-b6e9-ae8e00cd36d4'],
        '4bd3ae92-2019-4171-893f-ae8e00d14c7e' : ['e25b0411-8e2a-4381-a641-ae8e00cd6c1f', '7699789a-21e9-487a-91ac-ae8e00cd6c1f', '4e87e3c0-4b8c-41ff-a747-ae8e00cd6c1f', 'f7c7432a-e4ab-45bb-acf5-ae8e00cd6c1f', '927b5568-c397-49e4-b6a3-ae8e00cd6c1f'],
        '733b3ee6-4523-4133-a587-ae8e00d12da6' : ['9570209a-7d72-4196-9cdd-ae8e00cd44f6', '7f2877ab-5ccd-499e-88b4-ae8e00cd44f6', 'db300601-d1d9-43ce-90cc-ae8e00cd44f6', '2dc50c1c-c93c-4a07-8c49-ae8e00cd44f6', '873f41a2-fea9-46e0-8950-ae8e00cd44f6'],
        'a0fbfba8-21a5-4b69-aa2d-ae8e00d15bc3' : ['7699789a-21e9-487a-91ac-ae8e00cd6c1f', '927b5568-c397-49e4-b6a3-ae8e00cd6c1f', '4e87e3c0-4b8c-41ff-a747-ae8e00cd6c1f', 'f7c7432a-e4ab-45bb-acf5-ae8e00cd6c1f', 'e25b0411-8e2a-4381-a641-ae8e00cd6c1f'],
        '4bd3ae92-2019-4171-893f-ae8e00d14c7e' : ['4e87e3c0-4b8c-41ff-a747-ae8e00cd6c1f', 'f7c7432a-e4ab-45bb-acf5-ae8e00cd6c1f', '7699789a-21e9-487a-91ac-ae8e00cd6c1f', 'e25b0411-8e2a-4381-a641-ae8e00cd6c1f', '927b5568-c397-49e4-b6a3-ae8e00cd6c1f'],
        'a0fbfba8-21a5-4b69-aa2d-ae8e00d15bc3' :  ['362223ea-90c1-4523-ae3d-ae9900d6472d', '217ec0f9-817a-4f07-a876-ae8e00cd7926', 'ea0325d3-ef6e-4e85-b5b3-ae8e00cd7926', '2f7cf20e-c909-4fc6-8af7-ae8e00cd7926', '34ca1744-d67d-41ea-9aa3-ae8e00cd7926'],
        'cb933f91-5e9c-43dc-a5af-ae8e00d16cf7' : ['680bd9e5-fa6f-4ed9-8ddf-ae8e00cd8a6b', '356b03f8-091c-4e06-8c83-ae8e00cd8a6b', '40a0bfde-55b8-4b52-9258-ae8e00cd8a6b', '08a8f83e-fc50-42f6-9c56-ae8e00cd8a6b', '661c431f-3722-4a43-87cb-ae8e00cd8a6b'],
        'aa9c36a6-a354-4100-a7fe-ae8e00d17d6f' : ['6da1af48-973c-4fda-8934-ae8e00cd96e7', 'a1af5bd7-a21a-49bd-84f3-ae8e00cd96e7', 'c9446df8-1fec-48da-b69a-ae8e00cd96e7', '86481652-1d05-4354-b6de-ae8e00cd96e7', '2c3e0c12-25d7-4f26-bb78-ae8e00cd96e7'],
        'bfaf6a4c-65f3-4976-96d2-ae8e00d18b9d' : ['5ca395d8-3eb6-4aa4-9d31-ae8e00cdb74e', 'ca7f6567-8343-4b52-94e9-ae8e00cdb74e', '7034818c-39d0-40a5-8937-ae8e00cdb74e', '6400d209-ffe8-4047-8a09-ae8e00cdb74e', 'ab7252d2-690b-4be8-a8b4-ae8e00cdb74e'],
        '959e45fd-38f7-45a9-9580-ae8e00d19a04' : ['486cffb6-f755-423a-94d1-ae8e00cdcc74', '1f8e571e-c6fb-4f9a-8309-ae8e00cdcc74', '0514f7de-4d63-41ca-99f5-ae8e00cdcc74', 'f353b9ef-ac88-4298-9d1b-ae8e00cdcc74', 'e9d24437-b537-4f54-815d-ae8e00cdcc74'],
        '8635cd07-ea7d-401a-938d-ae8e00d1b454' : ['75c8d375-95b1-46de-91ad-ae8e00cddaba', 'd79b0c83-c7fc-44c2-84b1-ae8e00cddaba', 'e36015e2-b878-4bcc-90c5-ae8e00cddaba', '78d7ffd2-c502-4902-84ee-ae8e00cddaba', '3c1a851a-de93-4068-b57c-ae8e00cddaba'],
        '9ac29ca4-e638-4a3d-bd31-ae8e00dd3ac2' : ['07e11bf1-8a80-4191-bf97-ae8e00a88a48', 'c6f1786f-2c17-4894-ad9c-ae8e00a88a48', '6630dbfc-2f1d-45fa-8d5c-ae8e00a88a48'],
        '0847dd0f-7c05-4a54-ab37-ae8e00dd5743' : ['506811d6-ace9-4699-bf4e-ae8e00a8aeb4', '09bcc6f9-b156-49d1-bcb9-ae8e00a8aeb4', '2e071359-f013-45e9-acf1-ae8e00a8aeb4', '629d01e0-b92a-4fd3-a6ab-ae8e00a8aeb4', 'bdd0c90b-698b-4c96-82a1-ae8e00a8aeb4'],
        '147e4ae3-a220-42ce-a0dc-ae8e00dd5743' : ['0f43e236-66bd-4a54-bdd4-ae8e00a8d67a', '65a19862-9ba9-4b9a-a17c-ae8e00a8d67a', '1d60ef8a-5f7d-4825-b4a7-ae8e00a8d67a', 'be2be44d-144d-4e85-85d0-ae8e00a8d67a', '05bd83cd-fc95-457f-85e9-ae8e00a8d67a'],
        'd7417530-b67b-4670-a6a2-ae8e00dd45f4' : ['3203af8d-3b2e-48fd-918e-ae8e00aa111f', '54713f61-cd0b-4074-8589-ae8e00a90c2d', 'd64b9e4b-cdc5-4235-8a7e-ae8e00a90c2d', 'bfec0e51-92a4-4556-9ba0-ae8e00a90c2d', '05f2ce00-df7a-47e2-af82-ae8e00a90c2d'],
        'b5b50fdb-20c4-4656-a044-ae8e00dd3ac2' : ['0268738d-1c2b-4152-b84f-ae8e00aa868c', '238834ff-b453-4a88-9e7a-ae8e00aa868c', 'c187fe9e-dfb2-4204-a843-ae8e00aa868c', '184cf364-6435-4cab-9a6a-ae8e00aa868c', 'a8333022-e00f-4d14-a74e-ae8e00aa868c'],
        '4cdd1cf3-e5e3-408b-b492-ae8e00dd5743' : ['fa0e9e45-2837-479d-874b-ae8e00aae4c1', '888c6fc2-6ada-4551-a6b4-ae8e00aae4c1', 'f510c9c8-5bfb-40a4-9e47-ae8e00aae4c1', '3d76546e-1637-4b25-a843-ae8e00aae4c1', 'c1324283-6238-40a2-a1f9-ae8e00aae4c1'],
        '1aab8e2a-2b9d-4eb2-830f-ae8e00dd2f09' : ['22f57e10-63b4-4d43-8501-ae8e00ab38ba', '5f1360bd-7f39-492c-b01d-ae8e00ab38ba', '34ab25b0-398c-4a2c-a947-ae8e00ab38ba', '313508d3-136b-447b-9593-ae8e00ab38ba', '65c6942c-268e-4944-9e17-ae8e00ab38ba'],
        '21049461-3e9a-4141-a7b1-ae8e00dd3ac2' : ['5df54db6-a9e9-46c4-9cce-ae8e00abd4b8', '903eeb4f-5003-46c2-80dd-ae8e00abd4b8'],
        '65d84ace-92db-4271-89a7-ae8e00dd5743' : ['6156d1fd-400d-4f99-af06-ae8e00abf7e6', 'b26e65d3-4d92-4ba4-8981-ae8e00abf7e6'],
        '0d7f78aa-2691-4517-a7ce-ae8e00dd2f09' : ['4330d7d8-5b01-4037-85bc-ae8e00ac192a', '6bafd402-830b-4a04-b4f1-ae8e00ac192a'],
        'b0bd1279-17d6-488a-a41a-ae8e00dd2f09' :  ['3a4d307f-ddd7-4837-b7d3-ae8e00ac360e', '3fa0cf7f-30f6-4318-8ae6-ae8e00ac50fe', '83e2fd2e-bf5b-41d9-8a2c-ae8e00ac360e', '6b792345-1113-4d6b-a8c0-ae8e00ac360e', 'a1d69a87-9251-485d-9b8e-ae8e00ac360e'],
        'a096a404-7859-4d39-bae7-ae8e00dd3ac2' : ['afd66da8-3069-4333-bdd9-ae8e00ac776e', 'f55552f7-385e-427a-bf7d-ae8e00ac89cd', '25e6d69f-6574-406b-9d3e-ae8e00ac776e'],
        '95f435ab-6e14-4082-8cb2-ae8e00dd2f09' : ['ca1b4718-03c3-485f-be00-ae8e00acd28f', 'a1dc0d42-1075-43ea-b41f-ae8e00acd28f', 'b4be1ed0-c5d2-421f-a651-ae8e00acd28f', '9f0b7cbe-606f-464f-ae7a-ae8e00acd28f', '4d1f562c-be1e-4367-87c8-ae8e00acd28f'],
        '8fcf83c5-78c2-4a9b-bee0-ae8e00dd2f09' : ['4a22d176-f334-4c99-b079-ae8e00ad2dfd', 'da50fbc1-bf86-4fac-94e7-ae8e00ad2dfd', '9f20ce42-b309-4f1e-9ae0-ae8e00ad4ad0', '5c5fcb23-f604-4d84-9ffc-ae8e00ad2dfd', 'b621b7d1-5c78-486c-9562-ae8e00ad2dfd'],

        // 2023年公需课:中国式现代化
        'ddee620c-ac96-43e2-9d06-aff90121781e': ['0ff5544a-4d25-43cf-9d9e-aff900eae98e', '25758f91-972a-45f6-a135-aff900eae98e', '5651f5b3-c847-4045-82bf-aff900eae98e', '84e4d37a-969b-4169-a403-aff900eae98e'],
        '4e1c7118-9108-46d3-aca9-affc00d86542': ['4b6b56c4-bb00-4fe4-973e-affc00bcc77f', '96f72670-7e03-4b6b-86bc-affc00bcc77f'],
        'c33575cc-0a15-4f0f-9360-affc00d86542': ['4463a024-c9b2-4e49-853b-affc00bd18d0'],
        '078e605a-3f69-49a1-9749-affc00d86542': ['918fae00-d0f7-46d3-a96b-affc00bd4d31', '3ee1c077-7a3b-46a0-a2c6-affc00bd4d31'],
        '0f36cd4f-7d7f-4acb-b1f5-affc00d86542': ['783664c0-6111-4cb9-8a3b-affc00bd949a', 'a8df96e6-d777-46f1-88da-afff00ffc4b6', '659c599d-e586-4ca2-8375-affc00bd949a', '371dd57b-1af7-4523-937e-affc00bd949a'],
        'c0dd53ad-94a7-49f5-9742-affc00d886e6': ['000a5cd4-fa70-44c0-b498-affc00bdab65', 'fad10e9e-7777-44e8-903b-affc00bdab65', '49ca7888-235d-4f48-bebe-affc00bdab65'],
        'f5203053-b963-40a4-aedf-affc00d886e6': ['c6a87262-3ce8-4f51-9c26-afff00d84597', '8cfb3061-bd84-461c-9c88-afff00d84597'],
        'af3c2ca3-75fb-4327-8954-affc00d8a75f': ['ef839812-8512-42be-a509-affc00bdcf6b', '036a06d9-feeb-40a8-b29f-affc00bdcf6b', '20be6957-649f-4468-be62-affc00bdcf6b', 'bd7006ed-8ab6-40a7-9af5-affc00bdcf6b'],
        '3e6c7a75-e375-4665-8b19-affc00d8a75f': ['6eb3a551-3519-45a0-aea9-affc00be1efb'],
        '376df62a-43c3-40e5-9cfc-affc00d8a75f': ['4a0668c7-4152-49df-be3a-affc00be40f9'],
        '0bcf45d7-c046-4ed7-b3f7-affc00d8a75f': ['c2b68bea-c317-41f5-8182-affc00be5786'],
        'c488e001-e7e1-4633-a3f6-affc01048f4d': ['492b8e9b-cb22-4a92-98e9-affc00a485d6', '631e79e2-a42b-4ebe-b9c3-affc00a4edac', 'aa05d0b1-694b-40b4-9f03-affc00a53b44'],
        '9cf36193-de49-4aa3-a91d-affc01048f4d': ['e160227f-baab-4334-86d4-affc00a5eb09', '244bd73b-22dc-40c0-8307-affc00a61359', '46dc2b90-aa16-4488-a42a-affc00a7cfa9', 'cdc8fbd6-d6aa-4a26-b12d-affc00a5b5c0'],
        'e22ff203-538d-4091-910d-affc00d8dcf7': ['7492d7cb-bd5b-4041-bea0-affc00be76a9', '1ce3be38-809a-47a7-a1a6-affc00be76a9', '8a765422-9f02-44b9-9a33-affc00be76a9', 'bb467e50-8332-49e9-9040-affc00be76a9', '860d6aac-b1da-447d-a9bc-affc00be76a9'],
        'b99a8833-fc93-4713-baa6-affc00d8dcf7': ['d5790e51-80cc-419a-a590-affc00be8548', '3d3f9352-cfba-4b48-825c-affc00be8548'],
        'bad4558f-9eb9-49c9-8b4a-affc00d91d4a': ['7ec5a1e1-1150-4ea8-baff-affc00d80dbc'],
        'b9fb464b-1342-4aa5-8a1b-affc00d91d4a': ['abda38f1-2ea4-46c1-b524-affc00d82753'],
        'abc76d76-3163-4116-8d96-affc0104aaf8': ['fe4e11ad-5f3e-4c42-948e-affc00b2b425', 'bdffb758-d122-4417-b620-affc00ad3c9b', '41c0cf79-2e1b-433b-bc89-affc00b24455', '6c93329c-dfa7-464e-90a1-affc00b269e5'],
        'd33ca9c4-f9f5-4a48-a19a-affc0104aaf8': ['60029738-3499-4376-b9ee-affc00af9c7c', 'a032a325-80d1-4e1b-a957-affc00b3b380'],
        'dc85878b-8b69-403e-8b22-affc0104aaf8': ['8d8e1955-c301-4973-80ee-affc00b0c167', 'db174c11-f75b-4f17-8d5c-affc00b015a6'],
        '9a899000-928d-4225-ba71-affc0104aaf8': ['0588720f-314e-4202-8e6d-affc00b10b70'],
        'f9daf4f0-0efe-44ef-b354-affc0104b8cf': ['56cd4f15-a418-48f9-86ad-affc00b76e89', 'ebca4def-3c35-45c9-bd92-affc00b7ad55', '1fd325a7-4927-47d7-b72d-affc00b7f432'],
        '257e115b-c3b2-4aaf-a16b-affc0104b8cf': ['96791a8b-72de-487e-91e2-affc00b961a1', 'a017938e-8091-4e10-adcd-affc00b931b7'],
        '17489175-e920-4283-94b4-affc0104b8cf': ['4347dc60-3433-4f67-846e-affc00b8ba54', '4d9f5ab4-b6ff-4b9a-aa19-affc00b8de44'],
        '3bfca4f4-b863-41ad-bff8-affc0104b8cf': ['f67d3b75-07d6-45bc-bc38-affc00b8458e', '9b83d361-2f59-47db-901c-affc00b8715d'],
        '1f58a6c9-7db7-4510-89a5-affc0104c80e': ['906c554c-82d1-43d6-b0ab-affc00bc9b42', '395b52e7-f30a-4ab6-962a-affc00bcc90a'],
        '935670d2-b227-4915-a4c6-affc0104c80e': ['3898624d-cf7e-426d-b32b-affc00bd4896', '511e3d54-ed47-4f66-90aa-affc00bd02c0'],
        '2d246198-f75a-4314-b05c-affc0104c80e': ['94fcaebe-0027-46f3-aa45-affc00e44fb6', 'd66db5d6-96dd-4dd4-9344-affc00e4775b'],
        '97cf5b31-e2d6-4fba-9fbc-affc0104c80e': ['1b012366-d516-4858-8f4b-affc00e4e364', '607c2d53-b636-4423-a384-affc00e4ba03'],
        '0d3f3b3e-11b6-4e18-8b60-affc0101c473': ['54776828-1c63-40e6-89b1-affc00f08924', '61eab494-9e0c-423e-affc-affc00f08924'],
        '83ee0f1b-305d-4f4f-b668-affc0101c473': ['4e1611a5-5439-4afe-94c8-affc00f0a0c3', '70913527-86df-4782-bc39-affc00f0a0c3', 'aff3941a-32ad-4169-a0bd-affc00f0a0c3', '9b743dc9-4dde-4d5b-b4a2-affc00f0a0c3', 'b92ff6bf-7b09-49a4-9289-affc00f0a0c3'],
    };

    // intercept alert window
    if (getUrlParameter('cwid') || getUrlParameter('cid')) {
        let alrtScope;
        if (typeof unsafeWindow === "undefined") {
            alrtScope = window;
        } else {
            alrtScope = unsafeWindow;
        }
        alrtScope.alert = function (str) {
            console.log ("Greasemonkey intercepted alert: ", str);
        };
    }
    if (window.top !== window.self) {
        return;
    }
    // 单个课程页面
    if (window.location.pathname == '/course_ware/course_ware_polyv.aspx') {
        console.log("单个课程页面");
        /*
        // 修改播放器init参数 倍速:'speed': true  可拖动'ban_seek': false
        let scriptIndex = 0;
        new MutationObserver(function(mutations) {
            // check at least two H1 exist using the extremely fast getElementsByTagName
            // which is faster than enumerating all the added nodes in mutations
            let scriptList = document.getElementsByTagName('script');
            if (scriptList.length > 10) {
                this.disconnect(); // disconnect the observer
            }
            for (; scriptIndex < scriptList.length; scriptIndex++) {
                let scriptEle = scriptList[scriptIndex];
                if (scriptEle.innerHTML && scriptEle.innerHTML.indexOf("'speed': false")) {
                    scriptEle.innerHTML = scriptEle.innerHTML.replace("'speed': false", "'speed': true").replace("'ban_seek': banSeek", "'ban_seek': false");
                    console.log("REPLACE");
                    this.disconnect();
                    break;
                }
            }
        }).observe(document, {childList: true, subtree: true});
        */
        // 拦截first,不让加载视频中间的问题
        let inter = setInterval(function() {
            try {
                if (first) {
                    first = false;
                    console.log("FIRST:", first);
                    clearInterval(inter);
                }
            } catch (err) {
                console.log(err);
            }
        }, 100);
        let initRateFlag = true;
        setInterval(async function() {
            if (!!closeBangZhu) { // close the warning
                closeBangZhu();
            }
            if (!$("#jrks")[0].getAttribute('disabled')) { // finish lesson
                let cwid = getUrlParameter('cwid');
                if (ANSWER_DICT[cwid]) {
                    try {
                        let content = await requestAsync($("#jrks")[0].href, {});
                        if (content.indexOf("请进行课件观看学习完成后再进行考试") != -1) {
                            window.location.reload(); // 重听
                        } else {
                            window.location = $("#jrks")[0].href; // 跳到考试
                        }
                    } catch (err) {
                        console.error(err);
                    }
                } else { // jump to next
                    await nextLesson(cwid);
                }
            }
            if (initRateFlag) {
                let rate = await GM.getValue('rate', 1);
                if (player) {
                    player.changeRate(rate);
                    initRateFlag = false;
                }
            } else {
                await GM.setValue('rate', player.currentRate);
            }
        }, 3000);
    }

    // 考试页面
    if (window.location.pathname == '/pages/exam.aspx') {
        setInterval(async function() {
            let cwid = getUrlParameter('cwid');
            console.log("CWID:", cwid);
            let answer = ANSWER_DICT[cwid];
            if (answer) {
                for (let item of answer) {
                    if (item.startsWith('gvQuestion')){
                        $('#' + item).click();
                    } else {
                        $(`[value=${item}]`).click();
                    }
                }
                $('#btn_submit').click();

            }
        }, 3000);
    }

    // 考试结果页面
    if (window.location.pathname == '/pages/exam_result.aspx') {
        setInterval(async function() {
            let cwid = getUrlParameter('cwid');
            await nextLesson(cwid);
        }, 3000);
    }
    // 目录页面
    if (window.location.pathname == '/pages/course.aspx') {
        console.log("目录面");
        setInterval(async function() {
            let hrefs = $(".course h3 a:first-child");
            let vals = [];
            for (let i = 0; i < hrefs.length; i++) {
                // if (hrefs[i].children[0].src.endsWith("anniu_01a.gif")) {
                vals.push(hrefs[i].href);
                // }
            }
            // console.log(vals);
            let cid = getUrlParameter('cid')
            await GM.setValue(cid, vals);
            await GM.setValue('cid', cid);
        }, 3000);
    }
})();