Greasy Fork

Greasy Fork is available in English.

超星学习通小工具-可考试-可答题(稳定题库)

可考试,无需安装单独考试版本。已经稳定一个月。题库接口已更换,发布了俩版本俩接口 一个超星学习通刷课工具,火狐,谷歌,油猴支持.全自动任务,视频倍速支持秒过(默认关闭),作业考试题库,验证码自动打码,美化效果满满的如果实在不会用脚本推荐联系微信dfa8888dfa下单

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         超星学习通小工具-可考试-可答题(稳定题库)
// @namespace    http://link3.cc/df88
// @version      2.8
// @description  可考试,无需安装单独考试版本。已经稳定一个月。题库接口已更换,发布了俩版本俩接口  一个超星学习通刷课工具,火狐,谷歌,油猴支持.全自动任务,视频倍速支持秒过(默认关闭),作业考试题库,验证码自动打码,美化效果满满的如果实在不会用脚本推荐联系微信dfa8888dfa下单
// @author      dfshuka
// @run-at       document-start
// @match        *://*/mycourse/studentstudy?*
// @match        *://*/ztnodedetailcontroller/visitnodedetail?*
// @match        *://*/antispiderShowVerify.ac*
// @match        *://*/html/processVerify.ac?*
// @match        *://*/exam/test/reVersionPaperMarkContentNew?*
// @match        *://*/exam/test/reVersionTestStartNew?*
// @match        *://*/work/selectWorkQuestionYiPiYue?*
// @match        *://*/work/doHomeWorkNew?*
// @match        *://*/ananas/modules/*/index.html?*
// @match        *://*/exam/test?*
// @match        *://*/course/*.html?*
// @grant        GM_xmlhttpRequest
// @grant        GM_notification
// @grant        unsafeWindow
// @license      MIT
// ==/UserScript==

let config = {
    answer_ignore: false, //忽略题目,勾选此处将不会答题
    auto: true, //全自动挂机,无需手动操作,即可自动观看视频等
    interval: 0.1, //时间间隔,当任务点完成后,会等待2分钟然后跳转到下一个任务点
    rand_answer: false, //随机答案,没有答案的题目将自动的生成一个答案
    video_multiple: 1, //视频播放倍速,视频播放的倍数,建议不要改动,为1即可,这是危险的功能
    video_mute: true, //视频静音,视频自动静音播放
    vtoken: "1XotleAPHd5Oop2c",
    video_cdn: "公网1", //锁定视频播放源,为空为记录最后一次选中的源(公网1,公网2等)
    super_mode: true, //解锁flash弹幕视频等,详情请看文档
};

Object.keys(config).forEach(k => {
    localStorage[k] = config[k];
});
/******/ (function(modules) { // webpackBootstrap
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/
/******/ 		// Check if module is in cache
/******/ 		if(installedModules[moduleId]) {
/******/ 			return installedModules[moduleId].exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = installedModules[moduleId] = {
/******/ 			i: moduleId,
/******/ 			l: false,
/******/ 			exports: {}
/******/ 		};
/******/
/******/ 		// Execute the module function
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ 		// Flag the module as loaded
/******/ 		module.l = true;
/******/
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/
/******/
/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = modules;
/******/
/******/ 	// expose the module cache
/******/ 	__webpack_require__.c = installedModules;
/******/
/******/ 	// define getter function for harmony exports
/******/ 	__webpack_require__.d = function(exports, name, getter) {
/******/ 		if(!__webpack_require__.o(exports, name)) {
/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ 		}
/******/ 	};
/******/
/******/ 	// define __esModule on exports
/******/ 	__webpack_require__.r = function(exports) {
/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 		}
/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
/******/ 	};
/******/
/******/ 	// create a fake namespace object
/******/ 	// mode & 1: value is a module id, require it
/******/ 	// mode & 2: merge all properties of value into the ns
/******/ 	// mode & 4: return value when already ns object
/******/ 	// mode & 8|1: behave like require
/******/ 	__webpack_require__.t = function(value, mode) {
/******/ 		if(mode & 1) value = __webpack_require__(value);
/******/ 		if(mode & 8) return value;
/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ 		var ns = Object.create(null);
/******/ 		__webpack_require__.r(ns);
/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ 		return ns;
/******/ 	};
/******/
/******/ 	// getDefaultExport function for compatibility with non-harmony modules
/******/ 	__webpack_require__.n = function(module) {
/******/ 		var getter = module && module.__esModule ?
/******/ 			function getDefault() { return module['default']; } :
/******/ 			function getModuleExports() { return module; };
/******/ 		__webpack_require__.d(getter, 'a', getter);
/******/ 		return getter;
/******/ 	};
/******/
/******/ 	// Object.prototype.hasOwnProperty.call
/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ 	// __webpack_public_path__
/******/ 	__webpack_require__.p = "";
/******/
/******/
/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(__webpack_require__.s = "./src/tampermonkey/cxmooc-pack.ts");
/******/ })
/************************************************************************/
/******/ ({

/***/ "./src/config.ts":
/*!***********************!*\
  !*** ./src/config.ts ***!
  \***********************/
/*! exports provided: SystemConfig */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SystemConfig\", function() { return SystemConfig; });\nvar SystemConfig = /** @class */ (function () {\r\n    function SystemConfig() {\r\n    }\r\n    SystemConfig.version = 2.8;\r\n    SystemConfig.url = \"https://q.icodef.com/\";\r\n    SystemConfig.hotVersion = \"2.4.0\";\r\n    SystemConfig.match = [\r\n        \"*://*/mycourse/studentstudy?*\",\r\n        \"*://*/work/doHomeWorkNew?*\",\r\n        \"*://*/work/selectWorkQuestionYiPiYue?*\",\r\n        \"*://*/exam/test/reVersionTestStartNew?*\",\r\n        \"*://*/ztnodedetailcontroller/visitnodedetail?*\",\r\n        \"*://*/antispiderShowVerify.ac*\",\r\n        \"*://*/html/processVerify.ac?*\",\r\n        \"*://*/exam/test/reVersionPaperMarkContentNew?*\",\r\n        \"*://*/ananas/modules/*/index.html?*\",\r\n        \"*://*/exam/test?*\",\r\n        \"*://*/course/*.html?*\",\r\n        \"*://examh5.zhihuishu.com/stuExamWeb.html*\",\r\n        \"*://onlineexamh5new.zhihuishu.com/stuExamWeb.html*\",\r\n        \"*://studyh5.zhihuishu.com/videoStudy.html*\",\r\n        \"*://www.icourse163.org/learn/*\",\r\n        \"*://www.icourse163.org/spoc/learn/*\"\r\n    ];\r\n    return SystemConfig;\r\n}());\r\n\r\n\n\n//# sourceURL=webpack:///./src/config.ts?");

/***/ }),

/***/ "./src/internal/app/question.ts":
/*!**************************************!*\
  !*** ./src/internal/app/question.ts ***!
  \**************************************/
/*! exports provided: PushAnswer, TopicStatusString, QuestionStatusString, SwitchTopicType, ToolsQuestionBank, ToolsQuestionBankFacade */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PushAnswer\", function() { return PushAnswer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TopicStatusString\", function() { return TopicStatusString; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"QuestionStatusString\", function() { return QuestionStatusString; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SwitchTopicType\", function() { return SwitchTopicType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ToolsQuestionBank\", function() { return ToolsQuestionBank; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ToolsQuestionBankFacade\", function() { return ToolsQuestionBankFacade; });\n/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/utils */ \"./src/internal/utils/utils.ts\");\n/* harmony import */ var _App_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @App/config */ \"./src/config.ts\");\n/* harmony import */ var _application__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../application */ \"./src/internal/application.ts\");\n\r\n\r\n\r\nvar PushAnswer = /** @class */ (function () {\r\n    function PushAnswer() {\r\n    }\r\n    PushAnswer.prototype.Equal = function (content1, content2) {\r\n        return content1 == content2;\r\n    };\r\n    return PushAnswer;\r\n}());\r\n\r\nvar topicStatusMap = new Map();\r\ntopicStatusMap.set(\"ok\", \"搜索成功\").set(\"random\", \"随机答案\").set(\"no_support_random\", \"不支持的随机答案类型\").set(\"no_answer\", \"题库中没有搜索到答案\").set(\"no_match\", \"题库中没有符合的答案\");\r\nvar questionStatusMap = new Map();\r\nquestionStatusMap.set(\"success\", \"搜索成功\").set(\"network\", \"题库网络错误\").set(\"incomplete\", \"题库不全\").set(\"processing\", \"搜索中...\");\r\nfunction TopicStatusString(status) {\r\n    return topicStatusMap.get(status) || \"未知错误\";\r\n}\r\nfunction QuestionStatusString(status) {\r\n    return questionStatusMap.get(status) || \"未知错误\";\r\n}\r\nfunction SwitchTopicType(title) {\r\n    switch (title) {\r\n        case \"单选题\": {\r\n            return 1;\r\n        }\r\n        case \"多选题\": {\r\n            return 2;\r\n        }\r\n        case \"判断题\": {\r\n            return 3;\r\n        }\r\n        case \"填空题\": {\r\n            return 4;\r\n        }\r\n        default: {\r\n            return null;\r\n        }\r\n    }\r\n}\r\n// 小工具题库\r\nvar ToolsQuestionBank = /** @class */ (function () {\r\n    function ToolsQuestionBank(platform, info) {\r\n        this.platform = platform;\r\n        this.info = info;\r\n    }\r\n    ToolsQuestionBank.prototype.SetInfo = function (info) {\r\n        this.info = info;\r\n    };\r\n    ToolsQuestionBank.prototype.GetInfo = function () {\r\n        return encodeURIComponent(JSON.stringify(this.info));\r\n    };\r\n    ToolsQuestionBank.prototype.Answer = function (topic, resolve) {\r\n        var _this = this;\r\n        _application__WEBPACK_IMPORTED_MODULE_2__[\"Application\"].App.log.Debug(\"答案查询\", topic);\r\n        var num = 10;\r\n        var answer = new Array();\r\n        var retStatus = \"success\";\r\n        var next = function (index) {\r\n            var body = \"info=\" + _this.GetInfo() + \"&\";\r\n            var t = index;\r\n            for (; t < index + num && t < topic.length; t++) {\r\n                var val = topic[t];\r\n                body += \"topic[\" + (t - index) + \"]=\" + encodeURIComponent((val.topic)) + \"&type[\" + (t - index) + \"]=\" + val.type + \"&\";\r\n            }\r\n            _utils_utils__WEBPACK_IMPORTED_MODULE_0__[\"HttpUtils\"].HttpPost(_App_config__WEBPACK_IMPORTED_MODULE_1__[\"SystemConfig\"].url + \"v2/answer?platform=\" + _this.platform, body, {\r\n                json: true,\r\n                success: function (result) {\r\n                    var status = \"success\";\r\n                    var tmpResult = new Array();\r\n                    for (var i = 0; i < result.length; i++) {\r\n                        if (result[i].result == undefined || result[i].result.length <= 0) {\r\n                            tmpResult.push({\r\n                                index: index + result[i].index,\r\n                                topic: result[i].topic,\r\n                                type: -1,\r\n                                status: \"no_answer\",\r\n                                answers: null,\r\n                                correct: null,\r\n                                Equal: _this.Equal,\r\n                            });\r\n                            status = \"incomplete\";\r\n                            continue;\r\n                        }\r\n                        var val = result[i].result[0];\r\n                        tmpResult.push({\r\n                            index: index + result[i].index,\r\n                            topic: val.topic,\r\n                            type: val.type,\r\n                            correct: val.correct,\r\n                            status: \"ok\",\r\n                            Equal: _this.Equal,\r\n                        });\r\n                    }\r\n                    answer = answer.concat(tmpResult);\r\n                    if (status != \"success\") {\r\n                        retStatus = status;\r\n                    }\r\n                    resolve({ status: \"processing\", answer: tmpResult });\r\n                    if (t < topic.length) {\r\n                        next(t);\r\n                    }\r\n                    else {\r\n                        return resolve({ status: retStatus, answer: answer });\r\n                    }\r\n                },\r\n                error: function () {\r\n                    return resolve({ status: \"network\", answer: answer });\r\n                }\r\n            });\r\n        };\r\n        next(0);\r\n    };\r\n    ToolsQuestionBank.prototype.Push = function (answer) {\r\n        var _this = this;\r\n        return new Promise(function (resolve) {\r\n            _application__WEBPACK_IMPORTED_MODULE_2__[\"Application\"].App.log.Debug(\"采集提交\", answer);\r\n            _utils_utils__WEBPACK_IMPORTED_MODULE_0__[\"HttpUtils\"].HttpPost(_App_config__WEBPACK_IMPORTED_MODULE_1__[\"SystemConfig\"].url + \"answer?platform=\" + _this.platform, \"info=\" + _this.GetInfo() + \"&data=\" + encodeURIComponent(JSON.stringify(answer)), {\r\n                json: true,\r\n                success: function (result) {\r\n                    _application__WEBPACK_IMPORTED_MODULE_2__[\"Application\"].App.log.Info(\"答案自动记录成功,成功获得\" + result.add_token_num + \"个打码数,剩余数量:\" + result.token_num);\r\n                    resolve(\"success\");\r\n                },\r\n                error: function () {\r\n                    resolve(\"network\");\r\n                }\r\n            });\r\n        });\r\n    };\r\n    ToolsQuestionBank.prototype.Equal = function (content1, content2) {\r\n        return Object(_utils_utils__WEBPACK_IMPORTED_MODULE_0__[\"removeHTML\"])(content1) == Object(_utils_utils__WEBPACK_IMPORTED_MODULE_0__[\"removeHTML\"])(content2);\r\n    };\r\n    ToolsQuestionBank.prototype.CheckCourse = function (info) {\r\n        var _this = this;\r\n        return new Promise(function (resolve) {\r\n            info = info || [_this.info];\r\n            _utils_utils__WEBPACK_IMPORTED_MODULE_0__[\"HttpUtils\"].HttpPost(_App_config__WEBPACK_IMPORTED_MODULE_1__[\"SystemConfig\"].url + \"v2/check?platform=\" + _this.platform, \"info=\" + encodeURIComponent(JSON.stringify(info)), {\r\n                success: function () {\r\n                    //TODO:课程题目数量\r\n                    resolve(0);\r\n                }, error: function () {\r\n                    resolve(-1);\r\n                }\r\n            });\r\n            resolve();\r\n        });\r\n    };\r\n    return ToolsQuestionBank;\r\n}());\r\n\r\nvar ToolsQuestionBankFacade = /** @class */ (function () {\r\n    function ToolsQuestionBankFacade(platform, info) {\r\n        if (typeof platform == \"string\") {\r\n            this.bank = new ToolsQuestionBank(platform, info);\r\n        }\r\n        else {\r\n            this.bank = platform;\r\n        }\r\n        this.question = new Array();\r\n    }\r\n    ToolsQuestionBankFacade.prototype.ClearQuestion = function () {\r\n        this.question = new Array();\r\n    };\r\n    ToolsQuestionBankFacade.prototype.AddQuestion = function (q) {\r\n        this.question.push(q);\r\n    };\r\n    ToolsQuestionBankFacade.prototype.Answer = function (callback) {\r\n        var _this = this;\r\n        var topic = new Array();\r\n        this.question.forEach(function (val) {\r\n            var type = val.GetType();\r\n            if (type == -1) {\r\n                return;\r\n            }\r\n            topic.push({\r\n                topic: (val.GetTopic()),\r\n                type: type,\r\n            });\r\n        });\r\n        var status = \"success\";\r\n        this.bank.Answer(topic, function (ret) {\r\n            if (ret.status != \"processing\") {\r\n                _application__WEBPACK_IMPORTED_MODULE_2__[\"Application\"].App.log.Debug(\"题库返回\", ret);\r\n                if (ret.status != \"success\" || status == \"success\") {\r\n                    return callback(ret.status);\r\n                }\r\n                return callback(status);\r\n            }\r\n            for (var i = 0; i < ret.answer.length; i++) {\r\n                var answer = ret.answer[i];\r\n                var question = _this.question[answer.index];\r\n                var tmpStatus = answer.status;\r\n                if (answer.status == \"no_answer\") {\r\n                    status = _this.randAnswer(status, tmpStatus, question);\r\n                    continue;\r\n                }\r\n                if (answer.type != question.GetType()) {\r\n                    tmpStatus = \"no_match\";\r\n                }\r\n                else {\r\n                    tmpStatus = question.Fill(answer);\r\n                }\r\n                if (tmpStatus == \"no_match\") {\r\n                    status = _this.randAnswer(status, tmpStatus, question);\r\n                    continue;\r\n                }\r\n                question.SetStatus(tmpStatus);\r\n            }\r\n        });\r\n    };\r\n    ToolsQuestionBankFacade.prototype.randAnswer = function (status, tmpStatus, question) {\r\n        if (_application__WEBPACK_IMPORTED_MODULE_2__[\"Application\"].App.config.rand_answer) {\r\n            tmpStatus = question.Random();\r\n        }\r\n        else {\r\n            status = \"incomplete\";\r\n        }\r\n        if (tmpStatus == \"no_support_random\") {\r\n            status = \"incomplete\";\r\n        }\r\n        question.SetStatus(tmpStatus);\r\n        return status;\r\n    };\r\n    ToolsQuestionBankFacade.prototype.Push = function (callback) {\r\n        var answer = new Array();\r\n        this.question.forEach(function (val) {\r\n            var correct = val.Correct();\r\n            if (correct == null || correct.correct == null || correct.type == -1) {\r\n                return;\r\n            }\r\n            correct.topic = correct.topic;\r\n            correct.answers = correct.answers;\r\n            correct.correct = correct.correct;\r\n            answer.push(correct);\r\n        });\r\n        this.bank.Push(answer).then(function (ret) {\r\n            _application__WEBPACK_IMPORTED_MODULE_2__[\"Application\"].App.log.Debug(\"题库返回\", ret);\r\n            return callback(ret);\r\n        });\r\n    };\r\n    ToolsQuestionBankFacade.prototype.dealOption = function (options) {\r\n        for (var i = 0; i < options.length; i++) {\r\n            if (typeof options[i].content == \"string\") {\r\n                options[i].content = (options[i].content);\r\n            }\r\n        }\r\n        return options;\r\n    };\r\n    ToolsQuestionBankFacade.prototype.CheckCourse = function () {\r\n        return this.bank.CheckCourse();\r\n    };\r\n    return ToolsQuestionBankFacade;\r\n}());\r\n\r\n\n\n//# sourceURL=webpack:///./src/internal/app/question.ts?");

/***/ }),

/***/ "./src/internal/app/topic.ts":
/*!***********************************!*\
  !*** ./src/internal/app/topic.ts ***!
  \***********************************/
/*! exports provided: Topic */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Topic\", function() { return Topic; });\n/* harmony import */ var _application__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../application */ \"./src/internal/application.ts\");\n/* harmony import */ var _App_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @App/config */ \"./src/config.ts\");\n\r\n\r\nvar Topic = /** @class */ (function () {\r\n    function Topic(content, answer) {\r\n        this.answer = answer;\r\n        this.context = content;\r\n    }\r\n    Topic.prototype.SetQueryQuestions = function (queryQuestions) {\r\n        this.queryQuestions = queryQuestions;\r\n    };\r\n    Topic.prototype.addQuestion = function () {\r\n        var _this = this;\r\n        var questions = this.queryQuestions.QueryQuestions();\r\n        this.answer.ClearQuestion();\r\n        questions.forEach(function (val) {\r\n            _this.answer.AddQuestion(val);\r\n        });\r\n    };\r\n    Topic.prototype.QueryAnswer = function () {\r\n        var _this = this;\r\n        return new Promise(function (resolve) {\r\n            if (_this.lock) {\r\n                return resolve(\"processing\");\r\n            }\r\n            _this.lock = true;\r\n            _application__WEBPACK_IMPORTED_MODULE_0__[\"Application\"].App.log.Info(\"题目搜索中...\");\r\n            _this.addQuestion();\r\n            _this.answer.Answer(function (status) {\r\n                _this.lock = false;\r\n                resolve(status);\r\n                if (status == \"network\") {\r\n                    return _application__WEBPACK_IMPORTED_MODULE_0__[\"Application\"].App.log.Error(\"题库无法访问,请查看:\" + _App_config__WEBPACK_IMPORTED_MODULE_1__[\"SystemConfig\"].url);\r\n                }\r\n                else if (status == \"incomplete\") {\r\n                    return _application__WEBPACK_IMPORTED_MODULE_0__[\"Application\"].App.log.Warn(\"题库答案不全,请手动填写操作\");\r\n                }\r\n            });\r\n        });\r\n    };\r\n    Topic.prototype.CollectAnswer = function () {\r\n        var _this = this;\r\n        return new Promise(function (resolve) {\r\n            _application__WEBPACK_IMPORTED_MODULE_0__[\"Application\"].App.log.Debug(\"收集题目答案\", _this.context);\r\n            _this.addQuestion();\r\n            _this.answer.Push(function (status) {\r\n                _application__WEBPACK_IMPORTED_MODULE_0__[\"Application\"].App.log.Debug(\"采集答案返回\", status);\r\n                resolve();\r\n            });\r\n        });\r\n    };\r\n    return Topic;\r\n}());\r\n\r\n\n\n//# sourceURL=webpack:///./src/internal/app/topic.ts?");

/***/ }),

/***/ "./src/internal/app/vcode.ts":
/*!***********************************!*\
  !*** ./src/internal/app/vcode.ts ***!
  \***********************************/
/*! exports provided: VCode */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VCode\", function() { return VCode; });\n/* harmony import */ var _App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @App/internal/utils/utils */ \"./src/internal/utils/utils.ts\");\n/* harmony import */ var _App_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @App/config */ \"./src/config.ts\");\n/* harmony import */ var _application__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../application */ \"./src/internal/application.ts\");\n\r\n\r\n\r\nvar VCode = /** @class */ (function () {\r\n    function VCode(mooc, listen) {\r\n        this.mooc = mooc;\r\n        this.listen = listen;\r\n    }\r\n    VCode.prototype.Start = function () {\r\n        var _this = this;\r\n        this.mooc && this.mooc.Start();\r\n        this.listen.Listen(function (fill) {\r\n            _application__WEBPACK_IMPORTED_MODULE_2__[\"Application\"].App.log.Info(\"准备进行打码\");\r\n            _this.getVcode(fill);\r\n        });\r\n    };\r\n    VCode.prototype.getVcode = function (fill) {\r\n        var img = fill.GetImage();\r\n        var base64 = \"\";\r\n        if (typeof img == \"string\") {\r\n            base64 = img;\r\n        }\r\n        else {\r\n            base64 = Object(_App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_0__[\"getImageBase64\"])(img, 'jpeg');\r\n        }\r\n        _App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_0__[\"HttpUtils\"].HttpPost(_App_config__WEBPACK_IMPORTED_MODULE_1__[\"SystemConfig\"].url + 'vcode', 'img=' + encodeURIComponent(base64.substr('data:image/jpeg;base64,'.length)), {\r\n            json: false,\r\n            success: function (ret) {\r\n                var json = JSON.parse(ret);\r\n                _application__WEBPACK_IMPORTED_MODULE_2__[\"Application\"].App.log.Debug(json);\r\n                if (json.code == -2) {\r\n                    fill.Fill(\"error\", json.msg, \"\");\r\n                }\r\n                else if (json.code == -1) {\r\n                    fill.Fill(\"error\", \"打码服务器发生错误\", \"\");\r\n                }\r\n                else if (json.msg) {\r\n                    fill.Fill(\"ok\", \"打码成功\", json.msg);\r\n                }\r\n                else {\r\n                    fill.Fill(\"error\", \"未知错误\", \"\");\r\n                }\r\n            }, error: function () {\r\n                fill.Fill(\"network\", \"网络请求失败\", \"\");\r\n            }\r\n        });\r\n    };\r\n    return VCode;\r\n}());\r\n\r\n\n\n//# sourceURL=webpack:///./src/internal/app/vcode.ts?");

/***/ }),

/***/ "./src/internal/application.ts":
/*!*************************************!*\
  !*** ./src/internal/application.ts ***!
  \*************************************/
/*! exports provided: Backend, Frontend, Content, AppName, Application */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Backend\", function() { return Backend; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Frontend\", function() { return Frontend; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Content\", function() { return Content; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AppName\", function() { return AppName; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Application\", function() { return Application; });\n/* harmony import */ var _utils_message__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/message */ \"./src/internal/utils/message.ts\");\n/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/utils */ \"./src/internal/utils/utils.ts\");\n/* harmony import */ var _App_config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @App/config */ \"./src/config.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n};\r\nvar __generator = (undefined && undefined.__generator) || function (thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n};\r\n\r\n\r\n\r\nvar Backend = \"backend\";\r\nvar Frontend = \"frontend\";\r\nvar Content = \"content\";\r\nvar AppName = \"cxmooc-tools\";\r\nvar Application = /** @class */ (function () {\r\n    function Application(runEnv, launcher, component) {\r\n        Application.app = this;\r\n        Application.runEnv = runEnv;\r\n        this.runEnvSwitch(runEnv);\r\n        this.launcher = launcher;\r\n        this.component = component;\r\n    }\r\n    Object.defineProperty(Application, \"App\", {\r\n        get: function () {\r\n            return Application.app;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(Application.prototype, \"debug\", {\r\n        get: function () {\r\n            return \"development\" == \"development\";\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(Application.prototype, \"prod\", {\r\n        get: function () {\r\n            return \"development\" == \"production\";\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(Application.prototype, \"config\", {\r\n        get: function () {\r\n            return this.component.get(\"config\");\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(Application.prototype, \"log\", {\r\n        get: function () {\r\n            return this.component.get(\"logger\");\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Application.prototype.run = function () {\r\n        this.launcher.start();\r\n    };\r\n    Object.defineProperty(Application.prototype, \"IsFrontend\", {\r\n        get: function () {\r\n            return Application.IsFrontend;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(Application.prototype, \"IsBackend\", {\r\n        get: function () {\r\n            return Application.IsBackend;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(Application.prototype, \"IsContent\", {\r\n        get: function () {\r\n            return Application.IsContent;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Application.prototype.runEnvSwitch = function (env) {\r\n        switch (env) {\r\n            case Frontend:\r\n                Application.IsFrontend = true;\r\n                break;\r\n            case Backend:\r\n                Application.IsBackend = true;\r\n                break;\r\n            case Content:\r\n                Application.IsContent = true;\r\n                break;\r\n        }\r\n        ;\r\n    };\r\n    Object.defineProperty(Application.prototype, \"Client\", {\r\n        get: function () {\r\n            if (Application.IsFrontend) {\r\n                return Object(_utils_message__WEBPACK_IMPORTED_MODULE_0__[\"NewChromeClientMessage\"])(AppName);\r\n            }\r\n            return Object(_utils_message__WEBPACK_IMPORTED_MODULE_0__[\"NewExtensionClientMessage\"])(AppName);\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Application.CheckUpdate = function (callback) {\r\n        if (Application.IsContent) {\r\n            chrome.storage.local.get([\"version\", \"enforce\", \"hotversion\", \"url\"], function (item) {\r\n                return __awaiter(this, void 0, void 0, function () {\r\n                    return __generator(this, function (_a) {\r\n                        switch (_a.label) {\r\n                            case 0: return [4 /*yield*/, callback((_App_config__WEBPACK_IMPORTED_MODULE_2__[\"SystemConfig\"].version < item.version), item)];\r\n                            case 1:\r\n                                _a.sent();\r\n                                return [2 /*return*/];\r\n                        }\r\n                    });\r\n                });\r\n            });\r\n            return;\r\n        }\r\n        _utils_utils__WEBPACK_IMPORTED_MODULE_1__[\"HttpUtils\"].HttpGet(_App_config__WEBPACK_IMPORTED_MODULE_2__[\"SystemConfig\"].url + \"update?ver=\" + _App_config__WEBPACK_IMPORTED_MODULE_2__[\"SystemConfig\"].version, {\r\n            json: true,\r\n            success: function (json) {\r\n                return __awaiter(this, void 0, void 0, function () {\r\n                    var data;\r\n                    return __generator(this, function (_a) {\r\n                        switch (_a.label) {\r\n                            case 0:\r\n                                data = {\r\n                                    version: json.version,\r\n                                    url: json.url,\r\n                                    enforce: json.enforce,\r\n                                    hotversion: json.hotversion,\r\n                                    injection: json.injection,\r\n                                };\r\n                                chrome.storage.local.set(data);\r\n                                return [4 /*yield*/, callback((_App_config__WEBPACK_IMPORTED_MODULE_2__[\"SystemConfig\"].version < data.version), data)];\r\n                            case 1:\r\n                                _a.sent();\r\n                                return [2 /*return*/];\r\n                        }\r\n                    });\r\n                });\r\n            }, error: function () {\r\n                return __awaiter(this, void 0, void 0, function () {\r\n                    return __generator(this, function (_a) {\r\n                        switch (_a.label) {\r\n                            case 0: return [4 /*yield*/, callback(false, undefined)];\r\n                            case 1:\r\n                                _a.sent();\r\n                                return [2 /*return*/];\r\n                        }\r\n                    });\r\n                });\r\n            }\r\n        });\r\n    };\r\n    return Application;\r\n}());\r\n\r\n\n\n//# sourceURL=webpack:///./src/internal/application.ts?");

/***/ }),

/***/ "./src/internal/utils/config.ts":
/*!**************************************!*\
  !*** ./src/internal/utils/config.ts ***!
  \**************************************/
/*! exports provided: ChromeConfigItems, NewBackendConfig, NewFrontendGetConfig */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ChromeConfigItems\", function() { return ChromeConfigItems; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NewBackendConfig\", function() { return NewBackendConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NewFrontendGetConfig\", function() { return NewFrontendGetConfig; });\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ \"./src/internal/utils/utils.ts\");\n/* harmony import */ var _application__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../application */ \"./src/internal/application.ts\");\n\r\n\r\nvar ChromeConfigItems = /** @class */ (function () {\r\n    function ChromeConfigItems(getConfig) {\r\n        this.getConfig = getConfig;\r\n    }\r\n    ChromeConfigItems.prototype.GetConfig = function (key) {\r\n        return this.getConfig.GetConfig(key);\r\n    };\r\n    ChromeConfigItems.prototype.Watch = function (key, callback) {\r\n        this.getConfig.Watch(key, callback);\r\n    };\r\n    ChromeConfigItems.prototype.bool = function (val) {\r\n        if (typeof val == \"boolean\") {\r\n            return val;\r\n        }\r\n        return val == \"true\";\r\n    };\r\n    Object.defineProperty(ChromeConfigItems.prototype, \"super_mode\", {\r\n        get: function () {\r\n            return this.bool(this.getConfig.GetConfig(\"super_mode\"));\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(ChromeConfigItems.prototype, \"vtoken\", {\r\n        get: function () {\r\n            return this.getConfig.GetConfig(\"vtoken\");\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(ChromeConfigItems.prototype, \"rand_answer\", {\r\n        get: function () {\r\n            return this.bool(this.getConfig.GetConfig(\"rand_answer\"));\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(ChromeConfigItems.prototype, \"auto\", {\r\n        get: function () {\r\n            return this.bool(this.getConfig.GetConfig(\"auto\"));\r\n        },\r\n        set: function (val) {\r\n            localStorage[\"auto\"] = val;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(ChromeConfigItems.prototype, \"video_mute\", {\r\n        get: function () {\r\n            return this.bool(this.getConfig.GetConfig(\"video_mute\"));\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(ChromeConfigItems.prototype, \"answer_ignore\", {\r\n        get: function () {\r\n            return this.bool(this.getConfig.GetConfig(\"answer_ignore\"));\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(ChromeConfigItems.prototype, \"video_cdn\", {\r\n        get: function () {\r\n            return this.getConfig.GetConfig(\"video_cdn\");\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(ChromeConfigItems.prototype, \"video_multiple\", {\r\n        get: function () {\r\n            return this.getConfig.GetConfig(\"video_multiple\");\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(ChromeConfigItems.prototype, \"interval\", {\r\n        get: function () {\r\n            var interval = (this.getConfig.GetConfig(\"interval\") || 0.1) * 100;\r\n            return Math.floor(Object(_utils__WEBPACK_IMPORTED_MODULE_0__[\"randNumber\"])(interval - interval / 2, interval + interval / 2)) / 100;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    return ChromeConfigItems;\r\n}());\r\n\r\n// 后台环境中使用\r\nfunction NewBackendConfig() {\r\n    return new backendConfig();\r\n}\r\nvar backendConfig = /** @class */ (function () {\r\n    function backendConfig() {\r\n    }\r\n    backendConfig.prototype.GetConfig = function (key) {\r\n        return new Promise(function (resolve) { return (chrome.storage.sync.get(key, function (value) {\r\n            if (value.hasOwnProperty(key)) {\r\n                resolve(value[key]);\r\n            }\r\n            else {\r\n                resolve(undefined);\r\n            }\r\n        })); });\r\n    };\r\n    backendConfig.prototype.Watch = function (key, callback) {\r\n        throw new Error(\"Method not implemented.\");\r\n    };\r\n    backendConfig.prototype.SetConfig = function (key, val) {\r\n        return new Promise(function (resolve) {\r\n            var info = {};\r\n            info[key] = val;\r\n            chrome.storage.sync.set(info, function () {\r\n                chrome.tabs.query({ active: true, currentWindow: true }, function (tabs) {\r\n                    chrome.tabs.sendMessage(tabs[0].id, { type: \"cxconfig\", key: key, value: val });\r\n                });\r\n                resolve();\r\n            });\r\n        });\r\n    };\r\n    return backendConfig;\r\n}());\r\n// 前端环境使用\r\nfunction NewFrontendGetConfig() {\r\n    return new frontendGetConfig();\r\n}\r\nvar frontendGetConfig = /** @class */ (function () {\r\n    function frontendGetConfig() {\r\n        window.addEventListener('message', function (event) {\r\n            if (event.data.type && event.data.type == \"cxconfig\") {\r\n                _application__WEBPACK_IMPORTED_MODULE_1__[\"Application\"].App.log.Info(\"配置更新:\" + event.data.key + \"=\" + event.data.value);\r\n                localStorage[event.data.key] = event.data.value;\r\n            }\r\n        });\r\n    }\r\n    frontendGetConfig.prototype.GetConfig = function (key) {\r\n        return localStorage[key];\r\n    };\r\n    frontendGetConfig.prototype.Watch = function (key, callback) {\r\n        var _this = this;\r\n        if (typeof key == \"string\") {\r\n            this.setWatchMap(key, callback);\r\n            return;\r\n        }\r\n        key.forEach(function (val, index) {\r\n            _this.setWatchMap(val, callback);\r\n        });\r\n    };\r\n    frontendGetConfig.prototype.setWatchMap = function (key, callback) {\r\n        //TODO: 监控配置项更新\r\n    };\r\n    return frontendGetConfig;\r\n}());\r\n\n\n//# sourceURL=webpack:///./src/internal/utils/config.ts?");

/***/ }),

/***/ "./src/internal/utils/hook.ts":
/*!************************************!*\
  !*** ./src/internal/utils/hook.ts ***!
  \************************************/
/*! exports provided: Hook */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Hook\", function() { return Hook; });\n/* harmony import */ var _App_internal_application__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @App/internal/application */ \"./src/internal/application.ts\");\n\r\nvar Hook = /** @class */ (function () {\r\n    function Hook(func, context) {\r\n        this.context = context || window;\r\n        this.func = func;\r\n    }\r\n    Hook.prototype.Middleware = function (call) {\r\n        var name;\r\n        if (typeof this.func == \"string\") {\r\n            name = this.func;\r\n        }\r\n        else {\r\n            name = this.func.name;\r\n        }\r\n        var old = this.context[name];\r\n        this.context[name] = function () {\r\n            var args = [old];\r\n            for (var _i = 0; _i < arguments.length; _i++) {\r\n                args[_i + 1] = arguments[_i];\r\n            }\r\n            return call.apply(this, args);\r\n        };\r\n    };\r\n    Hook.HookAjaxRespond = function (url, call) {\r\n        var _this = this;\r\n        if (!this.once) {\r\n            this.match_list = new Map();\r\n            var self_1 = this;\r\n            var hookXMLHttpRequest = new Hook(\"open\", _App_internal_application__WEBPACK_IMPORTED_MODULE_0__[\"Application\"].GlobalContext.XMLHttpRequest.prototype);\r\n            hookXMLHttpRequest.Middleware(function (next) {\r\n                var _this = this;\r\n                var args = [];\r\n                for (var _a = 1; _a < arguments.length; _a++) {\r\n                    args[_a - 1] = arguments[_a];\r\n                }\r\n                self_1.match_list.forEach(function (val, key) {\r\n                    if (args[1].indexOf(key) != -1) {\r\n                        Object.defineProperty(_this, \"responseText\", {\r\n                            configurable: true,\r\n                            get: function () {\r\n                                return val.call(this, args[1], this.response);\r\n                            }\r\n                        });\r\n                    }\r\n                });\r\n                return next.apply(this, args);\r\n            });\r\n            this.once = true;\r\n        }\r\n        if (typeof url == \"string\") {\r\n            this.match_list.set(url, call);\r\n        }\r\n        else {\r\n            url.forEach(function (v) {\r\n                _this.match_list.set(v, call);\r\n            });\r\n        }\r\n    };\r\n    return Hook;\r\n}());\r\n\r\n\n\n//# sourceURL=webpack:///./src/internal/utils/hook.ts?");

/***/ }),

/***/ "./src/internal/utils/log.ts":
/*!***********************************!*\
  !*** ./src/internal/utils/log.ts ***!
  \***********************************/
/*! exports provided: ConsoleLog, PageLog, EmptyLog */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ConsoleLog\", function() { return ConsoleLog; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PageLog\", function() { return PageLog; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EmptyLog\", function() { return EmptyLog; });\n/* harmony import */ var _application__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../application */ \"./src/internal/application.ts\");\n/* harmony import */ var _views_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../views/common */ \"./src/views/common.ts\");\n/* harmony import */ var _views_common__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_views_common__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @App/internal/utils/utils */ \"./src/internal/utils/utils.ts\");\nvar __spreadArrays = (undefined && undefined.__spreadArrays) || function () {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n};\r\n\r\n\r\n\r\nvar ConsoleLog = /** @class */ (function () {\r\n    function ConsoleLog() {\r\n    }\r\n    ConsoleLog.prototype.getNowTime = function () {\r\n        var time = new Date();\r\n        return time.getHours() + \":\" + time.getMinutes() + \":\" + time.getSeconds();\r\n    };\r\n    ConsoleLog.prototype.Debug = function () {\r\n        var args = [];\r\n        for (var _i = 0; _i < arguments.length; _i++) {\r\n            args[_i] = arguments[_i];\r\n        }\r\n        _application__WEBPACK_IMPORTED_MODULE_0__[\"Application\"].App.debug && console.info.apply(console, __spreadArrays([\"[debug\", this.getNowTime(), \"]\"], args));\r\n        return this;\r\n    };\r\n    ConsoleLog.prototype.Info = function () {\r\n        var args = [];\r\n        for (var _i = 0; _i < arguments.length; _i++) {\r\n            args[_i] = arguments[_i];\r\n        }\r\n        _application__WEBPACK_IMPORTED_MODULE_0__[\"Application\"].App.debug && console.info.apply(console, __spreadArrays([\"[info\", this.getNowTime(), \"]\"], args));\r\n        return this;\r\n    };\r\n    ConsoleLog.prototype.Warn = function () {\r\n        var args = [];\r\n        for (var _i = 0; _i < arguments.length; _i++) {\r\n            args[_i] = arguments[_i];\r\n        }\r\n        console.warn.apply(console, __spreadArrays([\"[warn\", this.getNowTime(), \"]\"], args));\r\n        return this;\r\n    };\r\n    ConsoleLog.prototype.Error = function () {\r\n        var args = [];\r\n        for (var _i = 0; _i < arguments.length; _i++) {\r\n            args[_i] = arguments[_i];\r\n        }\r\n        console.error.apply(console, __spreadArrays([\"[error\", this.getNowTime(), \"]\"], args));\r\n        return this;\r\n    };\r\n    ConsoleLog.prototype.Fatal = function () {\r\n        var args = [];\r\n        for (var _i = 0; _i < arguments.length; _i++) {\r\n            args[_i] = arguments[_i];\r\n        }\r\n        console.error.apply(console, __spreadArrays([\"[fatal\", this.getNowTime(), \"]\"], args));\r\n        return this;\r\n    };\r\n    return ConsoleLog;\r\n}());\r\n\r\nvar PageLog = /** @class */ (function () {\r\n    function PageLog() {\r\n        var _this = this;\r\n        this.el = undefined;\r\n        window.addEventListener(\"load\", function () {\r\n            _this.div = document.createElement(\"div\");\r\n            // 主要布局\r\n            _this.div.innerHTML = \"\\n            <div class=\\\"head\\\"> \\n               <span>\\u5C0F\\u5DE5\\u5177\\u901A\\u77E5\\u6761</span> \\n               <label class=\\\"switch\\\" style=\\\"width:90px\\\">\\n                  <input class=\\\"checkbox-input\\\" id=\\\"checkbox\\\" type=\\\"checkbox\\\" checked=\\\"checked\\\">\\n                  <label class=\\\"checkbox\\\" for=\\\"checkbox\\\"></label>\\n                  <span>\\u684C\\u9762\\u901A\\u77E5</span>\\n               </label>\\n               <span class=\\\"close\\\" style=\\\"float:right; cursor:pointer; margin-right:5px;\\\">x</span>\\n            </div>\\n            <div class=\\\"main\\\">\\n               <div class=\\\"tools-notice-content\\\"></div>\\n            </div>\\n            \";\r\n            _this.div.className = \"tools-logger-panel\";\r\n            document.body.appendChild(_this.div);\r\n            _this.el = _this.div.querySelector(\".tools-notice-content\");\r\n            _this.div.querySelector(\".close\").onclick = function () {\r\n                _this.el = undefined;\r\n                _this.div.remove();\r\n            };\r\n            var checkbox = _this.div.querySelector(\"#checkbox\");\r\n            localStorage[\"is_notify\"] = localStorage[\"is_notify\"] || \"true\";\r\n            checkbox.checked = localStorage[\"is_notify\"] == \"true\";\r\n            if (!checkbox.checked) {\r\n                checkbox.removeAttribute(\"checked\");\r\n            }\r\n            checkbox.addEventListener(\"change\", function () {\r\n                localStorage[\"is_notify\"] = this.checked;\r\n            });\r\n            setTimeout(function () {\r\n                _this.Info(\"正在加载中-交流群:830277533\");\r\n            }, 1000);\r\n        });\r\n    }\r\n    PageLog.prototype.getNowTime = function () {\r\n        var time = new Date();\r\n        return time.getHours() + \":\" + time.getMinutes() + \":\" + time.getSeconds();\r\n    };\r\n    PageLog.prototype.first = function (text, color, background) {\r\n        var new_log = document.createElement(\"div\");\r\n        new_log.innerHTML = \"\\n                <div class=\\\"log\\\" style=\\\"border-color: \" + background + \"; background-color: \" + background + \";\\\">\\n                    <p><span style=\\\"color:\" + color + \";\\\">\" + text + \"</span></p>\\n                </div>\\n            \";\r\n        //插入第一个元素前\r\n        var first = document.getElementsByClassName(\"tools-notice-content\")[0].getElementsByTagName(\"div\");\r\n        document.querySelector(\".tools-notice-content\").insertBefore(new_log, first[0]);\r\n    };\r\n    PageLog.prototype.toStr = function () {\r\n        var args = [];\r\n        for (var _i = 0; _i < arguments.length; _i++) {\r\n            args[_i] = arguments[_i];\r\n        }\r\n        var text = \"\";\r\n        for (var i = 0; i < args.length; i++) {\r\n            if (typeof args[i] == \"object\") {\r\n                text += JSON.stringify(args[i]) + \"\\n\";\r\n            }\r\n            else {\r\n                text += args[i] + \"\\n\";\r\n            }\r\n        }\r\n        return text.substring(0, text.length - 1);\r\n    };\r\n    PageLog.prototype.Debug = function () {\r\n        var args = [];\r\n        for (var _i = 0; _i < arguments.length; _i++) {\r\n            args[_i] = arguments[_i];\r\n        }\r\n        console.info.apply(console, __spreadArrays([\"[debug\", this.getNowTime(), \"]\"], args));\r\n        return this;\r\n    };\r\n    PageLog.prototype.Info = function () {\r\n        var args = [];\r\n        for (var _i = 0; _i < arguments.length; _i++) {\r\n            args[_i] = arguments[_i];\r\n        }\r\n        var text = this.toStr.apply(this, args);\r\n        // 判断选中状态是否发送桌面通知\r\n        if (this.el) {\r\n            this.first(text, \"#409EFF\", \"rgba(121, 187, 255, 0.2)\");\r\n        }\r\n        else {\r\n            console.info.apply(console, __spreadArrays([\"[info\", this.getNowTime(), \"]\"], args));\r\n        }\r\n        return this;\r\n    };\r\n    PageLog.prototype.Warn = function () {\r\n        var args = [];\r\n        for (var _i = 0; _i < arguments.length; _i++) {\r\n            args[_i] = arguments[_i];\r\n        }\r\n        var text = this.toStr.apply(this, args);\r\n        if (this.el) {\r\n            this.first(text, \"#5C3C00\", \"rgba(250, 236, 216, 0.4)\");\r\n        }\r\n        else {\r\n            console.warn.apply(console, __spreadArrays([\"[warn\", this.getNowTime(), \"]\"], args));\r\n        }\r\n        if (document.hidden && localStorage[\"is_notify\"] == \"true\") {\r\n            Object(_App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_2__[\"Noifications\"])({\r\n                title: \"超星学习通小工具\",\r\n                text: text + \"\\n3秒后自动关闭\",\r\n                timeout: 3000,\r\n            });\r\n        }\r\n        return this;\r\n    };\r\n    PageLog.prototype.Error = function () {\r\n        var args = [];\r\n        for (var _i = 0; _i < arguments.length; _i++) {\r\n            args[_i] = arguments[_i];\r\n        }\r\n        var text = this.toStr.apply(this, args);\r\n        if (this.el) {\r\n            this.first(text, \"#ff7879\", \"rgba(253, 226, 226, 0.5)\");\r\n        }\r\n        else {\r\n            console.error.apply(console, __spreadArrays([\"[error\", this.getNowTime(), \"]\"], args));\r\n        }\r\n        if (localStorage[\"is_notify\"] == \"true\") {\r\n            Object(_App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_2__[\"Noifications\"])({\r\n                title: \"超星学习通小工具\",\r\n                text: text,\r\n            });\r\n        }\r\n        return this;\r\n    };\r\n    PageLog.prototype.Fatal = function () {\r\n        var args = [];\r\n        for (var _i = 0; _i < arguments.length; _i++) {\r\n            args[_i] = arguments[_i];\r\n        }\r\n        var text = this.toStr.apply(this, args);\r\n        if (this.el) {\r\n            this.first(text, \"#ff0000\", \"rgba(253,162,169,0.5)\");\r\n        }\r\n        else {\r\n            console.error.apply(console, __spreadArrays([\"[fatal\", this.getNowTime(), \"]\"], args));\r\n        }\r\n        Object(_App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_2__[\"Noifications\"])({\r\n            title: \"超星学习通小工具\",\r\n            text: text,\r\n        });\r\n        return this;\r\n    };\r\n    return PageLog;\r\n}());\r\n\r\nvar EmptyLog = /** @class */ (function () {\r\n    function EmptyLog() {\r\n    }\r\n    EmptyLog.prototype.Debug = function () {\r\n        var args = [];\r\n        for (var _i = 0; _i < arguments.length; _i++) {\r\n            args[_i] = arguments[_i];\r\n        }\r\n        return this;\r\n    };\r\n    EmptyLog.prototype.Info = function () {\r\n        var args = [];\r\n        for (var _i = 0; _i < arguments.length; _i++) {\r\n            args[_i] = arguments[_i];\r\n        }\r\n        return this;\r\n    };\r\n    EmptyLog.prototype.Warn = function () {\r\n        var args = [];\r\n        for (var _i = 0; _i < arguments.length; _i++) {\r\n            args[_i] = arguments[_i];\r\n        }\r\n        return this;\r\n    };\r\n    EmptyLog.prototype.Error = function () {\r\n        var args = [];\r\n        for (var _i = 0; _i < arguments.length; _i++) {\r\n            args[_i] = arguments[_i];\r\n        }\r\n        return this;\r\n    };\r\n    EmptyLog.prototype.Fatal = function () {\r\n        var args = [];\r\n        for (var _i = 0; _i < arguments.length; _i++) {\r\n            args[_i] = arguments[_i];\r\n        }\r\n        return this;\r\n    };\r\n    return EmptyLog;\r\n}());\r\n\r\n\n\n//# sourceURL=webpack:///./src/internal/utils/log.ts?");

/***/ }),

/***/ "./src/internal/utils/message.ts":
/*!***************************************!*\
  !*** ./src/internal/utils/message.ts ***!
  \***************************************/
/*! exports provided: NewExtensionServerMessage, NewExtensionClientMessage, NewChromeServerMessage, NewChromeClientMessage */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NewExtensionServerMessage\", function() { return NewExtensionServerMessage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NewExtensionClientMessage\", function() { return NewExtensionClientMessage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NewChromeServerMessage\", function() { return NewChromeServerMessage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NewChromeClientMessage\", function() { return NewChromeClientMessage; });\nvar __extends = (undefined && undefined.__extends) || (function () {\r\n    var extendStatics = function (d, b) {\r\n        extendStatics = Object.setPrototypeOf ||\r\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n        return extendStatics(d, b);\r\n    };\r\n    return function (d, b) {\r\n        extendStatics(d, b);\r\n        function __() { this.constructor = d; }\r\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n    };\r\n})();\r\nfunction NewExtensionServerMessage(port) {\r\n    return new extensionServerMessage(port);\r\n}\r\nvar extensionServerMessage = /** @class */ (function () {\r\n    function extensionServerMessage(port) {\r\n        this.port = port;\r\n        this.recv();\r\n    }\r\n    extensionServerMessage.prototype.recv = function () {\r\n        var _this = this;\r\n        //监听消息\r\n        chrome.runtime.onConnect.addListener(function (port) {\r\n            if (port.name != _this.port) {\r\n                return;\r\n            }\r\n            port.onMessage.addListener(function (request) {\r\n                _this.acceptCallback(new extensionClientMessage(port), request);\r\n            });\r\n        });\r\n    };\r\n    extensionServerMessage.prototype.Accept = function (callback) {\r\n        this.acceptCallback = callback;\r\n    };\r\n    return extensionServerMessage;\r\n}());\r\nvar msg = /** @class */ (function () {\r\n    function msg(tag) {\r\n        this.tag = tag;\r\n    }\r\n    msg.prototype.Recv = function (callback) {\r\n        this.recvCallback = callback;\r\n    };\r\n    return msg;\r\n}());\r\n// 扩展中使用\r\nfunction NewExtensionClientMessage(tag) {\r\n    return new extensionClientMessage(tag);\r\n}\r\nvar extensionClientMessage = /** @class */ (function (_super) {\r\n    __extends(extensionClientMessage, _super);\r\n    function extensionClientMessage(param) {\r\n        var _this = this;\r\n        if (typeof param === 'string') {\r\n            _this = _super.call(this, param) || this;\r\n            _this.connect();\r\n        }\r\n        else {\r\n            _this.conn = param;\r\n        }\r\n        _this.recv();\r\n        return _this;\r\n    }\r\n    extensionClientMessage.prototype.connect = function () {\r\n        this.conn = chrome.runtime.connect({ name: this.tag });\r\n    };\r\n    extensionClientMessage.prototype.recv = function () {\r\n        var _this = this;\r\n        this.conn.onMessage.addListener(function (response) {\r\n            _this.recvCallback(response);\r\n        });\r\n    };\r\n    extensionClientMessage.prototype.Send = function (msg) {\r\n        this.conn.postMessage(msg);\r\n    };\r\n    return extensionClientMessage;\r\n}(msg));\r\n// 浏览器中使用\r\nfunction NewChromeServerMessage(tag) {\r\n    return new chromeServerMessage(tag);\r\n}\r\nvar chromeServerMessage = /** @class */ (function () {\r\n    function chromeServerMessage(tag) {\r\n        this.tag = tag;\r\n        this.recv();\r\n    }\r\n    chromeServerMessage.prototype.recv = function () {\r\n        var _this = this;\r\n        window.addEventListener('message', function (event) {\r\n            if (event.data.tag == _this.tag && event.data.conn_tag && event.data.source == \"client\") {\r\n                _this.acceptCallback(new chromeClientMessage(_this.tag, event.data.conn_tag), event.data.msg);\r\n            }\r\n        });\r\n    };\r\n    chromeServerMessage.prototype.Accept = function (callback) {\r\n        this.acceptCallback = callback;\r\n    };\r\n    return chromeServerMessage;\r\n}());\r\nfunction NewChromeClientMessage(tag) {\r\n    return new chromeClientMessage(tag);\r\n}\r\nvar chromeClientMessage = /** @class */ (function (_super) {\r\n    __extends(chromeClientMessage, _super);\r\n    function chromeClientMessage(tag, conn) {\r\n        var _this = this;\r\n        if (conn !== undefined) {\r\n            _this = _super.call(this, tag) || this;\r\n            _this.connTag = conn;\r\n            _this.source = \"server\";\r\n        }\r\n        else {\r\n            _this = _super.call(this, tag) || this;\r\n            _this.connect();\r\n            _this.source = \"client\";\r\n        }\r\n        return _this;\r\n    }\r\n    chromeClientMessage.prototype.connect = function () {\r\n        var _this = this;\r\n        this.connTag = Math.random();\r\n        window.addEventListener('message', function (event) {\r\n            if (event.data.tag == _this.tag && event.data.conn_tag == _this.connTag && event.data.source == \"server\") {\r\n                _this.recvCallback && _this.recvCallback(event.data.msg);\r\n            }\r\n        });\r\n    };\r\n    chromeClientMessage.prototype.Send = function (msg) {\r\n        window.postMessage({ tag: this.tag, conn_tag: this.connTag, msg: msg, source: this.source }, '*');\r\n    };\r\n    return chromeClientMessage;\r\n}(msg));\r\n\n\n//# sourceURL=webpack:///./src/internal/utils/message.ts?");

/***/ }),

/***/ "./src/internal/utils/utils.ts":
/*!*************************************!*\
  !*** ./src/internal/utils/utils.ts ***!
  \*************************************/
/*! exports provided: HttpUtils, Injected, InjectedBySrc, syncGetChromeStorageLocal, syncSetChromeStorageLocal, RemoveInjected, randNumber, createBtn, get, post, removeHTMLTag, removeHTML, substrex, dealHotVersion, protocolPrompt, getImageBase64, isPhone, Noifications */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"HttpUtils\", function() { return HttpUtils; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Injected\", function() { return Injected; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"InjectedBySrc\", function() { return InjectedBySrc; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"syncGetChromeStorageLocal\", function() { return syncGetChromeStorageLocal; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"syncSetChromeStorageLocal\", function() { return syncSetChromeStorageLocal; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RemoveInjected\", function() { return RemoveInjected; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"randNumber\", function() { return randNumber; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createBtn\", function() { return createBtn; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"get\", function() { return get; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"post\", function() { return post; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"removeHTMLTag\", function() { return removeHTMLTag; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"removeHTML\", function() { return removeHTML; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"substrex\", function() { return substrex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dealHotVersion\", function() { return dealHotVersion; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"protocolPrompt\", function() { return protocolPrompt; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getImageBase64\", function() { return getImageBase64; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isPhone\", function() { return isPhone; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Noifications\", function() { return Noifications; });\n/* harmony import */ var _application__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../application */ \"./src/internal/application.ts\");\n/* harmony import */ var _App_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @App/config */ \"./src/config.ts\");\n\r\n\r\nvar HttpUtils = /** @class */ (function () {\r\n    function HttpUtils() {\r\n    }\r\n    HttpUtils.Request = function (info) {\r\n        if (_application__WEBPACK_IMPORTED_MODULE_0__[\"Application\"].App.IsBackend) {\r\n            fetch(info.url, info).then(function (body) {\r\n                if (info.json) {\r\n                    return body.json();\r\n                }\r\n                else {\r\n                    return body.text();\r\n                }\r\n            }).then(function (body) {\r\n                info.success && info.success(body);\r\n            }).catch(function () {\r\n                info.error && info.error();\r\n            });\r\n            return;\r\n        }\r\n        HttpUtils.crossDomainRequest(info);\r\n    };\r\n    HttpUtils.errorCode = function (ret) {\r\n        if (!ret.code) {\r\n            return false;\r\n        }\r\n        switch (ret.code) {\r\n            case -1: {\r\n                _application__WEBPACK_IMPORTED_MODULE_0__[\"Application\"].App.log.Info(ret.msg);\r\n                break;\r\n            }\r\n            case -2: {\r\n                _application__WEBPACK_IMPORTED_MODULE_0__[\"Application\"].App.log.Warn(ret.msg);\r\n                break;\r\n            }\r\n            default: {\r\n                return false;\r\n            }\r\n        }\r\n        return true;\r\n    };\r\n    HttpUtils.crossDomainRequest = function (info) {\r\n        if (window.hasOwnProperty('GM_xmlhttpRequest')) {\r\n            //兼容油猴\r\n            info.data = info.body;\r\n            info.onreadystatechange = function (response) {\r\n                if (response.readyState == 4) {\r\n                    if (response.status == 200) {\r\n                        if (info.json) {\r\n                            var ret = JSON.parse(response.responseText);\r\n                            if (HttpUtils.errorCode(ret)) {\r\n                                info.error && info.error();\r\n                                return;\r\n                            }\r\n                            info.success && info.success(ret);\r\n                        }\r\n                        else {\r\n                            info.success && info.success(response.responseText);\r\n                        }\r\n                    }\r\n                    else {\r\n                        info.error && info.error();\r\n                    }\r\n                }\r\n            };\r\n            window.GM_xmlhttpRequest(info);\r\n        }\r\n        else {\r\n            var client = _application__WEBPACK_IMPORTED_MODULE_0__[\"Application\"].App.Client;\r\n            client.Recv(function (data) {\r\n                if (data.code == 0) {\r\n                    if (info.json) {\r\n                        if (HttpUtils.errorCode(data.body)) {\r\n                            info.error && info.error();\r\n                            return;\r\n                        }\r\n                    }\r\n                    info.success && info.success(data.body);\r\n                }\r\n                else {\r\n                    info.error && info.error();\r\n                }\r\n            });\r\n            client.Send({\r\n                type: \"GM_xmlhttpRequest\", info: {\r\n                    url: info.url,\r\n                    method: info.method,\r\n                    json: info.json,\r\n                    body: info.body,\r\n                    headers: info.headers,\r\n                }\r\n            });\r\n        }\r\n    };\r\n    HttpUtils.HttpGet = function (url, info) {\r\n        info.url = url;\r\n        this.Request(info);\r\n    };\r\n    HttpUtils.HttpPost = function (url, body, info) {\r\n        info.url = url;\r\n        info.body = body;\r\n        if (!info.headers) {\r\n            info.headers = {};\r\n        }\r\n        info.headers[\"Content-Type\"] = \"application/x-www-form-urlencoded\";\r\n        info.headers[\"Authorization\"] = _application__WEBPACK_IMPORTED_MODULE_0__[\"Application\"].App.config.vtoken;\r\n        info.headers[\"X-Version\"] = _App_config__WEBPACK_IMPORTED_MODULE_1__[\"SystemConfig\"].version + \"\";\r\n        info.method = \"POST\";\r\n        this.Request(info);\r\n    };\r\n    HttpUtils.SendRequest = function (client, data) {\r\n        if (!data.info) {\r\n            return;\r\n        }\r\n        var info = data.info;\r\n        if (_application__WEBPACK_IMPORTED_MODULE_0__[\"Application\"].App.IsBackend) {\r\n            info.success = function (body) {\r\n                client.Send({ body: body, code: 0 });\r\n            };\r\n            info.error = function () {\r\n                client.Send({ code: -1 });\r\n            };\r\n            HttpUtils.Request(info);\r\n        }\r\n        else {\r\n            // content 做转发\r\n            var extClient = _application__WEBPACK_IMPORTED_MODULE_0__[\"Application\"].App.Client;\r\n            extClient.Send({ type: \"GM_xmlhttpRequest\", info: info });\r\n            extClient.Recv(function (data) {\r\n                client.Send(data);\r\n            });\r\n        }\r\n    };\r\n    return HttpUtils;\r\n}());\r\n\r\n/**\r\n * 通过源码注入js资源\r\n * @param doc\r\n * @param url\r\n * @constructor\r\n */\r\nfunction Injected(doc, source) {\r\n    var temp = doc.createElement('script');\r\n    temp.setAttribute('type', 'text/javascript');\r\n    temp.innerHTML = source;\r\n    temp.className = \"injected-js\";\r\n    doc.documentElement.appendChild(temp);\r\n    return temp;\r\n}\r\n/**\r\n * 通过源码注入js资源\r\n * @param doc\r\n * @param url\r\n * @constructor\r\n */\r\nfunction InjectedBySrc(doc, source) {\r\n    var temp = doc.createElement('script');\r\n    temp.setAttribute('type', 'text/javascript');\r\n    temp.src = source;\r\n    temp.className = \"injected-js\";\r\n    doc.documentElement.appendChild(temp);\r\n    return temp;\r\n}\r\nfunction syncGetChromeStorageLocal(key) {\r\n    return new Promise(function (resolve) { return (chrome.storage.local.get(key, function (value) {\r\n        resolve(value[key]);\r\n    })); });\r\n}\r\nfunction syncSetChromeStorageLocal(key, value) {\r\n    var tmp = {};\r\n    tmp[key] = value;\r\n    return new Promise(function (resolve) { return (chrome.storage.local.set(tmp, function () {\r\n        resolve();\r\n    })); });\r\n}\r\n/**\r\n * 移除注入js\r\n * @param doc\r\n */\r\nfunction RemoveInjected(doc) {\r\n    var resource = doc.getElementsByClassName(\"injected-js\");\r\n    for (var i = 0; i < resource.length; i++) {\r\n        resource[i].remove();\r\n    }\r\n}\r\nfunction randNumber(minNum, maxNum) {\r\n    return Math.floor(Math.random() * (maxNum - minNum + 1) + minNum);\r\n}\r\n/**\r\n * 创建一个按钮\r\n * @param title\r\n * @param description\r\n * @param id\r\n */\r\nfunction createBtn(title, description, className, id) {\r\n    if (description === void 0) { description = \"\"; }\r\n    if (className === void 0) { className = \"\"; }\r\n    if (id === void 0) { id = \"\"; }\r\n    var btn = document.createElement('button');\r\n    btn.innerText = title;\r\n    btn.id = id;\r\n    btn.title = description;\r\n    btn.className = className;\r\n    return btn;\r\n}\r\n/**\r\n * get请求\r\n * @param {*} url\r\n */\r\nfunction get(url, success) {\r\n    var xmlhttp = createRequest();\r\n    xmlhttp.open(\"GET\", url, true);\r\n    xmlhttp.onreadystatechange = function () {\r\n        if (this.readyState == 4) {\r\n            if (this.status == 200) {\r\n                success && success(this.responseText, this.resource);\r\n            }\r\n            else {\r\n                xmlhttp.errorCallback && xmlhttp.errorCallback(this);\r\n            }\r\n        }\r\n    };\r\n    xmlhttp.send();\r\n    return xmlhttp;\r\n}\r\n/**\r\n * post请求\r\n * @param {*} url\r\n * @param {*} data\r\n * @param {*} json\r\n */\r\nfunction post(url, data, json, success) {\r\n    if (json === void 0) { json = true; }\r\n    var xmlhttp = createRequest();\r\n    xmlhttp.open(\"POST\", url, true);\r\n    xmlhttp.setRequestHeader('Authorization', _application__WEBPACK_IMPORTED_MODULE_0__[\"Application\"].App.config.vtoken || '');\r\n    if (json) {\r\n        xmlhttp.setRequestHeader(\"Content-Type\", \"application/json\");\r\n    }\r\n    else {\r\n        xmlhttp.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded\");\r\n    }\r\n    xmlhttp.onreadystatechange = function () {\r\n        if (this.readyState == 4) {\r\n            if (this.status == 200) {\r\n                success && success(this.responseText);\r\n            }\r\n            else {\r\n                xmlhttp.errorCallback && xmlhttp.errorCallback(this);\r\n            }\r\n        }\r\n    };\r\n    xmlhttp.send(data);\r\n    return xmlhttp;\r\n}\r\n/**\r\n * 创建http请求\r\n */\r\nfunction createRequest() {\r\n    var xmlhttp;\r\n    if (window.XMLHttpRequest) {\r\n        xmlhttp = new XMLHttpRequest();\r\n    }\r\n    else {\r\n        xmlhttp = new ActiveXObject(\"Microsoft.XMLHTTP\");\r\n    }\r\n    xmlhttp.error = function (callback) {\r\n        xmlhttp.errorCallback = callback;\r\n        return xmlhttp;\r\n    };\r\n    xmlhttp.withCredentials = true;\r\n    return xmlhttp;\r\n}\r\n// 移除html tag\r\nfunction removeHTMLTag(html) {\r\n    var revHtml = /<.*?>/g;\r\n    html = html.replace(revHtml, '');\r\n    html = html.replace(/(^\\s+)|(\\s+$)/g, '');\r\n    return html;\r\n}\r\n/**\r\n * 去除html标签和处理中文\r\n * @param {string} html\r\n */\r\nfunction removeHTML(html) {\r\n    //先处理带src和href属性的标签\r\n    var srcReplace = /<img.*?src=\"(.*?)\".*?>/g;\r\n    html = html.replace(srcReplace, '$1');\r\n    srcReplace = /(<iframe.+?>)\\s+?(<\\/iframe>)/g;\r\n    html = html.replace(srcReplace, '$1$2');\r\n    srcReplace = /<(iframe|a).*?(src|href)=\"(.*?)\".*?>(.*?)<\\/(iframe|a)>/g;\r\n    html = html.replace(srcReplace, '$3$4');\r\n    var revHtml = /<.*?>/g;\r\n    html = html.replace(revHtml, '');\r\n    html = html.replace(/(^\\s+)|(\\s+$)/g, '');\r\n    html = dealSymbol(html);\r\n    //TODO:处理HTML符号\r\n    return html.replace(/&nbsp;/g, ' ').replace(/&quot;/g, \"\\\"\").replace(/&amp;/g, '&').trim();\r\n}\r\n/**\r\n * 处理符号\r\n * @param topic\r\n */\r\nfunction dealSymbol(topic) {\r\n    topic = topic.replace(/,/g, ',');\r\n    topic = topic.replace(/(/g, '(');\r\n    topic = topic.replace(/)/g, ')');\r\n    topic = topic.replace(/?/g, '?');\r\n    topic = topic.replace(/:/g, ':');\r\n    topic = topic.replace(/。/g, '.');\r\n    topic = topic.replace(/[“”]/g, '\"');\r\n    return topic;\r\n}\r\n/**\r\n * 取中间文本\r\n * @param str\r\n * @param left\r\n * @param right\r\n */\r\nfunction substrex(str, left, right) {\r\n    var leftPos = str.indexOf(left) + left.length;\r\n    var rightPos = str.indexOf(right, leftPos);\r\n    return str.substring(leftPos, rightPos);\r\n}\r\nfunction dealHotVersion(hotversion) {\r\n    hotversion = hotversion.substring(0, hotversion.indexOf(\".\") + 1) + hotversion.substring(hotversion.indexOf(\".\") + 1).replace(\".\", \"\");\r\n    return Number(hotversion);\r\n}\r\nfunction protocolPrompt(content, key, keyword) {\r\n    keyword = keyword || \"yes\";\r\n    if (localStorage[key] == undefined || localStorage[key] != 1) {\r\n        var msg = prompt(content + \"\\n如果以后不想再弹出本对话框并且同意请在下方填写\\\"\" + keyword + \"\\\"\");\r\n        if (msg === null)\r\n            return false;\r\n        if (keyword != msg) {\r\n            return false;\r\n        }\r\n        localStorage[key] = 1;\r\n    }\r\n    return true;\r\n}\r\nfunction getImageBase64(img, ext) {\r\n    var canvas = document.createElement(\"canvas\");\r\n    canvas.width = img.width;\r\n    canvas.height = img.height;\r\n    var ctx = canvas.getContext(\"2d\");\r\n    ctx.drawImage(img, 0, 0, img.width, img.height);\r\n    var dataURL = canvas.toDataURL(\"image/\" + ext, 0.75); //节省可怜的流量>_<,虽然好像没有啥\r\n    canvas = null;\r\n    return dataURL;\r\n}\r\nfunction isPhone() {\r\n    return /Android|iPhone/i.test(navigator.userAgent);\r\n}\r\nfunction Noifications(details) {\r\n    if (window.hasOwnProperty(\"GM_notification\")) {\r\n        window.GM_notification(details);\r\n    }\r\n    else {\r\n        var client = _application__WEBPACK_IMPORTED_MODULE_0__[\"Application\"].App.Client;\r\n        client.Send({\r\n            type: \"GM_notification\", details: details,\r\n        });\r\n        _application__WEBPACK_IMPORTED_MODULE_0__[\"Application\"].App.Client.Send(details);\r\n    }\r\n}\r\n\n\n//# sourceURL=webpack:///./src/internal/utils/utils.ts?");

/***/ }),

/***/ "./src/mooc/chaoxing/course.ts":
/*!*************************************!*\
  !*** ./src/mooc/chaoxing/course.ts ***!
  \*************************************/
/*! exports provided: CxCourse, CxExamTopic, CxHomeWork */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CxCourse\", function() { return CxCourse; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CxExamTopic\", function() { return CxExamTopic; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CxHomeWork\", function() { return CxHomeWork; });\n/* harmony import */ var _App_internal_application__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @App/internal/application */ \"./src/internal/application.ts\");\n/* harmony import */ var _App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @App/internal/utils/utils */ \"./src/internal/utils/utils.ts\");\n/* harmony import */ var _App_mooc_chaoxing_factory__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @App/mooc/chaoxing/factory */ \"./src/mooc/chaoxing/factory.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n};\r\nvar __generator = (undefined && undefined.__generator) || function (thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n};\r\n\r\n\r\n\r\n//课程任务\r\nvar CxCourse = /** @class */ (function () {\r\n    function CxCourse() {\r\n    }\r\n    CxCourse.prototype.Start = function () {\r\n        var _this = this;\r\n        document.addEventListener(\"load\", function (ev) {\r\n            var el = (ev.srcElement || ev.target);\r\n            if (el.id == \"iframe\") {\r\n                _App_internal_application__WEBPACK_IMPORTED_MODULE_0__[\"Application\"].App.log.Info(\"超星新窗口加载\");\r\n                clearTimeout(_this.timer);\r\n                _this.OperateCard(el);\r\n            }\r\n        }, true);\r\n    };\r\n    CxCourse.prototype.OperateCard = function (iframe) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var iframeWindow, match, margStr, _loop_1, this_1, index;\r\n            var _this = this;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        iframeWindow = iframe.contentWindow;\r\n                        if (iframeWindow.mArg == undefined) {\r\n                            match = iframeWindow.document.body.innerHTML.match(/try{\\s+?mArg = (.*?);/);\r\n                            if (!match) {\r\n                                return [2 /*return*/];\r\n                            }\r\n                            margStr = \"mArg=\" + match[1];\r\n                            iframeWindow.mArg = eval(margStr);\r\n                        }\r\n                        this.attachments = iframeWindow.mArg.attachments;\r\n                        this.taskList = new Array();\r\n                        _loop_1 = function (index) {\r\n                            var value, task, taskIndex;\r\n                            return __generator(this, function (_a) {\r\n                                switch (_a.label) {\r\n                                    case 0:\r\n                                        value = this_1.attachments[index];\r\n                                        value.defaults = iframeWindow.mArg.defaults;\r\n                                        if (value.jobid == undefined) {\r\n                                            _App_mooc_chaoxing_factory__WEBPACK_IMPORTED_MODULE_2__[\"TaskFactory\"].CreateCourseTask(iframeWindow, value);\r\n                                            return [2 /*return*/, \"continue\"];\r\n                                        }\r\n                                        task = _App_mooc_chaoxing_factory__WEBPACK_IMPORTED_MODULE_2__[\"TaskFactory\"].CreateCourseTask(iframeWindow, value);\r\n                                        if (!task) {\r\n                                            return [2 /*return*/, \"continue\"];\r\n                                        }\r\n                                        task.jobIndex = index;\r\n                                        this_1.taskList.push(task);\r\n                                        taskIndex = this_1.taskList.length - 1;\r\n                                        task.Load(function () {\r\n                                        });\r\n                                        task.Complete(function () { return __awaiter(_this, void 0, void 0, function () {\r\n                                            return __generator(this, function (_a) {\r\n                                                this.startTask(taskIndex + 1, task);\r\n                                                return [2 /*return*/];\r\n                                            });\r\n                                        }); });\r\n                                        return [4 /*yield*/, task.Init()];\r\n                                    case 1:\r\n                                        _a.sent();\r\n                                        return [2 /*return*/];\r\n                                }\r\n                            });\r\n                        };\r\n                        this_1 = this;\r\n                        index = 0;\r\n                        _a.label = 1;\r\n                    case 1:\r\n                        if (!(index < this.attachments.length)) return [3 /*break*/, 4];\r\n                        return [5 /*yield**/, _loop_1(index)];\r\n                    case 2:\r\n                        _a.sent();\r\n                        _a.label = 3;\r\n                    case 3:\r\n                        index++;\r\n                        return [3 /*break*/, 1];\r\n                    case 4:\r\n                        _App_internal_application__WEBPACK_IMPORTED_MODULE_0__[\"Application\"].App.log.Debug(\"任务点参数\", this.attachments);\r\n                        this.startTask(0, null);\r\n                        return [2 /*return*/];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    CxCourse.prototype.startTask = function (index, nowtask) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var task_1, i;\r\n            var _this = this;\r\n            return __generator(this, function (_a) {\r\n                if (_App_internal_application__WEBPACK_IMPORTED_MODULE_0__[\"Application\"].App.config.auto) {\r\n                    for (i = index; i < this.taskList.length; i++) {\r\n                        task_1 = this.taskList[i];\r\n                        if (this.attachments[task_1.jobIndex].job) {\r\n                            if (index == 0) {\r\n                                task_1.Start();\r\n                            }\r\n                            else {\r\n                                this.delay(function () { return __awaiter(_this, void 0, void 0, function () {\r\n                                    var _a;\r\n                                    return __generator(this, function (_b) {\r\n                                        switch (_b.label) {\r\n                                            case 0:\r\n                                                _a = nowtask;\r\n                                                if (!_a) return [3 /*break*/, 2];\r\n                                                return [4 /*yield*/, nowtask.Submit()];\r\n                                            case 1:\r\n                                                _a = (_b.sent());\r\n                                                _b.label = 2;\r\n                                            case 2:\r\n                                                _a;\r\n                                                task_1.Start();\r\n                                                return [2 /*return*/];\r\n                                        }\r\n                                    });\r\n                                }); });\r\n                            }\r\n                            return [2 /*return*/];\r\n                        }\r\n                    }\r\n                    this.nextPage(null, nowtask);\r\n                }\r\n                return [2 /*return*/];\r\n            });\r\n        });\r\n    };\r\n    CxCourse.prototype.delay = function (func) {\r\n        var interval = _App_internal_application__WEBPACK_IMPORTED_MODULE_0__[\"Application\"].App.config.interval;\r\n        _App_internal_application__WEBPACK_IMPORTED_MODULE_0__[\"Application\"].App.log.Info(interval + \"分钟后自动切换下一个任务点\");\r\n        this.timer = setTimeout(function () {\r\n            _App_internal_application__WEBPACK_IMPORTED_MODULE_0__[\"Application\"].App.config.auto && func();\r\n        }, interval * 60000);\r\n    };\r\n    CxCourse.prototype.afterPage = function () {\r\n        //感觉奇葩的方法...\r\n        var els = document.querySelectorAll(\"div.ncells > *:not(.currents) > .orange01\");\r\n        var now = document.querySelector(\"div.ncells > .currents\");\r\n        for (var i = 0; i < els.length; i++) {\r\n            if (now.getBoundingClientRect().top < els[i].getBoundingClientRect().top) {\r\n                return els[i];\r\n            }\r\n        }\r\n        return null;\r\n    };\r\n    CxCourse.prototype.nextPage = function (num, task) {\r\n        var _this = this;\r\n        if (num == null) {\r\n            return this.delay(function () { return __awaiter(_this, void 0, void 0, function () {\r\n                var _a;\r\n                return __generator(this, function (_b) {\r\n                    switch (_b.label) {\r\n                        case 0:\r\n                            _a = task;\r\n                            if (!_a) return [3 /*break*/, 2];\r\n                            return [4 /*yield*/, task.Submit()];\r\n                        case 1:\r\n                            _a = (_b.sent());\r\n                            _b.label = 2;\r\n                        case 2:\r\n                            _a;\r\n                            this.nextPage(0, null);\r\n                            return [2 /*return*/];\r\n                    }\r\n                });\r\n            }); });\r\n        }\r\n        var el = document.querySelector(\"span.currents ~ span\");\r\n        if (el != undefined) {\r\n            return el.click();\r\n        }\r\n        //只往后执行\r\n        el = this.afterPage();\r\n        if (el == undefined) {\r\n            //进行有锁任务查找\r\n            if (document.querySelector(\"div.ncells > *:not(.currents) > .lock\") == undefined) {\r\n                _App_internal_application__WEBPACK_IMPORTED_MODULE_0__[\"Application\"].App.log.Warn(\"任务结束了\");\r\n                return alert(\"任务结束了\");\r\n            }\r\n            return setTimeout(function () {\r\n                if (num > 5) {\r\n                    return _App_internal_application__WEBPACK_IMPORTED_MODULE_0__[\"Application\"].App.log.Fatal(\"被锁卡住了,请手动处理\");\r\n                }\r\n                _App_internal_application__WEBPACK_IMPORTED_MODULE_0__[\"Application\"].App.log.Info(\"等待解锁\");\r\n                _this.nextPage(num + 1, null);\r\n            }, 5000);\r\n        }\r\n        el.parentElement.querySelector(\"a>span\").click();\r\n    };\r\n    return CxCourse;\r\n}());\r\n\r\n//TODO: 考试和作业强制采集\r\nvar CxExamTopic = /** @class */ (function () {\r\n    function CxExamTopic() {\r\n    }\r\n    CxExamTopic.prototype.Start = function () {\r\n        window.addEventListener(\"load\", function () {\r\n            var el = document.querySelector(\"#paperId\");\r\n            var info = \"0\";\r\n            if (el) {\r\n                info = el.value;\r\n            }\r\n            var task = _App_mooc_chaoxing_factory__WEBPACK_IMPORTED_MODULE_2__[\"TaskFactory\"].CreateExamTopicTask(window, {\r\n                refer: document.URL,\r\n                id: \"exam-\" + info,\r\n                info: info,\r\n            });\r\n            task.Init();\r\n            if (document.URL.indexOf(\"exam/test/reVersionTestStartNew\") > 0) {\r\n                if (_App_internal_application__WEBPACK_IMPORTED_MODULE_0__[\"Application\"].App.config.auto) {\r\n                    task.Start();\r\n                }\r\n            }\r\n        });\r\n    };\r\n    return CxExamTopic;\r\n}());\r\n\r\nvar CxHomeWork = /** @class */ (function () {\r\n    function CxHomeWork() {\r\n    }\r\n    CxHomeWork.prototype.Start = function () {\r\n        window.onload = function () {\r\n            var el = document.querySelector(\"#workLibraryId\");\r\n            var info = \"\";\r\n            if (el) {\r\n                info = el.value;\r\n            }\r\n            var task = _App_mooc_chaoxing_factory__WEBPACK_IMPORTED_MODULE_2__[\"TaskFactory\"].CreateHomeworkTopicTask(window, {\r\n                refer: document.URL,\r\n                id: Object(_App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_1__[\"substrex\"])(document.URL, \"&workId=\", \"&\"),\r\n                info: info,\r\n            });\r\n            task.Init();\r\n            if (_App_internal_application__WEBPACK_IMPORTED_MODULE_0__[\"Application\"].App.config.auto && document.querySelector(\"#workLibraryId\")) {\r\n                task.Start();\r\n            }\r\n        };\r\n    };\r\n    return CxHomeWork;\r\n}());\r\n\r\n\n\n//# sourceURL=webpack:///./src/mooc/chaoxing/course.ts?");

/***/ }),

/***/ "./src/mooc/chaoxing/factory.ts":
/*!**************************************!*\
  !*** ./src/mooc/chaoxing/factory.ts ***!
  \**************************************/
/*! exports provided: TaskFactory */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TaskFactory\", function() { return TaskFactory; });\n/* harmony import */ var _App_mooc_chaoxing_video__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @App/mooc/chaoxing/video */ \"./src/mooc/chaoxing/video.ts\");\n/* harmony import */ var _App_mooc_chaoxing_topic__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @App/mooc/chaoxing/topic */ \"./src/mooc/chaoxing/topic.ts\");\n/* harmony import */ var _App_internal_app_question__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @App/internal/app/question */ \"./src/internal/app/question.ts\");\n/* harmony import */ var _App_mooc_chaoxing_question__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @App/mooc/chaoxing/question */ \"./src/mooc/chaoxing/question.ts\");\n/* harmony import */ var _App_internal_application__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @App/internal/application */ \"./src/internal/application.ts\");\n/* harmony import */ var _App_mooc_chaoxing_task__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @App/mooc/chaoxing/task */ \"./src/mooc/chaoxing/task.ts\");\n/* harmony import */ var _App_mooc_chaoxing_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @App/mooc/chaoxing/utils */ \"./src/mooc/chaoxing/utils.ts\");\n/* harmony import */ var _App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @App/internal/utils/utils */ \"./src/internal/utils/utils.ts\");\n/* harmony import */ var _App_mooc_chaoxing_special__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @App/mooc/chaoxing/special */ \"./src/mooc/chaoxing/special.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n};\r\nvar __generator = (undefined && undefined.__generator) || function (thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n};\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar TaskFactory = /** @class */ (function () {\r\n    function TaskFactory() {\r\n    }\r\n    TaskFactory.CreateCourseTask = function (context, taskinfo) {\r\n        if (taskinfo.property.module == \"insertaudio\") {\r\n            taskinfo.type = \"audio\";\r\n        }\r\n        //TODO:优化\r\n        if (taskinfo.type != \"video\" && taskinfo.type != \"workid\" && taskinfo.type != \"document\"\r\n            && taskinfo.type != \"audio\") {\r\n            return null;\r\n        }\r\n        var task;\r\n        var taskIframe = context.document.querySelector(\"iframe[jobid='\" + taskinfo.jobid + \"']\");\r\n        var prev;\r\n        if (taskIframe == undefined) {\r\n            taskIframe = context.document.querySelector(\"iframe[data*='\" + taskinfo.property.mid + \"'],iframe[objectid='\" + taskinfo.property.objectid + \"']\");\r\n            prev = document.createElement(\"div\");\r\n            taskIframe.parentElement.prepend(prev);\r\n        }\r\n        else {\r\n            prev = taskIframe.previousElementSibling;\r\n        }\r\n        switch (taskinfo.type) {\r\n            case \"video\": {\r\n                var bar = new _App_mooc_chaoxing_video__WEBPACK_IMPORTED_MODULE_0__[\"CxVideoControlBar\"](prev, new _App_mooc_chaoxing_video__WEBPACK_IMPORTED_MODULE_0__[\"Video\"](taskIframe.contentWindow, taskinfo));\r\n                task = bar.task;\r\n                task.muted = _App_internal_application__WEBPACK_IMPORTED_MODULE_4__[\"Application\"].App.config.video_mute;\r\n                task.playbackRate = _App_internal_application__WEBPACK_IMPORTED_MODULE_4__[\"Application\"].App.config.video_multiple;\r\n                break;\r\n            }\r\n            case \"workid\": {\r\n                var contentWindow = taskIframe.contentWindow.document.querySelector(\"#frame_content\").contentWindow;\r\n                taskinfo.refer = context.document.URL;\r\n                taskinfo.id = taskinfo.property.workid;\r\n                taskinfo.info = taskinfo.property.workid;\r\n                var topic = new _App_mooc_chaoxing_topic__WEBPACK_IMPORTED_MODULE_1__[\"CxCourseTopic\"](contentWindow, new _App_internal_app_question__WEBPACK_IMPORTED_MODULE_2__[\"ToolsQuestionBankFacade\"](\"cx\", {\r\n                    refer: context.document.URL, id: taskinfo.property.workid, info: taskinfo.property.workid,\r\n                }));\r\n                topic.SetQueryQuestions(new _App_mooc_chaoxing_topic__WEBPACK_IMPORTED_MODULE_1__[\"CxCourseQueryQuestion\"](contentWindow, function (context, el) {\r\n                    return _App_mooc_chaoxing_question__WEBPACK_IMPORTED_MODULE_3__[\"CxQuestionFactory\"].CreateCourseQuestion(context, el);\r\n                }));\r\n                var bar = new _App_mooc_chaoxing_topic__WEBPACK_IMPORTED_MODULE_1__[\"CxTopicControlBar\"](prev, new _App_mooc_chaoxing_topic__WEBPACK_IMPORTED_MODULE_1__[\"TopicAdapter\"](context, taskinfo, topic));\r\n                if (_App_internal_application__WEBPACK_IMPORTED_MODULE_4__[\"Application\"].App.config.answer_ignore) {\r\n                    return null;\r\n                }\r\n                task = bar.task;\r\n                break;\r\n            }\r\n            case \"document\": {\r\n                var bar = new _App_mooc_chaoxing_task__WEBPACK_IMPORTED_MODULE_5__[\"CxTaskControlBar\"](prev, new _App_mooc_chaoxing_special__WEBPACK_IMPORTED_MODULE_8__[\"CxDocumentTask\"](taskIframe.contentWindow, taskinfo));\r\n                bar.append(bar.download());\r\n                task = bar.task;\r\n                task.muted = _App_internal_application__WEBPACK_IMPORTED_MODULE_4__[\"Application\"].App.config.video_mute;\r\n                task.playbackRate = _App_internal_application__WEBPACK_IMPORTED_MODULE_4__[\"Application\"].App.config.video_multiple;\r\n                break;\r\n            }\r\n            case \"audio\": {\r\n                var bar = new _App_mooc_chaoxing_special__WEBPACK_IMPORTED_MODULE_8__[\"CxAudioControlBar\"](prev, new _App_mooc_chaoxing_special__WEBPACK_IMPORTED_MODULE_8__[\"CxAudioTask\"](taskIframe.contentWindow, taskinfo));\r\n                task = bar.task;\r\n                task.muted = _App_internal_application__WEBPACK_IMPORTED_MODULE_4__[\"Application\"].App.config.video_mute;\r\n                task.playbackRate = _App_internal_application__WEBPACK_IMPORTED_MODULE_4__[\"Application\"].App.config.video_multiple;\r\n                break;\r\n            }\r\n            default:\r\n                return null;\r\n        }\r\n        return task;\r\n    };\r\n    TaskFactory.CreateExamTopicTask = function (context, taskinfo) {\r\n        var topic = new _App_mooc_chaoxing_topic__WEBPACK_IMPORTED_MODULE_1__[\"ExamTopic\"](context, new _App_internal_app_question__WEBPACK_IMPORTED_MODULE_2__[\"ToolsQuestionBankFacade\"](\"cx\", taskinfo));\r\n        var task = new _App_mooc_chaoxing_topic__WEBPACK_IMPORTED_MODULE_1__[\"TopicAdapter\"](context, taskinfo, topic);\r\n        if (document.URL.indexOf(\"exam/test/reVersionTestStartNew\") > 0) {\r\n            topic.SetQueryQuestions(topic);\r\n            var btn_1 = Object(_App_mooc_chaoxing_utils__WEBPACK_IMPORTED_MODULE_6__[\"CssBtn\"])(Object(_App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_7__[\"createBtn\"])(\"搜索答案\", \"搜索题目答案\"));\r\n            document.querySelector(\".Cy_ulBottom.clearfix.w-buttom,.Cy_ulTk,.Cy_ulBottom.clearfix\").append(btn_1);\r\n            btn_1.onclick = function () {\r\n                btn_1.innerText = \"答案搜索中...\";\r\n                try {\r\n                    task.Start().then(function (ret) {\r\n                        ret = ret || \"搜索题目\";\r\n                        btn_1.innerText = Object(_App_internal_app_question__WEBPACK_IMPORTED_MODULE_2__[\"QuestionStatusString\"])(ret);\r\n                    });\r\n                }\r\n                catch (e) {\r\n                }\r\n                return false;\r\n            };\r\n        }\r\n        else {\r\n            topic.SetQueryQuestions(new _App_mooc_chaoxing_topic__WEBPACK_IMPORTED_MODULE_1__[\"CxCourseQueryQuestion\"](context, function (context, el) {\r\n                return _App_mooc_chaoxing_question__WEBPACK_IMPORTED_MODULE_3__[\"CxQuestionFactory\"].CreateExamCollectQuestion(context, el);\r\n            }));\r\n        }\r\n        return task;\r\n    };\r\n    TaskFactory.CreateHomeworkTopicTask = function (context, taskinfo) {\r\n        var _this = this;\r\n        var bank = new _App_internal_app_question__WEBPACK_IMPORTED_MODULE_2__[\"ToolsQuestionBankFacade\"](\"cx\", taskinfo);\r\n        if (taskinfo.info != \"\") {\r\n            bank.CheckCourse();\r\n        }\r\n        var topic = new _App_mooc_chaoxing_topic__WEBPACK_IMPORTED_MODULE_1__[\"HomeworkTopic\"](context, bank);\r\n        topic.SetQueryQuestions(new _App_mooc_chaoxing_topic__WEBPACK_IMPORTED_MODULE_1__[\"CxCourseQueryQuestion\"](context, function (context, el) {\r\n            return _App_mooc_chaoxing_question__WEBPACK_IMPORTED_MODULE_3__[\"CxQuestionFactory\"].CreateHomeWorkQuestion(context, el);\r\n        }));\r\n        var task = new _App_mooc_chaoxing_topic__WEBPACK_IMPORTED_MODULE_1__[\"TopicAdapter\"](context, taskinfo, topic);\r\n        var btn = Object(_App_mooc_chaoxing_utils__WEBPACK_IMPORTED_MODULE_6__[\"CssBtn\"])(Object(_App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_7__[\"createBtn\"])(\"搜索答案\", \"搜索题目答案\"));\r\n        if (document.querySelector(\"input#workRelationId\")) {\r\n            document.querySelector(\".CyTop\").append(btn);\r\n            btn.onclick = function () { return __awaiter(_this, void 0, void 0, function () {\r\n                return __generator(this, function (_a) {\r\n                    btn.innerText = \"答案搜索中...\";\r\n                    task.Start().then(function (ret) {\r\n                        ret = ret || \"搜索题目\";\r\n                        btn.innerText = Object(_App_internal_app_question__WEBPACK_IMPORTED_MODULE_2__[\"QuestionStatusString\"])(ret);\r\n                    });\r\n                    return [2 /*return*/];\r\n                });\r\n            }); };\r\n        }\r\n        return task;\r\n    };\r\n    return TaskFactory;\r\n}());\r\n\r\n\n\n//# sourceURL=webpack:///./src/mooc/chaoxing/factory.ts?");

/***/ }),

/***/ "./src/mooc/chaoxing/platform.ts":
/*!***************************************!*\
  !*** ./src/mooc/chaoxing/platform.ts ***!
  \***************************************/
/*! exports provided: CxPlatform */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CxPlatform\", function() { return CxPlatform; });\n/* harmony import */ var _App_internal_app_vcode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @App/internal/app/vcode */ \"./src/internal/app/vcode.ts\");\n/* harmony import */ var _course__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./course */ \"./src/mooc/chaoxing/course.ts\");\n/* harmony import */ var _vcode__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./vcode */ \"./src/mooc/chaoxing/vcode.ts\");\n/* harmony import */ var _video__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./video */ \"./src/mooc/chaoxing/video.ts\");\n/* harmony import */ var _App_mooc_chaoxing_read__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @App/mooc/chaoxing/read */ \"./src/mooc/chaoxing/read.ts\");\n/* harmony import */ var _App_mooc_chaoxing_special__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @App/mooc/chaoxing/special */ \"./src/mooc/chaoxing/special.ts\");\n\r\n\r\n\r\n\r\n\r\n\r\nvar CxPlatform = /** @class */ (function () {\r\n    function CxPlatform() {\r\n    }\r\n    CxPlatform.prototype.CreateMooc = function () {\r\n        var url = document.URL;\r\n        var mooc = null;\r\n        if (url.indexOf(\"mycourse/studentstudy?\") > 0) {\r\n            mooc = new _App_internal_app_vcode__WEBPACK_IMPORTED_MODULE_0__[\"VCode\"](new _course__WEBPACK_IMPORTED_MODULE_1__[\"CxCourse\"](), new _vcode__WEBPACK_IMPORTED_MODULE_2__[\"CxCourseVCode\"]());\r\n        }\r\n        else if (url.indexOf(\"ananas/modules/video/index.html\") > 0) {\r\n            mooc = new _video__WEBPACK_IMPORTED_MODULE_3__[\"CxVideoOptimization\"]();\r\n        }\r\n        else if (url.indexOf(\"ananas/modules/audio/index.html\") > 0) {\r\n            mooc = new _App_mooc_chaoxing_special__WEBPACK_IMPORTED_MODULE_5__[\"CxAudioOptimization\"]();\r\n        }\r\n        else if ((url.indexOf(\"work/doHomeWorkNew\") > 0 || url.indexOf(\"work/selectWorkQuestionYiPiYue\") > 0) && self == top) {\r\n            mooc = new _course__WEBPACK_IMPORTED_MODULE_1__[\"CxHomeWork\"]();\r\n        }\r\n        else if (url.indexOf(\"exam/test/reVersionTestStartNew\") > 0 || url.indexOf(\"exam/test/reVersionPaperMarkContentNew\") > 0) {\r\n            mooc = new _course__WEBPACK_IMPORTED_MODULE_1__[\"CxExamTopic\"]();\r\n        }\r\n        else if (url.indexOf(\"/course/\") > 0) {\r\n            mooc = new _App_mooc_chaoxing_read__WEBPACK_IMPORTED_MODULE_4__[\"ReadStartPage\"]();\r\n        }\r\n        else if (url.indexOf(\"ztnodedetailcontroller/visitnodedetail\") > 0) {\r\n            mooc = new _App_mooc_chaoxing_read__WEBPACK_IMPORTED_MODULE_4__[\"Read\"]();\r\n        }\r\n        else if (url.indexOf(\"exam/test?\") > 0) {\r\n            mooc = new _App_mooc_chaoxing_read__WEBPACK_IMPORTED_MODULE_4__[\"Exam\"]();\r\n        }\r\n        return mooc;\r\n    };\r\n    return CxPlatform;\r\n}());\r\n\r\n\n\n//# sourceURL=webpack:///./src/mooc/chaoxing/platform.ts?");

/***/ }),

/***/ "./src/mooc/chaoxing/question.ts":
/*!***************************************!*\
  !*** ./src/mooc/chaoxing/question.ts ***!
  \***************************************/
/*! exports provided: CxQuestionFactory */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CxQuestionFactory\", function() { return CxQuestionFactory; });\n/* harmony import */ var _App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @App/internal/utils/utils */ \"./src/internal/utils/utils.ts\");\n/* harmony import */ var _App_internal_app_question__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @App/internal/app/question */ \"./src/internal/app/question.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ \"./src/mooc/chaoxing/utils.ts\");\nvar __extends = (undefined && undefined.__extends) || (function () {\r\n    var extendStatics = function (d, b) {\r\n        extendStatics = Object.setPrototypeOf ||\r\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n        return extendStatics(d, b);\r\n    };\r\n    return function (d, b) {\r\n        extendStatics(d, b);\r\n        function __() { this.constructor = d; }\r\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n    };\r\n})();\r\n\r\n\r\n\r\n//TODO: 优化\r\nvar CxQuestionFactory = /** @class */ (function () {\r\n    function CxQuestionFactory() {\r\n    }\r\n    CxQuestionFactory.CreateCourseQuestion = function (context, el) {\r\n        var ret = Object(_App_internal_app_question__WEBPACK_IMPORTED_MODULE_1__[\"SwitchTopicType\"])(Object(_App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_0__[\"substrex\"])(el.innerText, '【', '】'));\r\n        return this.CreateCourseQuestionByTopicType(context, ret, el);\r\n    };\r\n    CxQuestionFactory.CreateExamQuestion = function (context, type, el) {\r\n        var processor = new ExamQuestionProcessor();\r\n        var ret = null;\r\n        this.RemoveNotice(el);\r\n        switch (type) {\r\n            case 1:\r\n            case 2: {\r\n                ret = new cxExamSelectQuestion(context, el, type, processor);\r\n                break;\r\n            }\r\n            case 3: {\r\n                ret = new cxExamJudgeQuestion(context, el, type, processor);\r\n                break;\r\n            }\r\n            case 4: {\r\n                ret = new cxExamFillQuestion(context, el, type, processor);\r\n                break;\r\n            }\r\n            default: {\r\n                this.AddNotice(el, \"不支持的类型\");\r\n                return null;\r\n            }\r\n        }\r\n        return ret;\r\n    };\r\n    CxQuestionFactory.CreateCourseQuestionByTopicType = function (context, type, el) {\r\n        var ret = null;\r\n        var processor = new CourseQuestionProcessor();\r\n        this.RemoveNotice(el);\r\n        switch (type) {\r\n            case 1:\r\n            case 2: {\r\n                ret = new cxSelectQuestion(context, el, type, processor);\r\n                break;\r\n            }\r\n            case 3: {\r\n                ret = new cxJudgeQuestion(context, el, type, processor);\r\n                break;\r\n            }\r\n            case 4: {\r\n                ret = new cxFillQuestion(context, el, type, processor);\r\n                break;\r\n            }\r\n            default: {\r\n                this.AddNotice(el, \"不支持的类型\");\r\n                return null;\r\n            }\r\n        }\r\n        return ret;\r\n    };\r\n    CxQuestionFactory.getBeforeType = function (el) {\r\n        var before = el.previousElementSibling;\r\n        do {\r\n            if (before.className == \"Cy_TItle1\") {\r\n                return before;\r\n            }\r\n            before = before.previousElementSibling;\r\n        } while (before != null);\r\n        return null;\r\n    };\r\n    CxQuestionFactory.CreateHomeWorkQuestion = function (context, el) {\r\n        var ret = CxQuestionFactory.getBeforeType(el);\r\n        return this.CreateCourseQuestionByTopicType(context, Object(_App_internal_app_question__WEBPACK_IMPORTED_MODULE_1__[\"SwitchTopicType\"])(Object(_App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_0__[\"substrex\"])(ret.innerText, \".\", \"(\")), el);\r\n    };\r\n    //TODO:写的什么玩意啊\r\n    CxQuestionFactory.CreateExamCollectQuestion = function (context, el) {\r\n        var ret = CxQuestionFactory.getBeforeType(el.parentElement);\r\n        var txt = ret.innerText.match(/、(.*?)[\\s|(]/)[1];\r\n        return this.CreateExamQuestionByTopicType(context, Object(_App_internal_app_question__WEBPACK_IMPORTED_MODULE_1__[\"SwitchTopicType\"])(txt), el);\r\n    };\r\n    CxQuestionFactory.CreateExamQuestionByTopicType = function (context, type, el) {\r\n        var ret = null;\r\n        var processor = new CourseQuestionProcessor();\r\n        this.RemoveNotice(el);\r\n        switch (type) {\r\n            case 1:\r\n            case 2: {\r\n                ret = new cxSelectQuestion(context, el, type, processor);\r\n                break;\r\n            }\r\n            case 3: {\r\n                ret = new cxJudgeQuestion(context, el, type, processor);\r\n                break;\r\n            }\r\n            case 4: {\r\n                ret = new cxExamFillQuestion(context, el, type, processor);\r\n                break;\r\n            }\r\n            default: {\r\n                this.AddNotice(el, \"不支持的类型\");\r\n                return null;\r\n            }\r\n        }\r\n        return ret;\r\n    };\r\n    CxQuestionFactory.RemoveNotice = function (el) {\r\n        var tmpel = el.querySelector(\".clearfix > ul,.clearfix > .Py_tk,.Zy_ulTk\");\r\n        if (tmpel == undefined) {\r\n            tmpel = el;\r\n        }\r\n        tmpel.querySelectorAll(\".prompt-line-answer\").forEach(function (v) {\r\n            v.remove();\r\n        });\r\n    };\r\n    CxQuestionFactory.AddNotice = function (el, str) {\r\n        var tmpel = el.querySelector(\".clearfix > ul,.clearfix > .Py_tk,.Zy_ulTk\");\r\n        if (tmpel == undefined) {\r\n            tmpel = el;\r\n        }\r\n        Object(_utils__WEBPACK_IMPORTED_MODULE_2__[\"CreateNoteLine\"])(str, \"answer\", tmpel);\r\n    };\r\n    return CxQuestionFactory;\r\n}());\r\n\r\nvar CourseQuestionProcessor = /** @class */ (function () {\r\n    function CourseQuestionProcessor() {\r\n    }\r\n    CourseQuestionProcessor.prototype.GetTopic = function (el) {\r\n        var ret = el.querySelector(\".Zy_TItle > .clearfix,.Cy_TItle > .clearfix\").innerHTML;\r\n        ret = ret.substring(ret.indexOf('】') + 1);\r\n        if (/((.+?)分)($|\\s)/.test(ret)) {\r\n            ret = ret.substring(0, ret.lastIndexOf(\"(\"));\r\n        }\r\n        return ret;\r\n    };\r\n    return CourseQuestionProcessor;\r\n}());\r\nvar ExamQuestionProcessor = /** @class */ (function () {\r\n    function ExamQuestionProcessor() {\r\n    }\r\n    ExamQuestionProcessor.prototype.GetTopic = function (el) {\r\n        var ret = el.querySelector(\".Cy_TItle.clearfix .clearfix\").innerHTML;\r\n        ret = ret.substr(0, ret.lastIndexOf('分)'));\r\n        ret = ret.substr(0, ret.lastIndexOf('('));\r\n        return ret;\r\n    };\r\n    return ExamQuestionProcessor;\r\n}());\r\nvar cxQuestion = /** @class */ (function () {\r\n    function cxQuestion(context, el, type, processor) {\r\n        this.context = context;\r\n        this.el = el;\r\n        this.type = type;\r\n        this.processor = processor;\r\n    }\r\n    cxQuestion.prototype.SetStatus = function (status) {\r\n        this.AddNotice(Object(_App_internal_app_question__WEBPACK_IMPORTED_MODULE_1__[\"TopicStatusString\"])(status));\r\n    };\r\n    cxQuestion.prototype.GetTopic = function () {\r\n        return this.processor.GetTopic(this.el);\r\n    };\r\n    cxQuestion.prototype.RemoveNotice = function () {\r\n        CxQuestionFactory.RemoveNotice(this.el);\r\n    };\r\n    cxQuestion.prototype.AddNotice = function (str) {\r\n        CxQuestionFactory.AddNotice(this.el, str);\r\n    };\r\n    cxQuestion.prototype.GetType = function () {\r\n        return this.type;\r\n    };\r\n    cxQuestion.prototype.options = function () {\r\n        var tmpel = this.el.querySelector(\".clearfix > ul,.clearfix ul.Zy_ulBottom.clearfix,ul.Zy_ulTk\");\r\n        var list = tmpel.querySelectorAll(\"li\");\r\n        return list;\r\n    };\r\n    cxQuestion.prototype.isCorrect = function () {\r\n        var el = this.el.querySelector(\".Py_answer.clearfix,.Py_tk\");\r\n        if (el.innerHTML.indexOf('正确答案') < 0) {\r\n            if (el.querySelectorAll('.fr.dui').length <= 0 && el.querySelectorAll('.fr.bandui').length <= 0) {\r\n                return null;\r\n            }\r\n        }\r\n        return el;\r\n    };\r\n    cxQuestion.prototype.defaultAnswer = function () {\r\n        var ret = new _App_internal_app_question__WEBPACK_IMPORTED_MODULE_1__[\"PushAnswer\"]();\r\n        ret.topic = this.GetTopic();\r\n        ret.type = this.GetType();\r\n        ret.correct = new Array();\r\n        ret.answers = new Array();\r\n        return ret;\r\n    };\r\n    return cxQuestion;\r\n}());\r\nvar cxSelectQuestion = /** @class */ (function (_super) {\r\n    __extends(cxSelectQuestion, _super);\r\n    function cxSelectQuestion() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    cxSelectQuestion.prototype.getContent = function (el) {\r\n        el = el.querySelector(\"a\");\r\n        return el.innerHTML;\r\n    };\r\n    cxSelectQuestion.prototype.getOption = function (el) {\r\n        return el.querySelector(\"input\").value;\r\n    };\r\n    cxSelectQuestion.prototype.click = function (el, content) {\r\n        var ipt = el.querySelector(\"label > input\");\r\n        if (!ipt.checked) {\r\n            ipt.click();\r\n        }\r\n        this.AddNotice(this.getOption(el) + \":\" + content);\r\n    };\r\n    cxSelectQuestion.prototype.Random = function () {\r\n        var options = this.options();\r\n        var pos = Object(_App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_0__[\"randNumber\"])(0, options.length - 1);\r\n        this.click(options[pos], this.getContent(options[pos]));\r\n        return \"random\";\r\n    };\r\n    cxSelectQuestion.prototype.Fill = function (s) {\r\n        var options = this.options();\r\n        var flag = false;\r\n        for (var i = 0; i < s.correct.length; i++) {\r\n            for (var j = 0; j < options.length; j++) {\r\n                if (s.correct[i].content.trim() == \"\") {\r\n                    if (this.getOption(options[j]) == s.correct[i].option) {\r\n                        this.click(options[j], this.getContent(options[j]));\r\n                        flag = true;\r\n                    }\r\n                }\r\n                else if (s.Equal(this.getContent(options[j]), s.correct[i].content)) {\r\n                    this.click(options[j], s.correct[i].content);\r\n                    flag = true;\r\n                }\r\n            }\r\n        }\r\n        if (flag) {\r\n            return \"ok\";\r\n        }\r\n        return \"no_match\";\r\n    };\r\n    cxSelectQuestion.prototype.Correct = function () {\r\n        var correct = this.isCorrect();\r\n        if (correct == null) {\r\n            return null;\r\n        }\r\n        var ret = this.defaultAnswer();\r\n        var options = this.el.querySelectorAll(\".Zy_ulTop > li.clearfix,.Cy_ulTop li\");\r\n        var correctText = correct.querySelector(\"span\").innerText;\r\n        for (var i = 0; i < options.length; i++) {\r\n            var optionText = options[i].querySelector(\"i.fl\").innerText;\r\n            var option = {\r\n                option: optionText.substring(0, 1),\r\n                content: options[i].querySelector(\"a.fl,a\").innerHTML,\r\n            };\r\n            ret.answers.push(option);\r\n            if (correctText.indexOf(option.option) > 0) {\r\n                ret.correct.push(option);\r\n            }\r\n        }\r\n        return ret;\r\n    };\r\n    return cxSelectQuestion;\r\n}(cxQuestion));\r\nvar cxJudgeQuestion = /** @class */ (function (_super) {\r\n    __extends(cxJudgeQuestion, _super);\r\n    function cxJudgeQuestion() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    cxJudgeQuestion.prototype.getContent = function (el) {\r\n        var tmpel = el.querySelector(\"label > input,input\");\r\n        if (tmpel.value == \"true\") {\r\n            return \"对√\";\r\n        }\r\n        return \"错×\";\r\n    };\r\n    cxJudgeQuestion.prototype.click = function (el) {\r\n        var tmpel = el.querySelector(\"label > input,input\");\r\n        if (!tmpel.checked) {\r\n            tmpel.click();\r\n        }\r\n        this.AddNotice(this.getContent(el));\r\n    };\r\n    cxJudgeQuestion.prototype.Random = function () {\r\n        var options = this.options();\r\n        var pos = Object(_App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_0__[\"randNumber\"])(0, 1);\r\n        this.click(options[pos]);\r\n        return \"random\";\r\n    };\r\n    cxJudgeQuestion.prototype.Fill = function (answer) {\r\n        var options = this.options();\r\n        this.click(options[answer.correct[0].content ? 0 : 1]);\r\n        return \"ok\";\r\n    };\r\n    cxJudgeQuestion.prototype.Correct = function () {\r\n        var el = this.el.querySelector(\".Py_answer.clearfix\");\r\n        if (el.innerHTML.indexOf('正确答案') < 0) {\r\n            if (el.querySelectorAll('.fr.dui').length <= 0 && el.querySelectorAll('.fr.cuo').length <= 0) {\r\n                return null;\r\n            }\r\n        }\r\n        var ret = this.defaultAnswer();\r\n        var correctText = el.querySelector(\"span\").innerText;\r\n        if (correctText.indexOf('×') >= 0) {\r\n            ret.correct.push({ option: false, content: false });\r\n        }\r\n        else {\r\n            ret.correct.push({ option: true, content: true });\r\n        }\r\n        return ret;\r\n    };\r\n    return cxJudgeQuestion;\r\n}(cxSelectQuestion));\r\nvar cxFillQuestion = /** @class */ (function (_super) {\r\n    __extends(cxFillQuestion, _super);\r\n    function cxFillQuestion() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    cxFillQuestion.prototype.getOption = function (el) {\r\n        if (el.className == \"XztiHover1\") {\r\n            return Object(_App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_0__[\"substrex\"])(el.previousElementSibling.innerHTML, \"第\", \"空\");\r\n        }\r\n        var tmpel = el.querySelector(\"span.fb\");\r\n        return Object(_App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_0__[\"substrex\"])(tmpel.innerHTML, \"第\", \"空\");\r\n    };\r\n    cxFillQuestion.prototype.Random = function () {\r\n        return \"no_support_random\";\r\n    };\r\n    cxFillQuestion.prototype.Correct = function () {\r\n        var correct = this.isCorrect();\r\n        if (correct == null) {\r\n            return null;\r\n        }\r\n        var ret = this.defaultAnswer();\r\n        var options = this.el.querySelectorAll(\".Py_tk span.font14\");\r\n        var isMy = false;\r\n        if (options.length <= 0) {\r\n            isMy = true;\r\n            options = this.el.querySelectorAll(\".Py_answer.clearfix .font14\");\r\n        }\r\n        for (var i = 0; i < options.length; i++) {\r\n            if (isMy && options[i].querySelectorAll(\".fr.dui\").length <= 0) {\r\n                continue;\r\n            }\r\n            var optionEl = options[i].querySelector(\"i.fl\");\r\n            var option = {\r\n                option: Object(_App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_0__[\"substrex\"])(optionEl.innerHTML, \"第\", \"空\"),\r\n                content: options[i].querySelector(\".clearfix\").innerText,\r\n            };\r\n            ret.correct.push(option);\r\n        }\r\n        return ret;\r\n    };\r\n    cxFillQuestion.prototype.Fill = function (answer) {\r\n        var options = this.options();\r\n        if (!options.length) {\r\n            options = this.el.querySelectorAll(\".XztiHover1\");\r\n        }\r\n        var flag = 0;\r\n        for (var i = 0; i < answer.correct.length; i++) {\r\n            for (var j = 0; j < options.length; j++) {\r\n                if (this.getOption(options[j]) == answer.correct[i].option) {\r\n                    flag++;\r\n                    var el = options[j].querySelector(\"input.inp\");\r\n                    if (!el) {\r\n                        var uedit = this.context.$(options[j]).find('textarea');\r\n                        if (uedit.length <= 0) {\r\n                            this.AddNotice(this.getOption(options[j]) + \"空发生了一个错误\");\r\n                            continue;\r\n                        }\r\n                        this.context.UE.getEditor(uedit.attr('name')).setContent(answer.correct[i].content);\r\n                        this.AddNotice(this.getOption(options[j]) + \":\" + answer.correct[i].content);\r\n                    }\r\n                    else {\r\n                        el.value = Object(_App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_0__[\"removeHTMLTag\"])(answer.correct[i].content);\r\n                        this.AddNotice(this.getOption(options[j]) + \":\" + answer.correct[i].content);\r\n                    }\r\n                }\r\n            }\r\n        }\r\n        if (flag == options.length) {\r\n            return \"ok\";\r\n        }\r\n        return \"no_match\";\r\n    };\r\n    return cxFillQuestion;\r\n}(cxQuestion));\r\n//TODO: 优化\r\nvar cxExamSelectQuestion = /** @class */ (function (_super) {\r\n    __extends(cxExamSelectQuestion, _super);\r\n    function cxExamSelectQuestion() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    cxExamSelectQuestion.prototype.options = function () {\r\n        return this.el.querySelectorAll(\".Cy_ulBottom.clearfix.w-buttom li input\");\r\n    };\r\n    cxExamSelectQuestion.prototype.getContent = function (el) {\r\n        var textOption = this.el.querySelectorAll(\".Cy_ulTop.w-top li div.clearfix a\");\r\n        var tmpli = el.parentElement.parentElement;\r\n        var pos = -1;\r\n        do {\r\n            tmpli = tmpli.previousElementSibling;\r\n            pos++;\r\n        } while (tmpli != null);\r\n        return textOption[pos].innerHTML;\r\n    };\r\n    cxExamSelectQuestion.prototype.getOption = function (el) {\r\n        return el.parentElement.innerText;\r\n    };\r\n    cxExamSelectQuestion.prototype.click = function (el, content) {\r\n        el.click();\r\n        this.AddNotice(this.getOption(el) + \":\" + content);\r\n    };\r\n    return cxExamSelectQuestion;\r\n}(cxSelectQuestion));\r\nvar cxExamFillQuestion = /** @class */ (function (_super) {\r\n    __extends(cxExamFillQuestion, _super);\r\n    function cxExamFillQuestion() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    cxExamFillQuestion.prototype.options = function () {\r\n        return this.el.querySelectorAll(\".Cy_ulTk .XztiHover1\");\r\n    };\r\n    cxExamFillQuestion.prototype.getOption = function (el) {\r\n        var tmpel = el.querySelector(\".fb.font14\");\r\n        return Object(_App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_0__[\"substrex\"])(tmpel.innerHTML, \"第\", \"空\");\r\n    };\r\n    cxExamFillQuestion.prototype.Fill = function (answer) {\r\n        var options = this.options();\r\n        var flag = 0;\r\n        for (var i = 0; i < answer.correct.length; i++) {\r\n            for (var j = 0; j < options.length; j++) {\r\n                if (this.getOption(options[j]) == answer.correct[i].option) {\r\n                    flag++;\r\n                    var uedit = window.$(options[j]).find('textarea');\r\n                    if (uedit.length <= 0) {\r\n                        this.AddNotice(this.getOption(options[j]) + \"空发生了一个错误\");\r\n                        continue;\r\n                    }\r\n                    window.UE.getEditor(uedit.attr('name')).setContent(answer.correct[i].content);\r\n                    this.AddNotice(this.getOption(options[j]) + \":\" + answer.correct[i].content);\r\n                }\r\n            }\r\n        }\r\n        if (flag == options.length) {\r\n            return \"ok\";\r\n        }\r\n        return \"no_match\";\r\n    };\r\n    cxExamFillQuestion.prototype.Correct = function () {\r\n        var correct = this.isCorrect();\r\n        if (correct == null) {\r\n            return null;\r\n        }\r\n        var ret = this.defaultAnswer();\r\n        var options = this.el.querySelectorAll(\".Py_tk div[id] span.font14\");\r\n        var isMy = false;\r\n        if (options.length <= 0) {\r\n            isMy = true;\r\n            options = this.el.querySelectorAll(\".Py_answer.clearfix .font14\");\r\n        }\r\n        for (var i = 0; i < options.length; i++) {\r\n            if (isMy && options[i].querySelectorAll(\".fr.dui\").length <= 0) {\r\n                continue;\r\n            }\r\n            var optionEl = options[i].querySelector(\"i\");\r\n            var option = {\r\n                option: Object(_App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_0__[\"substrex\"])(optionEl.innerHTML, \"第\", \"空\"),\r\n                content: options[i].innerHTML.substr(options[i].innerHTML.indexOf(\"</i>\") + 4),\r\n            };\r\n            ret.correct.push(option);\r\n        }\r\n        return ret;\r\n    };\r\n    return cxExamFillQuestion;\r\n}(cxFillQuestion));\r\nvar cxExamJudgeQuestion = /** @class */ (function (_super) {\r\n    __extends(cxExamJudgeQuestion, _super);\r\n    function cxExamJudgeQuestion() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    cxExamJudgeQuestion.prototype.options = function () {\r\n        return this.el.querySelectorAll(\".Cy_ulBottom.clearfix li\");\r\n    };\r\n    return cxExamJudgeQuestion;\r\n}(cxJudgeQuestion));\r\n\n\n//# sourceURL=webpack:///./src/mooc/chaoxing/question.ts?");

/***/ }),

/***/ "./src/mooc/chaoxing/read.ts":
/*!***********************************!*\
  !*** ./src/mooc/chaoxing/read.ts ***!
  \***********************************/
/*! exports provided: Read, ReadStartPage, Exam */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Read\", function() { return Read; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ReadStartPage\", function() { return ReadStartPage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Exam\", function() { return Exam; });\n/* harmony import */ var _App_internal_application__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @App/internal/application */ \"./src/internal/application.ts\");\n/* harmony import */ var _App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @App/internal/utils/utils */ \"./src/internal/utils/utils.ts\");\n/* harmony import */ var _App_internal_app_question__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @App/internal/app/question */ \"./src/internal/app/question.ts\");\n\r\n\r\n\r\nvar Read = /** @class */ (function () {\r\n    function Read() {\r\n    }\r\n    Read.prototype.Start = function () {\r\n        var timer;\r\n        var slide = function () {\r\n            if (window.getScrollHeight() - window.getHeight() <= window.getScrollTop() + 40) {\r\n                var next = document.querySelectorAll('.mb15.course_section > a.wh.wh');\r\n                var flag = false;\r\n                for (var i = 0; i < next.length; i++) {\r\n                    if (flag) {\r\n                        next[i].click();\r\n                        return;\r\n                    }\r\n                    if (document.URL == next[i].href) {\r\n                        flag = true;\r\n                    }\r\n                }\r\n                _App_internal_application__WEBPACK_IMPORTED_MODULE_0__[\"Application\"].App.log.Warn(\"阅读完成啦~\");\r\n                clearTimeout(timer);\r\n                return;\r\n            }\r\n            window.scrollTo(0, window.getScrollTop() + Object(_App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_1__[\"randNumber\"])(60, 80));\r\n            timer = setTimeout(slide, Object(_App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_1__[\"randNumber\"])(10, 20) * 500);\r\n        };\r\n        window.addEventListener(\"load\", function () {\r\n            slide();\r\n        });\r\n    };\r\n    return Read;\r\n}());\r\n\r\nvar ReadStartPage = /** @class */ (function () {\r\n    function ReadStartPage() {\r\n    }\r\n    ReadStartPage.prototype.Start = function () {\r\n        window.addEventListener(\"load\", function () {\r\n            if (!_App_internal_application__WEBPACK_IMPORTED_MODULE_0__[\"Application\"].App.config.auto) {\r\n                return _App_internal_application__WEBPACK_IMPORTED_MODULE_0__[\"Application\"].App.log.Info(\"开启自动挂机能够自动阅读文章哦\");\r\n            }\r\n            _App_internal_application__WEBPACK_IMPORTED_MODULE_0__[\"Application\"].App.log.Info(\"请在10秒内选择章节,否则插件将从第一章自动开始\");\r\n            setTimeout(function () {\r\n                var el = document.querySelector(\".mb15.course_section.fix\");\r\n                el.querySelector(\"a\").click();\r\n            }, 10000);\r\n        });\r\n    };\r\n    return ReadStartPage;\r\n}());\r\n\r\nvar Exam = /** @class */ (function () {\r\n    function Exam() {\r\n    }\r\n    Exam.prototype.Start = function () {\r\n        var bank = new _App_internal_app_question__WEBPACK_IMPORTED_MODULE_2__[\"ToolsQuestionBank\"](\"cx\");\r\n        window.addEventListener(\"load\", function () {\r\n            var str = _App_internal_application__WEBPACK_IMPORTED_MODULE_0__[\"Application\"].GlobalContext.document.documentElement.innerHTML;\r\n            var m;\r\n            var regex = new RegExp(/goTest\\(.*?,(\\d+),\\d+,.*?,(\\d+),false,/g);\r\n            var info = new Array();\r\n            while ((m = regex.exec(str)) !== null) {\r\n                var tmp = { refer: document.URL, id: \"exam-\" + m[2], info: m[2] };\r\n                info.push(tmp);\r\n            }\r\n            regex = new RegExp(/lookUpPaper\\('(\\d+)','\\d+','(\\d+)'/g);\r\n            while ((m = regex.exec(str)) !== null) {\r\n                var tmp = { refer: document.URL, id: \"exam-\" + m[2], info: m[2] };\r\n                info.push(tmp);\r\n            }\r\n            bank.CheckCourse(info);\r\n        });\r\n    };\r\n    return Exam;\r\n}());\r\n\r\n\n\n//# sourceURL=webpack:///./src/mooc/chaoxing/read.ts?");

/***/ }),

/***/ "./src/mooc/chaoxing/special.ts":
/*!**************************************!*\
  !*** ./src/mooc/chaoxing/special.ts ***!
  \**************************************/
/*! exports provided: CxDocumentTask, CxAudioOptimization, CxAudioTask, CxAudioControlBar */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CxDocumentTask\", function() { return CxDocumentTask; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CxAudioOptimization\", function() { return CxAudioOptimization; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CxAudioTask\", function() { return CxAudioTask; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CxAudioControlBar\", function() { return CxAudioControlBar; });\n/* harmony import */ var _App_mooc_chaoxing_task__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @App/mooc/chaoxing/task */ \"./src/mooc/chaoxing/task.ts\");\n/* harmony import */ var _App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @App/internal/utils/utils */ \"./src/internal/utils/utils.ts\");\n/* harmony import */ var _App_internal_application__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @App/internal/application */ \"./src/internal/application.ts\");\n/* harmony import */ var _App_mooc_chaoxing_video__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @App/mooc/chaoxing/video */ \"./src/mooc/chaoxing/video.ts\");\n/* harmony import */ var _App_mooc_chaoxing_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @App/mooc/chaoxing/utils */ \"./src/mooc/chaoxing/utils.ts\");\n/* harmony import */ var _App_internal_utils_hook__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @App/internal/utils/hook */ \"./src/internal/utils/hook.ts\");\nvar __extends = (undefined && undefined.__extends) || (function () {\r\n    var extendStatics = function (d, b) {\r\n        extendStatics = Object.setPrototypeOf ||\r\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n        return extendStatics(d, b);\r\n    };\r\n    return function (d, b) {\r\n        extendStatics(d, b);\r\n        function __() { this.constructor = d; }\r\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n    };\r\n})();\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar CxDocumentTask = /** @class */ (function (_super) {\r\n    __extends(CxDocumentTask, _super);\r\n    function CxDocumentTask() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    CxDocumentTask.prototype.Start = function () {\r\n        var _this = this;\r\n        var next = function () {\r\n            var el = _this.context.document.querySelector(\".imglook > .mkeRbtn\");\r\n            if (el.style.visibility == \"hidden\") {\r\n                _this.completeCallback && _this.completeCallback();\r\n                return;\r\n            }\r\n            el.click();\r\n            _this.time = _this.context.setTimeout(next, Object(_App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_1__[\"randNumber\"])(1, 5) * 1000);\r\n        };\r\n        this.time = this.context.setTimeout(next, Object(_App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_1__[\"randNumber\"])(1, 5) * 1000);\r\n    };\r\n    return CxDocumentTask;\r\n}(_App_mooc_chaoxing_task__WEBPACK_IMPORTED_MODULE_0__[\"CxTask\"]));\r\n\r\nvar CxAudioOptimization = /** @class */ (function (_super) {\r\n    __extends(CxAudioOptimization, _super);\r\n    function CxAudioOptimization() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    CxAudioOptimization.prototype.Start = function () {\r\n        var _this = this;\r\n        //对播放器进行优化\r\n        window.addEventListener(\"load\", function () {\r\n            _App_internal_application__WEBPACK_IMPORTED_MODULE_2__[\"Application\"].App.config.super_mode && Object(_App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_1__[\"isPhone\"])() && (_App_internal_application__WEBPACK_IMPORTED_MODULE_2__[\"Application\"].GlobalContext.Ext.isChaoxing = true);\r\n        });\r\n        this.hook();\r\n        document.addEventListener(\"readystatechange\", function () {\r\n            _this.hook();\r\n        });\r\n        this.Api();\r\n    };\r\n    CxAudioOptimization.prototype.hook = function () {\r\n        if (document.readyState != \"interactive\") {\r\n            return;\r\n        }\r\n        _App_internal_application__WEBPACK_IMPORTED_MODULE_2__[\"Application\"].App.log.Debug(\"hook cx audio\");\r\n        var self = this;\r\n        var paramHook = new _App_internal_utils_hook__WEBPACK_IMPORTED_MODULE_5__[\"Hook\"](\"params2VideoOpt\", _App_internal_application__WEBPACK_IMPORTED_MODULE_2__[\"Application\"].GlobalContext.ans.AudioJs.prototype);\r\n        paramHook.Middleware(function (next) {\r\n            var args = [];\r\n            for (var _i = 1; _i < arguments.length; _i++) {\r\n                args[_i - 1] = arguments[_i];\r\n            }\r\n            self.param = args[0];\r\n            return next.apply(this, args);\r\n        });\r\n        _App_internal_application__WEBPACK_IMPORTED_MODULE_2__[\"Application\"].GlobalContext.Ext.isSogou = false;\r\n    };\r\n    return CxAudioOptimization;\r\n}(_App_mooc_chaoxing_video__WEBPACK_IMPORTED_MODULE_3__[\"CxVideoOptimization\"]));\r\n\r\nvar CxAudioTask = /** @class */ (function (_super) {\r\n    __extends(CxAudioTask, _super);\r\n    function CxAudioTask() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    CxAudioTask.prototype.queryVideo = function () {\r\n        return this.context.document.getElementById(\"audio_html5_api\");\r\n    };\r\n    return CxAudioTask;\r\n}(_App_mooc_chaoxing_video__WEBPACK_IMPORTED_MODULE_3__[\"Video\"]));\r\n\r\nvar CxAudioControlBar = /** @class */ (function (_super) {\r\n    __extends(CxAudioControlBar, _super);\r\n    function CxAudioControlBar() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    CxAudioControlBar.prototype.defaultBtn = function () {\r\n        var _this = this;\r\n        _super.prototype.defaultBtn.call(this);\r\n        var pass = Object(_App_mooc_chaoxing_utils__WEBPACK_IMPORTED_MODULE_4__[\"CssBtn\"])(Object(_App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_1__[\"createBtn\"])(\"秒过嘤频\", \"秒过会被后台检测到\", \"cx-btn\"));\r\n        pass.style.background = \"#F57C00\";\r\n        pass.onclick = function () {\r\n            if (!Object(_App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_1__[\"protocolPrompt\"])(\"秒过会产生不良记录,是否继续?\", \"boom_audio_no_prompt\")) {\r\n                return;\r\n            }\r\n            _this.task.sendEndTimePack(function (isPassed) {\r\n                if (isPassed) {\r\n                    alert('秒过成功,刷新后查看效果');\r\n                }\r\n                else {\r\n                    alert('操作失败,错误');\r\n                }\r\n            });\r\n        };\r\n        this.prev.append(pass, this.download());\r\n    };\r\n    return CxAudioControlBar;\r\n}(_App_mooc_chaoxing_task__WEBPACK_IMPORTED_MODULE_0__[\"CxTaskControlBar\"]));\r\n\r\n\n\n//# sourceURL=webpack:///./src/mooc/chaoxing/special.ts?");

/***/ }),

/***/ "./src/mooc/chaoxing/task.ts":
/*!***********************************!*\
  !*** ./src/mooc/chaoxing/task.ts ***!
  \***********************************/
/*! exports provided: CxTask, CxTaskControlBar */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CxTask\", function() { return CxTask; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CxTaskControlBar\", function() { return CxTaskControlBar; });\n/* harmony import */ var _App_mooc_chaoxing_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @App/mooc/chaoxing/utils */ \"./src/mooc/chaoxing/utils.ts\");\n/* harmony import */ var _App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @App/internal/utils/utils */ \"./src/internal/utils/utils.ts\");\n/* harmony import */ var _App_internal_application__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @App/internal/application */ \"./src/internal/application.ts\");\n\r\n\r\n\r\nvar CxTask = /** @class */ (function () {\r\n    function CxTask(context, taskinfo) {\r\n        this.taskinfo = taskinfo;\r\n        this.context = context;\r\n    }\r\n    CxTask.prototype.Complete = function (callback) {\r\n        this.completeCallback = callback;\r\n    };\r\n    CxTask.prototype.Init = function () {\r\n        var _this = this;\r\n        return new Promise(function (resolve) {\r\n            _this.loadCallback && _this.loadCallback();\r\n            resolve();\r\n        });\r\n    };\r\n    CxTask.prototype.Load = function (callback) {\r\n        this.loadCallback = callback;\r\n    };\r\n    CxTask.prototype.Submit = function () {\r\n        return new Promise(function (resolve) {\r\n            resolve();\r\n        });\r\n    };\r\n    //TODO:停止\r\n    CxTask.prototype.Stop = function () {\r\n        return new Promise(function (resolve) {\r\n            resolve();\r\n        });\r\n    };\r\n    return CxTask;\r\n}());\r\n\r\nvar CxTaskControlBar = /** @class */ (function () {\r\n    function CxTaskControlBar(prev, task) {\r\n        this.task = task;\r\n        this.prev = document.createElement(\"div\");\r\n        prev.style.textAlign = \"center\";\r\n        prev.style.width = \"100%\";\r\n        prev.prepend(this.prev);\r\n        this.defaultBtn();\r\n    }\r\n    CxTaskControlBar.prototype.defaultBtn = function () {\r\n        var _this = this;\r\n        var startBtn = Object(_App_mooc_chaoxing_utils__WEBPACK_IMPORTED_MODULE_0__[\"CssBtn\"])(Object(_App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_1__[\"createBtn\"])(_App_internal_application__WEBPACK_IMPORTED_MODULE_2__[\"Application\"].App.config.auto ? \"暂停挂机\" : \"开始挂机\", \"点击开始自动挂机\", \"cx-btn\"));\r\n        startBtn.onclick = function () {\r\n            if (startBtn.innerText == '暂停挂机') {\r\n                _App_internal_application__WEBPACK_IMPORTED_MODULE_2__[\"Application\"].App.config.auto = false;\r\n                startBtn.innerText = \"开始挂机\";\r\n                startBtn.title = \"点击开始自动挂机\";\r\n                _App_internal_application__WEBPACK_IMPORTED_MODULE_2__[\"Application\"].App.log.Info(\"挂机停止了\");\r\n            }\r\n            else {\r\n                _App_internal_application__WEBPACK_IMPORTED_MODULE_2__[\"Application\"].App.config.auto = true;\r\n                startBtn.innerText = '暂停挂机';\r\n                startBtn.title = \"停止挂机,开始好好学习\";\r\n                _App_internal_application__WEBPACK_IMPORTED_MODULE_2__[\"Application\"].App.log.Info(\"挂机开始了\");\r\n                _this.task.Start();\r\n            }\r\n        };\r\n        this.prev.append(startBtn);\r\n    };\r\n    CxTaskControlBar.prototype.append = function (el) {\r\n        this.prev.append(el);\r\n    };\r\n    CxTaskControlBar.prototype.download = function () {\r\n        var _this = this;\r\n        if (!this.task.taskinfo.property.objectid) {\r\n            return;\r\n        }\r\n        var download = Object(_App_mooc_chaoxing_utils__WEBPACK_IMPORTED_MODULE_0__[\"CssBtn\"])(Object(_App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_1__[\"createBtn\"])(\"下载资源\", \"我要下载下来好好学习\", \"cx-btn\"));\r\n        download.style.background = \"#999999\";\r\n        download.onclick = function () {\r\n            window.open(\"http://d0.ananas.chaoxing.com/download/\" + _this.task.taskinfo.property.objectid);\r\n        };\r\n        return download;\r\n    };\r\n    return CxTaskControlBar;\r\n}());\r\n\r\n\n\n//# sourceURL=webpack:///./src/mooc/chaoxing/task.ts?");

/***/ }),

/***/ "./src/mooc/chaoxing/topic.ts":
/*!************************************!*\
  !*** ./src/mooc/chaoxing/topic.ts ***!
  \************************************/
/*! exports provided: CxTopicControlBar, TopicAdapter, CxCourseQueryQuestion, CxCourseTopic, ExamTopic, HomeworkTopic */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CxTopicControlBar\", function() { return CxTopicControlBar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TopicAdapter\", function() { return TopicAdapter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CxCourseQueryQuestion\", function() { return CxCourseQueryQuestion; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CxCourseTopic\", function() { return CxCourseTopic; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ExamTopic\", function() { return ExamTopic; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"HomeworkTopic\", function() { return HomeworkTopic; });\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ \"./src/mooc/chaoxing/utils.ts\");\n/* harmony import */ var _App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @App/internal/utils/utils */ \"./src/internal/utils/utils.ts\");\n/* harmony import */ var _App_internal_application__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @App/internal/application */ \"./src/internal/application.ts\");\n/* harmony import */ var _App_internal_app_question__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @App/internal/app/question */ \"./src/internal/app/question.ts\");\n/* harmony import */ var _question__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./question */ \"./src/mooc/chaoxing/question.ts\");\n/* harmony import */ var _App_internal_app_topic__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @App/internal/app/topic */ \"./src/internal/app/topic.ts\");\n/* harmony import */ var _App_mooc_chaoxing_task__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @App/mooc/chaoxing/task */ \"./src/mooc/chaoxing/task.ts\");\nvar __extends = (undefined && undefined.__extends) || (function () {\r\n    var extendStatics = function (d, b) {\r\n        extendStatics = Object.setPrototypeOf ||\r\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n        return extendStatics(d, b);\r\n    };\r\n    return function (d, b) {\r\n        extendStatics(d, b);\r\n        function __() { this.constructor = d; }\r\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n    };\r\n})();\r\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n};\r\nvar __generator = (undefined && undefined.__generator) || function (thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n};\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar CxTopicControlBar = /** @class */ (function (_super) {\r\n    __extends(CxTopicControlBar, _super);\r\n    function CxTopicControlBar() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    CxTopicControlBar.prototype.defaultBtn = function () {\r\n        var _this = this;\r\n        _super.prototype.defaultBtn.call(this);\r\n        var topic = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[\"CssBtn\"])(Object(_App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_1__[\"createBtn\"])(\"搜索题目\", \"点击搜索题目答案\", \"cx-btn\"));\r\n        topic.style.background = \"#3fae93\";\r\n        this.prev.append(topic);\r\n        // 绑定事件\r\n        topic.onclick = function () { return __awaiter(_this, void 0, void 0, function () {\r\n            return __generator(this, function (_a) {\r\n                topic.innerText = \"答案搜索中...\";\r\n                this.task.Start().then(function (ret) {\r\n                    ret = ret || \"搜索题目\";\r\n                    topic.innerText = Object(_App_internal_app_question__WEBPACK_IMPORTED_MODULE_3__[\"QuestionStatusString\"])(ret);\r\n                });\r\n                return [2 /*return*/];\r\n            });\r\n        }); };\r\n    };\r\n    return CxTopicControlBar;\r\n}(_App_mooc_chaoxing_task__WEBPACK_IMPORTED_MODULE_6__[\"CxTaskControlBar\"]));\r\n\r\nvar TopicAdapter = /** @class */ (function (_super) {\r\n    __extends(TopicAdapter, _super);\r\n    function TopicAdapter(context, taskinfo, topic) {\r\n        var _this = _super.call(this, context, taskinfo) || this;\r\n        _this.topic = topic;\r\n        return _this;\r\n    }\r\n    TopicAdapter.prototype.Init = function () {\r\n        var _this = this;\r\n        return new Promise(function (resolve) {\r\n            _App_internal_application__WEBPACK_IMPORTED_MODULE_2__[\"Application\"].App.log.Debug(\"题目信息\", _this.taskinfo);\r\n            _this.topic.Init();\r\n            _this.loadCallback && _this.loadCallback();\r\n            resolve();\r\n        });\r\n    };\r\n    TopicAdapter.prototype.Start = function () {\r\n        var _this = this;\r\n        return new Promise(function (resolve) { return __awaiter(_this, void 0, void 0, function () {\r\n            var ret;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        if (this.lock) {\r\n                            return [2 /*return*/, resolve(\"processing\")];\r\n                        }\r\n                        this.lock = true;\r\n                        return [4 /*yield*/, this.topic.QueryAnswer()];\r\n                    case 1:\r\n                        ret = _a.sent();\r\n                        this.status = ret;\r\n                        this.completeCallback && this.completeCallback();\r\n                        this.lock = false;\r\n                        return [2 /*return*/, resolve(ret)];\r\n                }\r\n            });\r\n        }); });\r\n    };\r\n    TopicAdapter.prototype.Submit = function () {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var _this = this;\r\n            return __generator(this, function (_a) {\r\n                return [2 /*return*/, new Promise(function (resolve) {\r\n                        if (_this.status == \"success\") {\r\n                            _this.topic.Submit().then(function () {\r\n                                resolve();\r\n                            });\r\n                        }\r\n                        else {\r\n                            resolve();\r\n                        }\r\n                    })];\r\n            });\r\n        });\r\n    };\r\n    return TopicAdapter;\r\n}(_App_mooc_chaoxing_task__WEBPACK_IMPORTED_MODULE_6__[\"CxTask\"]));\r\n\r\nvar CxCourseQueryQuestion = /** @class */ (function () {\r\n    function CxCourseQueryQuestion(content, createQuestion) {\r\n        this.context = content;\r\n        this.createQuestion = createQuestion;\r\n    }\r\n    CxCourseQueryQuestion.prototype.QueryQuestions = function () {\r\n        var _this = this;\r\n        var timu = this.context.document.querySelectorAll(\".TiMu\");\r\n        var ret = new Array();\r\n        timu.forEach(function (val) {\r\n            var question = _this.createQuestion(_this.context, val);\r\n            if (question == null) {\r\n                return;\r\n            }\r\n            ret.push(question);\r\n        });\r\n        return ret;\r\n    };\r\n    return CxCourseQueryQuestion;\r\n}());\r\n\r\nvar CxCourseTopic = /** @class */ (function (_super) {\r\n    __extends(CxCourseTopic, _super);\r\n    function CxCourseTopic(content, answer) {\r\n        var _this = _super.call(this, content, answer) || this;\r\n        answer.CheckCourse();\r\n        return _this;\r\n    }\r\n    CxCourseTopic.prototype.Init = function () {\r\n        var _this = this;\r\n        return new Promise(function (resolve) {\r\n            var timer = _this.context.setInterval(function () { return __awaiter(_this, void 0, void 0, function () {\r\n                return __generator(this, function (_a) {\r\n                    switch (_a.label) {\r\n                        case 0:\r\n                            if (!(this.context.document.readyState == \"complete\")) return [3 /*break*/, 3];\r\n                            this.context.clearInterval(timer);\r\n                            if (!(this.context.document.URL.indexOf(\"selectWorkQuestionYiPiYue\") > 0)) return [3 /*break*/, 2];\r\n                            return [4 /*yield*/, this.CollectAnswer()];\r\n                        case 1:\r\n                            _a.sent();\r\n                            _a.label = 2;\r\n                        case 2:\r\n                            resolve();\r\n                            _a.label = 3;\r\n                        case 3: return [2 /*return*/];\r\n                    }\r\n                });\r\n            }); }, 500);\r\n        });\r\n    };\r\n    CxCourseTopic.prototype.QueryAnswer = function () {\r\n        if (this.context.document.URL.indexOf(\"selectWorkQuestionYiPiYue\") > 0) {\r\n            return null;\r\n        }\r\n        return _super.prototype.QueryAnswer.call(this);\r\n    };\r\n    CxCourseTopic.prototype.Submit = function () {\r\n        var _this = this;\r\n        return new Promise(function (resolve) {\r\n            _App_internal_application__WEBPACK_IMPORTED_MODULE_2__[\"Application\"].App.log.Info(\"准备提交答案\");\r\n            var self = _this;\r\n            _this.context.setTimeout(function () {\r\n                var submit = _this.context.document.querySelector(\".Btn_blue_1\");\r\n                submit.click();\r\n                _this.context.setTimeout(function () {\r\n                    var prompt = _this.context.document.querySelector(\"#tipContent\").innerHTML;\r\n                    if (prompt.indexOf(\"未做完\") > 0) {\r\n                        alert(\"提示:\" + prompt);\r\n                        resolve(\"未做完\");\r\n                        _App_internal_application__WEBPACK_IMPORTED_MODULE_2__[\"Application\"].App.log.Fatal(\"有题目未完成,请手动操作.提示:\" + prompt);\r\n                        return;\r\n                    }\r\n                    var timer = _this.context.setInterval(function () {\r\n                        prompt = document.getElementById(\"validate\");\r\n                        if (prompt.style.display != 'none') {\r\n                            //等待验证码接管\r\n                            return;\r\n                        }\r\n                        _this.context.clearInterval(timer);\r\n                        _this.context.parent.document.querySelector(\"#frame_content\")\r\n                            .addEventListener(\"load\", function () {\r\n                            return __awaiter(this, void 0, void 0, function () {\r\n                                return __generator(this, function (_a) {\r\n                                    switch (_a.label) {\r\n                                        case 0:\r\n                                            if (!(this.contentWindow.document.URL.indexOf('selectWorkQuestionYiPiYue') > 0)) return [3 /*break*/, 2];\r\n                                            return [4 /*yield*/, self.CollectAnswer()];\r\n                                        case 1:\r\n                                            _a.sent();\r\n                                            resolve();\r\n                                            _a.label = 2;\r\n                                        case 2: return [2 /*return*/];\r\n                                    }\r\n                                });\r\n                            });\r\n                        });\r\n                        //确定提交\r\n                        var submit = _this.context.document.querySelector(\".bluebtn\");\r\n                        submit.click();\r\n                    }, 2000);\r\n                }, 2000);\r\n            }, 2000);\r\n        });\r\n    };\r\n    return CxCourseTopic;\r\n}(_App_internal_app_topic__WEBPACK_IMPORTED_MODULE_5__[\"Topic\"]));\r\n\r\nvar ExamTopic = /** @class */ (function (_super) {\r\n    __extends(ExamTopic, _super);\r\n    function ExamTopic() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    ExamTopic.prototype.QueryQuestions = function () {\r\n        var current = document.querySelector(\".current\");\r\n        var topicType = Object(_App_internal_app_question__WEBPACK_IMPORTED_MODULE_3__[\"SwitchTopicType\"])(current.parentElement.previousElementSibling.innerText);\r\n        var question = _question__WEBPACK_IMPORTED_MODULE_4__[\"CxQuestionFactory\"].CreateExamQuestion(window, topicType, document.querySelector(\".leftContent.TiMu\"));\r\n        var ret = new Array();\r\n        if (question == null) {\r\n            return ret;\r\n        }\r\n        ret.push(question);\r\n        return ret;\r\n    };\r\n    ExamTopic.prototype.Init = function () {\r\n        if (document.URL.indexOf(\"exam/test/reVersionPaperMarkContentNew\") > 0) {\r\n            this.CollectAnswer();\r\n        }\r\n        return null;\r\n    };\r\n    ExamTopic.prototype.Submit = function () {\r\n        return new Promise(function (resolve) {\r\n            resolve();\r\n        });\r\n    };\r\n    return ExamTopic;\r\n}(_App_internal_app_topic__WEBPACK_IMPORTED_MODULE_5__[\"Topic\"]));\r\n\r\nvar HomeworkTopic = /** @class */ (function (_super) {\r\n    __extends(HomeworkTopic, _super);\r\n    function HomeworkTopic(content, answer) {\r\n        return _super.call(this, content, answer) || this;\r\n    }\r\n    HomeworkTopic.prototype.Init = function () {\r\n        var _this = this;\r\n        return new Promise(function (resolve) {\r\n            if (!document.querySelector(\"input#workRelationId\")) {\r\n                _this.CollectAnswer();\r\n            }\r\n            resolve();\r\n        });\r\n    };\r\n    HomeworkTopic.prototype.Submit = function () {\r\n        return new Promise(function (resolve) {\r\n            resolve();\r\n        });\r\n    };\r\n    return HomeworkTopic;\r\n}(CxCourseTopic));\r\n\r\n\n\n//# sourceURL=webpack:///./src/mooc/chaoxing/topic.ts?");

/***/ }),

/***/ "./src/mooc/chaoxing/utils.ts":
/*!************************************!*\
  !*** ./src/mooc/chaoxing/utils.ts ***!
  \************************************/
/*! exports provided: CssBtn, CreateNoteLine */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CssBtn\", function() { return CssBtn; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CreateNoteLine\", function() { return CreateNoteLine; });\n/**\r\n * 美化按钮\r\n */\r\nfunction CssBtn(btn) {\r\n    btn.style.outline = 'none';\r\n    btn.style.border = '0';\r\n    btn.style.background = '#7d9d35';\r\n    btn.style.color = '#fff';\r\n    btn.style.borderRadius = '4px';\r\n    btn.style.padding = '2px 8px';\r\n    btn.style.cursor = 'pointer';\r\n    btn.style.fontSize = '12px';\r\n    btn.style.marginLeft = '4px';\r\n    btn.onmousemove = function () {\r\n        btn.style.boxShadow = '1px 1px 1px 1px #ccc';\r\n    };\r\n    btn.onmouseout = function () {\r\n        btn.style.boxShadow = '';\r\n    };\r\n    return btn;\r\n}\r\nfunction CreateNoteLine(text, label, append, after) {\r\n    var p = document.createElement(\"p\");\r\n    p.style.color = \"red\";\r\n    p.style.fontSize = \"14px\";\r\n    p.className = \"prompt-line-\" + label;\r\n    p.innerHTML = text;\r\n    if (append != undefined) {\r\n        append.append(p);\r\n    }\r\n    if (after != undefined) {\r\n        after.after(p);\r\n    }\r\n    return p;\r\n}\r\n\n\n//# sourceURL=webpack:///./src/mooc/chaoxing/utils.ts?");

/***/ }),

/***/ "./src/mooc/chaoxing/vcode.ts":
/*!************************************!*\
  !*** ./src/mooc/chaoxing/vcode.ts ***!
  \************************************/
/*! exports provided: CxCourseVCode */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CxCourseVCode\", function() { return CxCourseVCode; });\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ \"./src/mooc/chaoxing/utils.ts\");\n\r\nvar CxCourseVCode = /** @class */ (function () {\r\n    function CxCourseVCode() {\r\n    }\r\n    CxCourseVCode.prototype.Listen = function (callback) {\r\n        var imgel;\r\n        window.addEventListener(\"load\", function () {\r\n            if (imgel = document.getElementById(\"imgVerCode\")) {\r\n                imgel.addEventListener(\"load\", function () {\r\n                    if (imgel.getAttribute(\"src\").indexOf('?') < 0) {\r\n                        return;\r\n                    }\r\n                    var parent = document.querySelector('#sub').parentElement.parentElement;\r\n                    var old = parent.querySelector(\".prompt-line-dama\");\r\n                    if (old) {\r\n                        old.remove();\r\n                    }\r\n                    var notice = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[\"CreateNoteLine\"])('cxmooc自动打码中...', 'dama', parent);\r\n                    callback(new CxCourseFillVCode(imgel, notice));\r\n                });\r\n            }\r\n        });\r\n    };\r\n    return CxCourseVCode;\r\n}());\r\n\r\nvar CxCourseFillVCode = /** @class */ (function () {\r\n    function CxCourseFillVCode(img, notice) {\r\n        this.img = img;\r\n        this.notice = notice;\r\n    }\r\n    CxCourseFillVCode.prototype.GetImage = function () {\r\n        return this.img;\r\n    };\r\n    CxCourseFillVCode.prototype.Fill = function (status, msg, code) {\r\n        switch (status) {\r\n            case \"ok\": {\r\n                this.notice.innerText = \"cxmooc打码成功,准备提交\";\r\n                document.querySelector('input#code').value = code;\r\n                setTimeout(function () {\r\n                    document.querySelector('a#sub').click();\r\n                }, 3000);\r\n                break;\r\n            }\r\n            default: {\r\n                alert(msg);\r\n                this.notice.innerText = msg;\r\n            }\r\n        }\r\n    };\r\n    return CxCourseFillVCode;\r\n}());\r\n\n\n//# sourceURL=webpack:///./src/mooc/chaoxing/vcode.ts?");

/***/ }),

/***/ "./src/mooc/chaoxing/video.ts":
/*!************************************!*\
  !*** ./src/mooc/chaoxing/video.ts ***!
  \************************************/
/*! exports provided: CxVideoOptimization, CxVideoControlBar, Video */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CxVideoOptimization\", function() { return CxVideoOptimization; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CxVideoControlBar\", function() { return CxVideoControlBar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Video\", function() { return Video; });\n/* harmony import */ var _App_internal_utils_hook__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @App/internal/utils/hook */ \"./src/internal/utils/hook.ts\");\n/* harmony import */ var _App_internal_application__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @App/internal/application */ \"./src/internal/application.ts\");\n/* harmony import */ var _App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @App/internal/utils/utils */ \"./src/internal/utils/utils.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils */ \"./src/mooc/chaoxing/utils.ts\");\n/* harmony import */ var _App_mooc_chaoxing_task__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @App/mooc/chaoxing/task */ \"./src/mooc/chaoxing/task.ts\");\nvar __extends = (undefined && undefined.__extends) || (function () {\r\n    var extendStatics = function (d, b) {\r\n        extendStatics = Object.setPrototypeOf ||\r\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n        return extendStatics(d, b);\r\n    };\r\n    return function (d, b) {\r\n        extendStatics(d, b);\r\n        function __() { this.constructor = d; }\r\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n    };\r\n})();\r\n\r\n\r\n\r\n\r\n\r\n// 优化播放器\r\nvar CxVideoOptimization = /** @class */ (function () {\r\n    function CxVideoOptimization() {\r\n    }\r\n    CxVideoOptimization.prototype.Start = function () {\r\n        var _this = this;\r\n        //对播放器进行优化\r\n        window.addEventListener(\"load\", function () {\r\n            _App_internal_application__WEBPACK_IMPORTED_MODULE_1__[\"Application\"].App.config.super_mode && Object(_App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_2__[\"isPhone\"])() && (_App_internal_application__WEBPACK_IMPORTED_MODULE_1__[\"Application\"].GlobalContext.Ext.isChaoxing = true);\r\n        });\r\n        this.hook();\r\n        document.addEventListener(\"readystatechange\", function () {\r\n            _this.hook();\r\n        });\r\n        this.Api();\r\n    };\r\n    CxVideoOptimization.prototype.hook = function () {\r\n        if (document.readyState != \"interactive\") {\r\n            return;\r\n        }\r\n        _App_internal_application__WEBPACK_IMPORTED_MODULE_1__[\"Application\"].App.log.Debug(\"hook cx video\");\r\n        var dataHook = new _App_internal_utils_hook__WEBPACK_IMPORTED_MODULE_0__[\"Hook\"](\"decode\", _App_internal_application__WEBPACK_IMPORTED_MODULE_1__[\"Application\"].GlobalContext.Ext);\r\n        var self = this;\r\n        dataHook.Middleware(function (next) {\r\n            var args = [];\r\n            for (var _i = 1; _i < arguments.length; _i++) {\r\n                args[_i - 1] = arguments[_i];\r\n            }\r\n            var ret = next.apply(this, args);\r\n            if (_App_internal_application__WEBPACK_IMPORTED_MODULE_1__[\"Application\"].App.config.super_mode && ret.danmaku == 1) {\r\n                ret.danmaku = 0;\r\n            }\r\n            return ret;\r\n        });\r\n        window.frameElement.setAttribute(\"fastforward\", \"\");\r\n        window.frameElement.setAttribute(\"switchwindow\", \"\");\r\n        var paramHook = new _App_internal_utils_hook__WEBPACK_IMPORTED_MODULE_0__[\"Hook\"](\"params2VideoOpt\", _App_internal_application__WEBPACK_IMPORTED_MODULE_1__[\"Application\"].GlobalContext.ans.VideoJs.prototype);\r\n        paramHook.Middleware(function (next) {\r\n            var args = [];\r\n            for (var _i = 1; _i < arguments.length; _i++) {\r\n                args[_i - 1] = arguments[_i];\r\n            }\r\n            self.param = args[0];\r\n            var ret = next.apply(this, args);\r\n            ret.plugins.timelineObjects.url = self.param.rootPath + \"/richvideo/initdatawithviewer\";\r\n            var cdn = _App_internal_application__WEBPACK_IMPORTED_MODULE_1__[\"Application\"].App.config.video_cdn || localStorage[\"cdn\"] || \"公网1\";\r\n            for (var i = 0; i < ret.playlines.length; i++) {\r\n                if (ret.playlines[i].label == cdn) {\r\n                    var copy = ret.playlines[i];\r\n                    ret.playlines.splice(i, 1);\r\n                    ret.playlines.splice(0, 0, copy);\r\n                }\r\n            }\r\n            localStorage[\"cdn\"] = ret.playlines[0].label;\r\n            delete ret.plugins.studyControl;\r\n            return ret;\r\n        });\r\n        _App_internal_application__WEBPACK_IMPORTED_MODULE_1__[\"Application\"].GlobalContext.Ext.isSogou = false;\r\n        var errorHook = new _App_internal_utils_hook__WEBPACK_IMPORTED_MODULE_0__[\"Hook\"](\"afterRender\", _App_internal_application__WEBPACK_IMPORTED_MODULE_1__[\"Application\"].GlobalContext.ans.videojs.ErrorDisplay.prototype);\r\n        errorHook.Middleware(function (next) {\r\n            var _this = this;\r\n            var args = [];\r\n            for (var _i = 1; _i < arguments.length; _i++) {\r\n                args[_i - 1] = arguments[_i];\r\n            }\r\n            var ret = next.apply(this, args);\r\n            setTimeout(function () {\r\n                var nowCdn = _this.renderData.selectedIndex;\r\n                var playlines = _this.renderData.playlines;\r\n                var cdn = _App_internal_application__WEBPACK_IMPORTED_MODULE_1__[\"Application\"].App.config.video_cdn || localStorage[\"cdn\"] || \"公网1\";\r\n                for (var i = 0; i < playlines.length; i++) {\r\n                    if (i != nowCdn) {\r\n                        if (cdn == \"\") {\r\n                            localStorage[\"cdn\"] = playlines[i].label;\r\n                            return _this.onSelected(i);\r\n                        }\r\n                        else if (cdn == playlines[i].label) {\r\n                            localStorage[\"cdn\"] = playlines[i].label;\r\n                            return _this.onSelected(i);\r\n                        }\r\n                    }\r\n                }\r\n                var index = (nowCdn + 1) % playlines.length;\r\n                localStorage[\"cdn\"] = playlines[index].label;\r\n                return _this.onSelected(index);\r\n            }, 2000);\r\n            return ret;\r\n        });\r\n    };\r\n    /**\r\n     * 操作方法\r\n     */\r\n    CxVideoOptimization.prototype.Api = function () {\r\n        var _this = this;\r\n        _App_internal_application__WEBPACK_IMPORTED_MODULE_1__[\"Application\"].GlobalContext.sendTimePack = function (time, callback) {\r\n            if (time == NaN || time == undefined) {\r\n                time = parseInt(_this.param.duration);\r\n            }\r\n            var playTime = Math.round(time || (_this.param.duration - Object(_App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_2__[\"randNumber\"])(1, 2)));\r\n            var enc = '[' + _this.param.clazzId + '][' + _this.param.userid + '][' +\r\n                _this.param.jobid + '][' + _this.param.objectId + '][' +\r\n                (playTime * 1000).toString() + '][d_yHJ!$pdA~5][' + (_this.param.duration * 1000).toString() + '][0_' +\r\n                _this.param.duration + ']';\r\n            enc = _App_internal_application__WEBPACK_IMPORTED_MODULE_1__[\"Application\"].GlobalContext.md5(enc);\r\n            Object(_App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_2__[\"get\"])(_this.param.reportUrl + '/' + _this.param.dtoken + '?clipTime=0_' + _this.param.duration +\r\n                '&otherInfo=' + _this.param.otherInfo +\r\n                '&userid=' + _this.param.userid + '&rt=0.9&jobid=' + _this.param.jobid +\r\n                '&duration=' + _this.param.duration + '&dtype=Video&objectId=' + _this.param.objectId +\r\n                '&clazzId=' + _this.param.clazzId +\r\n                '&view=pc&playingTime=' + playTime + '&isdrag=4&enc=' + enc, function (data) {\r\n                var isPassed = JSON.parse(data);\r\n                callback(isPassed.isPassed);\r\n            });\r\n        };\r\n    };\r\n    return CxVideoOptimization;\r\n}());\r\n\r\nvar CxVideoControlBar = /** @class */ (function (_super) {\r\n    __extends(CxVideoControlBar, _super);\r\n    function CxVideoControlBar() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    CxVideoControlBar.prototype.defaultBtn = function () {\r\n        var _this = this;\r\n        _super.prototype.defaultBtn.call(this);\r\n        var pass = Object(_utils__WEBPACK_IMPORTED_MODULE_3__[\"CssBtn\"])(Object(_App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_2__[\"createBtn\"])(\"秒过视频\", \"秒过视频会被后台检测到\", \"cx-btn\"));\r\n        var downloadSubtitle = Object(_utils__WEBPACK_IMPORTED_MODULE_3__[\"CssBtn\"])(Object(_App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_2__[\"createBtn\"])(\"下载字幕\", \"我要下载字幕一同食用\"));\r\n        pass.style.background = \"#F57C00\";\r\n        downloadSubtitle.style.background = \"#638EE1\";\r\n        this.prev.append(pass, this.download(), downloadSubtitle);\r\n        pass.onclick = function () {\r\n            if (!Object(_App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_2__[\"protocolPrompt\"])(\"秒过视频会产生不良记录,是否继续?\", \"boom_no_prompt\")) {\r\n                return;\r\n            }\r\n            _this.task.sendEndTimePack(function (isPassed) {\r\n                if (isPassed) {\r\n                    alert('秒过成功,刷新后查看效果');\r\n                }\r\n                else {\r\n                    alert('操作失败,错误');\r\n                }\r\n            });\r\n        };\r\n        downloadSubtitle.onclick = function () {\r\n            _this.task.downloadSubtitle();\r\n        };\r\n    };\r\n    return CxVideoControlBar;\r\n}(_App_mooc_chaoxing_task__WEBPACK_IMPORTED_MODULE_4__[\"CxTaskControlBar\"]));\r\n\r\nvar Video = /** @class */ (function (_super) {\r\n    __extends(Video, _super);\r\n    function Video() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    Video.prototype.queryVideo = function () {\r\n        return this.context.document.getElementById(\"video_html5_api\");\r\n    };\r\n    Video.prototype.Init = function () {\r\n        var _this = this;\r\n        return new Promise(function (resolve) {\r\n            _App_internal_application__WEBPACK_IMPORTED_MODULE_1__[\"Application\"].App.log.Debug(\"播放器配置\", _this.taskinfo);\r\n            var timer = _this.context.setInterval(function () {\r\n                try {\r\n                    var video = _this.queryVideo();\r\n                    if (video == undefined) {\r\n                        if (_this.context.document.querySelector(\"#reader\").innerHTML.indexOf(\"您没有安装flashplayer\") >= 0) {\r\n                            _this.context.clearInterval(timer);\r\n                            _this.flash = true;\r\n                            _this.loadCallback && _this.loadCallback();\r\n                            resolve();\r\n                        }\r\n                        return;\r\n                    }\r\n                    _this.context.clearInterval(timer);\r\n                    _this.video = video;\r\n                    _this.initPlayer();\r\n                    _this.video.addEventListener(\"ended\", function () {\r\n                        _this.end = true;\r\n                        _this.context.clearInterval(_this.time);\r\n                        _this.completeCallback && _this.completeCallback();\r\n                    });\r\n                    _this.loadCallback && _this.loadCallback();\r\n                    resolve();\r\n                }\r\n                catch (error) {\r\n                }\r\n            }, 500);\r\n        });\r\n    };\r\n    Video.prototype.Start = function () {\r\n        var _this = this;\r\n        if (this.flash) {\r\n            return this.completeCallback && this.completeCallback();\r\n        }\r\n        //定时运行\r\n        this.time = this.context.setInterval(function () {\r\n            _App_internal_application__WEBPACK_IMPORTED_MODULE_1__[\"Application\"].App.config.auto && _this.video.paused && _this.video.play();\r\n        }, 5000);\r\n        //同时运行多视频的兼容,后续看看能不能hook\r\n        this.video.addEventListener(\"pause\", function () {\r\n            if (_this.video.currentTime <= _this.video.duration - 5) {\r\n                if (!_this.end) {\r\n                    _this.video.play();\r\n                }\r\n            }\r\n        });\r\n        this.video.play();\r\n    };\r\n    Video.prototype.initPlayer = function () {\r\n        this.playbackRate = this._playbackRate;\r\n        this.muted = this._muted;\r\n    };\r\n    /**\r\n     * 秒过\r\n     */\r\n    Video.prototype.sendEndTimePack = function (callback) {\r\n        this.sendTimePack(this.video.duration, callback);\r\n    };\r\n    Video.prototype.sendTimePack = function (time, callback) {\r\n        this.context.sendTimePack(time, function (isPassed) {\r\n            callback(isPassed);\r\n        });\r\n    };\r\n    Video.prototype.downloadSubtitle = function () {\r\n        Object(_App_internal_utils_utils__WEBPACK_IMPORTED_MODULE_2__[\"get\"])('/richvideo/subtitle?mid=' + this.taskinfo.property.mid + '&_dc=' +\r\n            Date.parse(new Date().toString()), function (data) {\r\n            var json = JSON.parse(data);\r\n            if (json.length <= 0) {\r\n                alert(\"没有字幕!\");\r\n            }\r\n            else {\r\n                for (var i = 0; i < json.length; i++) {\r\n                    var subtitleURL = json[i]['url'];\r\n                    window.open(subtitleURL);\r\n                }\r\n            }\r\n        });\r\n    };\r\n    Object.defineProperty(Video.prototype, \"playbackRate\", {\r\n        /**\r\n         * 设置播放速度\r\n         */\r\n        set: function (speed) {\r\n            this._playbackRate = speed;\r\n            if (this.video) {\r\n                this.video.playbackRate = speed;\r\n            }\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(Video.prototype, \"muted\", {\r\n        /**\r\n         * 设置播放静音\r\n         */\r\n        set: function (muted) {\r\n            this._muted = muted;\r\n            if (this.video) {\r\n                this.video.muted = muted;\r\n            }\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    return Video;\r\n}(_App_mooc_chaoxing_task__WEBPACK_IMPORTED_MODULE_4__[\"CxTask\"]));\r\n\r\n\n\n//# sourceURL=webpack:///./src/mooc/chaoxing/video.ts?");

/***/ }),

/***/ "./src/mooc/mooc.ts":
/*!**************************!*\
  !*** ./src/mooc/mooc.ts ***!
  \**************************/
/*! exports provided: mooc */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mooc\", function() { return mooc; });\n/* harmony import */ var _App_internal_application__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @App/internal/application */ \"./src/internal/application.ts\");\n\r\nvar mooc = /** @class */ (function () {\r\n    function mooc(moocFactory) {\r\n        this.moocFactory = moocFactory;\r\n    }\r\n    mooc.prototype.start = function () {\r\n        try {\r\n            var state = document.readyState;\r\n            _App_internal_application__WEBPACK_IMPORTED_MODULE_0__[\"Application\"].App.log.Debug(\"Start document state:\", state);\r\n            var mooc_1 = this.moocFactory.CreateMooc();\r\n            if (mooc_1 != null) {\r\n                mooc_1.Start();\r\n            }\r\n        }\r\n        catch (e) {\r\n            _App_internal_application__WEBPACK_IMPORTED_MODULE_0__[\"Application\"].App.log.Fatal(\"插件发生了一个致命错误:\", e);\r\n        }\r\n        //最小化警告\r\n        if (top == self) {\r\n            var isShow_1 = false;\r\n            document.addEventListener(\"visibilitychange\", function () {\r\n                if (document.hidden) {\r\n                    if (isShow_1) {\r\n                        return;\r\n                    }\r\n                    _App_internal_application__WEBPACK_IMPORTED_MODULE_0__[\"Application\"].App.log.Warn(\"请注意!最小化可能导致视频无法正常播放!如果实在不会用脚本推荐联系微信dfa8888dfa代刷允许切换窗口.\");\r\n                    isShow_1 = true;\r\n                }\r\n            });\r\n        }\r\n    };\r\n    return mooc;\r\n}());\r\n\r\n\n\n//# sourceURL=webpack:///./src/mooc/mooc.ts?");

/***/ }),

/***/ "./src/tampermonkey/cxmooc-pack.ts":
/*!*****************************************!*\
  !*** ./src/tampermonkey/cxmooc-pack.ts ***!
  \*****************************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _App_internal_utils_config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @App/internal/utils/config */ \"./src/internal/utils/config.ts\");\n/* harmony import */ var _App_internal_utils_log__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @App/internal/utils/log */ \"./src/internal/utils/log.ts\");\n/* harmony import */ var _App_internal_application__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @App/internal/application */ \"./src/internal/application.ts\");\n/* harmony import */ var _App_mooc_mooc__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @App/mooc/mooc */ \"./src/mooc/mooc.ts\");\n/* harmony import */ var _App_mooc_chaoxing_platform__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @App/mooc/chaoxing/platform */ \"./src/mooc/chaoxing/platform.ts\");\n\r\n\r\n\r\n\r\n\r\nvar logger;\r\nif (top == self) {\r\n    logger = new _App_internal_utils_log__WEBPACK_IMPORTED_MODULE_1__[\"PageLog\"]();\r\n}\r\nelse {\r\n    logger = new _App_internal_utils_log__WEBPACK_IMPORTED_MODULE_1__[\"ConsoleLog\"]();\r\n}\r\n_App_internal_application__WEBPACK_IMPORTED_MODULE_2__[\"Application\"].GlobalContext = window.unsafeWindow;\r\nvar component = new Map().\r\n    set(\"config\", new _App_internal_utils_config__WEBPACK_IMPORTED_MODULE_0__[\"ChromeConfigItems\"](Object(_App_internal_utils_config__WEBPACK_IMPORTED_MODULE_0__[\"NewFrontendGetConfig\"])())).\r\n    set(\"logger\", logger);\r\nvar app = new _App_internal_application__WEBPACK_IMPORTED_MODULE_2__[\"Application\"](_App_internal_application__WEBPACK_IMPORTED_MODULE_2__[\"Frontend\"], new _App_mooc_mooc__WEBPACK_IMPORTED_MODULE_3__[\"mooc\"](new _App_mooc_chaoxing_platform__WEBPACK_IMPORTED_MODULE_4__[\"CxPlatform\"]()), component);\r\napp.run();\r\n\n\n//# sourceURL=webpack:///./src/tampermonkey/cxmooc-pack.ts?");

/***/ }),

/***/ "./src/views/common.ts":
/*!*****************************!*\
  !*** ./src/views/common.ts ***!
  \*****************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("window.addEventListener(\"load\", function () {\r\n    var css = \"#cxtools {\\n    position: absolute;\\n    left: 250px;\\n    top: 2px;\\n    width: 200px;\\n    font-size: 0;\\n}\\n\\n.cx-btn {\\n    outline: none;\\n    border: 0;\\n    background: #7d9d35;\\n    color: #fff;\\n    border-radius: 4px;\\n    padding: 2px 8px;\\n    cursor: pointer;\\n    font-size: 12px;\\n    margin-left: 4px;\\n}\\n\\n.cx-btn:hover {\\n    box-shadow: 1px 1px 1px 1px #ccc;\\n}\\n\\n.zhs-tools-btn {\\n    color: #fff;\\n    background: #ff9d34;\\n    padding: 4px;\\n    display: inline-block;\\n    height: 24px;\\n    font-size: 14px;\\n    line-height: 24px;\\n    margin:0;\\n}\\n\\n.zhs-tools-btn:hover {\\n    background: #ff3838;\\n}\\n\\n.zhs-start-btn{\\n    background: #36ac36;\\n}\\n\\n.zhs-start-btn:hover{\\n    background: #3b8d3b;\\n}\\n\\n#zhs-ytbn {\\n    color: #fff;\\n    background: #e777ff;\\n}\\n\\n#zhs-ytbn:hover {\\n    background: #e7b7f1;\\n}\\n\\n.zhs-search-answer {\\n    border: 0;\\n    outline: none;\\n    padding: 4px;\\n}\\n\\n.zhs-search-answer:hover {\\n    opacity: .85;\\n}\\n\\n.mooc163-search{\\n    background-color: #60b900;\\n    display: block;\\n    margin: 0 auto;\\n}\\n\\n.tools-logger-panel{\\n    width: 360px;\\n    height: auto;\\n    max-height: 260px;\\n    color:#000;\\n    position: fixed;\\n    margin: 0 auto;\\n    display: block;\\n    font-size: 14px;\\n    border-radius: 4px;\\n    width: 340px;\\n    text-align: center;\\n    overflow: hidden;\\n    left:60px;\\n    z-index: 100000;\\n    top: 40px;\\n    background: rgba(256, 256, 256, 0.3);\\n    box-shadow: 0px 0px 5px #bbb;\\n    transition-property: opacity, background-color;\\n    transition: 200ms ease-in-out;\\n}\\n\\n.head {\\n    width: 100%;\\n    height: 25px;\\n}\\n\\n.head span{\\n    color:#000;\\n    float:left;\\n    font-weight: 550;\\n}\\n\\n.status {\\n    color: #67C23A;\\n    font-weight: 600;\\n}\\n\\n.tools-notice-content {\\n    width: 100%;\\n    height: 220px;\\n    border-top:0px;\\n    overflow-y: scroll;\\n    overflow-x: hidden;\\n}\\n\\n.tools-notice-content .log {\\n    height: 26px;\\n    width: auto;\\n    text-align: center;\\n    border: 1px solid #eee;\\n}\\n\\n.tools-notice-content .log p {\\n    margin: 0;\\n    color: #aaa;\\n    font-size: 11px;\\n    font-weight: 500;\\n    font-family: Arial, Helvetica, sans-serif;\\n    line-height: 26px;\\n}\\n\\n/* \\u6EDA\\u52A8\\u69FD */\\n::-webkit-scrollbar {\\n    width: 10px;\\n    height: 10px;\\n}\\n\\n::-webkit-scrollbar-track {\\n    border-radius: 3px;\\n    background: rgba(0, 0, 0, 0.06);\\n    -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.08);\\n}\\n\\n/* \\u6EDA\\u52A8\\u6761\\u6ED1\\u5757 */\\n::-webkit-scrollbar-thumb {\\n    border-radius: 3px;\\n    background: rgba(0, 0, 0, 0.12);\\n    -webkit-box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.2);\\n}\\n\\n/* \\u590D\\u9009\\u6846 */\\n.switch {\\n    margin: 2px auto;\\n    display: inline-flex;\\n    align-items: center;\\n    width: auto;\\n}\\n.checkbox-input {\\n    display: none\\n}\\n.checkbox {\\n    -webkit-transition: background-color 0.3s;\\n    transition: background-color 0.3s;\\n    background-color: #fff;\\n    border: 1px solid #d7d7d7;\\n    border-radius: 50px;\\n    width: 16px;\\n    height: 16px;\\n    vertical-align:middle;\\n    margin: 0 5px;\\n}\\n.checkbox-input:checked+.checkbox {\\n    background-color: #409EFF;\\n}\\n.checkbox-input:checked+.checkbox:after {\\n    // content: \\\"\\u221A\\\";\\n    display: inline-block;\\n    height: 100%;\\n    width: 100%;\\n    color: #fff;\\n    text-align: center;\\n    line-height: 16px;\\n    font-size: 12px;\\n    box-shadow: 0 0 4px #409EFF;\\n}\\n\\n.tools-logger-panel:hover,\\n.tools-logger-panel:focus-within {\\n    background: rgba(256, 256, 256, 0.7);\\n}\\n\\n.tools-logger-panel:active {\\n    background-color: #E5E5E5;\\n}\\n\\n.tools-logger-panel > .close {\\n    margin: 2px;\\n}\\n\\n\";\r\n    var style = document.createElement(\"style\");\r\n    style.innerHTML = css;\r\n    document.body.appendChild(style);\r\n});\r\n\n\n//# sourceURL=webpack:///./src/views/common.ts?");

/***/ })

/******/ });