// ==UserScript== // @name 超星万能助手(免费)|超星学习通|可调倍数|自动跳任务点|支持章节测验|支持考试|支持单选多选判断题|支持作业|支持图文题|支持听力题支持简答题|支持编程题|💯自动答题|▶️自动刷课|⚡一键操作|✨字体解密|📝最新题库自动更新)|支持AI搜题|🔔课桌通知 // @version 1.2.2 // @description 超星万能助手(免费)是一个功能强大的浏览器脚本,旨在帮助用户更高效地完成超星学习通平台上的学习任务。本项目基于开源技术,使用ChatGPT智能引擎进行答题,使用自有收录题库。一键安装,一键使用,内置详细使用教程,支持单选题,多选题,填空题,图文题,视频倍数,简答题,章节测验,课后测验,听力题,期末考试等,本脚本仅供个人研究学习使用,请勿用于非法用途,产生一切法律责任用户自行承担。具体的功能请查看脚本悬浮窗中的教程页面,蜜雪冰城官网题库 https://tk.mixuelo.cc/ 群聊2:623921548 官网题库 https://tk.mixuelo.cc/ // @author // @namespace https://github.com/MiXue-Lo/MiXue-ChaoXing // @license MIT // @supportURL https://github.com/MiXue-Lo/MiXue-ChaoXing/issues // @match *://*.chaoxing.com/* // @match *://*.edu.cn/* // @match *://*.nbdlib.cn/* // @match *://*.uooc.net.cn/* // @connect tk.mixuelo.cc // @connect tk.mixuelo.cc // @run-at document-end // @grant unsafeWindow // @grant GM_xmlhttpRequest // @grant GM_setValue // @grant GM_getValue // @grant GM_info // @grant GM_getResourceText // @grant GM_notification // @grant GM_registerMenuCommand // @grant GM_openInTab // @grant GM_addStyle // @icon https://mx.mixuelo.cc/index/pengzi/images/思考2.gif // @require https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery/3.6.0/jquery.min.js // @require https://cdn.jsdelivr.net/npm/sweetalert2@11.7.32 // @require https://code.jquery.com/jquery-3.7.1.js5@0.8.3/src/md5.min.js // @compatible chrome 80以上版本 // @compatible firefox 75以上版本 // @compatible edge 最新版本 // ==/UserScript== // 定义API基础URL,方便统一管理和修改 function _0x453c(){const _0x1f79a9=['6DrjuSx','https://','273245EBqZKW','3837888YajVbW','protocol','5523232tUwFYr','http://','50ZUKlia','1266186AkrWDL','2172141gJFBWQ','13237vrZOAk','1408bEIRJH','location','1224439XDFNnH','tk.mixuelo.cc/api.php','https:'];_0x453c=function(){return _0x1f79a9;};return _0x453c();}function _0x3b16(_0x24bd35,_0x3e3322){const _0x453c6d=_0x453c();return _0x3b16=function(_0x3b1672,_0x288d30){_0x3b1672=_0x3b1672-0x11a;let _0x198dfc=_0x453c6d[_0x3b1672];return _0x198dfc;},_0x3b16(_0x24bd35,_0x3e3322);}(function(_0x2b7577,_0x46d00f){const _0x5c48ef=_0x3b16,_0x5a90a7=_0x2b7577();while(!![]){try{const _0x453f4a=-parseInt(_0x5c48ef(0x125))/0x1+parseInt(_0x5c48ef(0x120))/0x2*(parseInt(_0x5c48ef(0x128))/0x3)+-parseInt(_0x5c48ef(0x11d))/0x4+-parseInt(_0x5c48ef(0x11a))/0x5+parseInt(_0x5c48ef(0x11b))/0x6+parseInt(_0x5c48ef(0x122))/0x7*(parseInt(_0x5c48ef(0x123))/0x8)+-parseInt(_0x5c48ef(0x121))/0x9*(-parseInt(_0x5c48ef(0x11f))/0xa);if(_0x453f4a===_0x46d00f)break;else _0x5a90a7['push'](_0x5a90a7['shift']());}catch(_0x1efe0e){_0x5a90a7['push'](_0x5a90a7['shift']());}}}(_0x453c,0xbfc5b));const API_BASE_URL=((()=>{const _0x5b6480=_0x3b16,_0x4f6153=_0x5b6480(0x126),_0x502b97=window[_0x5b6480(0x124)][_0x5b6480(0x11c)];return _0x502b97===_0x5b6480(0x127)?_0x5b6480(0x129)+_0x4f6153:_0x5b6480(0x11e)+_0x4f6153;})()); /* * 超星万能助手 * 版本: 1.0.0 * * 功能特色: * 1. 智能AI答题系统 - 使用先进算法匹配选项 * 2. 人工智能匹配 - 多种方式识别正确答案 * 3. 桌面通知系统 - 任务完成提醒 * 4. 自定义界面 - 可拖拽面板 * 5. 优化的字体解密功能 * 6. 支持大部分高校超星系统 * * 答题优先级说明: * 1. 系统首先尝试在题库中查找答案 * 2. 若题库中未找到答案,根据设置尝试使用AI回答 * 3. 若AI未开启或无法提供答案,会尝试随机答题(如已开启) * 4. 所有方法都失败时,将提示用户手动选择答案 * * 更新日志: * v1.0.0 - 首次发布 * * 项目主页: https://github.com/MiXue-Lo/MiXue-ChaoXing */ /*********************************自定义配置区******************************************************** */ var setting = { // 基础界面设置 showBox: 1, // 显示脚本浮窗,0为关闭,1为开启 darkMode: 0, // 深色模式,0为关闭,1为开启 panelPosition: 'right', // 控制面板位置,可选 'left', 'right' // 任务处理设置 task: 0, // 只处理任务点任务,0为关闭,1为开启 taskInterval: 3000, // 任务切换间隔时间,默认3秒 // 媒体处理设置 video: 1, // 处理视频,0为关闭,1为开启 audio: 1, // 处理音频,0为关闭,1为开启 rate: 2, // 视频/音频倍速,0为秒过,1为正常速率,最高16倍 muteMedia: 0, // 静音播放,0为关闭,1为开启 review: 0, // 复习模式,0为关闭,1为开启可以补挂视频时长 // 答题设置 work: 1, // 测验自动处理,0为关闭,1为开启 time: 1000, // 答题时间间隔,默认1s=1000ms randomTime: 0, // 随机答题时间,0为关闭,1为开启,在time基础上随机±500ms sub: 0, // 测验自动提交,0为关闭,1为开启 force: 0, // 测验强制提交,0为关闭,1为开启 share: 0, // 自动收录答案,0为关闭,1为开启 decrypt: 1, // 字体解密,0为关闭,1为开启 // 考试设置 examTurn: 0, // 考试自动跳转下一题,0为关闭,1为开启 examTurnTime: 0, // 考试自动跳转下一题随机间隔时间(3-7s)之间,0为关闭,1为开启 goodStudent: 1, // 好学生模式,不自动选择答案,仅提示答案 alterTitle: 1, // 修改题目,将AI回复的答案插入题目中 // AI设置 aiMode: 'smart', // AI模式: 'smart'-智能匹配, 'letter'-优先识别字母, 'content'-优先内容匹配 aiConfidence: 80, // AI匹配置信度,低于此值会提示可能不准确,范围0-100 // 通知设置 desktopNotify: 1, // 桌面通知,0为关闭,1为开启 soundNotify: 0, // 声音通知,0为关闭,1为开启 // 登录设置 autoLogin: 0, // 自动登录,0为关闭,1为开启 phone: '', // 登录手机号/超星号 password: '' // 登录密码 } // 高级设置 - 请勿修改除非您知道您在做什么 var _0xodH='jsjiami.com.v7';function _0x5833(_0x567e08,_0x79cf57){var _0x2f815c=_0x2f81();return _0x5833=function(_0x583324,_0x28489c){_0x583324=_0x583324-0xc6;var _0x4dd102=_0x2f815c[_0x583324];if(_0x5833['djdHoS']===undefined){var _0x3dfb2c=function(_0x13f6ad){var _0x55aee5='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x2e8e5d='',_0x4ca55a='';for(var _0x2a2134=0x0,_0x2f9848,_0x4d7c12,_0x500c47=0x0;_0x4d7c12=_0x13f6ad['charAt'](_0x500c47++);~_0x4d7c12&&(_0x2f9848=_0x2a2134%0x4?_0x2f9848*0x40+_0x4d7c12:_0x4d7c12,_0x2a2134++%0x4)?_0x2e8e5d+=String['fromCharCode'](0xff&_0x2f9848>>(-0x2*_0x2a2134&0x6)):0x0){_0x4d7c12=_0x55aee5['indexOf'](_0x4d7c12);}for(var _0x72b545=0x0,_0x187ed3=_0x2e8e5d['length'];_0x72b545<_0x187ed3;_0x72b545++){_0x4ca55a+='%'+('00'+_0x2e8e5d['charCodeAt'](_0x72b545)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4ca55a);};var _0x339ad1=function(_0x2f7e01,_0x9b1fbf){var _0x499489=[],_0x40a023=0x0,_0x134506,_0x185d32='';_0x2f7e01=_0x3dfb2c(_0x2f7e01);var _0x297994;for(_0x297994=0x0;_0x297994<0x100;_0x297994++){_0x499489[_0x297994]=_0x297994;}for(_0x297994=0x0;_0x297994<0x100;_0x297994++){_0x40a023=(_0x40a023+_0x499489[_0x297994]+_0x9b1fbf['charCodeAt'](_0x297994%_0x9b1fbf['length']))%0x100,_0x134506=_0x499489[_0x297994],_0x499489[_0x297994]=_0x499489[_0x40a023],_0x499489[_0x40a023]=_0x134506;}_0x297994=0x0,_0x40a023=0x0;for(var _0x3b9f20=0x0;_0x3b9f20<_0x2f7e01['length'];_0x3b9f20++){_0x297994=(_0x297994+0x1)%0x100,_0x40a023=(_0x40a023+_0x499489[_0x297994])%0x100,_0x134506=_0x499489[_0x297994],_0x499489[_0x297994]=_0x499489[_0x40a023],_0x499489[_0x40a023]=_0x134506,_0x185d32+=String['fromCharCode'](_0x2f7e01['charCodeAt'](_0x3b9f20)^_0x499489[(_0x499489[_0x297994]+_0x499489[_0x40a023])%0x100]);}return _0x185d32;};_0x5833['tNRxqV']=_0x339ad1,_0x567e08=arguments,_0x5833['djdHoS']=!![];}var _0x56fd46=_0x2f815c[0x0],_0x18e3ad=_0x583324+_0x56fd46,_0x1a2305=_0x567e08[_0x18e3ad];return!_0x1a2305?(_0x5833['OFeZny']===undefined&&(_0x5833['OFeZny']=!![]),_0x4dd102=_0x5833['tNRxqV'](_0x4dd102,_0x28489c),_0x567e08[_0x18e3ad]=_0x4dd102):_0x4dd102=_0x1a2305,_0x4dd102;},_0x5833(_0x567e08,_0x79cf57);}var _0x5fd85e=_0x5833;(function(_0x85345d,_0x357956,_0x4c244e,_0x4cb7f1,_0x23ccfa,_0x2b01b0,_0x1a2ceb){return _0x85345d=_0x85345d>>0x8,_0x2b01b0='hs',_0x1a2ceb='hs',function(_0x491964,_0x1e74ac,_0x517db6,_0x2414df,_0x221fd6){var _0xfe1506=_0x5833;_0x2414df='tfi',_0x2b01b0=_0x2414df+_0x2b01b0,_0x221fd6='up',_0x1a2ceb+=_0x221fd6,_0x2b01b0=_0x517db6(_0x2b01b0),_0x1a2ceb=_0x517db6(_0x1a2ceb),_0x517db6=0x0;var _0x11bca2=_0x491964();while(!![]&&--_0x4cb7f1+_0x1e74ac){try{_0x2414df=parseInt(_0xfe1506(0xd1,'6mnv'))/0x1*(-parseInt(_0xfe1506(0xcc,'u@nL'))/0x2)+parseInt(_0xfe1506(0xcd,'6mnv'))/0x3+-parseInt(_0xfe1506(0xce,'ns)u'))/0x4+parseInt(_0xfe1506(0xcf,'BsZY'))/0x5+-parseInt(_0xfe1506(0xd3,'7eRR'))/0x6+parseInt(_0xfe1506(0xc7,'DD%*'))/0x7*(-parseInt(_0xfe1506(0xc8,'Apqk'))/0x8)+-parseInt(_0xfe1506(0xca,'els@'))/0x9;}catch(_0x50059b){_0x2414df=_0x517db6;}finally{_0x221fd6=_0x11bca2[_0x2b01b0]();if(_0x85345d<=_0x4cb7f1)_0x517db6?_0x23ccfa?_0x2414df=_0x221fd6:_0x23ccfa=_0x221fd6:_0x517db6=_0x221fd6;else{if(_0x517db6==_0x23ccfa['replace'](/[PfVurCQYJAFwIBUGpyD=]/g,'')){if(_0x2414df===_0x1e74ac){_0x11bca2['un'+_0x2b01b0](_0x221fd6);break;}_0x11bca2[_0x1a2ceb](_0x221fd6);}}}}}(_0x4c244e,_0x357956,function(_0xa50a69,_0x204741,_0x1d830e,_0x3b7524,_0x4fc755,_0x1e265b,_0x3d58a1){return _0x204741='\x73\x70\x6c\x69\x74',_0xa50a69=arguments[0x0],_0xa50a69=_0xa50a69[_0x204741](''),_0x1d830e='\x72\x65\x76\x65\x72\x73\x65',_0xa50a69=_0xa50a69[_0x1d830e]('\x76'),_0x3b7524='\x6a\x6f\x69\x6e',(0x1b44a5,_0xa50a69[_0x3b7524](''));});}(0xc500,0x8f4d2,_0x2f81,0xc7),_0x2f81)&&(_0xodH=0x4357);function _0x2f81(){var _0x1995f8=(function(){return[_0xodH,'pPyjCYswjQiIUarFmyPiA.AcfoQmDVG.vpBu7Jru==','WPldOmofBCopCCkquw0sW5vJba','qWruWPdcNg3cS1LJW6dcTCkd','Aae5bqLOq3RcSWZcVa0','WPxcGLXXW6lcQSk8za'].concat((function(){return['W6JcM046WRJcPmkbuWOY','WPH8WO/dVvRdKKX6WPmODG','rmk9W4P3W6KfWO0gkCkOmuxcHG','W47cGGRdQ8oXWOpdJ8k/fJrRWR0','nKpcUhDOWQTPxq','x3uFWQm/x8kHyKxdHgvJaG'].concat((function(){return['W6eAWQhdSsVcSCoQW4HuWQxdQSo0','W5BcVmo8WQ7cSSo7W6G/WPWfWRDHW4G','WQRdN8k5WRrxWReNW5NcGwFcQmo1ACkBWQtcTmkYWPCUuqWmW4LdimkgWRC','w38FWQa8bmoKtxNdGe8'];}()));}()));}());_0x2f81=function(){return _0x1995f8;};return _0x2f81();};var advancedSetting={'apiEndpoint':_0x5fd85e(0xd0,'CR84'),'apiTimeout':0x2710,'apiRetry':0x2,'debugMode':0x0};var version_ = 'jsjiami.com.v7'; var _0xodX='jsjiami.com.v7';var _0x5824b3=_0x4148;function _0x4148(_0x3bc3ae,_0x1e8dbe){var _0x400e81=_0x400e();return _0x4148=function(_0x414824,_0xfaccf6){_0x414824=_0x414824-0x65;var _0x8d2299=_0x400e81[_0x414824];if(_0x4148['RvImeh']===undefined){var _0x546eb3=function(_0x33d22a){var _0x1bd165='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x3cd981='',_0x417086='';for(var _0x409c89=0x0,_0xfdd73d,_0x4cf3e0,_0x4dba69=0x0;_0x4cf3e0=_0x33d22a['charAt'](_0x4dba69++);~_0x4cf3e0&&(_0xfdd73d=_0x409c89%0x4?_0xfdd73d*0x40+_0x4cf3e0:_0x4cf3e0,_0x409c89++%0x4)?_0x3cd981+=String['fromCharCode'](0xff&_0xfdd73d>>(-0x2*_0x409c89&0x6)):0x0){_0x4cf3e0=_0x1bd165['indexOf'](_0x4cf3e0);}for(var _0x251591=0x0,_0x3bbc48=_0x3cd981['length'];_0x251591<_0x3bbc48;_0x251591++){_0x417086+='%'+('00'+_0x3cd981['charCodeAt'](_0x251591)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x417086);};var _0x1bebe9=function(_0x4dc64e,_0x30e576){var _0x376061=[],_0x15681c=0x0,_0x3e3245,_0x4a068d='';_0x4dc64e=_0x546eb3(_0x4dc64e);var _0x1baefb;for(_0x1baefb=0x0;_0x1baefb<0x100;_0x1baefb++){_0x376061[_0x1baefb]=_0x1baefb;}for(_0x1baefb=0x0;_0x1baefb<0x100;_0x1baefb++){_0x15681c=(_0x15681c+_0x376061[_0x1baefb]+_0x30e576['charCodeAt'](_0x1baefb%_0x30e576['length']))%0x100,_0x3e3245=_0x376061[_0x1baefb],_0x376061[_0x1baefb]=_0x376061[_0x15681c],_0x376061[_0x15681c]=_0x3e3245;}_0x1baefb=0x0,_0x15681c=0x0;for(var _0x5c44f4=0x0;_0x5c44f4<_0x4dc64e['length'];_0x5c44f4++){_0x1baefb=(_0x1baefb+0x1)%0x100,_0x15681c=(_0x15681c+_0x376061[_0x1baefb])%0x100,_0x3e3245=_0x376061[_0x1baefb],_0x376061[_0x1baefb]=_0x376061[_0x15681c],_0x376061[_0x15681c]=_0x3e3245,_0x4a068d+=String['fromCharCode'](_0x4dc64e['charCodeAt'](_0x5c44f4)^_0x376061[(_0x376061[_0x1baefb]+_0x376061[_0x15681c])%0x100]);}return _0x4a068d;};_0x4148['yeBStF']=_0x1bebe9,_0x3bc3ae=arguments,_0x4148['RvImeh']=!![];}var _0x144b68=_0x400e81[0x0],_0x485bcf=_0x414824+_0x144b68,_0x34fef0=_0x3bc3ae[_0x485bcf];return!_0x34fef0?(_0x4148['CkEjmd']===undefined&&(_0x4148['CkEjmd']=!![]),_0x8d2299=_0x4148['yeBStF'](_0x8d2299,_0xfaccf6),_0x3bc3ae[_0x485bcf]=_0x8d2299):_0x8d2299=_0x34fef0,_0x8d2299;},_0x4148(_0x3bc3ae,_0x1e8dbe);}(function(_0x1969fe,_0x1893fd,_0xb41563,_0x14f496,_0x24116a,_0x20966c,_0x3f25f1){return _0x1969fe=_0x1969fe>>0x1,_0x20966c='hs',_0x3f25f1='hs',function(_0x3df31a,_0x4c60da,_0xedb52b,_0x363d3e,_0x1746db){var _0xfff45f=_0x4148;_0x363d3e='tfi',_0x20966c=_0x363d3e+_0x20966c,_0x1746db='up',_0x3f25f1+=_0x1746db,_0x20966c=_0xedb52b(_0x20966c),_0x3f25f1=_0xedb52b(_0x3f25f1),_0xedb52b=0x0;var _0x82c5de=_0x3df31a();while(!![]&&--_0x14f496+_0x4c60da){try{_0x363d3e=parseInt(_0xfff45f(0x73,'z@en'))/0x1*(parseInt(_0xfff45f(0x79,'@fVQ'))/0x2)+-parseInt(_0xfff45f(0x69,'BqU8'))/0x3+parseInt(_0xfff45f(0x77,']o80'))/0x4*(parseInt(_0xfff45f(0x65,'Fj]T'))/0x5)+-parseInt(_0xfff45f(0x68,'aCUs'))/0x6*(-parseInt(_0xfff45f(0x74,'3mQv'))/0x7)+-parseInt(_0xfff45f(0x6c,'(yIj'))/0x8+parseInt(_0xfff45f(0x70,'Fj]T'))/0x9*(-parseInt(_0xfff45f(0x71,'2if%'))/0xa)+parseInt(_0xfff45f(0x78,'vS*o'))/0xb;}catch(_0x590fc2){_0x363d3e=_0xedb52b;}finally{_0x1746db=_0x82c5de[_0x20966c]();if(_0x1969fe<=_0x14f496)_0xedb52b?_0x24116a?_0x363d3e=_0x1746db:_0x24116a=_0x1746db:_0xedb52b=_0x1746db;else{if(_0xedb52b==_0x24116a['replace'](/[EwUMeFJfKupNYDTxBVdI=]/g,'')){if(_0x363d3e===_0x4c60da){_0x82c5de['un'+_0x20966c](_0x1746db);break;}_0x82c5de[_0x3f25f1](_0x1746db);}}}}}(_0xb41563,_0x1893fd,function(_0x4bcfa0,_0x178304,_0x3b6b69,_0x1769d0,_0x39aad5,_0x17a2a7,_0x5da65b){return _0x178304='\x73\x70\x6c\x69\x74',_0x4bcfa0=arguments[0x0],_0x4bcfa0=_0x4bcfa0[_0x178304](''),_0x3b6b69='\x72\x65\x76\x65\x72\x73\x65',_0x4bcfa0=_0x4bcfa0[_0x3b6b69]('\x76'),_0x1769d0='\x6a\x6f\x69\x6e',(0x1b44a6,_0x4bcfa0[_0x1769d0](''));});}(0x18e,0x58bad,_0x400e,0xc9),_0x400e)&&(_0xodX=0xc9);var _w=unsafeWindow,_l=location,_d=_w[_0x5824b3(0x6a,'vS*o')],$=_w[_0x5824b3(0x6f,'2if%')]||top[_0x5824b3(0x66,'^#tp')],md5=md5||window[_0x5824b3(0x75,'5#Vn')],UE=_w['UE'],Swal=Swal||window['Swal'],_host='',_host=_0x5824b3(0x6e,'NYnR'),_mlist,_defaults,_domList,$subBtn,$saveBtn,$frame_c,reportUrlChange=0x0;function _0x400e(){var _0x1cd4b7=(function(){return[_0xodX,'eIDjdsupUjViTaJImxDi.xNUcFwoxfm.EYKv7MDB==','W4BdUstdUmkoqmo7pa','W7GBneyiWRZdGSkjWOmx','WPddRY9+WPKNwvZcO1JdS3JcVdu','aayNWPRcLX3cS3lcIW','W7NdICkcW5/cGSk2o0H3','WQfIig5fAmoDW7WSra','WPyMWRRcKmkskW'].concat((function(){return['pSoMWPpdN8oqee7dPfeCW43dMutdMa','W5GUlCoQWPDvWOhdIb8Ncmo6','lmoGWQFcO8kBmgRdG8ksWOjTWR0','W4xcTh07W416ab4','W4ldUhBdRmkSz8oqegm','W6riAqzlWOC0WQ/cLmkfWOpdPSoh','m8kPsmo5WPRdJmoor2LWW5JcQW','W4hcISkmxWNdGSokkSo7wmocWPvAWPPeW6tcJLRcSLK','WRiKWOfrWP1V'].concat((function(){return['WQjMiwSwn8o0W64rxtau','W6LnW4rZWOrWWOdcJN0','W51Qw8oeW44zWPLrbmksW53cM8kw','W77dGCkcW4hcPmkZggfw','WRv9WPFcK8kykMXP','s8oOEq'];}()));}()));}());_0x400e=function(){return _0x1cd4b7;};return _0x400e();};var version_ = 'jsjiami.com.v7'; // \u6dfb\u52a0\u6837\u5f0f const style = document.createElement('style'); style.id = 'gpt-box-styles'; function _0x2e24(_0x483576,_0x5346c6){var _0x3d087f=_0x3d08();return _0x2e24=function(_0x2e24c3,_0x4b29f5){_0x2e24c3=_0x2e24c3-0xd4;var _0x2614ff=_0x3d087f[_0x2e24c3];return _0x2614ff;},_0x2e24(_0x483576,_0x5346c6);}var _0x4daeb8=_0x2e24;(function(_0x4c5611,_0x2cfe28){var _0xdd6b19=_0x2e24,_0x4429fd=_0x4c5611();while(!![]){try{var _0x3596c1=-parseInt(_0xdd6b19(0xd4))/0x1+-parseInt(_0xdd6b19(0xdc))/0x2+-parseInt(_0xdd6b19(0xd8))/0x3*(parseInt(_0xdd6b19(0xde))/0x4)+parseInt(_0xdd6b19(0xd5))/0x5*(-parseInt(_0xdd6b19(0xda))/0x6)+-parseInt(_0xdd6b19(0xdb))/0x7+-parseInt(_0xdd6b19(0xd9))/0x8*(-parseInt(_0xdd6b19(0xdd))/0x9)+parseInt(_0xdd6b19(0xd6))/0xa;if(_0x3596c1===_0x2cfe28)break;else _0x4429fd['push'](_0x4429fd['shift']());}catch(_0x1e80ba){_0x4429fd['push'](_0x4429fd['shift']());}}}(_0x3d08,0x83505),style['textContent']=_0x4daeb8(0xd7));function _0x3d08(){var _0x356d05=['41593940SmAxuA','\x0a\x20\x20\x20\x20.gpt-box\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20position:\x20fixed\x20!important;\x0a\x20\x20\x20\x20\x20\x20\x20\x20top:\x2080px\x20!important;\x20\x20/*\x20调整为距离顶部更远,避免遮挡内容\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20right:\x2010px\x20!important;\x0a\x20\x20\x20\x20\x20\x20\x20\x20width:\x20300px\x20!important;\x0a\x20\x20\x20\x20\x20\x20\x20\x20max-height:\x20400px\x20!important;\x0a\x20\x20\x20\x20\x20\x20\x20\x20overflow-y:\x20auto\x20!important;\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20rgba(255,\x20255,\x20255,\x200.95)\x20!important;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2010px\x20!important;\x0a\x20\x20\x20\x20\x20\x20\x20\x20box-shadow:\x200\x204px\x2012px\x20rgba(0,\x200,\x200,\x200.15)\x20!important;\x0a\x20\x20\x20\x20\x20\x20\x20\x20z-index:\x202147483647\x20!important;\x20/*\x20最大可能的z-index值\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2015px\x20!important;\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-family:\x20\x22Microsoft\x20YaHei\x22,\x20sans-serif\x20!important;\x0a\x20\x20\x20\x20\x20\x20\x20\x20transition:\x20all\x200.3s\x20ease\x20!important;\x0a\x20\x20\x20\x20\x20\x20\x20\x20animation:\x20slideIn\x200.5s\x20ease\x20!important;\x0a\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20move\x20!important;\x20/*\x20添加移动光标\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20transform:\x20none\x20!important;\x0a\x20\x20\x20\x20\x20\x20\x20\x20margin:\x200\x20!important;\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20/*\x20拖动条样式\x20*/\x0a\x20\x20\x20\x20.gpt-box-header\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20move;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x205px\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20margin-bottom:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-bottom:\x201px\x20solid\x20#eee;\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20justify-content:\x20space-between;\x0a\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20.gpt-box-title\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20bold;\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#FC3A72;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20.gpt-box-actions\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20gap:\x208px;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20.gpt-box-actions\x20button\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20none;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border:\x20none;\x0a\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#888;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x202px\x205px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x203px;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20.gpt-box-actions\x20button:hover\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#f5f5f5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#FC3A72;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20@keyframes\x20slideIn\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20from\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20transform:\x20translateX(30px);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20to\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20transform:\x20translateX(0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20.gpt-box:hover\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20box-shadow:\x200\x206px\x2016px\x20rgba(0,\x200,\x200,\x200.2);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20.gpt-box::-webkit-scrollbar\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20width:\x206px;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20.gpt-box::-webkit-scrollbar-thumb\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#FC3A72;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x203px;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20.gpt-message\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20margin:\x208px\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20padding:\x208px\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x206px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2014px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20line-height:\x201.5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20word-break:\x20break-all;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20.gpt-message.pink\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#fce4ec;\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#e91e63;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-left:\x204px\x20solid\x20#e91e63;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20.gpt-message.orange\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#fff3e0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#ff9800;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-left:\x204px\x20solid\x20#ff9800;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20.gpt-message.red\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#ffebee;\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#f44336;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-left:\x204px\x20solid\x20#f44336;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20.gpt-message.purple\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#f3e5f5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#9c27b0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-left:\x204px\x20solid\x20#9c27b0;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20.gpt-message.green\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#e8f5e9;\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#4caf50;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-left:\x204px\x20solid\x20#4caf50;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20.gpt-message.blue\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#e3f2fd;\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#2196f3;\x0a\x20\x20\x20\x20\x20\x20\x20\x20border-left:\x204px\x20solid\x20#2196f3;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20.gpt-messages-container\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20max-height:\x20350px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20overflow-y:\x20auto;\x0a\x20\x20\x20\x20}\x0a','2953593oCvNHM','288zsOcQQ','1830OaGYoA','5912249RnIjLH','1476278wNZpGc','72333cpwVrs','4NScMJo','786658MWlmxa','9130aTKzle'];_0x3d08=function(){return _0x356d05;};return _0x3d08();} document.head.appendChild(style); // \u4fee\u6539logger\u51fd\u6570 function logger(str, color = 'black') { // \u786e\u5b9a\u8981\u6dfb\u52a0\u5230\u54ea\u4e2a\u6587\u6863\u4e2d let targetDocument = document; let targetBody = document.body; try { // \u5c1d\u8bd5\u8bbf\u95ee\u9876\u5c42\u6587\u6863 if (window !== window.top && window.top.document) { targetDocument = window.top.document; targetBody = targetDocument.body; // \u5982\u679c\u5728iframe\u4e2d\uff0c\u9700\u8981\u786e\u4fdd\u9876\u5c42\u6587\u6863\u6709\u6211\u4eec\u7684\u6837\u5f0f if (!targetDocument.querySelector('style#gpt-box-styles')) { const topStyle = targetDocument.createElement('style'); topStyle.id = 'gpt-box-styles'; topStyle.textContent = style.textContent; targetDocument.head.appendChild(topStyle); } } } catch (e) { console.error('\u65e0\u6cd5\u8bbf\u95ee\u7236\u6587\u6863\uff0c\u4f7f\u7528\u5f53\u524d\u6587\u6863'); } // \u67e5\u627e\u6216\u521b\u5efa\u65e5\u5fd7\u6846 let box = targetDocument.querySelector('.gpt-box'); if (!box) { // \u521b\u5efa\u65e5\u5fd7\u6846 box = targetDocument.createElement('div'); box.className = 'gpt-box'; // \u6dfb\u52a0\u5185\u8054\u6837\u5f0f\uff0c\u786e\u4fdd\u6837\u5f0f\u4e0d\u88ab\u8986\u76d6 const boxStyle = ` position: fixed !important; top: 80px !important; right: 10px !important; left: auto !important; bottom: auto !important; z-index: 2147483647 !important; transform: none !important; margin: 0 !important; padding: 0 !important; background: rgba(255, 255, 255, 0.98) !important; border-radius: 10px !important; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3) !important; width: 320px !important; height: auto !important; max-height: 500px !important; overflow: hidden !important; font-family: "Microsoft YaHei", sans-serif !important; cursor: move !important; user-select: none !important; transition: box-shadow 0.3s ease !important; border: 1px solid rgba(0, 0, 0, 0.1) !important; display: block !important; `; // \u4f7f\u7528setAttribute\u8bbe\u7f6estyle\uff0c\u786e\u4fdd\u6240\u6709\u6837\u5f0f\u90fd\u88ab\u5e94\u7528 box.setAttribute('style', boxStyle); // \u518d\u6b21\u4f7f\u7528style.setProperty\u786e\u4fdd\u5173\u952e\u6837\u5f0f\u4e0d\u88ab\u8986\u76d6 box.style.setProperty('position', 'fixed', 'important'); box.style.setProperty('z-index', '2147483647', 'important'); box.style.setProperty('top', '80px', 'important'); box.style.setProperty('right', '10px', 'important'); box.style.setProperty('left', 'auto', 'important'); box.style.setProperty('display', 'block', 'important'); // \u521b\u5efa\u6807\u9898\u680f - \u4f7f\u7528\u66f4\u73b0\u4ee3\u7684\u8bbe\u8ba1 const header = targetDocument.createElement('div'); header.className = 'gpt-box-header'; header.style.cssText = ` display: flex !important; justify-content: space-between !important; align-items: center !important; padding: 10px 15px !important; background: linear-gradient(135deg, #56cabf 0%, #4a90e2 100%) !important; color: white !important; border-radius: 10px 10px 0 0 !important; cursor: move !important; user-select: none !important; `; const title = targetDocument.createElement('div'); title.className = 'gpt-box-title'; title.textContent = '\u8d85\u661f\u4e07\u80fd\u52a9\u624b\uff08\u514d\u8d39\uff09'; title.style.cssText = ` font-weight: bold !important; font-size: 16px !important; color: white !important; display: flex !important; align-items: center !important; `; // \u6dfb\u52a0\u5c0f\u56fe\u6807 const icon = targetDocument.createElement('span'); icon.innerHTML = '📝'; icon.style.cssText = ` margin-right: 8px !important; font-size: 18px !important; `; title.prepend(icon); const actions = targetDocument.createElement('div'); actions.className = 'gpt-box-actions'; actions.style.cssText = ` display: flex !important; gap: 8px !important; `; const clearBtn = targetDocument.createElement('button'); clearBtn.textContent = '\u6e05\u7a7a'; clearBtn.title = '\u6e05\u7a7a\u65e5\u5fd7'; clearBtn.style.cssText = ` background: rgba(255, 255, 255, 0.2) !important; border: none !important; border-radius: 4px !important; padding: 3px 8px !important; color: white !important; cursor: pointer !important; font-size: 12px !important; transition: background 0.3s !important; `; clearBtn.onmouseover = function () { this.style.background = 'rgba(255, 255, 255, 0.3) !important'; }; clearBtn.onmouseout = function () { this.style.background = 'rgba(255, 255, 255, 0.2) !important'; }; clearBtn.onclick = function (e) { e.stopPropagation(); // \u963b\u6b62\u4e8b\u4ef6\u5192\u6ce1 const container = box.querySelector('.gpt-messages-container'); if (container) { container.innerHTML = ''; logger('\u65e5\u5fd7\u5df2\u6e05\u7a7a', 'green'); } }; const minBtn = targetDocument.createElement('button'); minBtn.textContent = '\u9690\u85cf'; minBtn.title = '\u9690\u85cf\u9762\u677f'; minBtn.style.cssText = ` background: rgba(255, 255, 255, 0.2) !important; border: none !important; border-radius: 4px !important; padding: 3px 8px !important; color: white !important; cursor: pointer !important; font-size: 12px !important; transition: background 0.3s !important; `; minBtn.onmouseover = function () { this.style.background = 'rgba(255, 255, 255, 0.3) !important'; }; minBtn.onmouseout = function () { this.style.background = 'rgba(255, 255, 255, 0.2) !important'; }; minBtn.onclick = function (e) { e.stopPropagation(); // \u963b\u6b62\u4e8b\u4ef6\u5192\u6ce1 box.style.display = 'none'; localStorage.setItem('GPTJsSetting.hideGptBox', 'true'); }; actions.appendChild(clearBtn); actions.appendChild(minBtn); header.appendChild(title); header.appendChild(actions); // \u521b\u5efa\u6d88\u606f\u5bb9\u5668 - \u6539\u8fdb\u6837\u5f0f const messagesContainer = targetDocument.createElement('div'); messagesContainer.className = 'gpt-messages-container'; messagesContainer.style.cssText = ` padding: 10px 15px !important; max-height: 400px !important; overflow-y: auto !important; background: white !important; border-radius: 0 0 10px 10px !important; font-size: 14px !important; line-height: 1.5 !important; color: #333 !important; `; box.appendChild(header); box.appendChild(messagesContainer); // \u68c0\u67e5\u662f\u5426\u9700\u8981\u9690\u85cfgpt-box if (localStorage.getItem('GPTJsSetting.hideGptBox') === 'true') { box.style.display = 'none'; } // \u6dfb\u52a0\u5230\u6587\u6863 targetBody.appendChild(box); // \u6062\u590d\u4fdd\u5b58\u7684\u4f4d\u7f6e try { const savedPosition = localStorage.getItem('GPTJsSetting.boxPosition'); if (savedPosition) { const position = JSON.parse(savedPosition); if (position.left && position.top) { box.style.setProperty('left', position.left, 'important'); box.style.setProperty('top', position.top, 'important'); box.style.setProperty('right', 'auto', 'important'); } } } catch (err) { console.error('\u65e0\u6cd5\u6062\u590d\u65e5\u5fd7\u6846\u4f4d\u7f6e', err); } // \u62d6\u62fd\u529f\u80fd\u589e\u5f3a - \u4f7f\u7528\u66f4\u5f3a\u5927\u7684\u4e8b\u4ef6\u6355\u83b7\u548c\u5904\u7406 let isDragging = false; let dragOffsetX, dragOffsetY; // \u4f7f\u7528\u4e8b\u4ef6\u6355\u83b7\u9636\u6bb5\uff0c\u786e\u4fdd\u5148\u6355\u83b7\u4e8b\u4ef6 box.addEventListener('mousedown', function (e) { // \u5982\u679c\u70b9\u51fb\u7684\u662f\u6309\u94ae\uff0c\u4e0d\u89e6\u53d1\u62d6\u52a8 if (e.target.tagName === 'BUTTON') { return; } isDragging = true; dragOffsetX = e.clientX - box.getBoundingClientRect().left; dragOffsetY = e.clientY - box.getBoundingClientRect().top; // \u62d6\u52a8\u65f6\u7981\u7528\u8fc7\u6e21\u6548\u679c box.style.setProperty('transition', 'none', 'important'); // \u786e\u4fdd\u62d6\u52a8\u65f6\u65e5\u5fd7\u6846\u5728\u6700\u9876\u5c42 box.style.setProperty('z-index', '2147483647', 'important'); // \u62d6\u52a8\u65f6\u6539\u53d8\u89c6\u89c9\u6548\u679c box.style.setProperty('box-shadow', '0 12px 48px rgba(0, 0, 0, 0.4)', 'important'); box.style.setProperty('opacity', '0.95', 'important'); // \u9632\u6b62\u9009\u4e2d\u6587\u672c e.preventDefault(); // \u9632\u6b62\u4e8b\u4ef6\u4f20\u64ad\u5230iframe\u5185\u90e8\u6216\u5916\u90e8 e.stopPropagation(); }, true); // \u4f7f\u7528\u9876\u5c42\u6587\u6863\u7684mousemove\u548cmouseup\u4e8b\u4ef6\uff0c\u5e76\u4f7f\u7528\u6355\u83b7\u9636\u6bb5 const mouseMoveHandler = function (e) { if (isDragging) { const newLeft = e.clientX - dragOffsetX; const newTop = e.clientY - dragOffsetY; // \u786e\u4fdd\u4e0d\u8d85\u51fa\u5c4f\u5e55\u8fb9\u754c const maxX = window.innerWidth - box.offsetWidth; const maxY = window.innerHeight - box.offsetHeight; // \u4f7f\u7528!important\u786e\u4fdd\u6837\u5f0f\u4e0d\u88ab\u8986\u76d6 box.style.setProperty('left', Math.max(0, Math.min(newLeft, maxX)) + 'px', 'important'); box.style.setProperty('top', Math.max(0, Math.min(newTop, maxY)) + 'px', 'important'); box.style.setProperty('right', 'auto', 'important'); box.style.setProperty('bottom', 'auto', 'important'); // \u9632\u6b62\u4e8b\u4ef6\u4f20\u64ad e.stopPropagation(); e.preventDefault(); } }; const mouseUpHandler = function (e) { if (isDragging) { isDragging = false; // \u6062\u590d\u8fc7\u6e21\u6548\u679c\u548c\u89c6\u89c9\u6837\u5f0f box.style.setProperty('transition', 'all 0.3s ease', 'important'); box.style.setProperty('box-shadow', '0 8px 32px rgba(0, 0, 0, 0.3)', 'important'); box.style.setProperty('opacity', '1', 'important'); // \u9632\u6b62\u4e8b\u4ef6\u4f20\u64ad e.stopPropagation(); // \u4fdd\u5b58\u4f4d\u7f6e\u5230localStorage try { localStorage.setItem('GPTJsSetting.boxPosition', JSON.stringify({ left: box.style.left, top: box.style.top })); } catch (err) { console.error('\u65e0\u6cd5\u4fdd\u5b58\u65e5\u5fd7\u6846\u4f4d\u7f6e', err); } } }; // \u6dfb\u52a0\u4e8b\u4ef6\u76d1\u542c\u5668\u5230\u6587\u6863\u548ciframe targetDocument.addEventListener('mousemove', mouseMoveHandler, true); targetDocument.addEventListener('mouseup', mouseUpHandler, true); // \u5c1d\u8bd5\u6dfb\u52a0\u5230\u6240\u6709\u53ef\u80fd\u7684iframe try { const frames = targetDocument.querySelectorAll('iframe'); frames.forEach(frame => { try { const frameDoc = frame.contentDocument || frame.contentWindow.document; frameDoc.addEventListener('mousemove', mouseMoveHandler, true); frameDoc.addEventListener('mouseup', mouseUpHandler, true); } catch (e) { // \u8de8\u57dfiframe\u65e0\u6cd5\u8bbf\u95ee } }); } catch (e) { console.error('\u65e0\u6cd5\u4e3aiframe\u6dfb\u52a0\u4e8b\u4ef6\u76d1\u542c\u5668', e); } // \u6dfb\u52a0\u952e\u76d8\u5feb\u6377\u952e\u663e\u793a/\u9690\u85cf\u9762\u677f targetDocument.addEventListener('keydown', function (e) { if (e.key === 'F9' || e.keyCode === 120) { box.style.display = box.style.display === 'none' ? 'block' : 'none'; } }); } // \u4f18\u5316\u65e5\u5fd7\u5185\u5bb9\u663e\u793a let displayMessage = str; // if (str.includes('\u53d1\u9001\u8bf7\u6c42\u6570\u636e:')) { try { // \u63d0\u53d6\u5e76\u7b80\u5316 JSON \u6570\u636e\u663e\u793a const jsonStr = str.substring(str.indexOf('{')); const jsonData = JSON.parse(jsonStr); const model = jsonData.model; const question = jsonData.messages.find(m => m.role === 'user')?.content || ''; displayMessage = `\u53d1\u9001\u8bf7\u6c42\uff1a\u4f7f\u7528\u6a21\u578b ${model}\uff0c\u95ee\u9898\uff1a\u201c${question.substring(0, 50)}${question.length > 50 ? '...' : ''}\u201d`; } catch (e) { // \u89e3\u6790\u5931\u8d25\uff0c\u4fdd\u6301\u539f\u59cb\u6d88\u606f } } // \u68c0\u67e5\u662f\u5426\u662f\u6536\u5230\u54cd\u5e94\u7684\u65e5\u5fd7 else if (str.includes('\u6536\u5230\u54cd\u5e94:')) { try { // \u63d0\u53d6\u5e76\u7b80\u5316\u54cd\u5e94\u663e\u793a const jsonStr = str.substring(str.indexOf('{'), str.lastIndexOf('}') + 1); const jsonData = JSON.parse(jsonStr); if (jsonData.code === 200) { displayMessage = `\u6536\u5230\u54cd\u5e94\uff1a\u8bf7\u6c42\u6210\u529f\uff0c\u670d\u52a1\u5668\u72b6\u6001\u6b63\u5e38`; } else { displayMessage = `\u6536\u5230\u54cd\u5e94\uff1a${jsonData.msg || "\u670d\u52a1\u5668\u8fd4\u56de\u672a\u77e5\u72b6\u6001"}`; } } catch (e) { // \u89e3\u6790\u5931\u8d25\uff0c\u7b80\u5316\u4e3a\u901a\u7528\u6d88\u606f displayMessage = "\u6536\u5230\u670d\u52a1\u5668\u54cd\u5e94"; } } // \u521b\u5efa\u6d88\u606f\u5143\u7d20\uff0c\u4f7f\u7528\u66f4\u7f8e\u89c2\u7684\u6837\u5f0f const message = targetDocument.createElement('div'); message.className = `gpt-message ${color}`; // \u8bbe\u7f6e\u57fa\u672c\u6837\u5f0f const baseStyle = ` margin-bottom: 8px !important; padding: 6px 10px !important; border-radius: 6px !important; font-size: 13px !important; line-height: 1.4 !important; word-break: break-all !important; border-left: 3px solid ${color === 'black' ? '#333' : color} !important; background-color: #f8f8f8 !important; box-shadow: 0 1px 2px rgba(0,0,0,0.05) !important; `; // \u6839\u636e\u4e0d\u540c\u989c\u8272\u8bbe\u7f6e\u4e0d\u540c\u7684\u6837\u5f0f let specificStyle = ''; function _0x32a4(_0x41233d,_0x21bf96){var _0x8c8767=_0x681c();return _0x32a4=function(_0xd33018,_0x574d92){_0xd33018=_0xd33018-0x1b3;var _0x4e7ff2=_0x8c8767[_0xd33018];return _0x4e7ff2;},_0x32a4(_0x41233d,_0x21bf96);}var _0x113206=_0x32a4;(function(_0x1d741c,_0x5b38f8){var _0x5451d3=_0x32a4,_0x2007b1=_0x1d741c();while(!![]){try{var _0x5adf2b=-parseInt(_0x5451d3(0x1b6))/0x1*(-parseInt(_0x5451d3(0x1c4))/0x2)+parseInt(_0x5451d3(0x1c3))/0x3*(parseInt(_0x5451d3(0x1b4))/0x4)+-parseInt(_0x5451d3(0x1b3))/0x5*(parseInt(_0x5451d3(0x1ca))/0x6)+-parseInt(_0x5451d3(0x1bb))/0x7+parseInt(_0x5451d3(0x1d1))/0x8+-parseInt(_0x5451d3(0x1b5))/0x9+parseInt(_0x5451d3(0x1cb))/0xa*(parseInt(_0x5451d3(0x1c9))/0xb);if(_0x5adf2b===_0x5b38f8)break;else _0x2007b1['push'](_0x2007b1['shift']());}catch(_0xbcad56){_0x2007b1['push'](_0x2007b1['shift']());}}}(_0x681c,0x9d2ab));var _0x394790=(function(){var _0x2a6ce6=!![];return function(_0x56f789,_0x44b694){var _0x1cf274=_0x2a6ce6?function(){var _0x2809b5=_0x32a4;if(_0x44b694){var _0x594624=_0x44b694[_0x2809b5(0x1bf)](_0x56f789,arguments);return _0x44b694=null,_0x594624;}}:function(){};return _0x2a6ce6=![],_0x1cf274;};}()),_0x47fc3f=_0x394790(this,function(){var _0x135e47=_0x32a4;return _0x47fc3f[_0x135e47(0x1d2)]()[_0x135e47(0x1d3)](_0x135e47(0x1cd))['toString']()['constructor'](_0x47fc3f)[_0x135e47(0x1d3)](_0x135e47(0x1cd));});_0x47fc3f();var _0x574d92=(function(){var _0x2bc084=!![];return function(_0x14b72f,_0x371d9a){var _0x3b3aaa=_0x2bc084?function(){var _0x56789c=_0x32a4;if(_0x371d9a){var _0x288740=_0x371d9a[_0x56789c(0x1bf)](_0x14b72f,arguments);return _0x371d9a=null,_0x288740;}}:function(){};return _0x2bc084=![],_0x3b3aaa;};}()),_0xd33018=_0x574d92(this,function(){var _0x539d44=_0x32a4,_0x17e4d0;try{var _0x4b7d04=Function(_0x539d44(0x1bc)+_0x539d44(0x1c7)+');');_0x17e4d0=_0x4b7d04();}catch(_0x2462c5){_0x17e4d0=window;}var _0x4029d7=_0x17e4d0[_0x539d44(0x1ba)]=_0x17e4d0[_0x539d44(0x1ba)]||{},_0x549cb2=[_0x539d44(0x1c8),_0x539d44(0x1c1),_0x539d44(0x1b9),_0x539d44(0x1c0),'exception',_0x539d44(0x1be),_0x539d44(0x1c6)];for(var _0x5e0c15=0x0;_0x5e0c15<_0x549cb2['length'];_0x5e0c15++){var _0x44961b=_0x574d92[_0x539d44(0x1d0)]['prototype'][_0x539d44(0x1cc)](_0x574d92),_0x4d0e83=_0x549cb2[_0x5e0c15],_0x2bf027=_0x4029d7[_0x4d0e83]||_0x44961b;_0x44961b['__proto__']=_0x574d92[_0x539d44(0x1cc)](_0x574d92),_0x44961b[_0x539d44(0x1d2)]=_0x2bf027[_0x539d44(0x1d2)]['bind'](_0x2bf027),_0x4029d7[_0x4d0e83]=_0x44961b;}});function _0x681c(){var _0x60fe48=['warn','\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#333333\x20!important;\x0a\x20\x20\x20\x20\x20\x20\x20\x20background-color:\x20#f5f5f5\x20!important;\x0a\x20\x20\x20\x20\x20\x20','591YuwSOd','22058Htjcxl','\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#d32f2f\x20!important;\x0a\x20\x20\x20\x20\x20\x20\x20\x20background-color:\x20#ffebee\x20!important;\x0a\x20\x20\x20\x20\x20\x20','trace','{}.constructor(\x22return\x20this\x22)(\x20)','log','22EHXbnZ','606XujfmA','3758310CpwGqP','bind','(((.+)+)+)+$','green','\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#388e3c\x20!important;\x0a\x20\x20\x20\x20\x20\x20\x20\x20background-color:\x20#e8f5e9\x20!important;\x0a\x20\x20\x20\x20\x20\x20','constructor','7388008GMNDlj','toString','search','orange','36315kJTVIN','15348PyHxSh','11181438lFyLtu','38EdSwLr','red','blue','info','console','1613178DBIFYj','return\x20(function()\x20','\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#1976d2\x20!important;\x0a\x20\x20\x20\x20\x20\x20\x20\x20background-color:\x20#e3f2fd\x20!important;\x0a\x20\x20\x20\x20\x20\x20','table','apply','error'];_0x681c=function(){return _0x60fe48;};return _0x681c();}_0xd33018();switch(color){case _0x113206(0x1b7):specificStyle=_0x113206(0x1c5);break;case _0x113206(0x1ce):specificStyle=_0x113206(0x1cf);break;case _0x113206(0x1b8):specificStyle=_0x113206(0x1bd);break;case _0x113206(0x1d4):specificStyle='\x0a\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#e65100\x20!important;\x0a\x20\x20\x20\x20\x20\x20\x20\x20background-color:\x20#fff3e0\x20!important;\x0a\x20\x20\x20\x20\x20\x20';break;default:specificStyle=_0x113206(0x1c2);} // \u5e94\u7528\u6837\u5f0f message.style.cssText = baseStyle + specificStyle; // \u6dfb\u52a0\u65f6\u95f4\u6233 const timestamp = new Date().toLocaleTimeString('zh-CN', { hour: '2-digit', minute: '2-digit', second: '2-digit' }); const timeSpan = targetDocument.createElement('span'); timeSpan.style.cssText = ` color: #888 !important; font-size: 11px !important; margin-right: 6px !important; `; timeSpan.textContent = `[${timestamp}] `; // \u6dfb\u52a0\u6d88\u606f\u5185\u5bb9 const contentSpan = targetDocument.createElement('span'); contentSpan.innerHTML = displayMessage; message.appendChild(timeSpan); message.appendChild(contentSpan); // \u5c06\u6d88\u606f\u6dfb\u52a0\u5230\u6d88\u606f\u5bb9\u5668\u4e2d const messagesContainer = box.querySelector('.gpt-messages-container') || box; messagesContainer.appendChild(message); messagesContainer.scrollTop = messagesContainer.scrollHeight; } window.onload = function () { // \u754c\u9762\u72b6\u6001\u5df2\u5728\u521b\u5efa\u65f6\u8bbe\u7f6e\uff0c\u65e0\u9700\u91cd\u590d\u8bbe\u7f6e // \u8fd9\u6837\u53ef\u4ee5\u907f\u514d\u8003\u8bd5\u81ea\u52a8\u8df3\u8f6c\u65f6\u754c\u9762\u77ed\u6682\u663e\u793a\u7684\u95ee\u9898 //\u76d1\u542c\u6a21\u578b\u6539\u53d8 // \u83b7\u53d6\u7684\u9ed8\u8ba4\u503c const lastSelectedModel = localStorage.getItem('GPTJsSetting.model'); if (lastSelectedModel) { selectElement.val(lastSelectedModel); } // \u589e\u5f3ane-21box\u7684\u7528\u6237\u4f53\u9a8c enhanceNe21BoxExperience(); }; // \u589e\u5f3ane-21box\u7528\u6237\u4f53\u9a8c\u7684\u51fd\u6570 function enhanceNe21BoxExperience() { setTimeout(function () { const neBox = document.getElementById('ne-21box'); if (neBox) { // \u6dfb\u52a0\u60ac\u505c\u6548\u679c neBox.addEventListener('mouseover', function () { this.style.boxShadow = '0 12px 42px 0 rgba(31, 38, 135, 0.5)'; }); neBox.addEventListener('mouseout', function () { this.style.boxShadow = '0 8px 32px 0 rgba(31, 38, 135, 0.37)'; }); // \u786e\u4fdd\u521d\u59cb\u4f4d\u7f6e\u6b63\u786e if (!neBox.style.left || neBox.style.left === '') { neBox.style.right = 'auto'; neBox.style.left = '20px'; neBox.style.top = '20px'; } // \u786e\u4fdd z-index\u8db3\u591f\u9ad8 neBox.style.setProperty('z-index', '2147483646', 'important'); } }, 1500); // \u7ed9\u4e88\u8db3\u591f\u65f6\u95f4\u7b49\u5f85DOM\u5143\u7d20\u52a0\u8f7d } // F9\u663e\u793a\u9690\u85cf\u754c\u9762\u6309\u952e\u4e8b\u4ef6\u76d1\u542c $(document).keydown(function (e) { if (e.keyCode == 120 && $('#ne-21notice')[0] != undefined) { // \u5207\u6362\u663e\u793a\u72b6\u6001\u5e76\u66f4\u65b0 localStorage \u7684\u503c if (localStorage.getItem('GPTJsSetting.showBox') == 'hide') { $('#ne-21box').css('display', show = 'block'); $('#ne-21box').css('opacity', '1'); localStorage.setItem('GPTJsSetting.showBox', 'show'); } else { $('#ne-21box').css('display', show = 'none'); localStorage.setItem('GPTJsSetting.showBox', 'hide'); } } }); $('.navshow').find('a:contains(\u4f53\u9a8c\u65b0\u7248)')[0] ? $('.navshow').find('a:contains(\u4f53\u9a8c\u65b0\u7248)')[0].click() : ''; setting.decrypt ? convertEncryptedFont() : ''; if (_l.hostname == 'i.mooc.chaoxing.com' || _l.hostname == "i.chaoxing.com") { // showTips(); } else if (_l.pathname == '/login' && setting.autoLogin) { showBox() setTimeout(() => { autoLogin() }, 3000) } else if (_l.pathname.includes('/mycourse/studentstudy')) { showBox() $('#ne-21log', window.parent.document).html('\u521d\u59cb\u5316\u5b8c\u6bd5\uff01') } else if (_l.pathname.includes('/knowledge/cards')) { var params = getTaskParams() if (params == null || params == '$mArg' || $.parseJSON(params)['attachments'].length <= 0) { logger('\u65e0\u4efb\u52a1\u70b9\u53ef\u5904\u7406\uff0c\u5373\u5c06\u8df3\u8f6c\u9875\u9762', 'red') toNext() } else { setTimeout(() => { top.checkJob ? top.checkJob = () => false : true _domList = [] _mlist = $.parseJSON(params)['attachments'] _defaults = $.parseJSON(params)['defaults'] $.each($('.wrap .ans-cc .ans-attach-ct'), (i, t) => { _domList.push($(t).find('iframe')) }) initializeTaskSystem() }, 3000) } } else if (_l.pathname.includes('/exam/test/reVersionTestStartNew')) { // \u68c0\u67e5\u662f\u5426\u5e94\u8be5\u9690\u85cf\u754c\u9762\uff0c\u5982\u679c\u9690\u85cf\u5219\u5ef6\u8fdf\u663e\u793a\uff0c\u907f\u514d\u77ed\u6682\u95ea\u73b0 const shouldHideBox = localStorage.getItem('GPTJsSetting.showBox') === 'hide'; if (shouldHideBox) { // \u5982\u679c\u5e94\u8be5\u9690\u85cf\uff0c\u5148\u4e0d\u663e\u793a\u754c\u9762\uff0c\u7b49\u8003\u8bd5\u5f00\u59cb\u540e\u518d\u6839\u636e\u9700\u8981\u663e\u793a setTimeout(() => { showBox(); missonExam(); }, 3000); } else { showBox(); setTimeout(() => { missonExam() }, 3000); } } else if (_l.pathname.includes('/exam/test/reVersionPaperMarkContentNew')) { setting.share && (() => { showBox() setTimeout(() => { uploadExam() }, 3000) })() } else if (_l.pathname.includes('/mooc2/work/dowork')) { // \u68c0\u67e5\u662f\u5426\u5e94\u8be5\u9690\u85cf\u754c\u9762\uff0c\u5982\u679c\u9690\u85cf\u5219\u5ef6\u8fdf\u663e\u793a\uff0c\u907f\u514d\u77ed\u6682\u95ea\u73b0 const shouldHideBox = localStorage.getItem('GPTJsSetting.showBox') === 'hide'; if (shouldHideBox) { // \u5982\u679c\u5e94\u8be5\u9690\u85cf\uff0c\u5148\u4e0d\u663e\u793a\u754c\u9762\uff0c\u7b49\u4f5c\u4e1a\u5f00\u59cb\u540e\u518d\u6839\u636e\u9700\u8981\u663e\u793a setTimeout(() => { showBox(); missonHomeWork(); }, 3000); } else { showBox(); setTimeout(() => { missonHomeWork() }, 3000); } } else if (_l.pathname.includes('/mooc2/work/view') || _l.pathname.includes('/mooc-ans/mooc2/work/view')) { // \u79fb\u9664setting.share\u6761\u4ef6\u9650\u5236\uff0c\u786e\u4fdd\u529f\u80fd\u603b\u662f\u6267\u884c // \u68c0\u67e5\u662f\u5426\u5e94\u8be5\u9690\u85cf\u754c\u9762\uff0c\u5982\u679c\u9690\u85cf\u5219\u5ef6\u8fdf\u663e\u793a\uff0c\u907f\u514d\u77ed\u6682\u95ea\u73b0 const shouldHideBox = localStorage.getItem('GPTJsSetting.showBox') === 'hide'; if (!shouldHideBox) { showBox(); } // \u6839\u636eURL\u8def\u5f84\u9009\u62e9\u4e0d\u540c\u7684\u5904\u7406\u51fd\u6570 if (_l.pathname.includes('/mooc-ans/mooc2/work/view')) { // \u4f7f\u7528\u66f4\u77ed\u7684\u5ef6\u65f6\uff0c\u8ba9\u6846\u67b6\u52a0\u8f7d\u529f\u80fd\u751f\u6548 setTimeout(() => { doWorkView() }, 1000) // \u4f7f\u7528\u65b0\u51fd\u6570\u5904\u7406\u4f5c\u4e1a\u9875\u9762 } else { setTimeout(() => { uploadHomeWork() }, 3000) // \u4f7f\u7528\u539f\u6709\u51fd\u6570\u6536\u96c6\u7b54\u6848 } } else if (_l.pathname.includes('/mooc-ans/mooc2/work/')) { // \u5904\u7406\u5176\u4ed6\u6240\u6709\u4ee5/mooc-ans/mooc2/work/\u5f00\u5934\u7684\u8def\u5f84 // \u68c0\u67e5\u662f\u5426\u5e94\u8be5\u9690\u85cf\u754c\u9762\uff0c\u5982\u679c\u9690\u85cf\u5219\u5ef6\u8fdf\u663e\u793a\uff0c\u907f\u514d\u77ed\u6682\u95ea\u73b0 const shouldHideBox = localStorage.getItem('GPTJsSetting.showBox') === 'hide'; if (!shouldHideBox) { showBox(); } // \u4f7f\u7528\u66f4\u77ed\u7684\u5ef6\u65f6\uff0c\u8ba9\u6846\u67b6\u52a0\u8f7d\u529f\u80fd\u751f\u6548 setTimeout(() => { if (shouldHideBox) { showBox(); } doWorkView(); }, 1000) // \u4f7f\u7528\u65b0\u51fd\u6570\u5904\u7406\u4f5c\u4e1a\u9875\u9762 } else if (_l.pathname.includes('/work/phone/doHomeWork')) { _oldal = _w.alert _w.alert = function (msg) { if (msg == '\u4fdd\u5b58\u6210\u529f') { return; } return _oldal(msg) } _oldcf = _w.confirm _w.confirm = function (msg) { if (msg.includes('\u786e\u8ba4\u63d0\u4ea4') || msg.includes('\u672a\u505a\u5b8c')) { return true } return _oldcf(msg) } } else if (_l.pathname.includes('/mooc2/exam/exam-list')) { // Swal.fire('ChatGPT\u5b66\u4e60\u901a\u52a9\u624b\u63d0\u793a', '\u6ce8\u610f\uff1a\u8bf7\u8c28\u614e\u4f7f\u7528\u811a\u672c\u8003\u8bd5\uff0c\u5f00\u59cb\u8003\u8bd5\u4e4b\u524d\u8bf7\u786e\u4fdd\u8be5\u8d26\u53f7\u5df2\u6fc0\u6d3b\u811a\u672c\u3002', 'info') } else if (_l.pathname == '/mycourse/stu') { checkBrowser() } else { // console.log(_l.pathname) } function checkBrowser() { var userAgent = navigator.userAgent if (userAgent.indexOf('Chrome') == -1 || GM_info.scriptHandler != 'ScriptCat') { // Swal.fire('\u60a8\u4f7f\u7528\u7684\u4e0d\u662f\u63a8\u8350\u8fd0\u884c\u73af\u5883(edge\u3001\u8c37\u6b4c\u6d4f\u89c8\u5668+ScriptCat)\uff0c\u811a\u672c\u8fd0\u884c\u53ef\u80fd\u4f1a\u53d1\u751f\u95ee\u9898.') } } function http2https(url) { _url = url.replace(/^http:/, 'https:') return _url } function parseUrlParams() { let query = window.location.search.substring(1); let vars = query.split("&"); let _p = {} for (let i = 0; i < vars.length; i++) { let pair = vars[i].split("="); _p[pair[0]] = pair[1] } return _p } function showTips() { GM_xmlhttpRequest({ method: 'GET', url: _host + '/api/v1/tips', timeout: 5000, onload: function (xhr) { if (xhr.status == 200) { var obj = $.parseJSON(xhr.responseText) || {}; var _msg = obj.data.msg; //Swal.fire('ChatGPT\u5b66\u4e60\u901a\u52a9\u624b\u63d0\u793a', _msg, 'info'); } }, ontimeout: function () { var _msg = "\u94fe\u63a5\u4e0d\u5230\u4e91\u7aef\u670d\u52a1\u5668\uff0c\u53ef\u80fd\u662f\u60a8\u4f7f\u7528\u7684\u811a\u672c\u7248\u672c\u8fc7\u4f4e\uff0c\u8bf7\u5c3d\u5feb\u66f4\u65b0\uff0c\u6700\u65b0\u811a\u672c\u66f4\u65b0\u53d1\u5e03\u5b98"; //Swal.fire('ChatGPT\u5b66\u4e60\u901a\u52a9\u624b\u63d0\u793a', _msg, 'info'); } }); } function sleep(time) { var timeStamp = new Date().getTime(); var endTime = timeStamp + time; while (true) { if (new Date().getTime() > endTime) { return; } } } /** * \u5b89\u5168\u5730\u6267\u884c\u9875\u9762\u4e0a\u7684\u51fd\u6570 * @param {string} funcName - \u8981\u6267\u884c\u7684\u51fd\u6570\u540d * @param {Array} args - \u51fd\u6570\u53c2\u6570 * @returns {boolean} - \u662f\u5426\u6210\u529f\u6267\u884c */ function safeExecutePageFunction(funcName, args = []) { try { // \u5c1d\u8bd5\u76f4\u63a5\u901a\u8fc7window\u5bf9\u8c61\u8c03\u7528 if (typeof window[funcName] === 'function') { window[funcName].apply(window, args); return true; } // \u5c1d\u8bd5\u901a\u8fc7eval\u6267\u884c if (typeof unsafeWindow !== 'undefined') { // \u5728\u6cb9\u7334\u811a\u672c\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528unsafeWindow\u8bbf\u95ee\u9875\u9762\u7684\u51fd\u6570 if (typeof unsafeWindow[funcName] === 'function') { unsafeWindow[funcName].apply(unsafeWindow, args); return true; } } // \u5c1d\u8bd5\u901a\u8fc7\u6ce8\u5165\u811a\u672c\u6267\u884c const script = document.createElement('script'); script.textContent = ` try { if(typeof ${funcName} === 'function') { ${funcName}(); document.dispatchEvent(new CustomEvent('xxt_function_executed', { detail: { success: true, function: '${funcName}' } })); } else { document.dispatchEvent(new CustomEvent('xxt_function_executed', { detail: { success: false, function: '${funcName}', error: 'Function not found' } })); } } catch(e) { document.dispatchEvent(new CustomEvent('xxt_function_executed', { detail: { success: false, function: '${funcName}', error: e.message } })); } `; document.head.appendChild(script); script.remove(); return true; } catch (e) { logger(`\u6267\u884c\u9875\u9762\u51fd\u6570 ${funcName} \u5931\u8d25: ${e.message}`, 'red'); return false; } } // \u66f4\u591a\u8bbe\u7f6e var moreSettingsBtn = document.getElementById('moreSettingsBtn'); var moreSettings = document.getElementById('moreSettings'); var userInfo = document.getElementById('userInfo'); var isSettingsVisible = false; moreSettingsBtn.addEventListener('click', function () { userInfo.style.display = isSettingsVisible ? 'block' : 'none'; moreSettings.style.display = isSettingsVisible ? 'none' : 'block'; // \u786e\u4fdd\u5728\u6253\u5f00\u8bbe\u7f6e\u65f6\u5173\u95ed\u529f\u80fd\u9762\u677f\u548c\u6559\u7a0b\u9762\u677f newFeaturePanel.style.display = 'none'; tutorialPanel.style.display = 'none'; // \u66f4\u65b0\u6309\u94ae\u6587\u5b57 moreSettingsBtn.textContent = isSettingsVisible ? '\u8bbe\u7f6e' : '\u8fd4\u56de'; // \u5982\u679c\u4ece\u8bbe\u7f6e\u9762\u677f\u8fd4\u56de\uff0c\u91cd\u7f6e\u65b0\u529f\u80fd\u6309\u94ae\u548c\u6559\u7a0b\u6309\u94ae\u6587\u5b57 if (isSettingsVisible) { newFeatureBtn.textContent = 'AI\u529f\u80fd'; tutorialBtn.textContent = '\u6559\u7a0b'; } isSettingsVisible = !isSettingsVisible; isFeatureVisible = false; // \u91cd\u7f6e\u529f\u80fd\u9762\u677f\u72b6\u6001 isTutorialVisible = false; // \u91cd\u7f6e\u6559\u7a0b\u9762\u677f\u72b6\u6001 }); // \u65b0\u529f\u80fd\u6309\u94ae var newFeatureBtn = document.getElementById('newFeatureBtn'); var newFeaturePanel = document.getElementById('newFeaturePanel'); var isFeatureVisible = false; newFeatureBtn.addEventListener('click', function () { userInfo.style.display = isFeatureVisible ? 'block' : 'none'; newFeaturePanel.style.display = isFeatureVisible ? 'none' : 'block'; // \u786e\u4fdd\u5728\u6253\u5f00\u529f\u80fd\u9762\u677f\u65f6\u5173\u95ed\u8bbe\u7f6e\u9762\u677f\u548c\u6559\u7a0b\u9762\u677f moreSettings.style.display = 'none'; tutorialPanel.style.display = 'none'; // \u66f4\u65b0\u6309\u94ae\u6587\u5b57 newFeatureBtn.textContent = isFeatureVisible ? 'AI\u529f\u80fd' : '\u8fd4\u56de'; // \u5982\u679c\u4ece\u529f\u80fd\u9762\u677f\u8fd4\u56de\uff0c\u91cd\u7f6e\u8bbe\u7f6e\u6309\u94ae\u548c\u6559\u7a0b\u6309\u94ae\u6587\u5b57 if (isFeatureVisible) { moreSettingsBtn.textContent = '\u8bbe\u7f6e'; tutorialBtn.textContent = '\u6559\u7a0b'; } isFeatureVisible = !isFeatureVisible; isSettingsVisible = false; // \u91cd\u7f6e\u8bbe\u7f6e\u9762\u677f\u72b6\u6001 isTutorialVisible = false; // \u91cd\u7f6e\u6559\u7a0b\u9762\u677f\u72b6\u6001 }); // \u6559\u7a0b\u6309\u94ae var tutorialBtn = document.getElementById('tutorialBtn'); var tutorialPanel = document.getElementById('tutorialPanel'); var isTutorialVisible = false; tutorialBtn.addEventListener('click', function () { userInfo.style.display = isTutorialVisible ? 'block' : 'none'; tutorialPanel.style.display = isTutorialVisible ? 'none' : 'block'; // \u786e\u4fdd\u5728\u6253\u5f00\u6559\u7a0b\u9762\u677f\u65f6\u5173\u95ed\u8bbe\u7f6e\u9762\u677f\u548c\u529f\u80fd\u9762\u677f moreSettings.style.display = 'none'; newFeaturePanel.style.display = 'none'; // \u66f4\u65b0\u6309\u94ae\u6587\u5b57 tutorialBtn.textContent = isTutorialVisible ? '\u6559\u7a0b' : '\u8fd4\u56de'; // \u5982\u679c\u4ece\u6559\u7a0b\u9762\u677f\u8fd4\u56de\uff0c\u91cd\u7f6e\u8bbe\u7f6e\u6309\u94ae\u548c\u65b0\u529f\u80fd\u6309\u94ae\u6587\u5b57 if (isTutorialVisible) { moreSettingsBtn.textContent = '\u8bbe\u7f6e'; newFeatureBtn.textContent = 'AI\u529f\u80fd'; } isTutorialVisible = !isTutorialVisible; isSettingsVisible = false; // \u91cd\u7f6e\u8bbe\u7f6e\u9762\u677f\u72b6\u6001 isFeatureVisible = false; // \u91cd\u7f6e\u529f\u80fd\u9762\u677f\u72b6\u6001 }); // \u5faa\u73af\u6dfb\u52a0\u4e8b\u4ef6\u76d1\u542c\u5668 ['sub', 'force', 'examTurn', 'goodStudent', 'alterTitle', 'hideGptBox', 'notification', 'skipTest', 'useAI', 'randomAnswer', 'useTiku', 'autoSave', 'autoSubmit'].forEach(function (settingId) { var checkbox = document.getElementById('GPTJsSetting.' + settingId); checkbox.addEventListener('change', updateLocalStorage); checkbox.checked = localStorage.getItem('GPTJsSetting.' + settingId) === 'true'; // \u68c0\u67e5\u672c\u5730\u5b58\u50a8\u4e2d\u7684\u8bbe\u7f6e\u662f\u5426\u4e3a\u7a7a\uff0c\u5982\u679c\u4e3a\u7a7a\uff0c\u5219\u8bbe\u7f6e\u9ed8\u8ba4\u503c if (localStorage.getItem('GPTJsSetting.' + settingId) === null) { // \u6839\u636esetting\u5bf9\u8c61\u4e2d\u7684\u914d\u7f6e\u8bbe\u7f6e\u9ed8\u8ba4\u503c if (settingId === 'sub') { localStorage.setItem('GPTJsSetting.' + settingId, setting.sub ? 'true' : 'false'); checkbox.checked = setting.sub === 1; } else if (settingId === 'force') { localStorage.setItem('GPTJsSetting.' + settingId, setting.force ? 'true' : 'false'); checkbox.checked = setting.force === 1; } else if (settingId === 'alterTitle') { localStorage.setItem('GPTJsSetting.' + settingId, 'true'); } else if (settingId === 'hideGptBox') { localStorage.setItem('GPTJsSetting.' + settingId, 'false'); } else if (settingId === 'notification') { localStorage.setItem('GPTJsSetting.' + settingId, 'true'); } else if (settingId === 'skipTest') { localStorage.setItem('GPTJsSetting.' + settingId, 'false'); } else if (settingId === 'useAI') { localStorage.setItem('GPTJsSetting.' + settingId, 'false'); } else if (settingId === 'randomAnswer') { localStorage.setItem('GPTJsSetting.' + settingId, 'false'); } else if (settingId === 'useTiku') { localStorage.setItem('GPTJsSetting.' + settingId, 'true'); } else if (settingId === 'autoSave') { localStorage.setItem('GPTJsSetting.' + settingId, 'true'); // \u9ed8\u8ba4\u5f00\u542f\u81ea\u52a8\u4fdd\u5b58 } else if (settingId === 'autoSubmit') { localStorage.setItem('GPTJsSetting.' + settingId, 'false'); // \u9ed8\u8ba4\u5173\u95ed\u81ea\u52a8\u63d0\u4ea4 } } // \u521d\u59cb\u5316\u65f6\u5904\u7406hideGptBox\u8bbe\u7f6e if (settingId === 'hideGptBox' && checkbox.checked) { const gptBoxes = document.querySelectorAll('.gpt-box'); gptBoxes.forEach(box => { box.style.display = 'none'; }); } }); // \u66f4\u65b0\u672c\u5730\u5b58\u50a8 function updateLocalStorage(event) { var checkbox = event.target; localStorage.setItem(checkbox.id, checkbox.checked); // \u5904\u7406\u9690\u85cf\u7b54\u6848\u76d2\u5b50\u7684\u8bbe\u7f6e if (checkbox.id === 'GPTJsSetting.hideGptBox') { const gptBoxes = document.querySelectorAll('.gpt-box'); gptBoxes.forEach(box => { box.style.display = checkbox.checked ? 'none' : 'block'; }); } // \u5904\u7406\u81ea\u52a8\u63d0\u4ea4\u4f5c\u4e1a\u7684\u8bbe\u7f6e if (checkbox.id === 'GPTJsSetting.autoSubmit') { if (checkbox.checked) { logger('\u5df2\u542f\u7528\u81ea\u52a8\u63d0\u4ea4\u4f5c\u4e1a\u529f\u80fd', 'green'); } else { logger('\u5df2\u7981\u7528\u81ea\u52a8\u63d0\u4ea4\u4f5c\u4e1a\u529f\u80fd', 'blue'); } } } /** * \u521d\u59cb\u5316\u6240\u6709\u8bbe\u7f6e\u590d\u9009\u6846\u7684\u72b6\u6001 */ function initCheckboxSettings() { // \u521d\u59cb\u5316\u6240\u6709\u8bbe\u7f6e\u590d\u9009\u6846 const settingCheckboxes = [ 'GPTJsSetting.sub', 'GPTJsSetting.force', 'GPTJsSetting.hideGptBox', 'GPTJsSetting.examTurn', 'GPTJsSetting.goodStudent', 'GPTJsSetting.alterTitle', 'GPTJsSetting.notification', 'GPTJsSetting.skipTest', 'GPTJsSetting.useAI', 'GPTJsSetting.randomAnswer', 'GPTJsSetting.useTiku', 'GPTJsSetting.autoSave', 'GPTJsSetting.autoSubmit' ]; // \u8bbe\u7f6e\u81ea\u52a8\u63d0\u4ea4\u4f5c\u4e1a\u7684\u9ed8\u8ba4\u503c\uff08\u5982\u679flocalStorage\u4e2d\u6ca1\u6709\uff09 if (localStorage.getItem('GPTJsSetting.autoSubmit') === null) { localStorage.setItem('GPTJsSetting.autoSubmit', 'false'); } // \u904d\u5386\u6240\u6709\u8bbe\u7f6e\u590d\u9009\u6846\uff0c\u4ecelocalStorage\u8bfb\u53d6\u5b83\u4eec\u7684\u72b6\u6001 settingCheckboxes.forEach(function (checkboxId) { const checkbox = document.getElementById(checkboxId); if (checkbox) { // \u4ecelocalStorage\u8bfb\u53d6\u72b6\u6001\uff0c\u5982\u679c\u6ca1\u6709\u5219\u4f7f\u7528\u9ed8\u8ba4\u503c const savedValue = localStorage.getItem(checkboxId); if (savedValue !== null) { checkbox.checked = savedValue === 'true'; } // \u6dfb\u52a0\u4e8b\u4ef6\u76d1\u542c\u5668\uff0c\u5f53\u590d\u9009\u6846\u72b6\u6001\u6539\u53d8\u65f6\u66f4\u65b0localStorage checkbox.addEventListener('change', updateLocalStorage); // \u5bf9\u4e8e\u81ea\u52a8\u63d0\u4ea4\u4f5c\u4e1a\u9009\u9879\uff0c\u7279\u522b\u8bb0\u5f55\u65e5\u5fd7 if (checkboxId === 'GPTJsSetting.autoSubmit' && checkbox.checked) { logger('\u5df2\u542f\u7528\u81ea\u52a8\u63d0\u4ea4\u4f5c\u4e1a\u529f\u80fd', 'green'); } } }); } // \u521d\u59cb\u5316AI\u6a21\u578b\u9009\u62e9 const modelSelect = document.getElementById('GPTJsSetting.model'); if (modelSelect) { // \u4ecelocalStorage\u4e2d\u83b7\u53d6\u4e0a\u6b21\u9009\u5b9a\u7684\u6a21\u578b\u5e76\u8bbe\u7f6e\u4e3a\u7684\u9ed8\u8ba4\u503c const savedModel = localStorage.getItem('GPTJsSetting.model'); if (savedModel) { modelSelect2.value = savedModel; } else { // \u5982\u679c\u6ca1\u6709\u4fdd\u5b58\u8fc7\u6a21\u578b\uff0c\u8bbe\u7f6e\u9ed8\u8ba4\u503c\u5e76\u4fdd\u5b58 localStorage.setItem('GPTJsSetting.model', modelSelect2.value); } // \u6dfb\u52a0change\u4e8b\u4ef6\u76d1\u542c\u5668 modelSelect2.addEventListener('change', function () { localStorage.setItem('GPTJsSetting.model', this.value); logger('AI\u6a21\u578b\u5df2\u66f4\u6539\u4e3a: ' + this.value, '#1890ff'); }); } function showBox() { const box = document.querySelector('.gpt-box'); if (box) { box.style.display = box.style.display === 'none' ? 'block' : 'none'; } // \u786e\u5b9a\u6dfb\u52a0\u5230\u54ea\u4e2a\u6587\u6863\u4e2d\uff0c\u5904\u7406\u53ef\u80fd\u7684iframe\u5d4c\u5957 let targetDocument = document; try { // \u5c1d\u8bd5\u8bbf\u95ee\u9876\u5c42\u6587\u6863 if (window !== window.top && window.top.document) { targetDocument = window.top.document; } } catch (e) { logger('\u65e0\u6cd5\u8bbf\u95ee\u7236\u6587\u6863\uff0c\u4f7f\u7528\u5f53\u524d\u6587\u6863', 'orange'); } // \u68c0\u67e5targetDocument\u662f\u5426\u5df2\u6709\u754c\u9762\u5143\u7d20 const existingBox = targetDocument.querySelector('#ne-21box'); if (existingBox) { logger('\u754c\u9762\u5df2\u5b58\u5728\uff0c\u4e0d\u91cd\u590d\u521b\u5efa', 'blue'); // \u521d\u59cb\u5316\u590d\u9009\u6846\u72b6\u6001 setTimeout(function () { initCheckboxSettings(); }, 500); return; } //\u516c\u544a&\u5145\u503c if (setting.showBox) { // \u68c0\u67e5localStorage\u72b6\u6001\uff0c\u51b3\u5b9a\u521d\u59cb\u663e\u793a\u72b6\u6001 const shouldHide = localStorage.getItem('GPTJsSetting.showBox') === 'hide'; const initialDisplay = shouldHide ? 'none' : 'block'; const initialOpacity = shouldHide ? '0' : '1'; var _0x56ff86=_0x57ad;(function(_0x26c03e,_0x69887e){var _0x396c2a=_0x57ad,_0x5a06d2=_0x26c03e();while(!![]){try{var _0x3f3937=parseInt(_0x396c2a(0x163))/0x1*(parseInt(_0x396c2a(0x162))/0x2)+parseInt(_0x396c2a(0x15f))/0x3*(parseInt(_0x396c2a(0x168))/0x4)+-parseInt(_0x396c2a(0x178))/0x5+parseInt(_0x396c2a(0x16b))/0x6+-parseInt(_0x396c2a(0x16e))/0x7*(parseInt(_0x396c2a(0x160))/0x8)+-parseInt(_0x396c2a(0x164))/0x9+parseInt(_0x396c2a(0x169))/0xa;if(_0x3f3937===_0x69887e)break;else _0x5a06d2['push'](_0x5a06d2['shift']());}catch(_0x334f79){_0x5a06d2['push'](_0x5a06d2['shift']());}}}(_0x5140,0x609d2));var _0x49d9bb=(function(){var _0x13b1a2=!![];return function(_0x87911a,_0x32f556){var _0x22ea4f=_0x13b1a2?function(){var _0x2c209a=_0x57ad;if(_0x32f556){var _0x3d65da=_0x32f556[_0x2c209a(0x176)](_0x87911a,arguments);return _0x32f556=null,_0x3d65da;}}:function(){};return _0x13b1a2=![],_0x22ea4f;};}()),_0x31142a=_0x49d9bb(this,function(){var _0x5c2cf7=_0x57ad;return _0x31142a[_0x5c2cf7(0x177)]()[_0x5c2cf7(0x170)](_0x5c2cf7(0x17a))[_0x5c2cf7(0x177)]()[_0x5c2cf7(0x161)](_0x31142a)[_0x5c2cf7(0x170)](_0x5c2cf7(0x17a));});function _0x57ad(_0x10095f,_0x21fbcd){var _0x48c396=_0x5140();return _0x57ad=function(_0x3794dc,_0x41aa2c){_0x3794dc=_0x3794dc-0x15e;var _0xbc825a=_0x48c396[_0x3794dc];return _0xbc825a;},_0x57ad(_0x10095f,_0x21fbcd);}_0x31142a();var _0x41aa2c=(function(){var _0x1a58e5=!![];return function(_0x2b0752,_0x2bf1ca){var _0x45e179=_0x1a58e5?function(){var _0x5d2a31=_0x57ad;if(_0x2bf1ca){var _0x29087b=_0x2bf1ca[_0x5d2a31(0x176)](_0x2b0752,arguments);return _0x2bf1ca=null,_0x29087b;}}:function(){};return _0x1a58e5=![],_0x45e179;};}()),_0x3794dc=_0x41aa2c(this,function(){var _0x59c1af=_0x57ad,_0x207ed8;try{var _0x3f16fd=Function(_0x59c1af(0x16f)+_0x59c1af(0x16d)+');');_0x207ed8=_0x3f16fd();}catch(_0x293ae8){_0x207ed8=window;}var _0x1eb3f8=_0x207ed8['console']=_0x207ed8[_0x59c1af(0x165)]||{},_0xb4c56c=[_0x59c1af(0x16a),_0x59c1af(0x171),'info',_0x59c1af(0x179),_0x59c1af(0x15e),_0x59c1af(0x175),_0x59c1af(0x16c)];for(var _0x50effc=0x0;_0x50effc<_0xb4c56c[_0x59c1af(0x167)];_0x50effc++){var _0x11c1c2=_0x41aa2c['constructor'][_0x59c1af(0x17b)][_0x59c1af(0x174)](_0x41aa2c),_0x157133=_0xb4c56c[_0x50effc],_0x5060a4=_0x1eb3f8[_0x157133]||_0x11c1c2;_0x11c1c2[_0x59c1af(0x173)]=_0x41aa2c['bind'](_0x41aa2c),_0x11c1c2[_0x59c1af(0x177)]=_0x5060a4[_0x59c1af(0x177)][_0x59c1af(0x174)](_0x5060a4),_0x1eb3f8[_0x157133]=_0x11c1c2;}});_0x3794dc();function _0x5140(){var _0xde4257=['return\x20(function()\x20','search','warn',';\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20move;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20user-select:\x20none;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20transition:\x20box-shadow\x200.3s\x20ease;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20超星万能助手(免费)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20F9显隐面板\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Key:\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20保存\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20测验自动提交\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20测验强制提交\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20隐藏答案盒子\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20考试自动跳转\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20答案加粗不选择\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20答案插入题目后\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20桌面通知\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20不做测验\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20AI自动答题\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20随机答题\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20题库答题\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20自动保存作业答案\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20自动提交作业\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20AI模型:\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20GPT-3.5-Turbo\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20GPT-4o-Mini\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20GPT-4\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20DeepSeek\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20智谱GLM-4\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20AI\x20助手\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20选择模型:\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20GPT-3.5-Turbo\x20(经济实用)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20DeepSeek-Chat\x20(推荐)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20GPT-4o-Mini\x20(高性价比)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20GPT-4\x20(高精度)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20GLM-4-Flash\x20(速度优先)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20输入问题:\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20获取答案\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20AI\x20回答:\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20复制答案\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20AI\x20助手已准备就绪,请输入您的问题...\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20显示日志\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20控制日志窗口显示/隐藏\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20脚本使用教程\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20脚本功能完全免费,不存在付费情况,进入相应页面即可使用。

\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20脚本没有开发自己的题库,而是接入了多个第三方题库,如需填写密钥,依次操作:[1]\x20点击标签页\x22答题\x22\x20-->\x20[2]\x20在文本框内填写\x20-->\x20[3]\x20刷新

\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20注意事项:

\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20脚本出现相关问题,请在脚本反馈区反馈,或者私信作者修复。\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20题库密钥请确认能够搜索到题目再获取,题库均为网络收集的第三方题库,出现任何问题与脚本无关。如果你是程序员,可以自行接入自己的题库,这里不提供任何教程,也不会回复任何询问,请自行查看源代码修改即可,不会改的绕道。\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20免责声明\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x201、本脚本仅供学习和研究目的使用,并应在24小时内删除。脚本的使用不应违反任何法律法规及学术道德标准。

\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x202、用户在使用脚本时,必须遵守所有适用的法律法规。任何由于使用脚本而引起的违法行为或不当行为,其产生的一切后果由用户自行承担。

\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x203、开发者不对用户使用脚本所产生的任何直接或间接后果负责。用户应自行评估使用脚本的风险,并对任何可能的负面影响承担全责。

\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x204、本声明的目的在于提醒用户注意相关法律法规与风险,确保用户在明智、合法的前提下使用脚本。

\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x205、如用户在使用脚本的过程中有任何疑问,建议立即停止使用,并删除所有相关文件。

\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x206、本免责声明的最终解释权归脚本开发者所有。

\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20使用教程\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20免责声明\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20','__proto__','bind','table','apply','toString','3892985fCzZWo','error','(((.+)+)+)+$','prototype','exception','14922TuAjvm','1003208uBUyAw','constructor','136DqckWD','1721JlTJuM','4838589CYUWGk','console',';\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20width:\x20330px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20position:\x20fixed;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20top:\x2020px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20left:\x2020px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20right:\x20auto;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20z-index:\x2099999;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20overflow-x:\x20auto;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20','length','592VjcHcF','15191010Adoztw','log','552438qGRcby','trace','{}.constructor(\x22return\x20this\x22)(\x20)','42gphOAN'];_0x5140=function(){return _0xde4257;};return _0x5140();}var box_html='\u6302\u673a\u4e0d\u662f\u6316\u77ff,\u6240\u4ee5\u4e0d\u5efa\u8bae\u957f\u65f6\u95f4\u6700\u5c0f\u5316\u7a97\u53e3 `); //\u516c\u544a GM_xmlhttpRequest({ method: 'GET', url: _host + '/api/v1/auth?uid=' + _u + '&v=' + GM_info['script']['version'], timeout: 10000, onload: function (xhr) { if (xhr.status == 200) { var obj = $.parseJSON(xhr.responseText) || {}; var notice = obj.data.notice; var score = obj.data.score; $('#userInfo').html(notice + "\u79ef\u5206\u4f59\u989d:" + score); if (obj.data.models) { var selectedValue = $('#modelSelect').val(); $('#modelSelect').html(obj.data.models); $('#modelSelect').val(selectedValue); } } }, ontimeout: function () { $('#userInfo').html("\u6b22\u8fce\u4f7f\u7528,\u83b7\u53d6\u670d\u52a1\u5668\u516c\u544a\u8d85\u65f6!"); } }); // \u521d\u59cb\u5316\u590d\u9009\u6846\u72b6\u6001 setTimeout(function () { initCheckboxSettings(); }, 500); } function getStr(str, start, end) { let res = str.match(new RegExp(`${start}(.*?)${end}`)) return res ? res[1] : null } function getTaskParams() { try { var _iframeScripts = _d.scripts, _p = null; for (let i = 0; i < _iframeScripts.length; i++) { if (_iframeScripts[i].innerHTML.indexOf('mArg = "";') != -1 && _iframeScripts[i].innerHTML.indexOf('==UserScript==') == -1) { _p = getStr(_iframeScripts[i].innerHTML.replace(/\s/g, ""), 'try{mArg=', ';}catch'); return _p } } return _p } catch (e) { return null } } function getCk(name) { return document.cookie.match(`[;\s+]?${name}=([^;]*)`)?.pop(); } function autoLogin() { logger('\u7528\u6237\u5df2\u8bbe\u7f6e\u81ea\u52a8\u767b\u5f55', 'green') if (setting.phone.length <= 0 || setting.password.length <= 0) { logger('\u7528\u6237\u672a\u8bbe\u7f6e\u767b\u5f55\u4fe1\u606f', 'red') return } setTimeout(() => { $('#phone').val(setting.phone) $('#pwd').val(setting.password) $('#loginBtn').click() }, 3000) } function toNext() { refreshCourseList().then((res) => { if (setting.review || !setting.work) { setTimeout(() => { $('#ne-21log', window.parent.document).html('') if (top.document.querySelector('#mainid > .prev_next.next') == undefined) { top.document.querySelector('#prevNextFocusNext').click(); return } top.document.querySelector('#mainid > .prev_next.next').click(); }, 5000) return } let _t = [] $.each($(res).find('li'), (_, t) => { let curid = $(t).find('.posCatalog_select').attr('id'), status = $(t).find('.prevHoverTips').text(), name = $(t).find('.posCatalog_name').attr('title'); if (curid.indexOf('cur') != -1) { _t.push({ 'curid': curid, 'status': status, 'name': name }) } }) let _curChaterId = $('#coursetree', window.parent.document).find('.posCatalog_active').attr('id') let _curIndex = _t.findIndex((item) => item['curid'] == _curChaterId) for (_curIndex; _curIndex < _t.length - 1; _curIndex++) { if (_t[_curIndex]['status'].indexOf('\u5f85\u5b8c\u6210') != -1) { let c_tabs = top.document.querySelectorAll('#prev_tab li') let c_active_tab = top.document.querySelector('#prev_tab li.active') if (c_tabs && c_active_tab) { let c_active_tab_id = c_active_tab.getAttribute("id").replace(/dct/, '') if (c_active_tab_id != c_tabs.length) { setTimeout(() => { $('#ne-21log', window.parent.document).html('') if (top.document.querySelector('#mainid > .prev_next.next') == undefined) { top.document.querySelector('#prevNextFocusNext').click(); return } top.document.querySelector('#mainid > .prev_next.next').click(); }, 5000) return } } } let t = _t[_curIndex + 1] if (t['status'].indexOf('\u5f85\u5b8c\u6210') != -1) { // \u6dfb\u52a0\u684c\u9762\u901a\u77e5 showDesktopNotification('\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u4e2a\u4efb\u52a1', `\u5373\u5c06\u5207\u6362\u5230: ${t['name']}`, ''); setTimeout(() => { $('#ne-21log', window.parent.document).html('') if (top.document.querySelector('#mainid > .prev_next.next') == undefined) { top.document.querySelector('#prevNextFocusNext').click(); return } top.document.querySelector('#mainid > .prev_next.next').click(); showBox() }, 5000) return } else if (t['status'].indexOf('\u95ef\u5173') != -1) { logger('\u5f53\u524d\u4e3a\u95ef\u5173\u6a21\u5f0f,\u5b58\u5728\u672a\u5b8c\u6210\u4efb\u52a1\u70b9,\u811a\u672c\u5df2\u6682\u505c\u8fd0\u884c,\u8bf7\u624b\u52a8\u5b8c\u6210\u5e76\u70b9\u51fb\u4e0b\u4e00\u7ae0\u8282', 'red') return } else if (t['status'].indexOf('\u5f00\u653e') != -1) { logger('\u7ae0\u8282\u672a\u5f00\u653e', 'red') return } else { // console.log(t) } } // \u6dfb\u52a0\u684c\u9762\u901a\u77e5 showDesktopNotification('\u8bfe\u7a0b\u5b8c\u6210', '\u6b64\u8bfe\u7a0b\u6240\u6709\u4efb\u52a1\u70b9\u5df2\u5904\u7406\u5b8c\u6bd5', ''); logger('\u6b64\u8bfe\u7a0b\u5904\u7406\u5b8c\u6bd5', 'green') return }) } function initializeTaskSystem() { try { showBox() if (_mlist.length <= 0) { // \u6dfb\u52a0\u684c\u9762\u901a\u77e5 showDesktopNotification('\u4efb\u52a1\u70b9\u5b8c\u6210', '\u6b64\u9875\u9762\u6240\u6709\u4efb\u52a1\u70b9\u5df2\u5904\u7406\u5b8c\u6bd5,\u51c6\u5907\u8df3\u8f6c\u9875\u9762', ''); logger('\u6b64\u9875\u9762\u4efb\u52a1\u5904\u7406\u5b8c\u6bd5,\u51c6\u5907\u8df3\u8f6c\u9875\u9762', 'green') return toNext() } let _type = _mlist[0]['type'], _dom = _domList[0], _task = _mlist[0]; if (_type == undefined) { _type = _mlist[0]['property']["module"] } logger('\u6b63\u5728\u5904\u7406\u4efb\u52a1\u7c7b\u578b: ' + _type, 'blue'); switch (_type) { case "video": if (_mlist[0]['property']['module'] == 'insertvideo') { logger('\u5f00\u59cb\u5904\u7406\u89c6\u9891', 'purple') processVideoTask(_dom, _task) break } else if (_mlist[0]['property']['module'] == 'insertaudio') { logger('\u5f00\u59cb\u5904\u7406\u97f3\u9891', 'purple') processAudioTask(_dom, _task) break } else { logger('\u672a\u77e5\u7c7b\u578b\u4efb\u52a1,\u8bf7\u8054\u7cfb\u4f5c\u8005,\u8df3\u8fc7', 'red') switchMission() break } case "workid": logger('\u5f00\u59cb\u5904\u7406\u6d4b\u9a8c', 'purple') // \u68c0\u67e5\u662f\u5426\u8bbe\u7f6e\u4e86\u4e0d\u505a\u6d4b\u9a8c if (localStorage.getItem('GPTJsSetting.skipTest') === 'true') { logger('\u5df2\u8bbe\u7f6e\u4e0d\u505a\u6d4b\u9a8c,\u8df3\u8fc7\u6d4b\u9a8c\u4efb\u52a1', 'orange') return toNext() } else { missonWork(_dom, _task) } break case "document": logger('\u5f00\u59cb\u5904\u7406\u6587\u6863', 'purple') missonDoucument(_dom, _task) break case "read": logger('\u5f00\u59cb\u5904\u7406\u9605\u8bfb', 'purple') missonRead(_dom, _task) break case "insertbook": logger('\u5f00\u59cb\u5904\u7406\u8bfb\u4e66', 'purple') missonBook(_dom, _task) break default: let GarbageTasks = ['insertimage'] if (GarbageTasks.indexOf(_type) != -1) { logger('\u53d1\u73b0\u65e0\u9700\u5904\u7406\u4efb\u52a1,\u8df3\u8fc7。', 'red') switchMission() } else { logger('\u6682\u4e0d\u652f\u6301\u5904\u7406\u6b64\u7c7b\u578b:' + _type + ',\u8df3\u8fc7。', 'red') switchMission() } } } catch (e) { logger('\u521d\u59cb\u5316\u4efb\u52a1\u7cfb\u7edf\u51fa\u9519: ' + e, 'red'); // \u5c1d\u8bd5\u6062\u590d\u8fc7\u7a0b try { if (_mlist && _mlist.length > 0) { _mlist.splice(0, 1); } if (_domList && _domList.length > 0) { _domList.splice(0, 1); } // \u5ef6\u8fdf\u540e\u91cd\u8bd5 logger('\u5c06\u57285\u79d2\u540e\u5c1d\u8bd5\u7ee7\u7eed\u6267\u884c\u4efb\u52a1\u7cfb\u7edf', 'orange'); setTimeout(() => { try { initializeTaskSystem(); } catch (e2) { logger('\u65e0\u6cd5\u6062\u590d\u4efb\u52a1\u7cfb\u7edf,\u8bf7\u5237\u65b0\u9875\u9762: ' + e2, 'red'); } }, 5000); } catch (e2) { logger('\u6062\u590d\u8fc7\u7a0b\u5931\u8d25,\u8bf7\u5237\u65b0\u9875\u9762: ' + e2, 'red'); } } } function processAudioTask(dom, obj) { if (!setting.audio) { logger('\u7528\u6237\u8bbe\u7f6e\u4e0d\u5904\u7406\u97f3\u9891\u4efb\u52a1,\u51c6\u5907\u5f00\u59cb\u4e0b\u4e00\u4e2a\u4efb\u52a1。', 'red') try { // \u5c1d\u8bd5\u76f4\u63a5\u8c03\u7528switchMission switchMission(); } catch (e) { logger('\u97f3\u9891\u4efb\u52a1\u5207\u6362\u5931\u8d25: ' + e, 'red'); // \u5982\u679c\u76f4\u63a5\u8c03\u7528\u5931\u8d25,\u5ef6\u8fdf\u540e\u91cd\u8bd5 setTimeout(() => { try { switchMission(); } catch (e2) { // \u6700\u540e\u5c1d\u8bd5\u76f4\u63a5\u8c03\u7528initializeTaskSystem logger('\u4f7f\u7528initializeTaskSystem\u4f5c\u4e3a\u5907\u9009', 'orange'); setTimeout(initializeTaskSystem, 2000); } }, 3000); } return } let isDo; if (setting.task) { logger("\u5f53\u524d\u53ea\u5904\u7406\u4efb\u52a1\u70b9\u4efb\u52a1", 'red') if (obj['jobid'] == undefined ? false : true) { isDo = true } else { isDo = false } } else { logger("\u5f53\u524d\u9ed8\u8ba4\u5904\u7406\u6240\u6709\u4efb\u52a1(\u5305\u62ec\u975e\u4efb\u52a1\u70b9\u4efb\u52a1)", 'red') isDo = true } if (isDo) { let classId = _defaults['clazzId'], userId = _defaults['userid'], fid = _defaults['fid'], reportUrl = _defaults['reportUrl'], isPassed = obj['isPassed'], otherInfo = obj['otherInfo'], jobId = obj['property']['_jobid'], name = obj['property']['name'], objectId = obj['property']['objectid']; if (setting.maskImg) { let ifs = $(dom).attr('style'); $(dom).contents().find('body').find('.main').attr('style', 'visibility:hidden;') $(dom).contents().find('body').prepend('') } if (!setting.review && isPassed == true) { logger('\u97f3\u9891:' + name + '\u68c0\u6d4b\u5df2\u5b8c\u6210,\u51c6\u5907\u5904\u7406\u4e0b\u4e00\u4e2a\u4efb\u52a1', 'green') switchMission() return } else if (setting.review) { logger('\u5df2\u5f00\u542f\u590d\u4e60\u6a21\u5f0f,\u5f00\u59cb\u5904\u7406\u97f3\u9891:' + name, 'pink') } $.ajax({ url: _l.protocol + '//' + _l.host + "/ananas/status/" + objectId + '?k=' + fid + '&flag=normal&_dc=' + String(Math.round(new Date())), type: "GET", success: function (res) { try { let duration = res['duration'], dtoken = res['dtoken'], clipTime = '0_' + duration, playingTime = 0, isdrag = 3; var _rt = 0.9; if (setting.rate == 0) { logger('\u5df2\u5f00\u542f\u97f3\u9891\u79d2\u8fc7,99.9%\u4f1a\u5bfc\u81f4\u8fdb\u5ea6\u91cd\u7f6e、\u6302\u79d1\u7b49\u95ee\u9898。', 'red') logger('\u5df2\u5f00\u542f\u97f3\u9891\u79d2\u8fc7,\u8bf7\u7b49\u5f855\u79d2!!!', 'red') } else if (setting.rate > 1 && setting.rate <= 16) { logger('\u5df2\u5f00\u542f\u97f3\u9891\u500d\u901f,\u5f53\u524d\u500d\u901f:' + setting.rate + ',99.9%\u4f1a\u5bfc\u81f4\u8fdb\u5ea6\u91cd\u7f6e、\u6302\u79d1\u7b49\u95ee\u9898。', 'red') logger('\u5df2\u5f00\u542f\u97f3\u9891\u500d\u901f,\u8fdb\u5ea640\u79d2\u66f4\u65b0\u4e00\u6b21,\u8bf7\u7b49\u5f85!', 'red') } else if (setting.rate > 16) { setting.rate = 1 logger('\u8d85\u8fc7\u5141\u8bb8\u8bbe\u7f6e\u7684\u6700\u5927\u500d\u6570,\u5df2\u91cd\u7f6e\u4e3a1\u500d\u901f。', 'red') } else { logger("\u97f3\u9891\u8fdb\u5ea6\u6bcf\u969440\u79d2\u66f4\u65b0\u4e00\u6b21,\u8bf7\u7b49\u5f85\u8010\u5fc3\u7b49\u5f85...", 'blue') } logger("\u97f3\u9891:" + name + "\u5f00\u59cb\u64ad\u653e") updateAudio(reportUrl, dtoken, classId, playingTime, duration, clipTime, objectId, otherInfo, jobId, userId, isdrag, _rt).then((status) => { switch (status) { case 1: logger("\u97f3\u9891:" + name + "\u5df2\u64ad\u653e" + String((playingTime / duration) * 100).slice(0, 4) + '%', 'purple') isdrag = 0 break case 3: _rt = 1 break default: console.log(status) } }) let _loop = setInterval(() => { playingTime += 40 * setting.rate if (playingTime >= duration || setting.rate == 0) { clearInterval(_loop) playingTime = duration isdrag = 4 } else if (rt = 1 && playingTime == 40 * setting.rate) { isdrag = 3 } else { isdrag = 0 } updateAudio(reportUrl, dtoken, classId, playingTime, duration, clipTime, objectId, otherInfo, jobId, userId, isdrag, _rt).then((status) => { switch (status) { case 0: playingTime -= 40 break case 1: logger("\u97f3\u9891:" + name + "\u5df2\u64ad\u653e" + String((playingTime / duration) * 100).slice(0, 4) + '%', 'purple') break case 2: clearInterval(_loop) logger("\u97f3\u9891:" + name + "\u68c0\u6d4b\u64ad\u653e\u5b8c\u6bd5,\u51c6\u5907\u5904\u7406\u4e0b\u4e00\u4e2a\u4efb\u52a1。", 'green') switchMission() break case 3: playingTime -= 40 _rt = Number(_rt) == 1 ? 0.9 : 1 break default: console.log(status) } }) }, setting.rate == 0 ? 5000 : 40000) } catch (e) { logger('\u53d1\u751f\u9519\u8bef:' + e, 'red') } } }); } else { logger('\u7528\u6237\u8bbe\u7f6e\u53ea\u5904\u7406\u5c5e\u4e8e\u4efb\u52a1\u70b9\u7684\u4efb\u52a1,\u51c6\u5907\u5904\u7406\u4e0b\u4e00\u4e2a\u4efb\u52a1', 'green') switchMission() return } } function processVideoTask(dom, obj) { if (!setting.video) { logger('\u7528\u6237\u8bbe\u7f6e\u4e0d\u5904\u7406\u89c6\u9891\u4efb\u52a1,\u51c6\u5907\u5f00\u59cb\u4e0b\u4e00\u4e2a\u4efb\u52a1。', 'red') try { // \u5c1d\u8bd5\u76f4\u63a5\u8c03\u7528switchMission switchMission(); } catch (e) { logger('\u89c6\u9891\u4efb\u52a1\u5207\u6362\u5931\u8d25: ' + e, 'red'); // \u5982\u679c\u76f4\u63a5\u8c03\u7528\u5931\u8d25,\u5ef6\u8fdf\u540e\u91cd\u8bd5 setTimeout(() => { try { switchMission(); } catch (e2) { // \u6700\u540e\u5c1d\u8bd5\u76f4\u63a5\u8c03\u7528initializeTaskSystem logger('\u4f7f\u7528initializeTaskSystem\u4f5c\u4e3a\u5907\u9009', 'orange'); setTimeout(initializeTaskSystem, 2000); } }, 3000); } return } let classId = _defaults["clazzId"], userId = _defaults["userid"], fid = _defaults["fid"], reportUrl = _defaults["reportUrl"], isPassed = obj["isPassed"], otherInfo = obj["otherInfo"], jobId = obj["property"]["_jobid"], name = obj["property"]["name"], objectId = obj["property"]["objectid"]; if (!setting.review && isPassed == true) { logger("\u89c6\u9891:" + name + "\u68c0\u6d4b\u5df2\u5b8c\u6210,\u51c6\u5907\u5904\u7406\u4e0b\u4e00\u4e2a\u4efb\u52a1", "green"); switchMission(); return; } const iframe = $("iframe").get(0); const iframeSrc = iframe.src; const iframeDocument = iframe.contentDocument; if (iframeSrc.includes("video")) { logger("\u53d1\u73b0\u4e00\u4e2a\u89c6\u9891,\u6b63\u5728\u89e3\u6790"); let isExecuted = false; const intervalId = setInterval(() => { const video = iframeDocument.documentElement.querySelector("video"); if (video && !isExecuted) { logger("\u64ad\u653e\u6210\u529f"); if (!video) return; video.pause(); video.muted = true; // \u8bbe\u7f6e\u89c6\u9891\u64ad\u653e\u500d\u901f if (setting.rate > 1 && setting.rate <= 16) { video.playbackRate = setting.rate; logger(`\u89c6\u9891\u500d\u901f\u5df2\u8bbe\u7f6e\u4e3a: ${setting.rate}x`, 'blue'); } else if (setting.rate == 0) { video.playbackRate = 16; // \u79d2\u8fc7\u6a21\u5f0f\u4f7f\u7528\u6700\u9ad8\u500d\u901f logger('\u89c6\u9891\u79d2\u8fc7\u6a21\u5f0f,\u500d\u901f\u8bbe\u7f6e\u4e3a16x', 'red'); } else { video.playbackRate = 1; } video.play(); const listener = () => { sleep(2000).then(() => { video.play(); }); }; video.addEventListener("pause", listener); video.addEventListener("ended", () => { logger("\u89c6\u9891\u5df2\u64ad\u653e\u5b8c\u6210"); video.removeEventListener("pause", listener); resolve(); }); isExecuted = true; clearInterval(intervalId); } }, 2500); } else if (iframeSrc.includes("audio")) { logger("\u53d1\u73b0\u4e00\u4e2a\u97f3\u9891,\u6b63\u5728\u89e3\u6790"); let isExecuted = false; const intervalId = setInterval(() => { const audio = iframeDocument.documentElement.querySelector("audio"); if (audio && !isExecuted) { logger("\u64ad\u653e\u6210\u529f"); if (!audio) return; audio.pause(); audio.muted = true; // \u8bbe\u7f6e\u97f3\u9891\u64ad\u653e\u500d\u901f if (setting.rate > 1 && setting.rate <= 16) { audio.playbackRate = setting.rate; logger(`\u97f3\u9891\u500d\u901f\u5df2\u8bbe\u7f6e\u4e3a: ${setting.rate}x`, 'blue'); } else if (setting.rate == 0) { audio.playbackRate = 16; // \u79d2\u8fc7\u6a21\u5f0f\u4f7f\u7528\u6700\u9ad8\u500d\u901f logger('\u97f3\u9891\u79d2\u8fc7\u6a21\u5f0f,\u500d\u901f\u8bbe\u7f6e\u4e3a16x', 'red'); } else { audio.playbackRate = 1; } audio.play(); const listener = () => { sleep(2000).then(() => { audio.play(); }); }; audio.addEventListener("pause", listener); audio.addEventListener("ended", () => { logger("\u97f3\u9891\u5df2\u64ad\u653e\u5b8c\u6210"); audio.removeEventListener("pause", listener); resolve(); }); isExecuted = true; clearInterval(intervalId); } }, 2500); } } function missonBook(dom, obj) { if (setting.task) { if (obj['jobid'] == undefined) { logger("\u5f53\u524d\u53ea\u5904\u7406\u4efb\u52a1\u70b9\u4efb\u52a1,\u8df3\u8fc7", 'red') try { // \u5c1d\u8bd5\u76f4\u63a5\u8c03\u7528switchMission switchMission(); } catch (e) { logger('\u4e66\u7c4d\u4efb\u52a1\u5207\u6362\u5931\u8d25: ' + e, 'red'); // \u5982\u679c\u76f4\u63a5\u8c03\u7528\u5931\u8d25,\u4f7f\u7528setTimeout setTimeout(() => { try { switchMission(); } catch (e2) { // \u6700\u540e\u5c1d\u8bd5\u76f4\u63a5\u8c03\u7528initializeTaskSystem logger('\u4f7f\u7528initializeTaskSystem\u4f5c\u4e3a\u5907\u9009', 'orange'); setTimeout(initializeTaskSystem, 2000); } }, 3000); } return } } let jobId = obj['property']['jobid'], name = obj['property']['bookname'], jtoken = obj['jtoken'], knowledgeId = _defaults['knowledgeid'], courseId = _defaults['courseid'], clazzId = _defaults['clazzId']; if (obj['job'] == undefined) { logger('\u8bfb\u4e66:' + name + '\u68c0\u6d4b\u5df2\u5b8c\u6210,\u51c6\u5907\u6267\u884c\u4e0b\u4e00\u4e2a\u4efb\u52a1。', 'green') switchMission() return } $.ajax({ url: _l.protocol + "//" + _l.host + '/ananas/job?jobid=' + jobId + '&knowledgeid=' + knowledgeId + '&courseid=' + courseId + '&clazzid=' + clazzId + '&jtoken=' + jtoken + '&_dc=' + String(Math.round(new Date())), method: 'GET', success: function (res) { if (res.status) { logger('\u8bfb\u4e66:' + name + res.msg + ',\u51c6\u5907\u6267\u884c\u4e0b\u4e00\u4e2a\u4efb\u52a1。', 'green') } else { logger('\u8bfb\u4e66:' + name + '\u5904\u7406\u5f02\u5e38,\u8df3\u8fc7。', 'red') } switchMission() return }, }) } function missonLive(dom, obj) { } function missonDoucument(dom, obj) { if (setting.task) { if (obj['jobid'] == undefined) { logger("\u5f53\u524d\u53ea\u5904\u7406\u4efb\u52a1\u70b9\u4efb\u52a1,\u8df3\u8fc7", 'red') switchMission() return } } let jobId = obj['property']['jobid'], name = obj['property']['name'], jtoken = obj['jtoken'], knowledgeId = _defaults['knowledgeid'], courseId = _defaults['courseid'], clazzId = _defaults['clazzId']; if (obj['job'] == undefined) { logger('\u6587\u6863:' + name + '\u68c0\u6d4b\u5df2\u5b8c\u6210,\u51c6\u5907\u6267\u884c\u4e0b\u4e00\u4e2a\u4efb\u52a1。', 'green') try { // \u5c1d\u8bd5\u76f4\u63a5\u8c03\u7528switchMission switchMission(); } catch (e) { logger('\u6587\u6863\u4efb\u52a1\u5207\u6362\u5931\u8d25: ' + e, 'red'); // \u5982\u679c\u76f4\u63a5\u8c03\u7528\u5931\u8d25,\u4f7f\u7528setTimeout setTimeout(() => { try { switchMission(); } catch (e2) { // \u6700\u540e\u5c1d\u8bd5\u76f4\u63a5\u8c03\u7528initializeTaskSystem logger('\u4f7f\u7528initializeTaskSystem\u4f5c\u4e3a\u5907\u9009', 'orange'); setTimeout(initializeTaskSystem, 2000); } }, 3000); } return } $.ajax({ url: _l.protocol + "//" + _l.host + '/ananas/job/document?jobid=' + jobId + '&knowledgeid=' + knowledgeId + '&courseid=' + courseId + '&clazzid=' + clazzId + '&jtoken=' + jtoken + '&_dc=' + String(Math.round(new Date())), method: 'GET', success: function (res) { if (res.status) { logger('\u6587\u6863:' + name + res.msg + ',\u51c6\u5907\u6267\u884c\u4e0b\u4e00\u4e2a\u4efb\u52a1。', 'green') } else { logger('\u6587\u6863:' + name + '\u5904\u7406\u5f02\u5e38,\u8df3\u8fc7。', 'red') } try { // \u5c1d\u8bd5\u76f4\u63a5\u8c03\u7528switchMission switchMission(); } catch (e) { logger('\u6587\u6863\u4efb\u52a1\u5207\u6362\u5931\u8d25: ' + e, 'red'); // \u5982\u679c\u76f4\u63a5\u8c03\u7528\u5931\u8d25,\u4f7f\u7528setTimeout setTimeout(() => { try { switchMission(); } catch (e2) { // \u6700\u540e\u5c1d\u8bd5\u76f4\u63a5\u8c03\u7528initializeTaskSystem logger('\u4f7f\u7528initializeTaskSystem\u4f5c\u4e3a\u5907\u9009', 'orange'); setTimeout(initializeTaskSystem, 2000); } }, 3000); } return }, }) } function missonRead(dom, obj) { if (setting.task) { if (obj['jobid'] == undefined) { logger("\u5f53\u524d\u53ea\u5904\u7406\u4efb\u52a1\u70b9\u4efb\u52a1,\u8df3\u8fc7", 'red') try { // \u5c1d\u8bd5\u76f4\u63a5\u8c03\u7528switchMission switchMission(); } catch (e) { logger('\u9605\u8bfb\u4efb\u52a1\u5207\u6362\u5931\u8d25: ' + e, 'red'); // \u5982\u679c\u76f4\u63a5\u8c03\u7528\u5931\u8d25,\u4f7f\u7528setTimeout setTimeout(() => { try { switchMission(); } catch (e2) { // \u6700\u540e\u5c1d\u8bd5\u76f4\u63a5\u8c03\u7528initializeTaskSystem logger('\u4f7f\u7528initializeTaskSystem\u4f5c\u4e3a\u5907\u9009', 'orange'); setTimeout(initializeTaskSystem, 2000); } }, 3000); } return } } let jobId = obj['property']['jobid'], name = obj['property']['title'], jtoken = obj['jtoken'], knowledgeId = _defaults['knowledgeid'], courseId = _defaults['courseid'], clazzId = _defaults['clazzId']; if (obj['job'] == undefined) { logger('\u9605\u8bfb:' + name + ',\u68c0\u6d4b\u5df2\u5b8c\u6210,\u51c6\u5907\u6267\u884c\u4e0b\u4e00\u4e2a\u4efb\u52a1。', 'green') try { // \u5c1d\u8bd5\u76f4\u63a5\u8c03\u7528switchMission switchMission(); } catch (e) { logger('\u9605\u8bfb\u4efb\u52a1\u5207\u6362\u5931\u8d25: ' + e, 'red'); // \u5982\u679c\u76f4\u63a5\u8c03\u7528\u5931\u8d25,\u4f7f\u7528setTimeout setTimeout(() => { try { switchMission(); } catch (e2) { // \u6700\u540e\u5c1d\u8bd5\u76f4\u63a5\u8c03\u7528initializeTaskSystem logger('\u4f7f\u7528initializeTaskSystem\u4f5c\u4e3a\u5907\u9009', 'orange'); setTimeout(initializeTaskSystem, 2000); } }, 3000); } return } $.ajax({ url: _l.protocol + '//' + _l.host + '/ananas/job/readv2?jobid=' + jobId + '&knowledgeid=' + knowledgeId + '&courseid=' + courseId + '&clazzid=' + clazzId + '&jtoken=' + jtoken + '&_dc=' + String(Math.round(new Date())), method: 'GET', success: function (res) { if (res.status) { logger('\u9605\u8bfb:' + name + res.msg + ',\u51c6\u5907\u6267\u884c\u4e0b\u4e00\u4e2a\u4efb\u52a1。', 'green') } else { logger('\u9605\u8bfb:' + name + '\u5904\u7406\u5f02\u5e38,\u8df3\u8fc7。', 'red') } try { // \u5c1d\u8bd5\u76f4\u63a5\u8c03\u7528switchMission switchMission(); } catch (e) { logger('\u9605\u8bfb\u4efb\u52a1\u5207\u6362\u5931\u8d25: ' + e, 'red'); // \u5982\u679c\u76f4\u63a5\u8c03\u7528\u5931\u8d25,\u4f7f\u7528setTimeout setTimeout(() => { try { switchMission(); } catch (e2) { // \u6700\u540e\u5c1d\u8bd5\u76f4\u63a5\u8c03\u7528initializeTaskSystem logger('\u4f7f\u7528initializeTaskSystem\u4f5c\u4e3a\u5907\u9009', 'orange'); setTimeout(initializeTaskSystem, 2000); } }, 3000); } return } }) } function missonWork(dom, obj) { if (!setting.work) { logger('\u7528\u6237\u8bbe\u7f6e\u4e0d\u81ea\u52a8\u5904\u7406\u6d4b\u9a8c,\u51c6\u5907\u5904\u7406\u4e0b\u4e00\u4e2a\u4efb\u52a1', 'green') try { // \u5c1d\u8bd5\u76f4\u63a5\u8c03\u7528switchMission switchMission(); } catch (e) { logger('\u6d4b\u9a8c\u4efb\u52a1\u5207\u6362\u5931\u8d25: ' + e, 'red'); // \u5982\u679c\u76f4\u63a5\u8c03\u7528\u5931\u8d25,\u4f7f\u7528setTimeout setTimeout(() => { try { switchMission(); } catch (e2) { // \u6700\u540e\u5c1d\u8bd5\u76f4\u63a5\u8c03\u7528initializeTaskSystem logger('\u4f7f\u7528initializeTaskSystem\u4f5c\u4e3a\u5907\u9009', 'orange'); setTimeout(initializeTaskSystem, 2000); } }, 3000); } return } let isDo; if (setting.task) { logger("\u5f53\u524d\u53ea\u5904\u7406\u4efb\u52a1\u70b9\u4efb\u52a1", 'red') if (obj['jobid'] == undefined ? false : true) { isDo = true } else { isDo = false // \u6dfb\u52a0\u5b89\u5168\u7684\u4efb\u52a1\u5207\u6362 try { logger('\u975e\u4efb\u52a1\u70b9\u6d4b\u9a8c,\u8df3\u8fc7', 'orange'); switchMission(); } catch (e) { logger('\u4efb\u52a1\u5207\u6362\u5931\u8d25: ' + e, 'red'); setTimeout(initializeTaskSystem, 3000); } return; } } else { logger("\u5f53\u524d\u9ed8\u8ba4\u5904\u7406\u6240\u6709\u4efb\u52a1(\u5305\u62ec\u975e\u4efb\u52a1\u70b9\u4efb\u52a1)", 'red') isDo = true } if (isDo) { if (obj['jobid'] !== undefined) { var phoneWeb = _l.protocol + '//' + _l.host + '/work/phone/work?workId=' + obj['jobid'].replace('work-', '') + '&courseId=' + _defaults['courseid'] + '&clazzId=' + _defaults['clazzId'] + '&knowledgeId=' + _defaults['knowledgeid'] + '&jobId=' + obj['jobid'] + '&enc=' + obj['enc'] // setTimeout(() => { startDoCyWork(0, dom) }, 3000) setTimeout(() => { startDoPhoneCyWork(0, dom, phoneWeb) }, 3000) } else { setTimeout(() => { startDoCyWork(0, dom) }, 3000) } // } else if (!GM_getValue('cando')) { // logger('\u5b58\u5728\u672a\u5b8c\u6210\u4efb\u52a1\u70b9,\u811a\u672c\u5df2\u6682\u505c\u6267\u884c,\u8bf7\u624b\u52a8\u5904\u7406\u540e\u5237\u65b0\u7f51\u9875。', 'red') // return } else { logger('\u7528\u6237\u8bbe\u7f6e\u53ea\u5904\u7406\u5c5e\u4e8e\u4efb\u52a1\u70b9\u7684\u4efb\u52a1,\u51c6\u5907\u5904\u7406\u4e0b\u4e00\u4e2a\u4efb\u52a1', 'green') switchMission() return } } function doPhoneWork($dom) { let $cy = $dom.find('.Wrappadding form') $subBtn = $cy.find('.zquestions .zsubmit .btn-ok-bottom') $okBtn = $dom.find('#okBtn') $saveBtn = $cy.find('.zquestions .zsubmit .btn-save') let TimuList = $cy.find('.zquestions .Py-mian1') startDoPhoneTimu(0, TimuList) } function startDoPhoneTimu(index, TimuList) { if (index == TimuList.length) { if (localStorage.getItem('GPTJsSetting.sub') === 'true') { logger('\u6d4b\u9a8c\u5904\u7406\u5b8c\u6210,\u51c6\u5907\u81ea\u52a8\u63d0\u4ea4。', 'green') setTimeout(() => { $subBtn.click() setTimeout(() => { logger('\u63d0\u4ea4\u6210\u529f,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u4e2a\u4efb\u52a1。', 'green') _mlist.splice(0, 1) _domList.splice(0, 1) setTimeout(() => { switchMission() }, 3000) }, 3000) }, 5000) } else if (localStorage.getItem('GPTJsSetting.force') === 'true') { logger('\u6d4b\u9a8c\u5904\u7406\u5b8c\u6210,\u5b58\u5728\u65e0\u7b54\u6848\u9898\u76ee,\u7531\u4e8e\u7528\u6237\u8bbe\u7f6e\u4e86\u5f3a\u5236\u63d0\u4ea4,\u51c6\u5907\u81ea\u52a8\u63d0\u4ea4。', 'red') setTimeout(() => { $subBtn.click() setTimeout(() => { $okBtn.click() logger('\u63d0\u4ea4\u6210\u529f,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u4e2a\u4efb\u52a1。', 'green') _mlist.splice(0, 1) _domList.splice(0, 1) setTimeout(() => { switchMission() }, 3000) }, 3000) }, 5000) } else { logger('\u6d4b\u9a8c\u5904\u7406\u5b8c\u6210,\u5b58\u5728\u65e0\u7b54\u6848\u9898\u76ee\u6216\u7528\u6237\u8bbe\u7f6e\u4e0d\u81ea\u52a8\u63d0\u4ea4,\u81ea\u52a8\u4fdd\u5b58!', 'green') setTimeout(() => { logger('\u4fdd\u5b58\u6210\u529f,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u4e2a\u4efb\u52a1。', 'green') $saveBtn.click() setTimeout(() => { logger('\u4fdd\u5b58\u6210\u529f,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u4e2a\u4efb\u52a1。', 'green') _mlist.splice(0, 1) _domList.splice(0, 1) // \u4fee\u590d\u5207\u6362\u4efb\u52a1\u7684\u95ee\u9898:\u76f4\u63a5\u8c03\u7528initializeTaskSystem try { logger('\u6b63\u5728\u6267\u884c\u4efb\u52a1\u5207\u6362...', 'blue'); // \u76f4\u63a5\u8c03\u7528\u51fd\u6570,\u4e0d\u4f7f\u7528setTimeout initializeTaskSystem(); } catch (e) { logger('\u4efb\u52a1\u5207\u6362\u51fa\u9519: ' + e, 'red'); // \u5982\u679cinitializeTaskSystem\u51fa\u9519,\u5c1d\u8bd5\u4f7f\u7528switchMission setTimeout(() => { try { switchMission(); } catch (e2) { logger('\u901a\u8fc7switchMission\u5207\u6362\u4efb\u52a1\u4e5f\u5931\u8d25: ' + e2, 'red'); logger('\u5c06\u57285\u79d2\u540e\u91cd\u8bd5,\u5982\u4ecd\u5931\u8d25\u8bf7\u5237\u65b0\u9875\u9762', 'orange'); // \u6700\u540e\u5c1d\u8bd5\u76f4\u63a5\u8df3\u8f6c\u4e0b\u4e00\u9875 setTimeout(() => { try { toNext(); } catch (e3) { logger('\u65e0\u6cd5\u81ea\u52a8\u5207\u6362,\u8bf7\u624b\u52a8\u5207\u6362\u5230\u4e0b\u4e00\u4efb\u52a1', 'red'); } }, 5000); } }, 3000); } }, 3000) }, 5000) } return } let questionFull = $(TimuList[index]).find('.Py-m1-title').html() let _question = formatQuestionText(questionFull).replace(/.*?\[.*?\u9898\]\s*\n\s*/, '').trim() let _type = ({ \u5355\u9009\u9898: 0, \u591a\u9009\u9898: 1, \u586b\u7a7a\u9898: 2, \u5224\u65ad\u9898: 3, \u7b80\u7b54\u9898: 4, \u9009\u62e9\u9898: 5 })[questionFull.match(/.*?\[(.*?)]|$/)[1]] let _a = [] let _answerTmpArr var check_answer_flag = 0; switch (_type) { case 0: //\u904d\u5386\u9009\u9879\u5217\u8868 _answerTmpArr = $(TimuList[index]).find('.answerList.singleChoice li') var mergedAnswers = []; _answerTmpArr.each(function () { var answerText = $(this).text().replace(/[ABCD]/g, '').trim(); mergedAnswers.push(answerText); }); mergedAnswers = mergedAnswers.join("|"); // \u4e0d\u5728\u53d1\u9001\u5230API\u7684\u9898\u76ee\u4e2d\u6dfb\u52a0\u9898\u578b\u524d\u7f00,\u53ea\u5728\u65e5\u5fd7\u4e2d\u663e\u793a logger("\u5355\u9009\u9898: " + _question + '\n' + mergedAnswers, 'blue'); // \u4fdd\u5b58\u9009\u9879\u4fe1\u606f,\u5c06\u9009\u9879\u4fe1\u606f\u6dfb\u52a0\u5230\u9898\u76ee\u4e2d\u4f20\u9012\u7ed9AI let phoneQuestionWithOptions = _question + '\n' + mergedAnswers; //\u5224\u65ad\u9898\u76ee\u662f\u5426\u5df2\u4f5c\u7b54 for (var i = 0; i < _answerTmpArr.length; i++) { if ($(_answerTmpArr[i]).attr('aria-label')) { logger(index + 1 + '\u6b64\u9898\u5df2\u4f5c\u7b54,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u9898', 'green') check_answer_flag = 1; setTimeout(() => { startDoPhoneTimu(index + 1, TimuList) }, 300) break } } if (check_answer_flag == 0) { getAnswer(_type, phoneQuestionWithOptions).then((agrs) => { _answerTmpArr = $(TimuList[index]).find('.answerList.singleChoice li') $.each(_answerTmpArr, (i, t) => { _a.push(cleanTextContent($(t).html()).replace(/^[A-Z]\s*\n\s*/, '').trim()) }) // \u6539\u8fdb\u7684\u7b54\u6848\u5339\u914d\u903b\u8f91 let _i = -1; // \u5982\u679c\u7b54\u6848\u4e3a\u7a7a(\u6765\u81ea\u9898\u5e93\u67e5\u8be2\u5931\u8d25\u4e14\u6ca1\u6709\u5f00\u542fAI\u6216\u968f\u673a\u7b54\u9898\u529f\u80fd),\u5219\u4e0d\u5c1d\u8bd5\u5339\u914d if (!agrs || agrs.trim() === '') { logger('\u672a\u83b7\u53d6\u5230\u6709\u6548\u7b54\u6848,\u8df3\u8fc7\u6b64\u9898', 'red'); localStorage.setItem('GPTJsSetting.sub', false); setTimeout(() => { startDoPhoneTimu(index + 1, TimuList) }, setting.time); return; } // \u68c0\u67e5AI\u7b54\u6848\u662f\u5426\u4e3a\u9009\u9879\u5b57\u6bcd(A、B、C、D) if (/^[A-D]$/i.test(agrs.trim())) { // \u5982\u679c\u662f\u9009\u9879\u5b57\u6bcd,\u76f4\u63a5\u4f7f\u7528\u5b57\u6bcd\u5bf9\u5e94\u7684\u7d22\u5f15 let letterIndex = agrs.trim().toUpperCase().charCodeAt(0) - 65; // A=0, B=1, \u7b49 if (letterIndex >= 0 && letterIndex < _answerTmpArr.length) { _i = letterIndex; // logger('\u8bc6\u522b\u5230\u9009\u9879\u5b57\u6bcd: ' + agrs.trim() + ',\u5bf9\u5e94\u7d22\u5f15: ' + _i, 'green'); } } // \u68c0\u67e5\u7b54\u6848\u662f\u5426\u5305\u542b"\u7b54\u6848:X"\u683c\u5f0f else if (/\u7b54\u6848:?[A-D]/i.test(agrs)) { let match = agrs.match(/\u7b54\u6848:?([A-D])/i); if (match && match[1]) { let letterIndex = match[1].toUpperCase().charCodeAt(0) - 65; if (letterIndex >= 0 && letterIndex < _answerTmpArr.length) { _i = letterIndex; logger('\u4ece\u7b54\u6848\u6587\u672c\u4e2d\u63d0\u53d6\u9009\u9879: ' + match[1] + ',\u5bf9\u5e94\u7d22\u5f15: ' + _i, 'green'); } } } // \u5982\u679c\u4e0a\u9762\u7684\u65b9\u6cd5\u90fd\u6ca1\u627e\u5230\u5339\u914d\u9879,\u5c1d\u8bd5\u5185\u5bb9\u5339\u914d else { // \u5c1d\u8bd5\u7cbe\u786e\u5339\u914d _i = _a.findIndex((item) => item == agrs); // \u5982\u679c\u7cbe\u786e\u5339\u914d\u5931\u8d25,\u4ec5\u5728\u660e\u786e\u5f97\u5230\u7b54\u6848\u65f6\u5c1d\u8bd5\u6a21\u7cca\u5339\u914d if (_i == -1 && !agrs.includes('\u672a\u627e\u5230\u7b54\u6848') && agrs !== '\u6682\u65e0\u7b54\u6848') { for (let j = 0; j < _a.length; j++) { if (agrs.includes(_a[j]) || _a[j].includes(agrs)) { _i = j; logger('\u4f7f\u7528\u5185\u5bb9\u6a21\u7cca\u5339\u914d\u627e\u5230\u9009\u9879,\u7d22\u5f15: ' + _i, 'green'); break; } } } } if (_i == -1) { logger('\u65e0\u6cd5\u5339\u914d\u6b63\u786e\u7b54\u6848,\u8bf7\u624b\u52a8\u9009\u62e9,\u8df3\u8fc7\u6b64\u9898', 'red') // setting.sub = 0 localStorage.setItem('GPTJsSetting.sub', false) setTimeout(() => { startDoPhoneTimu(index + 1, TimuList) }, setting.time) } else { $(_answerTmpArr[_i]).click() logger('\u81ea\u52a8\u7b54\u9898\u6210\u529f,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u9898', 'green') setTimeout(() => { startDoPhoneTimu(index + 1, TimuList) }, setting.time) } }).catch((agrs) => { logger('\u7b54\u6848\u83b7\u53d6\u5931\u8d25,\u8df3\u8fc7\u6b64\u9898', 'red'); if (agrs['c'] == 0) { setTimeout(() => { startDoPhoneTimu(index + 1, TimuList) }, setting.time) } }) } break case 1: //\u904d\u5386\u9009\u9879\u5217\u8868 _answerTmpArr = $(TimuList[index]).find('.answerList.multiChoice li') var mergedAnswers = []; _answerTmpArr.each(function () { var answerText = $(this).text().replace(/[ABCD]/g, '').trim(); mergedAnswers.push(answerText); }); mergedAnswers = mergedAnswers.join("|"); // \u4e0d\u5728\u53d1\u9001\u5230API\u7684\u9898\u76ee\u4e2d\u6dfb\u52a0\u9898\u578b\u524d\u7f00,\u53ea\u5728\u65e5\u5fd7\u4e2d\u663e\u793a logger("\u591a\u9009\u9898: " + _question + '\n' + mergedAnswers, 'blue'); // \u4fdd\u5b58\u9009\u9879\u4fe1\u606f,\u5c06\u9009\u9879\u4fe1\u606f\u6dfb\u52a0\u5230\u9898\u76ee\u4e2d\u4f20\u9012\u7ed9AI let phoneMultiQuestionWithOptions = _question + '\n' + mergedAnswers; //\u5224\u65ad\u9898\u76ee\u662f\u5426\u5df2\u4f5c\u7b54 for (var i = 0; i < _answerTmpArr.length; i++) { if ($(_answerTmpArr[i]).attr('aria-label')) { logger(index + 1 + '\u6b64\u9898\u5df2\u4f5c\u7b54,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u9898', 'green') check_answer_flag = 1; setTimeout(() => { startDoPhoneTimu(index + 1, TimuList) }, 300) break } } if (check_answer_flag == 0) { getAnswer(_type, phoneMultiQuestionWithOptions).then((agrs) => { // \u68c0\u67e5\u7b54\u6848\u662f\u5426\u4e3a\u7a7a\u6216\u65e0\u6548 if (!agrs || agrs.trim() === '' || agrs.includes('\u672a\u627e\u5230\u7b54\u6848') || agrs === '\u6682\u65e0\u7b54\u6848') { logger('\u672a\u83b7\u53d6\u5230\u6709\u6548\u7b54\u6848,\u8df3\u8fc7\u6b64\u9898', 'red') // setting.sub = 0 localStorage.setItem('GPTJsSetting.sub', false) setTimeout(() => { startDoPhoneTimu(index + 1, TimuList) }, setting.time) return; } else { _answerTmpArr = $(TimuList[index]).find('.answerList.multiChoice li') // \u68c0\u67e5AI\u7b54\u6848\u662f\u5426\u4e3a\u9009\u9879\u5b57\u6bcd\u7ec4\u5408(ABC、BCD\u7b49) if (/^[A-D]+$/i.test(agrs.trim())) { // \u5982\u679c\u662f\u9009\u9879\u5b57\u6bcd\u7ec4\u5408,\u5206\u522b\u70b9\u51fb\u5bf9\u5e94\u7684\u9009\u9879 let letters = agrs.trim().toUpperCase().split(''); logger('\u8bc6\u522b\u5230\u591a\u9009\u9898\u9009\u9879\u5b57\u6bcd: ' + letters.join(','), 'green'); letters.forEach(letter => { let index = letter.charCodeAt(0) - 65; // A=0, B=1, \u7b49 if (index >= 0 && index < _answerTmpArr.length) { setTimeout(() => { $(_answerTmpArr[index]).click() }, 300); } }); } // \u68c0\u67e5\u7b54\u6848\u662f\u5426\u5305\u542b"\u7b54\u6848:XYZ"\u683c\u5f0f else if (/\u7b54\u6848:?[A-D]+/i.test(agrs)) { let match = agrs.match(/\u7b54\u6848:?([A-D]+)/i); if (match && match[1]) { let letters = match[1].toUpperCase().split(''); logger('\u4ece\u7b54\u6848\u6587\u672c\u4e2d\u63d0\u53d6\u9009\u9879: ' + letters.join(','), 'green'); letters.forEach(letter => { let index = letter.charCodeAt(0) - 65; if (index >= 0 && index < _answerTmpArr.length) { setTimeout(() => { $(_answerTmpArr[index]).click() }, 300); } }); } } // \u5185\u5bb9\u5339\u914d(\u6539\u8fdb\u7684\u5339\u914d\u903b\u8f91) else { // \u5c06AI\u7b54\u6848\u6309###\u5206\u5272 let aiAnswers = agrs.split('###').map(ans => ans.trim()); logger(`\u4f7f\u7528AI\u8fd4\u56de\u7684\u5b8c\u6574\u9009\u9879\u5185\u5bb9: ${agrs}`, 'blue'); logger(`\u6700\u7ec8\u5904\u7406\u540e\u7684AI\u7b54\u6848: ${agrs}`, 'blue'); $.each(_answerTmpArr, (i, t) => { let _tt = cleanTextContent($(t).html()).replace(/^[A-Z]\s*\n\s*/, '').trim(); // \u5c1d\u8bd5\u591a\u79cd\u5339\u914d\u65b9\u5f0f let matched = false; // 1. \u7cbe\u786e\u5339\u914d for (let aiAnswer of aiAnswers) { if (_tt === aiAnswer) { matched = true; logger(`\u7cbe\u786e\u5339\u914d\u9009\u9879 ${i + 1}: "${_tt}" = "${aiAnswer}"`, 'green'); break; } } // 2. \u5305\u542b\u5339\u914d(AI\u7b54\u6848\u5305\u542b\u9009\u9879\u5185\u5bb9) if (!matched) { for (let aiAnswer of aiAnswers) { if (aiAnswer.indexOf(_tt) !== -1) { matched = true; logger(`\u5305\u542b\u5339\u914d\u9009\u9879 ${i + 1}: "${_tt}" \u5305\u542b\u5728 "${aiAnswer}"`, 'green'); break; } } } // 3. \u53cd\u5411\u5305\u542b\u5339\u914d(\u9009\u9879\u5185\u5bb9\u5305\u542bAI\u7b54\u6848) if (!matched) { for (let aiAnswer of aiAnswers) { if (_tt.indexOf(aiAnswer) !== -1) { matched = true; logger(`\u53cd\u5411\u5305\u542b\u5339\u914d\u9009\u9879 ${i + 1}: "${aiAnswer}" \u5305\u542b\u5728 "${_tt}"`, 'green'); break; } } } // 4. \u6a21\u7cca\u5339\u914d(\u53bb\u9664\u6807\u70b9\u7b26\u53f7\u540e\u6bd4\u8f83) if (!matched) { let cleanTt = _tt.replace(/[^\u4e00-\u9fa5a-zA-Z0-9]/g, ''); for (let aiAnswer of aiAnswers) { let cleanAiAnswer = aiAnswer.replace(/[^\u4e00-\u9fa5a-zA-Z0-9]/g, ''); if (cleanTt === cleanAiAnswer) { matched = true; logger(`\u6a21\u7cca\u5339\u914d\u9009\u9879 ${i + 1}: "${cleanTt}" = "${cleanAiAnswer}"`, 'green'); break; } } } if (matched) { setTimeout(() => { $(_answerTmpArr[i]).click() }, 300 + i * 100); } }); } let check = 0 setTimeout(() => { $.each(_answerTmpArr, (i, t) => { if ($(t).attr('class').indexOf('cur') != -1) { check = 1 } }) if (check) { logger('\u81ea\u52a8\u7b54\u9898\u6210\u529f,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u9898', 'green') } else { logger('\u672a\u80fd\u6b63\u786e\u9009\u62e9\u7b54\u6848,\u8bf7\u624b\u52a8\u9009\u62e9,\u8df3\u8fc7\u6b64\u9898', 'red') // setting.sub = 0 localStorage.setItem('GPTJsSetting.sub', false) } setTimeout(() => { startDoPhoneTimu(index + 1, TimuList) }, setting.time) }, 1000) } }).catch((agrs) => { if (agrs['c'] == 0) { setTimeout(() => { startDoPhoneTimu(index + 1, TimuList) }, setting.time) } }) } break case 2: // \u68c0\u6d4b\u662f\u5426\u4e3a\u65b0\u6d4b\u9a8c\u6846\u67b6 let isNewFramework = $(TimuList[index]).find('.blankList2').length > 0; let tkList; if (isNewFramework) { // \u65b0\u6d4b\u9a8c\u6846\u67b6:\u67e5\u627e\u5bcc\u6587\u672c\u7f16\u8f91\u5668 tkList = $(TimuList[index]).find('.blankList2 .Briefanswer'); logger('\u68c0\u6d4b\u5230\u65b0\u6d4b\u9a8c\u6846\u67b6,\u4f7f\u7528\u5bcc\u6587\u672c\u7f16\u8f91\u5668\u5904\u7406\u586b\u7a7a\u9898', 'blue'); } else { // \u539f\u59cb\u6846\u67b6:\u67e5\u627einput\u5143\u7d20 tkList = $(TimuList[index]).find('.blankList2 input'); logger('\u68c0\u6d4b\u5230\u539f\u59cb\u6d4b\u9a8c\u6846\u67b6,\u4f7f\u7528input\u5143\u7d20\u5904\u7406\u586b\u7a7a\u9898', 'blue'); } // \u68c0\u67e5\u662f\u5426\u5df2\u4f5c\u7b54 let isAnswered = false; if (isNewFramework) { // \u65b0\u6846\u67b6:\u68c0\u67e5\u5bcc\u6587\u672c\u7f16\u8f91\u5668\u662f\u5426\u6709\u5185\u5bb9 tkList.each(function () { let editorId = $(this).find('iframe').attr('id'); if (editorId) { try { let editorInstance = window.UE && window.UE.getEditor && window.UE.getEditor(editorId.replace('ueditor_', 'ueditorInstant')); if (editorInstance && editorInstance.getContent && editorInstance.getContent().trim() !== '') { isAnswered = true; return false; // \u8df3\u51faeach\u5faa\u73af } } catch (e) { // \u5982\u679c\u65e0\u6cd5\u83b7\u53d6\u7f16\u8f91\u5668\u5b9e\u4f8b,\u68c0\u67e5\u662f\u5426\u6709\u53ef\u89c1\u5185\u5bb9 let content = $(this).find('iframe').contents().find('body').text().trim(); if (content !== '') { isAnswered = true; return false; } } } }); } else { // \u539f\u59cb\u6846\u67b6:\u68c0\u67e5input\u503c if (tkList.length > 0 && $(tkList[0]).val() !== null && $(tkList[0]).val().trim() !== '') { isAnswered = true; } } if (isAnswered) { logger("\u6b64\u9898\u5df2\u4f5c\u7b54,\u8df3\u8fc7", "green"); setTimeout(() => { startDoPhoneTimu(index + 1, TimuList) }, 300); break; } getAnswer(_type, _question).then((agrs) => { if (agrs == '\u6682\u65e0\u7b54\u6848' || agrs === '') { logger('AI\u65e0\u6cd5\u5b8c\u7f8e\u5339\u914d\u6b63\u786e\u7b54\u6848,\u8bf7\u624b\u52a8\u9009\u62e9,\u8df3\u8fc7\u6b64\u9898', 'red') localStorage.setItem('GPTJsSetting.sub', false) setTimeout(() => { startDoPhoneTimu(index + 1, TimuList) }, setting.time) return } // \u5904\u7406AI\u53ef\u80fd\u8fd4\u56de\u7684\u7b54\u6848\u683c\u5f0f let processedAnswer = agrs; // \u5982\u679c\u7b54\u6848\u5305\u542b"\u7b54\u6848:"\u524d\u7f00,\u63d0\u53d6\u5176\u540e\u5185\u5bb9 if (processedAnswer.includes('\u7b54\u6848:')) { let parts = processedAnswer.split('\u7b54\u6848:'); if (parts.length > 1) { processedAnswer = parts[1].trim(); // \u5982\u679c\u540e\u9762\u6709\u89e3\u91ca,\u53ea\u53d6\u7b2c\u4e00\u884c let lines = processedAnswer.split(/[\n\r]+/); processedAnswer = lines[0].trim(); logger('\u4eceAI\u56de\u7b54\u4e2d\u63d0\u53d6\u586b\u7a7a\u7b54\u6848: ' + processedAnswer, 'green'); } } // \u68c0\u67e5\u662f\u5426\u6709\u591a\u4e2a\u586b\u7a7a,\u6309\u7167\u4e0d\u540c\u5206\u9694\u7b26\u5c1d\u8bd5\u5206\u5272 let answers; // \u5148\u5c1d\u8bd5\u539f\u6709\u7684#\u5206\u9694\u7b26 if (processedAnswer.includes('#')) { answers = processedAnswer.split('#'); logger('\u4f7f\u7528#\u53f7\u5206\u9694\u586b\u7a7a\u7b54\u6848', 'green'); } // \u5c1d\u8bd5\u9017\u53f7\u5206\u9694 else if (processedAnswer.includes(',') || processedAnswer.includes(',')) { answers = processedAnswer.split(/[,,]/); logger('\u4f7f\u7528\u9017\u53f7\u5206\u9694\u586b\u7a7a\u7b54\u6848', 'green'); } // \u5c1d\u8bd5\u7a7a\u683c\u6216\u5236\u8868\u7b26\u5206\u9694 else if (processedAnswer.includes(' ') || processedAnswer.includes('\t')) { answers = processedAnswer.split(/[\s\t]+/); logger('\u4f7f\u7528\u7a7a\u683c\u5206\u9694\u586b\u7a7a\u7b54\u6848', 'green'); } // \u5c1d\u8bd5\u5206\u53f7\u5206\u9694 else if (processedAnswer.includes(';') || processedAnswer.includes(';')) { answers = processedAnswer.split(/[;;]/); logger('\u4f7f\u7528\u5206\u53f7\u5206\u9694\u586b\u7a7a\u7b54\u6848', 'green'); } // \u5982\u679c\u6ca1\u6709\u660e\u663e\u7684\u5206\u9694\u7b26,\u6574\u4f53\u4f5c\u4e3a\u4e00\u4e2a\u7b54\u6848 else { answers = [processedAnswer]; logger('\u586b\u7a7a\u7b54\u6848\u65e0\u5206\u9694\u7b26,\u4f5c\u4e3a\u5355\u4e2a\u7b54\u6848\u5904\u7406', 'green'); } if (isNewFramework) { // \u65b0\u6d4b\u9a8c\u6846\u67b6:\u586b\u5145\u5bcc\u6587\u672c\u7f16\u8f91\u5668 logger('\u5f00\u59cb\u586b\u5145\u65b0\u6846\u67b6\u586b\u7a7a\u9898\u7b54\u6848', 'blue'); tkList.each(function (i) { if (i < answers.length) { let answer = answers[i].trim(); // \u79fb\u9664\u53ef\u80fd\u7684\u5e8f\u53f7\u524d\u7f00,\u5982"1."、"(1)"\u7b49 answer = answer.replace(/^\s*[\((]?\d+[\))\.]?\s*/, ''); let editorDiv = $(this); let editorId = editorDiv.find('iframe').attr('id'); if (editorId) { setTimeout(() => { try { // \u5c1d\u8bd5\u901a\u8fc7UEditor API\u8bbe\u7f6e\u5185\u5bb9 let editorInstanceId = editorId.replace('ueditor_', 'ueditorInstant'); let editorInstance = window.UE && window.UE.getEditor && window.UE.getEditor(editorInstanceId); if (editorInstance && editorInstance.setContent) { // \u4f7f\u7528UEditor API\u8bbe\u7f6e\u5185\u5bb9 editorInstance.setContent(answer); // \u89e6\u53d1\u7f16\u8f91\u5668\u5185\u5bb9\u53d8\u5316\u4e8b\u4ef6,\u786e\u4fddplaceholder\u6d88\u5931 if (editorInstance.fireEvent) { editorInstance.fireEvent('contentchange'); } logger(`\u6210\u529f\u901a\u8fc7UEditor API\u586b\u5145\u7b2c${i + 1}\u7a7a: ${answer}`, 'green'); } else { // \u5907\u7528\u65b9\u6848:\u76f4\u63a5\u64cd\u4f5ciframe\u5185\u5bb9 let iframe = editorDiv.find('iframe')[0]; if (iframe && iframe.contentDocument) { let body = iframe.contentDocument.body; if (body) { // \u6e05\u9664placeholder\u5c5e\u6027,\u907f\u514d\u6587\u672c\u91cd\u53e0 if (body.hasAttribute('placeholder-attr')) { body.removeAttribute('placeholder-attr'); } // \u79fb\u9664empty\u7c7b,\u8868\u793a\u7f16\u8f91\u5668\u6709\u5185\u5bb9 if (body.classList.contains('empty')) { body.classList.remove('empty'); } // \u8bbe\u7f6e\u7b54\u6848\u5185\u5bb9 body.innerHTML = `

${answer}

`; // \u89e6\u53d1input\u4e8b\u4ef6,\u901a\u77e5\u7f16\u8f91\u5668\u5185\u5bb9\u5df2\u6539\u53d8 let inputEvent = new Event('input', { bubbles: true }); body.dispatchEvent(inputEvent); logger(`\u6210\u529f\u901a\u8fc7iframe\u76f4\u63a5\u586b\u5145\u7b2c${i + 1}\u7a7a: ${answer}`, 'green'); } } } } catch (e) { logger(`\u586b\u5145\u7b2c${i + 1}\u7a7a\u65f6\u51fa\u9519: ${e.message}`, 'red'); } }, 200 * (i + 1)); } } }); } else { // \u539f\u59cb\u6846\u67b6:\u586b\u5145input\u5143\u7d20 logger('\u5f00\u59cb\u586b\u5145\u539f\u59cb\u6846\u67b6\u586b\u7a7a\u9898\u7b54\u6848', 'blue'); $.each(tkList, (i, t) => { if (i < answers.length) { let answer = answers[i].trim(); // \u79fb\u9664\u53ef\u80fd\u7684\u5e8f\u53f7\u524d\u7f00,\u5982"1."、"(1)"\u7b49 answer = answer.replace(/^\s*[\((]?\d+[\))\.]?\s*/, ''); setTimeout(() => { $(t).val(answer) }, 200) } }); } logger('\u586b\u7a7a\u9898\u81ea\u52a8\u7b54\u9898\u6210\u529f,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u9898', 'green') setTimeout(() => { startDoPhoneTimu(index + 1, TimuList) }, setting.time) }).catch((agrs) => { if (agrs['c'] == 0) { setTimeout(() => { startDoPhoneTimu(index + 1, TimuList) }, setting.time) } }) break case 3: // \u4e0d\u5728\u53d1\u9001\u5230API\u7684\u9898\u76ee\u4e2d\u6dfb\u52a0\u9898\u578b\u524d\u7f00,\u53ea\u5728\u65e5\u5fd7\u4e2d\u663e\u793a logger("\u5224\u65ad\u9898(\u53ea\u56de\u7b54\u6b63\u786e\u6216\u9519\u8bef): " + _question, 'blue'); getAnswer(_type, _question).then((agrs) => { // \u68c0\u67e5\u7b54\u6848\u662f\u5426\u4e3a\u7a7a\u6216\u65e0\u6548 if (!agrs || agrs.trim() === '' || agrs.includes('\u672a\u627e\u5230\u7b54\u6848') || agrs === '\u6682\u65e0\u7b54\u6848') { logger('\u672a\u83b7\u53d6\u5230\u6709\u6548\u7b54\u6848,\u8df3\u8fc7\u6b64\u9898', 'red') // setting.sub = 0 localStorage.setItem('GPTJsSetting.sub', false) setTimeout(() => { startDoPhoneTimu(index + 1, TimuList) }, setting.time) return } let _true = '\u6b63\u786e|\u662f|\u5bf9|√|T|ri|true|yes' let _false = '\u9519\u8bef|\u5426|\u9519|×|F|wr|false|no' _answerTmpArr = $(TimuList[index]).find('.answerList.panduan li') // \u5904\u7406AI\u53ef\u80fd\u8fd4\u56de\u7684\u5e26\u6709"\u7b54\u6848:"\u524d\u7f00\u7684\u60c5\u51b5 let cleanAnswer = agrs; if (agrs.includes('\u7b54\u6848:')) { cleanAnswer = agrs.split('\u7b54\u6848:')[1].trim().split(/[\n\r]/)[0].trim(); logger('\u4eceAI\u56de\u7b54\u4e2d\u63d0\u53d6\u5224\u65ad\u7ed3\u679c: ' + cleanAnswer, 'green'); } // \u68c0\u67e5\u662f\u5426\u660e\u786e\u5305\u542b\u6b63\u786e\u6216\u9519\u8bef\u5173\u952e\u8bcd let isTrue = false; let isFalse = false; // \u68c0\u67e5\u662f\u5426\u5305\u542b\u6b63\u786e\u5173\u952e\u8bcd _true.split('|').forEach(keyword => { if (cleanAnswer.toLowerCase().includes(keyword.toLowerCase())) { isTrue = true; } }); // \u68c0\u67e5\u662f\u5426\u5305\u542b\u9519\u8bef\u5173\u952e\u8bcd _false.split('|').forEach(keyword => { if (cleanAnswer.toLowerCase().includes(keyword.toLowerCase())) { isFalse = true; } }); if (isTrue && !isFalse) { logger('\u5224\u65ad\u4e3a"\u6b63\u786e"', 'green'); $.each(_answerTmpArr, (i, t) => { if ($(t).attr('val-param') == 'true') { $(t).click() } }) } else if (isFalse && !isTrue) { logger('\u5224\u65ad\u4e3a"\u9519\u8bef"', 'green'); $.each(_answerTmpArr, (i, t) => { if ($(t).attr('val-param') == 'false') { $(t).click() } }) } else if (_true.indexOf(cleanAnswer) != -1) { // \u539f\u6709\u7684\u5339\u914d\u903b\u8f91\u4f5c\u4e3a\u5907\u7528 logger('\u4f7f\u7528\u539f\u6709\u903b\u8f91\u5224\u65ad\u4e3a"\u6b63\u786e"', 'green'); $.each(_answerTmpArr, (i, t) => { if ($(t).attr('val-param') == 'true') { $(t).click() } }) } else { // \u9ed8\u8ba4\u4e3a\u9519\u8bef logger('\u9ed8\u8ba4\u5224\u65ad\u4e3a"\u9519\u8bef"', 'orange'); $.each(_answerTmpArr, (i, t) => { if ($(t).attr('val-param') == 'false') { $(t).click() } }) } logger('\u81ea\u52a8\u7b54\u9898\u6210\u529f,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u9898', 'green') setTimeout(() => { startDoPhoneTimu(index + 1, TimuList) }, setting.time) }).catch((agrs) => { if (agrs['c'] == 0) { setTimeout(() => { startDoPhoneTimu(index + 1, TimuList) }, setting.time) } }) break case 4: // \u4e0d\u5728\u53d1\u9001\u5230API\u7684\u9898\u76ee\u4e2d\u6dfb\u52a0\u9898\u578b\u524d\u7f00,\u53ea\u5728\u65e5\u5fd7\u4e2d\u663e\u793a logger("\u5224\u65ad\u9898(\u53ea\u56de\u7b54\u6b63\u786e\u6216\u9519\u8bef): " + _question, 'blue'); getAnswer(_type, _question).then((agrs) => { // \u68c0\u67e5\u7b54\u6848\u662f\u5426\u4e3a\u7a7a\u6216\u65e0\u6548 if (!agrs || agrs.trim() === '' || agrs.includes('\u672a\u627e\u5230\u7b54\u6848') || agrs === '\u6682\u65e0\u7b54\u6848') { logger('\u672a\u83b7\u53d6\u5230\u6709\u6548\u7b54\u6848,\u8df3\u8fc7\u6b64\u9898', 'red') // setting.sub = 0 localStorage.setItem('GPTJsSetting.sub', false) setTimeout(() => { startDoPhoneTimu(index + 1, TimuList) }, setting.time) return } let _true = '\u6b63\u786e|\u662f|\u5bf9|√|T|ri|true|yes' let _false = '\u9519\u8bef|\u5426|\u9519|×|F|wr|false|no' _answerTmpArr = $(TimuList[index]).find('.answerList.panduan li') // \u5904\u7406AI\u53ef\u80fd\u8fd4\u56de\u7684\u5e26\u6709"\u7b54\u6848:"\u524d\u7f00\u7684\u60c5\u51b5 let cleanAnswer = agrs; if (agrs.includes('\u7b54\u6848:')) { cleanAnswer = agrs.split('\u7b54\u6848:')[1].trim().split(/[\n\r]/)[0].trim(); logger('\u4eceAI\u56de\u7b54\u4e2d\u63d0\u53d6\u5224\u65ad\u7ed3\u679c: ' + cleanAnswer, 'green'); } // \u68c0\u67e5\u662f\u5426\u660e\u786e\u5305\u542b\u6b63\u786e\u6216\u9519\u8bef\u5173\u952e\u8bcd let isTrue = false; let isFalse = false; // \u68c0\u67e5\u662f\u5426\u5305\u542b\u6b63\u786e\u5173\u952e\u8bcd _true.split('|').forEach(keyword => { if (cleanAnswer.toLowerCase().includes(keyword.toLowerCase())) { isTrue = true; } }); // \u68c0\u67e5\u662f\u5426\u5305\u542b\u9519\u8bef\u5173\u952e\u8bcd _false.split('|').forEach(keyword => { if (cleanAnswer.toLowerCase().includes(keyword.toLowerCase())) { isFalse = true; } }); if (isTrue && !isFalse) { logger('\u5224\u65ad\u4e3a"\u6b63\u786e"', 'green'); $.each(_answerTmpArr, (i, t) => { if ($(t).attr('val-param') == 'true') { $(t).click() } }) } else if (isFalse && !isTrue) { logger('\u5224\u65ad\u4e3a"\u9519\u8bef"', 'green'); $.each(_answerTmpArr, (i, t) => { if ($(t).attr('val-param') == 'false') { $(t).click() } }) } else if (_true.indexOf(cleanAnswer) != -1) { // \u539f\u6709\u7684\u5339\u914d\u903b\u8f91\u4f5c\u4e3a\u5907\u7528 logger('\u4f7f\u7528\u539f\u6709\u903b\u8f91\u5224\u65ad\u4e3a"\u6b63\u786e"', 'green'); $.each(_answerTmpArr, (i, t) => { if ($(t).attr('val-param') == 'true') { $(t).click() } }) } else { // \u9ed8\u8ba4\u4e3a\u9519\u8bef logger('\u9ed8\u8ba4\u5224\u65ad\u4e3a"\u9519\u8bef"', 'orange'); $.each(_answerTmpArr, (i, t) => { if ($(t).attr('val-param') == 'false') { $(t).click() } }) } logger('\u81ea\u52a8\u7b54\u9898\u6210\u529f,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u9898', 'green') setTimeout(() => { startDoPhoneTimu(index + 1, TimuList) }, setting.time) }).catch((agrs) => { if (agrs['c'] == 0) { setTimeout(() => { startDoPhoneTimu(index + 1, TimuList) }, setting.time) } }) break case 5: getAnswer(_type, _question).then((agrs) => { // setting.sub = 0 localStorage.setItem('GPTJsSetting.sub', false) logger('\u6b64\u7c7b\u578b\u9898\u76ee\u65e0\u6cd5\u533a\u5206\u5355/\u591a\u9009,\u8bf7\u624b\u52a8\u9009\u62e9\u7b54\u6848', 'red') setTimeout(() => { startDoPhoneTimu(index + 1, TimuList) }, setting.time) }).catch((agrs) => { if (agrs['c'] == 0) { setTimeout(() => { startDoPhoneTimu(index + 1, TimuList) }, setting.time) } }) break default: logger('\u6682\u4e0d\u652f\u6301\u5904\u7406\u6b64\u7c7b\u578b\u9898\u76ee:' + questionFull.match(/.*?\[(.*?)]|$/)[1] + ',\u8df3\u8fc7!\u8bf7\u624b\u52a8\u4f5c\u7b54。', 'red') // setting.sub = 0 localStorage.setItem('GPTJsSetting.sub', false) setTimeout(() => { startDoPhoneTimu(index + 1, TimuList) }, setting.time) break } } function startDoPhoneCyWork(index, doms, phoneWeb) { if (index == doms.length) { logger('\u6b64\u9875\u9762\u5168\u90e8\u6d4b\u9a8c\u5df2\u5904\u7406\u5b8c\u6bd5!\u51c6\u5907\u8fdb\u884c\u4e0b\u4e00\u9879\u4efb\u52a1') setTimeout(missonStart, 5000) return } logger('\u7b49\u5f85\u6d4b\u9a8c\u6846\u67b6\u52a0\u8f7d...', 'purple') getElement($(doms[index]).contents()[0], 'iframe').then(element => { let workIframe = element if (workIframe.length == 0) { setTimeout(() => { startDoPhoneCyWork(index, doms) }, 5000) } // let workStatus = $(workIframe).contents().find('.CeYan .ZyTop h3 span:nth-child(1)').text().trim() let workStatus = $(workIframe).contents().find('.newTestCon .newTestTitle .testTit_status').text().trim() // console.log(workStatus) if (!workStatus) { _domList.splice(0, 1) setTimeout(missonStart, 2000) return } if (setting.share && workStatus.indexOf("\u5df2\u5b8c\u6210") != -1) { logger('\u6d4b\u9a8c:' + (index + 1) + ',\u68c0\u6d4b\u5230\u6b64\u6d4b\u9a8c\u5df2\u5b8c\u6210,\u51c6\u5907\u6536\u5f55\u7b54\u6848。', 'green') setTimeout(() => { upLoadWork(index, doms, workIframe) }, 2000) } else if (workStatus.indexOf("\u5f85\u505a") != -1 || workStatus.indexOf("\u5f85\u5b8c\u6210") != -1 || workStatus.indexOf("\u672a\u8fbe\u5230\u53ca\u683c\u7ebf") != -1) { logger('\u6d4b\u9a8c:' + (index + 1) + ',\u51c6\u5907\u5904\u7406\u6b64\u6d4b\u9a8c...', 'purple') $(workIframe).attr('src', phoneWeb) getElement($(doms[index]).contents()[0], 'iframe[src="' + phoneWeb + '"]').then((element) => { setTimeout(() => { doPhoneWork($(element).contents()) }, 3000) }) } else if (workStatus.indexOf('\u5f85\u6279\u9605') != -1) { _mlist.splice(0, 1) _domList.splice(0, 1) logger('\u6d4b\u9a8c:' + (index + 1) + ',\u6d4b\u9a8c\u5f85\u6279\u9605,\u8df3\u8fc7', 'red') setTimeout(() => { startDoPhoneCyWork(index + 1, doms, phoneWeb) }, 5000) } else { _mlist.splice(0, 1) _domList.splice(0, 1) logger('\u6d4b\u9a8c:' + (index + 1) + ',\u672a\u77e5\u72b6\u6001\u6216\u7528\u6237\u9009\u62e9\u4e0d\u6536\u5f55\u7b54\u6848,\u8df3\u8fc7', 'red') setTimeout(() => { startDoPhoneCyWork(index + 1, doms, phoneWeb) }, 5000) } }) } function startDoCyWork(index, doms) { if (index == doms.length) { logger('\u6b64\u9875\u9762\u5168\u90e8\u6d4b\u9a8c\u5df2\u5904\u7406\u5b8c\u6bd5!\u51c6\u5907\u8fdb\u884c\u4e0b\u4e00\u9879\u4efb\u52a1') setTimeout(missonStart, 5000) return } logger('\u7b49\u5f85\u6d4b\u9a8c\u6846\u67b6\u52a0\u8f7d...', 'purple') getElement($(doms[index]).contents()[0], 'iframe').then(element => { let workIframe = element if (workIframe.length == 0) { setTimeout(() => { startDoCyWork(index, doms) }, 5000) } let workStatus = $(workIframe).contents().find(".newTestCon .newTestTitle .testTit_status").text().trim() if (!workStatus) { _domList.splice(0, 1) setTimeout(missonStart, 2000) return } if (setting.share && workStatus.indexOf("\u5df2\u5b8c\u6210") != -1) { logger('\u6d4b\u9a8c:' + (index + 1) + ',\u68c0\u6d4b\u5230\u6b64\u6d4b\u9a8c\u5df2\u5b8c\u6210,\u51c6\u5907\u6536\u5f55\u7b54\u6848。', 'green') setTimeout(() => { upLoadWork(index, doms, workIframe) }, 2000) } else if (workStatus.indexOf("\u5f85\u505a") != -1 || workStatus.indexOf("\u5f85\u5b8c\u6210") != -1) { logger('\u6d4b\u9a8c:' + (index + 1) + ',\u51c6\u5907\u5904\u7406\u6b64\u6d4b\u9a8c...', 'purple') setTimeout(() => { doWork(index, doms, workIframe) }, 5000) } else if (workStatus.indexOf('\u5f85\u6279\u9605') != -1) { _mlist.splice(0, 1) _domList.splice(0, 1) logger('\u6d4b\u9a8c:' + (index + 1) + ',\u6d4b\u9a8c\u5f85\u6279\u9605,\u8df3\u8fc7', 'red') setTimeout(() => { startDoCyWork(index + 1, doms) }, 5000) } else { _mlist.splice(0, 1) _domList.splice(0, 1) logger('\u6d4b\u9a8c:' + (index + 1) + ',\u672a\u77e5\u72b6\u6001\u6216\u7528\u6237\u9009\u62e9\u4e0d\u6536\u5f55\u7b54\u6848,\u8df3\u8fc7', 'red') setTimeout(() => { startDoCyWork(index + 1, doms) }, 5000) } }) } function getElement(parent, selector, timeout = 0) { /** * Author cxxjackie * From https://bbs.tampermonkey.net.cn */ return new Promise(resolve => { let result = parent.querySelector(selector); if (result) return resolve(result); let timer; const mutationObserver = window.MutationObserver || window.WebkitMutationObserver || window.MozMutationObserver; if (mutationObserver) { const observer = new mutationObserver(mutations => { for (let mutation of mutations) { for (let addedNode of mutation.addedNodes) { if (addedNode instanceof Element) { result = addedNode.matches(selector) ? addedNode : addedNode.querySelector(selector); if (result) { observer.disconnect(); timer && clearTimeout(timer); return resolve(result); } } } } }); observer.observe(parent, { childList: true, subtree: true }); if (timeout > 0) { timer = setTimeout(() => { observer.disconnect(); return resolve(null); }, timeout); } } else { const listener = e => { if (e.target instanceof Element) { result = e.target.matches(selector) ? e.target : e.target.querySelector(selector); if (result) { parent.removeEventListener('DOMNodeInserted', listener, true); timer && clearTimeout(timer); return resolve(result); } } }; parent.addEventListener('DOMNodeInserted', listener, true); if (timeout > 0) { timer = setTimeout(() => { parent.removeEventListener('DOMNodeInserted', listener, true); return resolve(null); }, timeout); } } }); } function missonHomeWork() { logger('\u5f00\u59cb\u5904\u7406\u4f5c\u4e1a', 'green') let $_homeworktable = $('.mark_table').find('form') let TimuList = $_homeworktable.find('.questionLi') // \u786e\u4fdd\u5168\u5c40\u53d8\u91cf\u53ef\u7528 window._homeworkTimuList = TimuList window._homeworkTable = $_homeworktable // \u4fdd\u5b58\u539f\u59cbsaveWork\u51fd\u6570\u7684\u5f15\u7528,\u4ee5\u4fbf\u5728\u9700\u8981\u65f6\u8c03\u7528 if (typeof saveWork === 'function' && !window._originalSaveWork) { window._originalSaveWork = saveWork } doHomeWork(0, TimuList) } function doHomeWork(index, TiMuList) { if (index == TiMuList.length) { logger('\u4f5c\u4e1a\u9898\u76ee\u5df2\u5168\u90e8\u5b8c\u6210', 'green') // \u68c0\u67e5\u662f\u5426\u5f00\u542f\u4e86\u81ea\u52a8\u4fdd\u5b58 if (localStorage.getItem('GPTJsSetting.autoSave') !== 'false') { // \u6dfb\u52a0\u81ea\u52a8\u4fdd\u5b58\u529f\u80fd try { logger('\u6b63\u5728\u81ea\u52a8\u4fdd\u5b58\u4f5c\u4e1a\u7b54\u6848...', 'blue') // \u4f7f\u7528\u5b89\u5168\u6267\u884c\u51fd\u6570\u8c03\u7528\u9875\u9762\u7684saveWork\u51fd\u6570 if (safeExecutePageFunction('saveWork')) { logger('\u7b54\u6848\u4fdd\u5b58\u6210\u529f!', 'green') } else { // \u5982\u679c\u65e0\u6cd5\u901a\u8fc7\u51fd\u6570\u540d\u8c03\u7528,\u5c1d\u8bd5\u627e\u5230\u4fdd\u5b58\u6309\u94ae\u5e76\u70b9\u51fb const saveBtn = $('.btnGray_1:visible') || $('button:contains("\u4fdd\u5b58"):visible') || $('.saveBtn:visible'); if (saveBtn && saveBtn.length > 0) { saveBtn.click(); logger('\u5df2\u70b9\u51fb\u4fdd\u5b58\u6309\u94ae', 'green') } else { // \u6700\u540e\u5c1d\u8bd5\u901a\u8fc7\u8868\u5355\u63d0\u4ea4 const form = $('.mark_table').find('form'); if (form && form.length > 0) { logger('\u5c1d\u8bd5\u901a\u8fc7\u8868\u5355\u63d0\u4ea4\u4fdd\u5b58\u7b54\u6848...', 'blue'); form.submit(); logger('\u8868\u5355\u5df2\u63d0\u4ea4,\u7b54\u6848\u5e94\u5df2\u4fdd\u5b58', 'green'); } else { logger('\u672a\u627e\u5230\u4fdd\u5b58\u6309\u94ae\u6216\u8868\u5355,\u8bf7\u624b\u52a8\u4fdd\u5b58', 'red') } } } // \u68c0\u67e5\u662f\u5426\u5f00\u542f\u4e86\u81ea\u52a8\u63d0\u4ea4\u4f5c\u4e1a if (localStorage.getItem('GPTJsSetting.autoSubmit') === 'true') { logger('\u51c6\u5907\u81ea\u52a8\u63d0\u4ea4\u4f5c\u4e1a\u7b54\u6848...', 'green'); setTimeout(() => { try { // \u5c1d\u8bd5\u591a\u79cd\u65b9\u5f0f\u627e\u5230\u63d0\u4ea4\u6309\u94ae - \u589e\u5f3a\u9009\u62e9\u5668\u5339\u914d\u80fd\u529b let submitBtn = null; // \u5e38\u89c1\u7684\u63d0\u4ea4\u6309\u94ae\u9009\u62e9\u5668\u5217\u8868 const submitSelectors = [ // \u4f18\u5148\u68c0\u67e5\u7279\u5b9aID\u7684\u6309\u94ae '#submitBtn:visible', // ID\u4e3asubmitBtn\u7684\u6309\u94ae '#btnSubmit:visible', // ID\u4e3abtnSubmit\u7684\u6309\u94ae '#submit:visible', // ID\u4e3asubmit\u7684\u6309\u94ae // \u7279\u5b9a\u7c7b\u7684\u6309\u94ae '.jb_btn:visible', // jb_btn\u7c7b\u6309\u94ae '.jb_btn_92:visible', // jb_btn_92\u7c7b\u6309\u94ae '.fr.fs14:visible', // \u53f3\u6d6e\u52a8\u6587\u672c\u6309\u94ae '.fs14:contains("\u63d0\u4ea4"):visible', // \u5305\u542b"\u63d0\u4ea4"\u6587\u672c\u7684fs14\u7c7b\u5143\u7d20 '.fr:contains("\u63d0\u4ea4"):visible', // \u5305\u542b"\u63d0\u4ea4"\u6587\u672c\u7684fr\u7c7b\u5143\u7d20 // \u8d85\u661f\u5e38\u89c1\u6309\u94ae '.Btn_blue_1:visible', // \u8d85\u661f\u5e38\u89c1\u84dd\u8272\u63d0\u4ea4\u6309\u94ae 'button.bluebtn:visible', // \u53e6\u4e00\u79cd\u84dd\u8272\u63d0\u4ea4\u6309\u94ae '.btnBlue:visible', // \u84dd\u8272\u6309\u94ae\u7c7b '.ZY_sub .btnSubmit:visible', // \u7ae0\u8282\u6d4b\u9a8c\u63d0\u4ea4\u6309\u94ae '.submiting:visible', // \u63d0\u4ea4\u4e2d\u7c7b 'button.submitBtn:visible', // \u63d0\u4ea4\u6309\u94ae\u7c7b 'a.bluebtn:contains("\u63d0\u4ea4"):visible', // \u94fe\u63a5\u6837\u5f0f\u7684\u63d0\u4ea4\u6309\u94ae // \u901a\u7528\u6309\u94ae 'button:contains("\u63d0\u4ea4"):visible', // \u5305\u542b"\u63d0\u4ea4"\u6587\u672c\u7684\u6309\u94ae 'input[type="submit"]:visible', // \u63d0\u4ea4\u7c7b\u578b\u7684input 'button.btn-submit:visible', // btn-submit\u7c7b\u6309\u94ae 'input[value="\u63d0\u4ea4"]:visible', // \u503c\u4e3a"\u63d0\u4ea4"\u7684\u8f93\u5165\u6846 '[onclick*="submit"]:visible', // \u5e26\u6709\u63d0\u4ea4onclick\u7684\u5143\u7d20 '.fs14:contains("\u786e\u5b9a"):visible' // \u5305\u542b"\u786e\u5b9a"\u6587\u672c\u7684fs14\u7c7b\u5143\u7d20 ]; // \u904d\u5386\u6240\u6709\u53ef\u80fd\u7684\u9009\u62e9\u5668 for (const selector of submitSelectors) { const btn = $(selector); if (btn && btn.length > 0) { submitBtn = btn; logger(`\u627e\u5230\u63d0\u4ea4\u6309\u94ae(${selector})`, 'green'); // \u5982\u679c\u627e\u5230\u7684\u662fjb_btn\u7c7b\u6309\u94ae,\u4f18\u5148\u4f7f\u7528\u5b83 if (btn.hasClass('jb_btn')) { logger('\u4f18\u5148\u4f7f\u7528jb_btn\u7c7b\u63d0\u4ea4\u6309\u94ae', 'blue'); break; } // \u5982\u679c\u627e\u5230\u7684\u662f\u5e26\u6709\u63d0\u4ea4\u6587\u672c\u7684\u6309\u94ae,\u4f18\u5148\u4f7f\u7528\u5b83 if (btn.text().includes('\u63d0\u4ea4')) { logger('\u4f18\u5148\u4f7f\u7528\u5305\u542b"\u63d0\u4ea4"\u6587\u672c\u7684\u6309\u94ae', 'blue'); break; } // \u5982\u679c\u4e0d\u662f\u7279\u6b8a\u6309\u94ae,\u7ee7\u7eed\u67e5\u627e\u66f4\u4f18\u5148\u7684\u6309\u94ae } } // \u5982\u679c\u627e\u5230\u4e86\u63d0\u4ea4\u6309\u94ae if (submitBtn && submitBtn.length > 0) { logger('\u627e\u5230\u63d0\u4ea4\u6309\u94ae,\u70b9\u51fb\u63d0\u4ea4...', 'green'); // \u68c0\u67e5\u662f\u5426\u662f\u7279\u6b8a\u6309\u94ae,\u9700\u8981\u7279\u6b8a\u5904\u7406 if (submitBtn.hasClass('jb_btn') || submitBtn.hasClass('fr') || submitBtn.hasClass('fs14')) { logger('\u68c0\u6d4b\u5230\u7279\u6b8a\u63d0\u4ea4\u6309\u94ae,\u4f7f\u7528\u591a\u79cd\u65b9\u5f0f\u70b9\u51fb', 'blue'); try { // \u5c1d\u8bd5\u76f4\u63a5\u89e6\u53d1\u70b9\u51fb\u4e8b\u4ef6 submitBtn[0].click(); // \u5c1d\u8bd5\u4f7f\u7528jQuery\u70b9\u51fb submitBtn.trigger('click'); // \u5c1d\u8bd5\u6a21\u62df\u70b9\u51fb\u4e8b\u4ef6 const event = document.createEvent('MouseEvents'); event.initEvent('click', true, true); submitBtn[0].dispatchEvent(event); } catch (e) { logger(`\u7279\u6b8a\u5904\u7406\u70b9\u51fb\u5931\u8d25: ${e.message},\u5c1d\u8bd5\u5e38\u89c4\u70b9\u51fb`, 'orange'); submitBtn.click(); } } else { // \u5e38\u89c4\u70b9\u51fb submitBtn.click(); } // \u5c1d\u8bd5\u5904\u7406\u786e\u8ba4\u5bf9\u8bdd\u6846 setTimeout(() => { // \u5e38\u89c1\u7684\u786e\u8ba4\u6309\u94ae\u9009\u62e9\u5668 const confirmSelectors = [ // \u4f18\u5148\u68c0\u67e5\u7279\u5b9aID\u7684\u6309\u94ae '#popok:visible', // \u4f5c\u4e1a\u786e\u8ba4\u63d0\u4ea4\u6309\u94ae '#btnConfirm:visible', // \u786e\u8ba4\u6309\u94aeID '#confirmBtn:visible', // \u786e\u8ba4\u6309\u94aeID '#confirm:visible', // \u786e\u8ba4\u6309\u94aeID // \u7279\u5b9a\u7c7b\u7684\u6309\u94ae '.jb_btn:contains("\u63d0\u4ea4"):visible', // \u5305\u542b"\u63d0\u4ea4"\u6587\u672c\u7684jb_btn\u7c7b\u6309\u94ae '.jb_btn:contains("\u786e\u5b9a"):visible', // \u5305\u542b"\u786e\u5b9a"\u6587\u672c\u7684jb_btn\u7c7b\u6309\u94ae '.jb_btn_92:visible', // jb_btn_92\u7c7b\u6309\u94ae // \u8d85\u661f\u5e38\u89c1\u6309\u94ae '.bluebtn:visible', // \u84dd\u8272\u786e\u8ba4\u6309\u94ae '#confirmSubWin .bluebtn:visible', // \u786e\u8ba4\u7a97\u53e3\u4e2d\u7684\u84dd\u8272\u6309\u94ae '.btnBlue:visible', // \u84dd\u8272\u6309\u94ae '.layui-layer-btn0:visible', // layui\u5f39\u7a97\u786e\u8ba4\u6309\u94ae '.layui-layer-btn a:eq(0):visible', // layui\u7b2c\u4e00\u4e2a\u6309\u94ae // \u901a\u7528\u6309\u94ae 'button:contains("\u786e\u5b9a"):visible', // \u5305\u542b"\u786e\u5b9a"\u6587\u672c\u7684\u6309\u94ae 'a:contains("\u786e\u5b9a"):visible', // \u5305\u542b"\u786e\u5b9a"\u6587\u672c\u7684\u94fe\u63a5 'input[value="\u786e\u5b9a"]:visible', // \u503c\u4e3a"\u786e\u5b9a"\u7684\u8f93\u5165\u6846 'a:contains("\u63d0\u4ea4"):visible', // \u5305\u542b"\u63d0\u4ea4"\u6587\u672c\u7684\u94fe\u63a5 'button:contains("\u63d0\u4ea4"):visible' // \u5305\u542b"\u63d0\u4ea4"\u6587\u672c\u7684\u6309\u94ae ]; // \u67e5\u627e\u786e\u8ba4\u6309\u94ae let confirmBtn = null; for (const selector of confirmSelectors) { const btn = $(selector); if (btn && btn.length > 0) { confirmBtn = btn; logger(`\u627e\u5230\u786e\u8ba4\u6309\u94ae(${selector})`, 'green'); // \u5982\u679c\u627e\u5230\u7684\u662f#popok,\u7acb\u5373\u4f7f\u7528\u5b83 if (btn.attr('id') === 'popok') { logger('\u4f18\u5148\u4f7f\u7528#popok\u786e\u8ba4\u6309\u94ae', 'blue'); break; } // \u5982\u679c\u627e\u5230\u7684\u662fjb_btn\u7c7b\u6309\u94ae,\u4f18\u5148\u4f7f\u7528\u5b83 if (btn.hasClass('jb_btn')) { logger('\u4f18\u5148\u4f7f\u7528jb_btn\u7c7b\u786e\u8ba4\u6309\u94ae', 'blue'); break; } // \u5982\u679c\u4e0d\u662f\u7279\u6b8a\u6309\u94ae,\u7ee7\u7eed\u67e5\u627e\u66f4\u4f18\u5148\u7684\u6309\u94ae } } if (confirmBtn && confirmBtn.length > 0) { logger('\u70b9\u51fb\u786e\u8ba4\u63d0\u4ea4...', 'green'); // \u68c0\u67e5\u662f\u5426\u662f#popok\u5143\u7d20(\u7279\u6b8a\u5904\u7406) if (confirmBtn.attr('id') === 'popok') { logger('\u68c0\u6d4b\u5230popok\u786e\u8ba4\u6309\u94ae,\u4f7f\u7528\u7279\u6b8a\u5904\u7406', 'blue'); try { // \u5c1d\u8bd5\u76f4\u63a5\u89e6\u53d1\u70b9\u51fb\u4e8b\u4ef6 confirmBtn[0].click(); // \u5c1d\u8bd5\u4f7f\u7528jQuery\u70b9\u51fb confirmBtn.trigger('click'); // \u5c1d\u8bd5\u6a21\u62df\u70b9\u51fb\u4e8b\u4ef6 const event = document.createEvent('MouseEvents'); event.initEvent('click', true, true); confirmBtn[0].dispatchEvent(event); } catch (e) { logger(`\u7279\u6b8a\u5904\u7406\u70b9\u51fb\u5931\u8d25: ${e.message},\u5c1d\u8bd5\u5e38\u89c4\u70b9\u51fb`, 'orange'); confirmBtn.click(); } } else { // \u5e38\u89c4\u70b9\u51fb confirmBtn.click(); } logger('\u4f5c\u4e1a\u5df2\u81ea\u52a8\u63d0\u4ea4!', 'green'); } else { // \u5982\u679c\u6ca1\u6709\u627e\u5230\u786e\u8ba4\u6309\u94ae,\u53ef\u80fd\u662f\u76f4\u63a5\u63d0\u4ea4\u6210\u529f\u4e86 logger('\u672a\u68c0\u6d4b\u5230\u786e\u8ba4\u5bf9\u8bdd\u6846,\u63d0\u4ea4\u53ef\u80fd\u5df2\u5b8c\u6210', 'blue'); } }, 1000); } else { logger('\u672a\u627e\u5230\u63d0\u4ea4\u6309\u94ae,\u8bf7\u624b\u52a8\u63d0\u4ea4', 'red'); // \u8bb0\u5f55\u9875\u9762\u4e0a\u6240\u6709\u53ef\u80fd\u7684\u6309\u94ae,\u5e2e\u52a9\u8c03\u8bd5 const allButtons = $('button, input[type="submit"], .btn, a.btn, .Btn_blue_1, .bluebtn').filter(':visible'); if (allButtons && allButtons.length > 0) { logger(`\u9875\u9762\u4e0a\u6709 ${allButtons.length} \u4e2a\u53ef\u89c1\u6309\u94ae,\u4f46\u672a\u627e\u5230\u5339\u914d\u7684\u63d0\u4ea4\u6309\u94ae`, 'orange'); } } } catch (e) { logger(`\u81ea\u52a8\u63d0\u4ea4\u5931\u8d25: ${e.message},\u8bf7\u624b\u52a8\u63d0\u4ea4`, 'red'); } }, 2000); // \u5ef6\u8fdf2\u79d2,\u786e\u4fdd\u4fdd\u5b58\u64cd\u4f5c\u5b8c\u6210 } } catch (e) { logger('\u81ea\u52a8\u4fdd\u5b58\u5931\u8d25: ' + e.message + ',\u8bf7\u624b\u52a8\u4fdd\u5b58', 'red') } } else { logger('\u81ea\u52a8\u4fdd\u5b58\u5df2\u7981\u7528,\u8bf7\u624b\u52a8\u4fdd\u5b58\u7b54\u6848', 'blue') // \u5373\u4f7f\u81ea\u52a8\u4fdd\u5b58\u88ab\u7981\u7528,\u5982\u679c\u5f00\u542f\u4e86\u81ea\u52a8\u63d0\u4ea4,\u4ecd\u7136\u5c1d\u8bd5\u63d0\u4ea4 if (localStorage.getItem('GPTJsSetting.autoSubmit') === 'true') { logger('\u51c6\u5907\u81ea\u52a8\u63d0\u4ea4\u4f5c\u4e1a\u7b54\u6848...', 'green'); setTimeout(() => { try { // \u5c1d\u8bd5\u591a\u79cd\u65b9\u5f0f\u627e\u5230\u63d0\u4ea4\u6309\u94ae - \u589e\u5f3a\u9009\u62e9\u5668\u5339\u914d\u80fd\u529b let submitBtn = null; // \u5e38\u89c1\u7684\u63d0\u4ea4\u6309\u94ae\u9009\u62e9\u5668\u5217\u8868 const submitSelectors = [ '.Btn_blue_1:visible', // \u8d85\u661f\u5e38\u89c1\u84dd\u8272\u63d0\u4ea4\u6309\u94ae 'button.bluebtn:visible', // \u53e6\u4e00\u79cd\u84dd\u8272\u63d0\u4ea4\u6309\u94ae 'button:contains("\u63d0\u4ea4"):visible', // \u5305\u542b"\u63d0\u4ea4"\u6587\u672c\u7684\u6309\u94ae 'input[type="submit"]:visible', // \u63d0\u4ea4\u7c7b\u578b\u7684input 'button.btn-submit:visible', // btn-submit\u7c7b\u6309\u94ae '.btnBlue:visible', // \u84dd\u8272\u6309\u94ae\u7c7b '.ZY_sub .btnSubmit:visible', // \u7ae0\u8282\u6d4b\u9a8c\u63d0\u4ea4\u6309\u94ae '.submiting:visible', // \u63d0\u4ea4\u4e2d\u7c7b 'button.submitBtn:visible', // \u63d0\u4ea4\u6309\u94ae\u7c7b 'a.bluebtn:contains("\u63d0\u4ea4"):visible', // \u94fe\u63a5\u6837\u5f0f\u7684\u63d0\u4ea4\u6309\u94ae 'input[value="\u63d0\u4ea4"]:visible', // \u503c\u4e3a"\u63d0\u4ea4"\u7684\u8f93\u5165\u6846 '[onclick*="submit"]:visible', // \u5e26\u6709\u63d0\u4ea4onclick\u7684\u5143\u7d20 '.jb_btn:visible', // jb_btn\u7c7b\u6309\u94ae '.jb_btn_92:visible', // jb_btn_92\u7c7b\u6309\u94ae '.fr.fs14:visible', // \u53f3\u6d6e\u52a8\u6587\u672c\u6309\u94ae '.fs14:contains("\u63d0\u4ea4"):visible', // \u5305\u542b"\u63d0\u4ea4"\u6587\u672c\u7684fs14\u7c7b\u5143\u7d20 '.fs14:contains("\u786e\u5b9a"):visible', // \u5305\u542b"\u786e\u5b9a"\u6587\u672c\u7684fs14\u7c7b\u5143\u7d20 '.fr:contains("\u63d0\u4ea4"):visible' // \u5305\u542b"\u63d0\u4ea4"\u6587\u672c\u7684fr\u7c7b\u5143\u7d20 ]; // \u904d\u5386\u6240\u6709\u53ef\u80fd\u7684\u9009\u62e9\u5668 for (const selector of submitSelectors) { const btn = $(selector); if (btn && btn.length > 0) { submitBtn = btn; logger(`\u627e\u5230\u63d0\u4ea4\u6309\u94ae(${selector})`, 'green'); // \u5982\u679c\u627e\u5230\u7684\u662fjb_btn\u7c7b\u6309\u94ae,\u4f18\u5148\u4f7f\u7528\u5b83 if (btn.hasClass('jb_btn')) { logger('\u4f18\u5148\u4f7f\u7528jb_btn\u7c7b\u63d0\u4ea4\u6309\u94ae', 'blue'); break; } // \u5982\u679c\u627e\u5230\u7684\u662f\u5e26\u6709\u63d0\u4ea4\u6587\u672c\u7684\u6309\u94ae,\u4f18\u5148\u4f7f\u7528\u5b83 if (btn.text().includes('\u63d0\u4ea4')) { logger('\u4f18\u5148\u4f7f\u7528\u5305\u542b"\u63d0\u4ea4"\u6587\u672c\u7684\u6309\u94ae', 'blue'); break; } // \u5982\u679c\u4e0d\u662f\u7279\u6b8a\u6309\u94ae,\u7ee7\u7eed\u67e5\u627e\u66f4\u4f18\u5148\u7684\u6309\u94ae } } // \u5982\u679c\u627e\u5230\u4e86\u63d0\u4ea4\u6309\u94ae if (submitBtn && submitBtn.length > 0) { logger('\u627e\u5230\u63d0\u4ea4\u6309\u94ae,\u70b9\u51fb\u63d0\u4ea4...', 'green'); // \u68c0\u67e5\u662f\u5426\u662f\u7279\u6b8a\u6309\u94ae,\u9700\u8981\u7279\u6b8a\u5904\u7406 if (submitBtn.hasClass('jb_btn') || submitBtn.hasClass('fr') || submitBtn.hasClass('fs14')) { logger('\u68c0\u6d4b\u5230\u7279\u6b8a\u63d0\u4ea4\u6309\u94ae,\u4f7f\u7528\u591a\u79cd\u65b9\u5f0f\u70b9\u51fb', 'blue'); try { // \u5c1d\u8bd5\u76f4\u63a5\u89e6\u53d1\u70b9\u51fb\u4e8b\u4ef6 submitBtn[0].click(); // \u5c1d\u8bd5\u4f7f\u7528jQuery\u70b9\u51fb submitBtn.trigger('click'); // \u5c1d\u8bd5\u6a21\u62df\u70b9\u51fb\u4e8b\u4ef6 const event = document.createEvent('MouseEvents'); event.initEvent('click', true, true); submitBtn[0].dispatchEvent(event); } catch (e) { logger(`\u7279\u6b8a\u5904\u7406\u70b9\u51fb\u5931\u8d25: ${e.message},\u5c1d\u8bd5\u5e38\u89c4\u70b9\u51fb`, 'orange'); submitBtn.click(); } } else { // \u5e38\u89c4\u70b9\u51fb submitBtn.click(); } // \u5c1d\u8bd5\u5904\u7406\u786e\u8ba4\u5bf9\u8bdd\u6846 setTimeout(() => { // \u5e38\u89c1\u7684\u786e\u8ba4\u6309\u94ae\u9009\u62e9\u5668 const confirmSelectors = [ '.bluebtn:visible', // \u84dd\u8272\u786e\u8ba4\u6309\u94ae '.layui-layer-btn0:visible', // layui\u5f39\u7a97\u786e\u8ba4\u6309\u94ae 'button:contains("\u786e\u5b9a"):visible', // \u5305\u542b"\u786e\u5b9a"\u6587\u672c\u7684\u6309\u94ae 'a:contains("\u786e\u5b9a"):visible', // \u5305\u542b"\u786e\u5b9a"\u6587\u672c\u7684\u94fe\u63a5 '#confirmSubWin .bluebtn:visible', // \u786e\u8ba4\u7a97\u53e3\u4e2d\u7684\u84dd\u8272\u6309\u94ae '.btnBlue:visible', // \u84dd\u8272\u6309\u94ae 'input[value="\u786e\u5b9a"]:visible', // \u503c\u4e3a"\u786e\u5b9a"\u7684\u8f93\u5165\u6846 '.layui-layer-btn a:eq(0):visible', // layui\u7b2c\u4e00\u4e2a\u6309\u94ae '#popok:visible', // \u4f5c\u4e1a\u786e\u8ba4\u63d0\u4ea4\u6309\u94ae '.jb_btn:contains("\u63d0\u4ea4"):visible', // \u5305\u542b"\u63d0\u4ea4"\u6587\u672c\u7684jb_btn\u7c7b\u6309\u94ae '.jb_btn:contains("\u786e\u5b9a"):visible' // \u5305\u542b"\u786e\u5b9a"\u6587\u672c\u7684jb_btn\u7c7b\u6309\u94ae ]; // \u67e5\u627e\u786e\u8ba4\u6309\u94ae let confirmBtn = null; for (const selector of confirmSelectors) { const btn = $(selector); if (btn && btn.length > 0) { confirmBtn = btn; logger(`\u627e\u5230\u786e\u8ba4\u6309\u94ae(${selector})`, 'green'); // \u5982\u679c\u627e\u5230\u7684\u662f#popok,\u7acb\u5373\u4f7f\u7528\u5b83 if (btn.attr('id') === 'popok') { logger('\u4f18\u5148\u4f7f\u7528#popok\u786e\u8ba4\u6309\u94ae', 'blue'); break; } // \u5982\u679c\u627e\u5230\u7684\u662fjb_btn\u7c7b\u6309\u94ae,\u4f18\u5148\u4f7f\u7528\u5b83 if (btn.hasClass('jb_btn')) { logger('\u4f18\u5148\u4f7f\u7528jb_btn\u7c7b\u786e\u8ba4\u6309\u94ae', 'blue'); break; } // \u5982\u679c\u4e0d\u662f\u7279\u6b8a\u6309\u94ae,\u7ee7\u7eed\u67e5\u627e\u66f4\u4f18\u5148\u7684\u6309\u94ae } } if (confirmBtn && confirmBtn.length > 0) { logger('\u70b9\u51fb\u786e\u8ba4\u63d0\u4ea4...', 'green'); // \u68c0\u67e5\u662f\u5426\u662f#popok\u5143\u7d20(\u7279\u6b8a\u5904\u7406) if (confirmBtn.attr('id') === 'popok') { logger('\u68c0\u6d4b\u5230popok\u786e\u8ba4\u6309\u94ae,\u4f7f\u7528\u7279\u6b8a\u5904\u7406', 'blue'); try { // \u5c1d\u8bd5\u76f4\u63a5\u89e6\u53d1\u70b9\u51fb\u4e8b\u4ef6 confirmBtn[0].click(); // \u5c1d\u8bd5\u4f7f\u7528jQuery\u70b9\u51fb confirmBtn.trigger('click'); // \u5c1d\u8bd5\u6a21\u62df\u70b9\u51fb\u4e8b\u4ef6 const event = document.createEvent('MouseEvents'); event.initEvent('click', true, true); confirmBtn[0].dispatchEvent(event); } catch (e) { logger(`\u7279\u6b8a\u5904\u7406\u70b9\u51fb\u5931\u8d25: ${e.message},\u5c1d\u8bd5\u5e38\u89c4\u70b9\u51fb`, 'orange'); confirmBtn.click(); } } else { // \u5e38\u89c4\u70b9\u51fb confirmBtn.click(); } logger('\u4f5c\u4e1a\u5df2\u81ea\u52a8\u63d0\u4ea4!', 'green'); } else { // \u5982\u679c\u6ca1\u6709\u627e\u5230\u786e\u8ba4\u6309\u94ae,\u53ef\u80fd\u662f\u76f4\u63a5\u63d0\u4ea4\u6210\u529f\u4e86 logger('\u672a\u68c0\u6d4b\u5230\u786e\u8ba4\u5bf9\u8bdd\u6846,\u63d0\u4ea4\u53ef\u80fd\u5df2\u5b8c\u6210', 'blue'); } }, 1000); } else { logger('\u672a\u627e\u5230\u63d0\u4ea4\u6309\u94ae,\u8bf7\u624b\u52a8\u63d0\u4ea4', 'red'); // \u8bb0\u5f55\u9875\u9762\u4e0a\u6240\u6709\u53ef\u80fd\u7684\u6309\u94ae,\u5e2e\u52a9\u8c03\u8bd5 const allButtons = $('button, input[type="submit"], .btn, a.btn, .Btn_blue_1, .bluebtn').filter(':visible'); if (allButtons && allButtons.length > 0) { logger(`\u9875\u9762\u4e0a\u6709 ${allButtons.length} \u4e2a\u53ef\u89c1\u6309\u94ae,\u4f46\u672a\u627e\u5230\u5339\u914d\u7684\u63d0\u4ea4\u6309\u94ae`, 'orange'); } } } catch (e) { logger(`\u81ea\u52a8\u63d0\u4ea4\u5931\u8d25: ${e.message},\u8bf7\u624b\u52a8\u63d0\u4ea4`, 'red'); } }, 2000); } } return } let _type = ({ \u5355\u9009\u9898: 0, \u591a\u9009\u9898: 1, \u586b\u7a7a\u9898: 2, \u5224\u65ad\u9898: 3, \u7b80\u7b54\u9898: 4, \u5199\u4f5c\u9898: 5, \u7ffb\u8bd1\u9898: 6 })[$(TiMuList[index]).attr('typename')] let _questionFull = $(TiMuList[index]).find('.mark_name').html() // \u589e\u5f3a\u9898\u76ee\u5904\u7406,\u786e\u4fdd\u79fb\u9664\u9898\u76ee\u7c7b\u578b\u4fe1\u606f let _question = formatQuestionText(_questionFull) // \u79fb\u9664\u9898\u76ee\u7c7b\u578b\u4fe1\u606f (\u591a\u9009\u9898, 2\u5206) \u7b49\u683c\u5f0f _question = _question.replace(/^\s*[\((【\[]?\s*(\u5355\u9009\u9898|\u591a\u9009\u9898|\u5224\u65ad\u9898|\u586b\u7a7a\u9898|\u7b80\u7b54\u9898|\u8bba\u8ff0\u9898|\u5206\u6790\u9898)[\s\.\::,,]*[\d\.]*\u5206?[\))\]\】]?\s*/i, '') // \u79fb\u9664\u5f00\u5934\u7684\u5e8f\u53f7\u548c\u5176\u4ed6\u683c\u5f0f _question = _question.replace(/^\s*\d+[\.\、\::]\s*/, '') // \u6e05\u7406\u591a\u4f59\u7684\u7a7a\u683c _question = _question.trim() let _a = [] let _answerTmpArr, _textareaList var check_answer_flag = 0; switch (_type) { case 0: _answerTmpArr = $(TiMuList[index]).find('.stem_answer').find('.answer_p') //\u904d\u5386\u9009\u9879\u5217\u8868 var mergedAnswers = []; _answerTmpArr.each(function () { var answerText = $(this).text().replace(/[ABCD]/g, '').trim(); mergedAnswers.push(answerText); }); mergedAnswers = mergedAnswers.join("|"); _question = "\u5355\u9009\u9898:" + _question + '\n' + mergedAnswers //\u5224\u65ad\u9898\u76ee\u662f\u5426\u5df2\u4f5c\u7b54 for (var i = 0; i < _answerTmpArr.length; i++) { if ($(_answerTmpArr[i]).parent().find('span').attr('class').indexOf('check_answer') == -1) { //\u6ca1\u6709\u88ab\u9009\u62e9 } else { logger(index + 1 + '\u6b64\u9898\u5df2\u4f5c\u7b54,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u9898', 'green') check_answer_flag = 1; setTimeout(() => { doHomeWork(index + 1, TiMuList) }, 300) break } } if (check_answer_flag == 0) { getAnswer(_type, _question).then((agrs) => { $.each(_answerTmpArr, (i, t) => { _a.push(cleanTextContent($(t).html())) }) let _i = _a.findIndex((item) => item == agrs) if (localStorage.getItem('GPTJsSetting.alterTitle') === 'true') { //\u4fee\u6539\u9898\u76ee\u5c06\u7b54\u6848\u63d2\u5165 let timuele = $(TiMuList[index]).find('.mark_name') // logger("timuele\u9898\u76ee\u6807\u7b7e:"+timuele.html()) timuele.html(timuele.html() + "

" + agrs) } if (_i == -1) { logger('AI\u65e0\u6cd5\u5b8c\u7f8e\u5339\u914d\u6b63\u786e\u7b54\u6848,\u8bf7\u624b\u52a8\u9009\u62e9,\u8df3\u8fc7\u6b64\u9898', 'red') setTimeout(() => { doHomeWork(index + 1, TiMuList) }, setting.time) } else { setTimeout(() => { let check = $(_answerTmpArr[_i]).parent().find('span').attr('class') if (check.indexOf('check_answer') == -1) { $(_answerTmpArr[_i]).parent().click() } logger('\u81ea\u52a8\u7b54\u9898\u6210\u529f,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u9898', 'green') setTimeout(() => { doHomeWork(index + 1, TiMuList) }, setting.time) }, 300) } }).catch((agrs) => { if (agrs['c'] == 0) { setTimeout(() => { doHomeWork(index + 1, TiMuList) }, setting.time) } }) } break case 1: _answerTmpArr = $(TiMuList[index]).find('.stem_answer').find('.answer_p') //\u904d\u5386\u9009\u9879\u5217\u8868 var mergedAnswers = []; _answerTmpArr.each(function () { var answerText = $(this).text().replace(/[ABCD]/g, '').trim(); mergedAnswers.push(answerText); }); mergedAnswers = mergedAnswers.join("|"); _question = "\u591a\u9009\u9898:" + _question + '\n' + mergedAnswers //\u5224\u65ad\u9898\u76ee\u662f\u5426\u5df2\u4f5c\u7b54 for (var i = 0; i < _answerTmpArr.length; i++) { if ($(_answerTmpArr[i]).parent().find('span').attr('class').indexOf('check_answer') == -1) { //\u6ca1\u6709\u88ab\u9009\u62e9 } else { logger(index + 1 + '\u6b64\u9898\u5df2\u4f5c\u7b54,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u9898', 'green') check_answer_flag = 1; setTimeout(() => { doHomeWork(index + 1, TiMuList) }, 300) break } } if (check_answer_flag == 0) { getAnswer(_type, _question).then((agrs) => { if (localStorage.getItem('GPTJsSetting.alterTitle') === 'true') { //\u4fee\u6539\u9898\u76ee\u5c06\u7b54\u6848\u63d2\u5165 let timuele = $(TiMuList[index]).find('.mark_name') // logger("timuele\u9898\u76ee\u6807\u7b7e:"+timuele.html()) timuele.html(timuele.html() + "

" + agrs) } $.each(_answerTmpArr, (i, t) => { if (agrs.indexOf(cleanTextContent($(t).html())) != -1) { setTimeout(() => { let check = $(_answerTmpArr[i]).parent().find('span').attr('class') if (check.indexOf('check_answer_dx') == -1) { $(_answerTmpArr[i]).parent().click() } }, 300) } }) logger('\u81ea\u52a8\u7b54\u9898\u6210\u529f,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u9898', 'green') setTimeout(() => { doHomeWork(index + 1, TiMuList) }, setting.time) }).catch((agrs) => { if (agrs['c'] == 0) { setTimeout(() => { doHomeWork(index + 1, TiMuList) }, setting.time) } }) } break case 2: _question = "\u586b\u7a7a\u9898,\u7528\"|\"\u5206\u5272\u591a\u4e2a\u7b54\u6848:" + _question; _textareaList = $(TiMuList[index]).find('.stem_answer').find('.Answer .divText .textDIV textarea'); // \u5224\u65ad\u9898\u76ee\u662f\u5426\u5df2\u4f5c\u7b54 let _id = $(_textareaList).attr('id'); if (UE.getEditor(_id).getContent() !== '') { logger(index + 1 + '\u6b64\u9898\u5df2\u4f5c\u7b54,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u9898', 'green'); setTimeout(() => { doHomeWork(index + 1, TiMuList) }, 300); } else { getAnswer(_type, _question).then((agrs) => { $.each(_textareaList, (i, t) => { let _currentId = $(t).attr('id'); // \u4f7f\u7528\u4e0d\u540c\u7684\u53d8\u91cf\u540d\u4fdd\u5b58\u5f53\u524d\u6587\u672c\u6846\u7684ID if (UE.getEditor(_currentId).getContent() === '') { let _answerTmpArr = agrs.split('|'); setTimeout(() => { UE.getEditor(_currentId).setContent(_answerTmpArr[i]) }, 300); } }); setTimeout(() => { doHomeWork(index + 1, TiMuList) }, setting.time); logger('\u81ea\u52a8\u7b54\u9898\u6210\u529f,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u9898', 'green'); }); } break; case 3: let _true = '\u6b63\u786e|\u662f|\u5bf9|√|T|ri' let _false = '\u9519\u8bef|\u5426|\u9519|×|F|wr' let _i = 0 _answerTmpArr = $(TiMuList[index]).find('.stem_answer').find('.answer_p') _question = "\u5224\u65ad\u9898(\u53ea\u56de\u7b54\u6b63\u786e\u6216\u9519\u8bef):" + _question + '\n' + _answerTmpArr.text() $.each(_answerTmpArr, (i, t) => { _a.push($(t).text().trim()) }) //\u5224\u65ad\u9898\u76ee\u662f\u5426\u5df2\u4f5c\u7b54 for (var i = 0; i < _answerTmpArr.length; i++) { if ($(_answerTmpArr[i]).parent().find('span').attr('class').indexOf('check_answer') == -1) { //\u6ca1\u6709\u88ab\u9009\u62e9 } else { logger(index + 1 + '\u6b64\u9898\u5df2\u4f5c\u7b54,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u9898', 'green') check_answer_flag = 1; setTimeout(() => { doHomeWork(index + 1, TiMuList) }, 300) break } } if (check_answer_flag == 0) { getAnswer(_type, _question).then((agrs) => { if (_true.indexOf(agrs) != -1) { _i = _a.findIndex((item) => _true.indexOf(item) != -1) } else if (_false.indexOf(agrs) != -1) { _i = _a.findIndex((item) => _false.indexOf(item) != -1) } else { logger('\u7b54\u6848\u5339\u914d\u51fa\u9519,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u9898', 'green') setTimeout(() => { doHomeWork(index + 1, TiMuList) }, setting.time) return } setTimeout(() => { let check = $(_answerTmpArr[_i]).parent().find('span').attr('class') if (check.indexOf('check_answer') == -1) { $(_answerTmpArr[_i]).parent().click() } }, 300) logger('\u81ea\u52a8\u7b54\u9898\u6210\u529f,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u9898', 'green') setTimeout(() => { doHomeWork(index + 1, TiMuList) }, setting.time) }).catch((agrs) => { if (agrs['c'] == 0) { setTimeout(() => { doHomeWork(index + 1, TiMuList) }, setting.time) } }) } break case 4: // \u4e0d\u6dfb\u52a0\u752850\u5b57\u7b80\u8981\u56de\u7b54\u524d\u7f00 _textareaList = $(TiMuList[index]).find('.stem_answer').find('.eidtDiv textarea'); // \u4e0d\u518d\u5224\u65ad\u9898\u76ee\u662f\u5426\u5df2\u4f5c\u7b54,\u76f4\u63a5\u83b7\u53d6\u7b54\u6848\u5e76\u586b\u5199 $.each(_textareaList, (i, t) => { let _id = $(t).attr('id'); // \u83b7\u53d6\u5f53\u524d\u6587\u672c\u6846\u7684ID // \u5148\u6e05\u7a7a\u73b0\u6709\u5185\u5bb9 const editor = UE.getEditor(_id); if (editor) { // \u68c0\u67e5\u662f\u5426\u6709\u5185\u5bb9 const currentContent = editor.getContent(); if (currentContent && currentContent !== '') { logger(index + 1 + '\u9898\u76ee\u5df2\u6709\u5185\u5bb9,\u5c06\u6e05\u7a7a\u5e76\u91cd\u65b0\u586b\u5199', 'orange'); editor.setContent(''); // \u6e05\u7a7a\u5185\u5bb9 } } // \u83b7\u53d6\u7b54\u6848\u5e76\u586b\u5199 getAnswer(_type, _question).then((agrs) => { setTimeout(() => { UE.getEditor(_id).setContent(agrs) }, 300); logger('\u81ea\u52a8\u7b54\u9898\u6210\u529f,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u9898', 'green'); setTimeout(() => { doHomeWork(index + 1, TiMuList) }, setting.time); }).catch((agrs) => { if (agrs['c'] == 0) { setTimeout(() => { doHomeWork(index + 1, TiMuList) }, setting.time); } }); }); break; case 5: _answerEle = $_ansdom.find('.subEditor textarea') jdt = "\u7528\u82f1\u6587\u6839\u636e\u9898\u76ee\u8fdb\u884c\u5199\u4f5c:" + _question $.each(_answerEle, (i, t) => { getAnswer(_qType, jdt).then((agrs) => { let _id = $(t).attr('name') setTimeout(() => { UE.getEditor(_id).setContent(agrs) }, 300); }); }); break case 6: _answerEle = $_ansdom.find('.subEditor textarea') jdt = "\u4e2d\u6587\u82f1\u6587\u7ffb\u8bd1\u9898:" + _question $.each(_answerEle, (i, t) => { getAnswer(_qType, jdt).then((agrs) => { let _id = $(t).attr('name') setTimeout(() => { UE.getEditor(_id).setContent(agrs) }, 300); }); }); break default: _answerEle = $_ansdom.find('.subEditor textarea') if (_answerEle !== null) { jdt = $(TiMuList[index]).attr('typename') + ':' + _question $.each(_answerEle, (i, t) => { getAnswer(_qType, jdt).then((agrs) => { let _id = $(t).attr('name') setTimeout(() => { UE.getEditor(_id).setContent(agrs) }, 300); }); }); } else { logger('\u6682\u4e0d\u652f\u6301\u5904\u7406\u6b64\u9898\u578b:' + $(TiMuList[index]).attr('typename') + ',\u8df3\u8fc7。', 'red') setTimeout(() => { doHomeWork(index + 1, TiMuList) }, setting.time) } } } function missonExam() { logger('\u5f00\u59cb\u5904\u7406\u8003\u8bd5', 'green') logger('\u7b49\u5f85\u6d4b\u9a8c\u6846\u67b6\u52a0\u8f7d...', 'blue') // \u68c0\u67e5\u9875\u9762\u662f\u5426\u5df2\u52a0\u8f7d\u5b8c\u6210 if ($('.mark_table').length === 0 || $('.mark_table').find('.whiteDiv').length === 0) { // \u5982\u679c\u9875\u9762\u5143\u7d20\u8fd8\u6ca1\u52a0\u8f7d\u5b8c\u6210,\u8bbe\u7f6e\u4e00\u4e2a\u5ef6\u65f6\u540e\u91cd\u8bd5 logger('\u6d4b\u9a8c\u9875\u9762\u5143\u7d20\u5c1a\u672a\u52a0\u8f7d\u5b8c\u6210,\u7b49\u5f85\u91cd\u8bd5...', 'orange') setTimeout(missonExam, 1000) return } let $_examtable = $('.mark_table').find('.whiteDiv') let _questionFull = cleanTextContent($_examtable.find('h3.mark_name').html().trim()) // \u68c0\u67e5\u9898\u76ee\u662f\u5426\u5df2\u4f5c\u7b54 let $_ansdom = $_examtable.find('#submitTest').find('.stem_answer') let isAnswered = false // \u68c0\u67e5\u5355\u9009\u9898/\u591a\u9009\u9898\u7684\u5df2\u9009\u4e2d\u72b6\u6001 // \u6839\u636e\u6d4f\u89c8\u5668\u5feb\u7167,\u9009\u4e2d\u7684\u9009\u9879\u53ef\u80fd\u4f7f\u7528radio[checked]\u6216checkbox[checked] let $selectedRadios = $_ansdom.find('input[type="radio"]:checked, input[type="checkbox"]:checked') let $selectedSpans = $_ansdom.find('.clearfix.answerBg span.check_answer_dx, .clearfix.answerBg span.check_answer, .clearfix.answerBg span[class*="check"], .clearfix.answerBg .chosen, .clearfix.answerBg .selected') if ($selectedRadios.length > 0 || $selectedSpans.length > 0) { isAnswered = true logger('\u68c0\u6d4b\u5230\u6b64\u9898\u5df2\u4f5c\u7b54,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u9898', 'green') } // \u68c0\u67e5\u586b\u7a7a\u9898/\u7b80\u7b54\u9898\u7684\u5df2\u586b\u5199\u72b6\u6001 if (!isAnswered) { let $textInputs = $_ansdom.find('input[type="text"], textarea') $textInputs.each(function () { if ($(this).val() && $(this).val().trim() !== '') { isAnswered = true return false // \u8df3\u51faeach\u5faa\u73af } }) if (isAnswered) { logger('\u68c0\u6d4b\u5230\u6b64\u9898\u5df2\u586b\u5199\u7b54\u6848,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u9898', 'green') } } // \u5982\u679c\u9898\u76ee\u5df2\u4f5c\u7b54\u4e14\u5f00\u542f\u4e86\u81ea\u52a8\u8df3\u8f6c,\u76f4\u63a5\u8df3\u8f6c if (isAnswered && localStorage.getItem('GPTJsSetting.examTurn') === 'true') { toNextExam() return } // \u589e\u5f3a\u9898\u578b\u8bc6\u522b\u903b\u8f91,\u652f\u6301\u8003\u8bd5\u9875\u9762\u683c\u5f0f let _qType = undefined let typeText = '' // \u5c1d\u8bd5\u591a\u79cd\u9898\u578b\u63d0\u53d6\u65b9\u5f0f // \u65b9\u5f0f1: \u4ecespan\u6807\u7b7e\u4e2d\u63d0\u53d6 (\u591a\u9009\u9898, 2.0 \u5206) let spanMatch = _questionFull.match(/[((](.*?)[,,].*?\u5206[))]/); if (spanMatch && spanMatch[1]) { typeText = spanMatch[1].trim() logger(`\u4ecespan\u6807\u7b7e\u63d0\u53d6\u5230\u9898\u578b: ${typeText}`, 'blue') } // \u65b9\u5f0f2: \u4ece\u9690\u85cf\u7684input\u5143\u7d20\u4e2d\u63d0\u53d6\u9898\u578b if (!typeText) { let typeNameInput = $_examtable.find('input[name*="typeName"]') if (typeNameInput.length > 0) { typeText = typeNameInput.val() logger(`\u4ece\u9690\u85cfinput\u63d0\u53d6\u5230\u9898\u578b: ${typeText}`, 'blue') } } // \u65b9\u5f0f3: \u539f\u6709\u7684\u6b63\u5219\u8868\u8fbe\u5f0f\u5339\u914d if (!typeText) { let oldMatch = _questionFull.match(/[(](.*?),.*?\u5206[)]|$/) if (oldMatch && oldMatch[1]) { typeText = oldMatch[1].trim() logger(`\u4f7f\u7528\u539f\u6709\u6b63\u5219\u63d0\u53d6\u5230\u9898\u578b: ${typeText}`, 'blue') } } // \u9898\u578b\u6620\u5c04 const typeMapping = { \u5355\u9009\u9898: 0, \u591a\u9009\u9898: 1, \u586b\u7a7a\u9898: 2, \u5224\u65ad\u9898: 3, \u7b80\u7b54\u9898: 4, \u8bba\u8ff0\u9898: 4, \u5199\u4f5c\u9898: 5, \u7ffb\u8bd1\u9898: 6 } _qType = typeMapping[typeText] // \u5982\u679c\u4ecd\u7136\u65e0\u6cd5\u8bc6\u522b\u9898\u578b,\u8bb0\u5f55\u8be6\u7ec6\u4fe1\u606f\u5e76\u8bbe\u7f6e\u9ed8\u8ba4\u503c if (_qType === undefined) { logger(`\u65e0\u6cd5\u8bc6\u522b\u9898\u578b,\u539f\u59cbHTML: ${_questionFull}`, 'red') logger(`\u63d0\u53d6\u7684\u9898\u578b\u6587\u672c: ${typeText}`, 'red') logger(`\u4f20\u9012\u7ed9AI\u7684\u9898\u578b: \u672a\u77e5\u9898\u578b`, 'red') _qType = 0 // \u9ed8\u8ba4\u8bbe\u4e3a\u5355\u9009\u9898 } else { logger(`\u4f20\u9012\u7ed9AI\u7684\u9898\u578b: ${typeText}`, 'green') } let _question = formatQuestionText(_questionFull.replace(/[((].*?\u5206[))]/, '').replace(/^\s*/, '')) // $_ansdom \u5df2\u5728\u4e0a\u9762\u58f0\u660e,\u8fd9\u91cc\u4e0d\u9700\u8981\u91cd\u65b0\u58f0\u660e let _answerTmpArr; let _a = [] switch (_qType) { case 0: _answerTmpArr = $_ansdom.find('.clearfix.answerBg .fl.answer_p') //\u904d\u5386\u9009\u9879\u5217\u8868 var mergedAnswers = []; _answerTmpArr.each(function () { var answerText = $(this).text().replace(/[ABCD]/g, '').trim(); mergedAnswers.push(answerText); }); mergedAnswers = mergedAnswers.join("|"); _question = "\u5355\u9009\u9898:" + _question + '\n' + mergedAnswers _question = formatQuestionText(_question.replace(/[(].*?\u5206[)]/, '').replace(/^\s*/, '')) logger(`\u4f20\u9012\u7ed9AI\u7684\u9898\u578b: \u5355\u9009\u9898`, 'green') // logger(_question) getAnswer(_qType, _question).then((agrs) => { $.each(_answerTmpArr, (i, t) => { _a.push(cleanTextContent($(t).html())) }) if (localStorage.getItem('GPTJsSetting.alterTitle') === 'true') { //\u4fee\u6539\u9898\u76ee\u5c06\u7b54\u6848\u63d2\u5165 let timuele = $_examtable.find('h3.mark_name') // logger(timuele.html()) timuele.html(timuele.html() + agrs) } let _i = _a.findIndex((item) => item == agrs) if (_i == -1) { logger('AI\u65e0\u6cd5\u5b8c\u7f8e\u5339\u914d\u6b63\u786e\u7b54\u6848,\u8bf7\u624b\u52a8\u9009\u62e9,\u8df3\u8fc7\u6b64\u9898', 'red') setTimeout(toNextExam, 5000) } else { setTimeout(() => { // \u68c0\u67e5\u8be5\u9009\u9879\u662f\u5426\u5df2\u88ab\u9009\u4e2d let $optionParent = $(_answerTmpArr[_i]).parent() let $optionSpan = $optionParent.find('span') let $optionRadio = $optionParent.find('input[type="radio"]') let isOptionSelected = $optionSpan.hasClass('check_answer') || $optionSpan.hasClass('check_answer_dx') || $optionSpan.attr('class').indexOf('check') !== -1 || $optionRadio.is(':checked') if (!isOptionSelected) { //\u597d\u5b66\u751f\u6a21\u5f0f,ABCD\u52a0\u7c97 if (localStorage.getItem('GPTJsSetting.goodStudent') === 'true') { $optionSpan.css('font-weight', 'bold'); } else { setTimeout(() => { $(_answerTmpArr[_i]).parent().click() }, 300) } logger('\u81ea\u52a8\u7b54\u9898\u6210\u529f,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u9898', 'green') toNextExam() } else { logger('\u6b64\u9898\u5df2\u4f5c\u7b54,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u9898', 'green') toNextExam() } }, 300) } }).catch((agrs) => { if (agrs['c'] == 0) { toNextExam() } }) break case 1: _answerTmpArr = $_ansdom.find('.clearfix.answerBg .fl.answer_p') //\u904d\u5386\u9009\u9879\u5217\u8868 var mergedAnswers = []; _answerTmpArr.each(function () { var answerText = $(this).text().replace(/[ABCD]/g, '').trim(); mergedAnswers.push(answerText); }); mergedAnswers = mergedAnswers.join("|"); _question = "\u591a\u9009\u9898:" + _question + '\n' + mergedAnswers logger(`\u4f20\u9012\u7ed9AI\u7684\u9898\u578b: \u591a\u9009\u9898`, 'green') getAnswer(_qType, _question).then((agrs) => { if (localStorage.getItem('GPTJsSetting.alterTitle') === 'true') { //\u4fee\u6539\u9898\u76ee\u5c06\u7b54\u6848\u63d2\u5165 let timuele = $_examtable.find('h3.mark_name') // logger(timuele.html()) timuele.html(timuele.html() + agrs) } // \u68c0\u67e5\u591a\u9009\u9898\u662f\u5426\u5df2\u6709\u9009\u9879\u88ab\u9009\u4e2d let $selectedMultiRadios = $_ansdom.find('input[type="radio"]:checked, input[type="checkbox"]:checked') let $selectedMultiSpans = $_ansdom.find('.clearfix.answerBg span.check_answer_dx, .clearfix.answerBg span.check_answer, .clearfix.answerBg span[class*="check"]') if ($selectedMultiRadios.length > 0 || $selectedMultiSpans.length > 0) { logger('\u6b64\u9898\u5df2\u4f5c\u7b54,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u9898', 'green') toNextExam() } else { $.each(_answerTmpArr, (i, t) => { if (agrs.indexOf(cleanTextContent($(t).html())) != -1) { //\u597d\u5b66\u751f\u6a21\u5f0f,ABCD\u52a0\u7c97 if (localStorage.getItem('GPTJsSetting.goodStudent') === 'true') { $(_answerTmpArr[_i]).parent().find('span').css('font-weight', 'bold'); } else { setTimeout(() => { $(_answerTmpArr[i]).parent().click() }, 300) } } }); logger('\u81ea\u52a8\u7b54\u9898\u6210\u529f,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u9898', 'green') toNextExam() } }).catch((agrs) => { if (agrs['c'] == 0) { toNextExam() } }) break case 2: _question = "\u586b\u7a7a\u9898,\u7528\"|\"\u5206\u5272\u591a\u4e2a\u7b54\u6848:" + _question; logger(`\u4f20\u9012\u7ed9AI\u7684\u9898\u578b: \u586b\u7a7a\u9898`, 'green') let _textareaList = $_ansdom.find('.Answer .divText .subEditor textarea') // logger(_textareaList) getAnswer(_qType, _question).then((agrs) => { let _answerTmpArr = agrs.split('|') $.each(_textareaList, (i, t) => { // logger(t) let _id = $(t).attr('id') setTimeout(() => { UE.getEditor(_id).setContent(_answerTmpArr[i]) }, 300) }) logger('\u81ea\u52a8\u7b54\u9898\u6210\u529f,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u9898', 'green') toNextExam() }) break case 3: let _true = '\u6b63\u786e|\u662f|\u5bf9|√|T|ri' let _false = '\u9519\u8bef|\u5426|\u9519|×|F|wr' let _i = 0 _question = "\u5224\u65ad\u9898(\u53ea\u56de\u7b54\u6b63\u786e\u6216\u9519\u8bef):" + _question; logger(`\u4f20\u9012\u7ed9AI\u7684\u9898\u578b: \u5224\u65ad\u9898`, 'green') _answerTmpArr = $_ansdom.find('.clearfix.answerBg .fl.answer_p') $.each(_answerTmpArr, (i, t) => { _a.push($(t).text().trim()) }) getAnswer(_qType, _question).then((agrs) => { if (localStorage.getItem('GPTJsSetting.alterTitle') === 'true') { //\u4fee\u6539\u9898\u76ee\u5c06\u7b54\u6848\u63d2\u5165 let timuele = $_examtable.find('h3.mark_name') // logger(timuele.html()) timuele.html(timuele.html() + agrs) } if (_true.indexOf(agrs) != -1) { _i = _a.findIndex((item) => _true.indexOf(item) != -1) } else if (_false.indexOf(agrs) != -1) { _i = _a.findIndex((item) => _false.indexOf(item) != -1) } else { logger('\u7b54\u6848\u5339\u914d\u51fa\u9519,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u9898', 'green') toNextExam() return } if ($(_answerTmpArr[_i]).parent().find('span').attr('class').indexOf('check_answer') == -1) { //\u597d\u5b66\u751f\u6a21\u5f0f,ABCD\u52a0\u7c97 if (localStorage.getItem('GPTJsSetting.goodStudent') === 'true') { setTimeout(() => { $(_answerTmpArr[_i]).parent().find('span').css('font-weight', 'bold'); }, 300) } else { $(_answerTmpArr[_i]).parent().click() } logger('\u81ea\u52a8\u7b54\u9898\u6210\u529f,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u9898', 'green') toNextExam() } else { logger(index + 1 + '\u6b64\u9898\u5df2\u4f5c\u7b54,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u9898', 'green') toNextExam() } }).catch((agrs) => { if (agrs['c'] == 0) { toNextExam() } }) break case 4: _answerEle = $_ansdom.find('.subEditor textarea') jdt = _question // \u4e0d\u6dfb\u52a0\u752850\u5b57\u7b80\u8981\u56de\u7b54\u524d\u7f00 logger(`\u4f20\u9012\u7ed9AI\u7684\u9898\u578b: \u7b80\u7b54\u9898`, 'green') $.each(_answerEle, (i, t) => { getAnswer(_qType, jdt).then((agrs) => { let _id = $(t).attr('name') setTimeout(() => { UE.getEditor(_id).setContent(agrs) }, 300); toNextExam() }); }); break case 5: _answerEle = $_ansdom.find('.subEditor textarea') jdt = "\u7528\u82f1\u6587\u6839\u636e\u9898\u76ee\u8fdb\u884c\u5199\u4f5c:" + _question logger(`\u4f20\u9012\u7ed9AI\u7684\u9898\u578b: \u5199\u4f5c\u9898`, 'green') $.each(_answerEle, (i, t) => { getAnswer(_qType, jdt).then((agrs) => { let _id = $(t).attr('name') setTimeout(() => { UE.getEditor(_id).setContent(agrs) }, 300); toNextExam() }); }); break case 6: _answerEle = $_ansdom.find('.subEditor textarea') jdt = "\u4e2d\u6587\u82f1\u6587\u7ffb\u8bd1\u9898:" + _question logger(`\u4f20\u9012\u7ed9AI\u7684\u9898\u578b: \u7ffb\u8bd1\u9898`, 'green') $.each(_answerEle, (i, t) => { getAnswer(_qType, jdt).then((agrs) => { let _id = $(t).attr('name') setTimeout(() => { UE.getEditor(_id).setContent(agrs) }, 300); toNextExam() }); }); break default: _answerEle = $_ansdom.find('.Answer .divText .subEditor textarea') if (typeof _answerEle !== 'undefined') { jdt = _questionFull.match(/[(](.*?),.*?\u5206[)]|$/)[1] + ":" + "\u586b\u7a7a\u9898,\u7528\"|\"\u5206\u5272\u591a\u4e2a\u7b54\u6848:" + _question getAnswer(_qType, _question).then((agrs) => { let _answerTmpArr = agrs.split('|') $.each(_answerEle, (i, t) => { let _id = $(t).attr('id') setTimeout(() => { UE.getEditor(_id).setContent(_answerTmpArr[i]) }, 300) }) logger('\u81ea\u52a8\u7b54\u9898\u6210\u529f,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u9898', 'green') toNextExam() }) } else { logger('\u6682\u4e0d\u652f\u6301\u5904\u7406\u6b64\u9898\u578b:' + $(TiMuList[index]).attr('typename') + ',\u8df3\u8fc7。', 'red') setTimeout(() => { doHomeWork(index + 1, TiMuList) }, setting.time) } } } function toNextExam() { if (localStorage.getItem('GPTJsSetting.examTurn') === 'true') { let $_examtable = $('.mark_table').find('.whiteDiv') let $nextbtn = $_examtable.find('.nextDiv a.jb_btn') setTimeout(() => { $nextbtn.click() }, setting.examTurnTime ? 2000 + (Math.floor(Math.random() * 5 + 1) * 1000) : 2000) } else { logger('\u7528\u6237\u8bbe\u7f6e\u4e0d\u81ea\u52a8\u8df3\u8f6c\u4e0b\u4e00\u9898,\u8bf7\u624b\u52a8\u70b9\u51fb', 'blue') } } function uploadExam() { logger('\u8003\u8bd5\u7b54\u6848\u6536\u5f55\u529f\u80fd\u5904\u4e8ebate\u9636\u6bb5,\u9047\u5230bug\u8bf7\u53ca\u65f6\u53cd\u9988!!', 'red') logger('\u8003\u8bd5\u7b54\u6848\u6536\u5f55\u529f\u80fd\u5904\u4e8ebate\u9636\u6bb5,\u9047\u5230bug\u8bf7\u53ca\u65f6\u53cd\u9988!!', 'red') logger('\u5f00\u59cb\u6536\u5f55\u8003\u8bd5\u7b54\u6848', 'green') let TimuList = $('.mark_table .mark_item .questionLi') let data = [] $.each(TimuList, (i, t) => { let _a = {} let _answer let _answerTmpArr, _answerList = [] let TiMuFull = formatQuestionText($(t).find('h3').html()) let _type = ({ \u5355\u9009\u9898: 0, \u591a\u9009\u9898: 1, \u586b\u7a7a\u9898: 2, \u5224\u65ad\u9898: 3, \u7b80\u7b54\u9898: 4 })[TiMuFull.match(/[(](.*?)[)]|$/)[1].replace(/,.*?\u5206/, '')] let _question = TiMuFull.replace(/^[(].*?[)]|$/, '').trim() let _rightAns = $(t).find('.mark_answer').find('.colorGreen').text().replace(/\u6b63\u786e\u7b54\u6848[::]/, '').trim() switch (_type) { case 0: if (_rightAns.length <= 0) { _isTrue = $(t).find('.mark_answer').find('.mark_score span').attr('class') _isZero = $(t).find('.mark_answer').find('.mark_score .totalScore.fr i').text() if (_isTrue == 'marking_dui' || _isZero != '0') { _rightAns = $(t).find('.mark_answer').find('.colorDeep').text().replace(/\u6211\u7684\u7b54\u6848[::]/, '').trim() } else { break } } _answerTmpArr = $(t).find('.mark_letter li') $.each(_answerTmpArr, (a, b) => { _answerList.push(cleanTextContent($(b).html()).replace(/[A-Z].\s*/, '')) }) let _i = ({ A: 0, B: 1, C: 2, D: 3, E: 4, F: 5, G: 6 })[_rightAns] _answer = _answerList[_i] _a['question'] = _question _a['type'] = _type _a['answer'] = _answer data.push(_a) break case 1: _answer = [] if (_rightAns.length <= 0) { _isTrue = $(t).find('.mark_answer').find('.mark_score span').attr('class') _isZero = $(t).find('.mark_answer').find('.mark_score .totalScore.fr i').text() if (_isTrue == 'marking_dui' || _isTrue == 'marking_bandui' || _isZero != '0') { _rightAns = $(t).find('.mark_answer').find('.colorDeep').text().replace(/\u6211\u7684\u7b54\u6848[::]/, '').trim() } else { break } } _answerTmpArr = $(t).find('.mark_letter li') $.each(_answerTmpArr, (a, b) => { _answerList.push(cleanTextContent($(b).html()).replace(/[A-Z].\s*/, '')) }) $.each(_rightAns.split(''), (c, d) => { let _i = ({ A: 0, B: 1, C: 2, D: 3, E: 4, F: 5, G: 6 })[d] _answer.push(_answerList[_i]) }) _a['question'] = _question _a['type'] = _type _a['answer'] = _answer.join("#") data.push(_a) break case 2: _answerTmpArr = [] let answers = $(t).find('.mark_answer').find('.colorDeep').find('dd') if (_rightAns.length <= 0) { $.each(answers, (i, t) => { _isTrue = $(t).find('span:eq(1)').attr('class') if (_isTrue == 'marking_dui') { _rightAns = $(t).find('span:eq(0)').html() _answerTmpArr.push(_rightAns.replace(/[(][0-9].*?[)]/, '').replace(/\u7b2c.*?\u7a7a:/, '').trim()) } else { return } }) _answer = _answerTmpArr.join('#') } else { _answer = _rightAns.replace(/\s/g, '').replace(/[(][0-9].*?[)]/g, '#').replace(/\u7b2c.*?\u7a7a:/g, '#').replace(/^#*/, '') } if (_answer.length != 0) { _a['question'] = _question _a['type'] = _type _a['answer'] = _answer data.push(_a) } break case 3: if (_rightAns.length <= 0) { _isTrue = $(t).find('.mark_answer').find('.mark_score span').attr('class') _isZero = $(t).find('.mark_answer').find('.mark_score .totalScore.fr i').text() if (_isTrue == 'marking_dui' || _isZero != '0') { _rightAns = $(t).find('.mark_answer').find('.colorDeep').text().replace(/\u6211\u7684\u7b54\u6848[::]/, '').trim() } else { let _true = '\u6b63\u786e|\u662f|\u5bf9|√|T|ri' _rightAns = $(t).find('.mark_answer').find('.colorDeep').text().replace(/\u6211\u7684\u7b54\u6848[::]/, '').trim() if (_true.indexOf(_rightAns) != -1) { _rightAns = '\u9519' } else { _rightAns = '\u5bf9' } } } _a['question'] = _question _a['type'] = _type _a['answer'] = _rightAns data.push(_a) break case 4: if (_rightAns.length <= 0) { break } _a['question'] = _question _a['type'] = _type _a['answer'] = _rightAns data.push(_a) break default: break } }) setTimeout(() => { uploadAnswer(data) }, 1500) } function refreshCourseList() { let _p = parseUrlParams() return new Promise((resolve, reject) => { $.ajax({ url: _l.protocol + '//' + _l.host + '/mycourse/studentstudycourselist?courseId=' + _p['courseid'] + '&chapterId=' + _p['knowledgeid'] + '&clazzid=' + _p['clazzid'] + '&mooc2=1', type: 'GET', dateType: 'html', success: function (res) { resolve(res) } }) }) } function updateAudio(reportUrl, dtoken, classId, playingTime, duration, clipTime, objectId, otherInfo, jobId, userId, isdrag, _rt) { return new Promise((resolve, reject) => { getEnc(classId, userId, jobId, objectId, playingTime, duration, clipTime).then((enc) => { if (reportUrlChange) { reportUrl = http2https(reportUrl) } $.ajax({ url: reportUrl + '/' + dtoken + '?clazzId=' + classId + '&playingTime=' + playingTime + '&duration=' + duration + '&clipTime=' + clipTime + '&objectId=' + objectId + '&otherInfo=' + otherInfo + '&jobid=' + jobId + '&userid=' + userId + '&isdrag=' + isdrag + '&view=pc&enc=' + enc + '&rt=' + Number(_rt) + '&dtype=Audio&_t=' + String(Math.round(new Date())), type: 'GET', success: function (res) { try { if (res['isPassed']) { if (setting.review && playingTime != duration) { resolve(1) } else { resolve(2) } } else { if (setting.rate == 0 && playingTime == duration) { resolve(2) } else { resolve(1) } } } catch (e) { logger('\u53d1\u751f\u9519\u8bef:' + e, 'red') resolve(0) } }, error: function (xhr) { if (xhr.status == 403) { logger('\u8d85\u661f\u8fd4\u56de\u9519\u8bef\u4fe1\u606f,\u5c1d\u8bd5\u66f4\u6362\u53c2\u6570,40s\u540e\u5c06\u91cd\u8bd5,\u8bf7\u7b49\u5f85...', 'red') resolve(3) } else { reportUrlChange = 1; logger('\u8d85\u661f\u8fd4\u56de\u9519\u8bef\u4fe1\u606f,\u5982\u679c\u6301\u7eed\u51fa\u73b0,\u8bf7\u8054\u7cfb\u4f5c\u8005', 'red') } } }) }) }) } function updateVideo(reportUrl, dtoken, classId, playingTime, duration, clipTime, objectId, otherInfo, jobId, userId, isdrag, _rt) { return new Promise((resolve, reject) => { getEnc(classId, userId, jobId, objectId, playingTime, duration, clipTime).then((enc) => { if (reportUrlChange) { reportUrl = http2https(reportUrl) } $.ajax({ url: reportUrl + '/' + dtoken + '?clazzId=' + classId + '&playingTime=' + playingTime + '&duration=' + duration + '&clipTime=' + clipTime + '&objectId=' + objectId + '&otherInfo=' + otherInfo + '&jobid=' + jobId + '&userid=' + userId + '&isdrag=' + isdrag + '&view=pc&enc=' + enc + '&rt=' + Number(_rt) + '&dtype=Video&_t=' + String(Math.round(new Date())), type: 'GET', success: function (res) { try { if (res['isPassed']) { if (setting.review && playingTime != duration) { resolve(1) } else { resolve(2) } } else { if (setting.rate == 0 && playingTime == duration) { resolve(2) } else { resolve(1) } } } catch (e) { logger('\u53d1\u751f\u9519\u8bef:' + e, 'red') resolve(0) } }, error: function (xhr) { if (xhr.status == 403) { logger('\u8d85\u661f\u8fd4\u56de\u9519\u8bef\u4fe1\u606f,\u5c1d\u8bd5\u66f4\u6362\u53c2\u6570,40s\u540e\u5c06\u91cd\u8bd5,\u8bf7\u7b49\u5f85...', 'red') resolve(3) } else { reportUrlChange = 1; logger('\u8d85\u661f\u8fd4\u56de\u9519\u8bef\u4fe1\u606f,\u5982\u679c\u6301\u7eed\u51fa\u73b0,\u8bf7\u8054\u7cfb\u4f5c\u8005', 'red') } } }) }) }) } function upLoadWork(index, doms, dom) { let $CyHtml = $(dom).contents().find('.CeYan') let TiMuList = $CyHtml.find('.TiMu') let data = [] for (let i = 0; i < TiMuList.length; i++) { let _a = {} let questionFull = $(TiMuList[i]).find('.Zy_TItle.clearfix > div.clearfix').html().trim() let _question = formatQuestionText(questionFull) let _TimuType = ({ \u5355\u9009\u9898: 0, \u591a\u9009\u9898: 1, \u586b\u7a7a\u9898: 2, \u5224\u65ad\u9898: 3, \u7b80\u7b54\u9898: 4 })[questionFull.match(/^【(.*?)】|$/)[1]] _a['question'] = _question _a['type'] = _TimuType let _selfAnswerCheck = $(TiMuList[i]).find('.Py_answer.clearfix > i').attr('class') switch (_TimuType) { case 0: if (_selfAnswerCheck == "fr dui") { let _selfAnswer = ({ A: 0, B: 1, C: 2, D: 3, E: 4, F: 5, G: 6 })[$(TiMuList[i]).find('.Py_answer.clearfix > span').html().trim().replace(/\u6b63\u786e\u7b54\u6848[::]/, '').replace(/\u6211\u7684\u7b54\u6848[::]/, '').trim()] let _answerForm = $(TiMuList[i]).find('.Zy_ulTop li') let _answer = $(_answerForm[_selfAnswer]).find('a.fl').html() _a['answer'] = cleanTextContent(_answer) } break case 1: let _answerArr = $(TiMuList[i]).find('.Py_answer.clearfix > span').html().trim().replace(/\u6b63\u786e\u7b54\u6848[::]/, '').replace(/\u6211\u7684\u7b54\u6848[::]/, '').trim() let _answerForm = $(TiMuList[i]).find('.Zy_ulTop li') let _answer = [] if (_selfAnswerCheck == "fr dui" || _selfAnswerCheck == "fr bandui") { for (let i = 0; i < _answerArr.length; i++) { let _answerIndex = ({ A: 0, B: 1, C: 2, D: 3, E: 4, F: 5, G: 6 })[_answerArr[i]] _answer.push($(_answerForm[_answerIndex]).find('a.fl').html()) } } else { break } _a['answer'] = cleanTextContent(_answer.join('#')) break case 2: let _TAnswerArr = $(TiMuList[i]).find('.Py_answer.clearfix .clearfix') let _TAnswer = [] for (let i = 0; i < _TAnswerArr.length; i++) { let item = _TAnswerArr[i]; if ($(item).find('i').attr('class') == 'fr dui') { _TAnswer.push($(item).find('p').html().replace(/[(][0-9].*?[)]/, '').replace(/\u7b2c.*?\u7a7a:/, '').trim()) } } if (_TAnswer.length <= 0) { break } _a['answer'] = cleanTextContent(_TAnswer.join('#')) break case 3: if (_selfAnswerCheck == "fr dui") { let _answer = $(TiMuList[i]).find('.Py_answer.clearfix > span > i').html().replace(/\u6b63\u786e\u7b54\u6848[::]/, '').replace(/\u6211\u7684\u7b54\u6848[::]/, '').trim() _a['answer'] = cleanTextContent(_answer) } else { if ($(TiMuList[i]).find('.Py_answer.clearfix > span > i').html()) { let _answer = $(TiMuList[i]).find('.Py_answer.clearfix > span > i').html().replace(/\u6b63\u786e\u7b54\u6848[::]/, '').replace(/\u6211\u7684\u7b54\u6848[::]/, '').trim() _a['answer'] = (cleanTextContent(_answer) == '√' ? 'x' : '√') } else { break } } break case 4: break } if (_a['answer'] != undefined) { data.push(_a) } else { continue } } uploadAnswer(data).then(() => { _mlist.splice(0, 1) _domList.splice(0, 1) setTimeout(() => { startDoCyWork(index + 1, doms) }, 3000) }) } function uploadHomeWork() { logger('\u5f00\u59cb\u6536\u5f55\u7b54\u6848', 'green') // \u589e\u52a0\u5bf9\u4e0d\u540cDOM\u7ed3\u6784\u7684\u652f\u6301 let $_homeworktable = $('.mark_table') if ($_homeworktable.length === 0) { // \u5c1d\u8bd5\u5176\u4ed6\u53ef\u80fd\u7684\u9009\u62e9\u5668 $_homeworktable = $('.mark_cont') if ($_homeworktable.length === 0) { logger('\u672a\u627e\u5230\u4f5c\u4e1a\u8868\u683c,\u53ef\u80fd\u662f\u9875\u9762\u7ed3\u6784\u4e0d\u5339\u914d', 'red') return } } // \u589e\u5f3a\u9009\u62e9\u5668,\u9002\u914d\u4e0d\u540c\u7684DOM\u7ed3\u6784 let TiMuList = $_homeworktable.find('.mark_item').find('.questionLi') if (TiMuList.length === 0) { // \u5c1d\u8bd5\u76f4\u63a5\u67e5\u627equestionLi TiMuList = $_homeworktable.find('.questionLi') if (TiMuList.length === 0) { logger('\u672a\u627e\u5230\u9898\u76ee\u5217\u8868,\u53ef\u80fd\u662f\u9875\u9762\u7ed3\u6784\u4e0d\u5339\u914d', 'red') return } } logger(`\u627e\u5230 ${TiMuList.length} \u9053\u9898\u76ee`, 'green') let data = [] $.each(TiMuList, (i, t) => { let _a = {} let _answer let _answerTmpArr, _answerList = [] // \u589e\u5f3a\u9898\u76ee\u9009\u62e9\u5668 let titleElem = $(t).find('h3.mark_name') if (titleElem.length === 0) { titleElem = $(t).find('.mark_name') if (titleElem.length === 0) { logger(`\u7b2c${i + 1}\u9898\u672a\u627e\u5230\u9898\u76ee\u6807\u9898,\u8df3\u8fc7`, 'orange') return } } let TiMuFull = formatQuestionText(titleElem.html()) // \u66f4\u5065\u58ee\u7684\u9898\u578b\u63d0\u53d6\u903b\u8f91 let typeMatch = TiMuFull.match(/[(](.*?)[)]|$/) let typeText = typeMatch && typeMatch[1] ? typeMatch[1].replace(/, .*?\u5206/, '') : '' let TiMuType = ({ \u5355\u9009\u9898: 0, \u591a\u9009\u9898: 1, \u586b\u7a7a\u9898: 2, \u5224\u65ad\u9898: 3, \u7b80\u7b54\u9898: 4 })[typeText] || 4 // \u9ed8\u8ba4\u4f5c\u4e3a\u7b80\u7b54\u9898\u5904\u7406 let TiMu = TiMuFull.replace(/^[(].*?[)]|$/, '').trim() // \u589e\u5f3a\u7b54\u6848\u9009\u62e9\u5668 let rightAnsElem = $(t).find('.mark_answer').find('.colorGreen') let _rightAns = rightAnsElem.length > 0 ? rightAnsElem.text().replace(/\u6b63\u786e\u7b54\u6848[::]/, '').trim() : '' switch (TiMuType) { case 0: if (_rightAns.length <= 0) { let _isTrue = $(t).find('.mark_answer').find('.mark_score span').attr('class') || '' let _isZero = $(t).find('.mark_answer').find('.mark_score .totalScore.fr i').text() || '0' if (_isTrue == 'marking_dui' || _isZero != '0') { _rightAns = $(t).find('.mark_answer').find('.colorDeep').text().replace(/\u6211\u7684\u7b54\u6848[::]/, '').trim() } else { return } } _answerTmpArr = $(t).find('.mark_letter li') $.each(_answerTmpArr, (a, b) => { _answerList.push(cleanTextContent($(b).html()).replace(/[A-Z].\s*/, '')) }) let _i = ({ A: 0, B: 1, C: 2, D: 3, E: 4, F: 5, G: 6 })[_rightAns] if (_i !== undefined && _i < _answerList.length) { _answer = _answerList[_i] _a['question'] = TiMu _a['type'] = TiMuType _a['answer'] = _answer data.push(_a) } else { logger(`\u7b2c${i + 1}\u9898\u5355\u9009\u9898\u7b54\u6848\u63d0\u53d6\u5931\u8d25: ${_rightAns}`, 'orange') } break case 1: _answer = [] if (_rightAns.length <= 0) { let _isTrue = $(t).find('.mark_answer').find('.mark_score span').attr('class') || '' let _isZero = $(t).find('.mark_answer').find('.mark_score .totalScore.fr i').text() || '0' if (_isTrue == 'marking_dui' || _isTrue == 'marking_bandui' || _isZero != '0') { _rightAns = $(t).find('.mark_answer').find('.colorDeep').text().replace(/\u6211\u7684\u7b54\u6848[::]/, '').trim() } else { break } } _answerTmpArr = $(t).find('.mark_letter li') $.each(_answerTmpArr, (a, b) => { _answerList.push(cleanTextContent($(b).html()).replace(/[A-Z].\s*/, '')) }) let validLetters = true $.each(_rightAns.split(''), (c, d) => { let _i = ({ A: 0, B: 1, C: 2, D: 3, E: 4, F: 5, G: 6 })[d] if (_i !== undefined && _i < _answerList.length) { _answer.push(_answerList[_i]) } else { validLetters = false } }) if (validLetters && _answer.length > 0) { _a['question'] = TiMu _a['type'] = TiMuType _a['answer'] = _answer.join("#") data.push(_a) } else { logger(`\u7b2c${i + 1}\u9898\u591a\u9009\u9898\u7b54\u6848\u63d0\u53d6\u5931\u8d25: ${_rightAns}`, 'orange') } break case 2: _answerTmpArr = [] let answers = $(t).find('.mark_answer').find('.colorDeep').find('dd') if (_rightAns.length <= 0) { $.each(answers, (i, t) => { let _isTrue = $(t).find('span:eq(1)').attr('class') || '' if (_isTrue == 'marking_dui') { _rightAns = $(t).find('span:eq(0)').html() || '' _answerTmpArr.push(_rightAns.replace(/[(][0-9].*?[)]/, '').replace(/\u7b2c.*?\u7a7a:/, '').trim()) } else { return } }) _answer = _answerTmpArr.join('#') } else { _answer = _rightAns.replace(/\s/g, '').replace(/[(][0-9].*?[)]/g, '#').replace(/\u7b2c.*?\u7a7a:/g, '#').replace(/^#*/, '') } if (_answer && _answer.length != 0) { _a['question'] = TiMu _a['type'] = TiMuType _a['answer'] = _answer data.push(_a) } else { logger(`\u7b2c${i + 1}\u9898\u586b\u7a7a\u9898\u7b54\u6848\u63d0\u53d6\u5931\u8d25`, 'orange') } break case 3: if (_rightAns.length <= 0) { let _isTrue = $(t).find('.mark_answer').find('.mark_score span').attr('class') || '' let _isZero = $(t).find('.mark_answer').find('.mark_score .totalScore.fr i').text() || '0' if (_isTrue == 'marking_dui' || _isZero != '0') { _rightAns = $(t).find('.mark_answer').find('.colorDeep').text().replace(/\u6211\u7684\u7b54\u6848[::]/, '').trim() } else { let _true = '\u6b63\u786e|\u662f|\u5bf9|√|T|ri' _rightAns = $(t).find('.mark_answer').find('.colorDeep').text().replace(/\u6211\u7684\u7b54\u6848[::]/, '').trim() if (_true.indexOf(_rightAns) != -1) { _rightAns = '\u9519' } else { _rightAns = '\u5bf9' } } } if (_rightAns && _rightAns.length > 0) { _a['question'] = TiMu _a['type'] = TiMuType _a['answer'] = _rightAns data.push(_a) } else { logger(`\u7b2c${i + 1}\u9898\u5224\u65ad\u9898\u7b54\u6848\u63d0\u53d6\u5931\u8d25`, 'orange') } break case 4: if (_rightAns.length <= 0) { // \u5c1d\u8bd5\u67e5\u627e\u5176\u4ed6\u53ef\u80fd\u5305\u542b\u7b54\u6848\u7684\u5143\u7d20 let altAnsElem = $(t).find('.mark_answer').find('.colorDeep') if (altAnsElem.length > 0) { _rightAns = altAnsElem.text().replace(/\u6211\u7684\u7b54\u6848[::]/, '').trim() } if (_rightAns.length <= 0) { logger(`\u7b2c${i + 1}\u9898\u7b80\u7b54\u9898\u672a\u627e\u5230\u7b54\u6848,\u8df3\u8fc7`, 'orange') break } } _a['question'] = TiMu _a['type'] = TiMuType _a['answer'] = _rightAns data.push(_a) break } }) if (data.length > 0) { logger(`\u6210\u529f\u63d0\u53d6 ${data.length} \u9053\u9898\u76ee\u7b54\u6848,\u51c6\u5907\u4e0a\u4f20`, 'green') setTimeout(() => { uploadAnswer(data) }, 1500) } else { logger('\u672a\u80fd\u63d0\u53d6\u5230\u4efb\u4f55\u9898\u76ee\u7b54\u6848,\u8bf7\u68c0\u67e5\u9875\u9762\u7ed3\u6784\u6216\u624b\u52a8\u6536\u5f55', 'red') } } function getEnc(a, b, c, d, e, f, g) { // return new Promise((resolve, reject) => { // try { // GM_xmlhttpRequest({ // url: "127.0.0.1" + "/api/v1/enc?a=" + a + '&b=' + b + '&c=' + c + '&d=' + d + '&e=' + e + '&f=' + f + '&g=' + g + '&v=' + GM_info['script']['version'], // method: 'GET', // timeout: 3000, // headers: { // 'Authorization': localStorage.getItem('netok') // }, // onload: function (xhr) { // let res = $.parseJSON(xhr.responseText) // if (res['code'] == 200) { // enc = res['data']['ne21enc'] // if (enc.length != 32) { // logger('\u83b7\u53d6enc\u51fa\u9519!' + enc, 'red') // reject() // } else { // resolve(enc) // } // } else { // logger(res['msg'], 'red') // reject() // } // } // }) // } catch (e) { // logger('\u83b7\u53d6enc\u51fa\u9519!' + e, 'red') // reject() // } // }) } function getAnswer(_t, _q) { // \u8fdb\u4e00\u6b65\u6e05\u7406\u9898\u76ee\u6587\u672c,\u79fb\u9664\u9898\u76ee\u7c7b\u578b\u524d\u7f00\u548c\u5206\u6570\u4fe1\u606f let cleanedQuestion = _q; // \u79fb\u9664\u9898\u76ee\u7c7b\u578b\u524d\u7f00\u548c\u5206\u6570\u4fe1\u606f cleanedQuestion = cleanedQuestion.replace(/^\s*[\((【\[]?\s*(\u5355\u9009\u9898|\u591a\u9009\u9898|\u5224\u65ad\u9898|\u586b\u7a7a\u9898|\u7b80\u7b54\u9898|\u8bba\u8ff0\u9898|\u5206\u6790\u9898)[\s\.\::,,]*[\d\.]*\u5206?[\))\]\】]?\s*/i, ''); cleanedQuestion = cleanedQuestion.replace(/\(\s*\d+\.\d+\s*\u5206\s*\)/g, ''); cleanedQuestion = cleanedQuestion.replace(/(\s*\d+\.\d+\s*\u5206\s*)/g, ''); logger('\u9898\u76ee:' + cleanedQuestion, 'pink'); // \u79fb\u9664\u6b63\u5728\u67e5\u8be2\u7b54\u6848\u7684\u901a\u77e5 // showDesktopNotification('\u6b63\u5728\u67e5\u8be2\u7b54\u6848', `\u6b63\u5728\u67e5\u8be2\u9898\u76ee: ${cleanedQuestion.substring(0, 30)}${cleanedQuestion.length > 30 ? '...' : ''}`); return new Promise((resolve, reject) => { // \u5904\u7406\u7279\u6b8a\u683c\u5f0f "\u5355\u9009\u9898:\u4e0b\u9762\u54ea\u4e00\u4f4d\u5956\u8662\u5b63\u5b50\u767d\u76d8\u8f6c\u8d60\u7ed9\u56fd\u5bb6?() \u7aef\u65b9|\u5218\u94ed\u4f20|\u5218\u9e57|\u5218\u8083\u66fe" let processedQuestion = cleanedQuestion; let extractedType = _t; // \u63d0\u53d6\u9898\u578b\u524d\u7f00 if (_q.startsWith('\u5355\u9009\u9898:')) { extractedType = '0'; processedQuestion = _q.substring(4); // \u79fb\u9664 "\u5355\u9009\u9898:" logger('\u4ece\u9898\u76ee\u4e2d\u63d0\u53d6\u9898\u578b: \u5355\u9009\u9898', 'blue'); } else if (_q.startsWith('\u591a\u9009\u9898:')) { extractedType = '1'; processedQuestion = _q.substring(4); // \u79fb\u9664 "\u591a\u9009\u9898:" logger('\u4ece\u9898\u76ee\u4e2d\u63d0\u53d6\u9898\u578b: \u591a\u9009\u9898', 'blue'); } else if (_q.startsWith('\u5224\u65ad\u9898:')) { extractedType = '3'; processedQuestion = _q.substring(4); // \u79fb\u9664 "\u5224\u65ad\u9898:" logger('\u4ece\u9898\u76ee\u4e2d\u63d0\u53d6\u9898\u578b: \u5224\u65ad\u9898', 'blue'); } // \u83b7\u53d6\u7528\u6237\u914d\u7f6e\u7684 key(\u5982\u679c\u6709) let userKey = localStorage.getItem('GPTJsSetting.key') || localStorage.getItem('tiku_key') || ''; // \u68c0\u67e5key\u662f\u5426\u4e3a\u7a7a if (!userKey) { logger('\u672a\u914d\u7f6eKey,\u8bf7\u5728\u8bbe\u7f6e\u4e2d\u914d\u7f6e\u60a8\u7684Key', 'red'); reject('\u8bf7\u5728\u8bbe\u7f6e\u4e2d\u914d\u7f6e\u60a8\u7684Key'); return; } // \u4e0d\u518d\u663e\u793a\u4f7f\u7528\u7684key\u4fe1\u606f // logger('\u4f7f\u7528 Key: ' + userKey.substring(0, 3) + '***' + userKey.substring(userKey.length - 3), 'blue'); // \u68c0\u67e5\u662f\u5426\u5f00\u542f\u9898\u5e93\u7b54\u9898\u529f\u80fd if (localStorage.getItem('GPTJsSetting.useTiku') !== 'true') { logger('\u9898\u5e93\u7b54\u9898\u529f\u80fd\u5df2\u5173\u95ed,\u8df3\u8fc7\u9898\u5e93\u67e5\u8be2', 'orange'); // \u6253\u5370\u5f53\u524dAI\u548c\u968f\u673a\u7b54\u9898\u8bbe\u7f6e\u72b6\u6001 logger('\u9898\u5e93\u7b54\u9898\u529f\u80fd\u72b6\u6001:' + (localStorage.getItem('GPTJsSetting.useTiku') === 'true' ? '\u5df2\u5f00\u542f' : '\u672a\u5f00\u542f'), '#1890ff'); logger('AI\u7b54\u9898\u529f\u80fd\u72b6\u6001:' + (localStorage.getItem('GPTJsSetting.useAI') === 'true' ? '\u5df2\u5f00\u542f' : '\u672a\u5f00\u542f'), '#1890ff'); logger('\u968f\u673a\u7b54\u9898\u529f\u80fd\u72b6\u6001:' + (localStorage.getItem('GPTJsSetting.randomAnswer') === 'true' ? '\u5df2\u5f00\u542f' : '\u672a\u5f00\u542f'), '#1890ff'); logger('\u4f7f\u7528\u6a21\u578b:' + (localStorage.getItem('GPTJsSetting.model') || 'gpt-3.5-turbo-16k'), '#1890ff'); // \u5c06\u9898\u578b\u6570\u5b57\u8f6c\u6362\u4e3a\u540d\u79f0 let typeNames = { '0': '\u5355\u9009\u9898', '1': '\u591a\u9009\u9898', '2': '\u586b\u7a7a\u9898', '3': '\u5224\u65ad\u9898', '4': '\u7b80\u7b54\u9898', '5': '\u9009\u62e9\u9898' }; let typeName = typeNames[extractedType] || '\u672a\u77e5\u9898\u578b'; logger('\u9898\u76ee\u7c7b\u578b: ' + typeName, '#1890ff'); // \u5148\u68c0\u67e5\u662f\u5426\u5f00\u542fAI\u7b54\u9898\u529f\u80fd if (localStorage.getItem('GPTJsSetting.useAI') === 'true') { // \u4f7f\u7528AI\u5c1d\u8bd5\u83b7\u53d6\u7b54\u6848 logger('\u5df2\u5f00\u542fAI\u7b54\u9898\u529f\u80fd,\u51c6\u5907\u83b7\u53d6AI\u7b54\u6848...', '#1890ff'); logger('\u4f20\u9012\u7ed9AI\u7684\u9898\u578b: ' + typeName, '#1890ff'); // \u8bbe\u7f6e\u989d\u5916\u7684\u8d85\u65f6\u4fdd\u62a4 let aiAnswerTimeout = setTimeout(() => { logger('AI\u7b54\u9898\u7cfb\u7edf\u54cd\u5e94\u8d85\u65f6,\u5207\u6362\u5230\u968f\u673a\u7b54\u9898...', 'red'); if (localStorage.getItem('GPTJsSetting.randomAnswer') === 'true') { // \u4f7f\u7528\u968f\u673a\u7b54\u9898\u529f\u80fd\u4f5c\u4e3a\u5907\u9009 logger('\u5c1d\u8bd5\u4f7f\u7528\u968f\u673a\u7b54\u9898\u529f\u80fd\u4f5c\u4e3a\u5907\u9009...', '#1890ff'); const randomAnswer = getRandomAnswer(typeName); logger('\u6210\u529f\u751f\u6210\u968f\u673a\u7b54\u6848: ' + randomAnswer, 'green'); resolve(randomAnswer); } else { // \u8bbe\u7f6e\u4e0d\u81ea\u52a8\u63d0\u4ea4 localStorage.setItem('GPTJsSetting.sub', false); // \u8fd4\u56de\u7a7a\u7b54\u6848,\u7ee7\u7eed\u4e0b\u4e00\u9898 resolve(''); } }, 30000); // 30\u79d2\u540e\u5982\u679cAI\u7b54\u9898\u7cfb\u7edf\u4ecd\u672a\u8fd4\u56de\u7ed3\u679c,\u5c31\u5207\u6362\u5230\u968f\u673a\u7b54\u9898 getAIAnswer(processedQuestion, typeName) .then(aiAnswer => { // \u6e05\u9664\u8d85\u65f6\u4fdd\u62a4 clearTimeout(aiAnswerTimeout); // AI\u6210\u529f\u83b7\u53d6\u7b54\u6848 logger('AI\u6210\u529f\u56de\u7b54,\u7ee7\u7eed\u5904\u7406...', 'green'); resolve(aiAnswer); }) .catch(error => { // \u6e05\u9664\u8d85\u65f6\u4fdd\u62a4 clearTimeout(aiAnswerTimeout); // AI\u56de\u7b54\u51fa\u9519,\u5c1d\u8bd5\u968f\u673a\u7b54\u9898 logger('AI\u56de\u7b54\u5931\u8d25: ' + error, 'red'); // \u68c0\u67e5\u662f\u5426\u5f00\u542f\u968f\u673a\u7b54\u9898\u529f\u80fd if (localStorage.getItem('GPTJsSetting.randomAnswer') === 'true') { // \u4f7f\u7528\u968f\u673a\u7b54\u9898\u529f\u80fd\u4f5c\u4e3a\u5907\u9009 logger('\u5c1d\u8bd5\u4f7f\u7528\u968f\u673a\u7b54\u9898\u529f\u80fd\u4f5c\u4e3a\u5907\u9009...', '#1890ff'); const randomAnswer = getRandomAnswer(typeName); logger('\u6210\u529f\u751f\u6210\u968f\u673a\u7b54\u6848: ' + randomAnswer, 'green'); resolve(randomAnswer); } else { // \u8bbe\u7f6e\u4e0d\u81ea\u52a8\u63d0\u4ea4 localStorage.setItem('GPTJsSetting.sub', false); // \u8fd4\u56de\u7a7a\u7b54\u6848,\u7ee7\u7eed\u4e0b\u4e00\u9898 resolve(''); } }); return; } // \u5982\u679cAI\u7b54\u9898\u672a\u5f00\u542f,\u68c0\u67e5\u662f\u5426\u5f00\u542f\u968f\u673a\u7b54\u9898\u529f\u80fd if (localStorage.getItem('GPTJsSetting.randomAnswer') === 'true') { // \u4f7f\u7528\u968f\u673a\u7b54\u9898\u529f\u80fd logger('\u5df2\u5f00\u542f\u968f\u673a\u7b54\u9898\u529f\u80fd,\u51c6\u5907\u751f\u6210\u968f\u673a\u7b54\u6848...', '#1890ff'); const randomAnswer = getRandomAnswer(typeName); logger('\u6210\u529f\u751f\u6210\u968f\u673a\u7b54\u6848: ' + randomAnswer, 'green'); resolve(randomAnswer); return; } // \u65e2\u6ca1\u6709\u5f00\u542fAI\u7b54\u9898,\u4e5f\u6ca1\u6709\u5f00\u542f\u968f\u673a\u7b54\u9898 logger('\u672a\u5f00\u542fAI\u7b54\u9898\u548c\u968f\u673a\u7b54\u9898\u529f\u80fd,\u7559\u7a7a\u5e76\u7ee7\u7eed\u4e0b\u4e00\u9898...', 'red'); // \u8bbe\u7f6e\u4e0d\u81ea\u52a8\u63d0\u4ea4 localStorage.setItem('GPTJsSetting.sub', false); // \u8fd4\u56de\u7a7a\u7b54\u6848,\u7ee7\u7eed\u4e0b\u4e00\u9898 resolve(''); return; } // \u63d0\u53d6\u9009\u9879(\u5982\u679c\u6709) let options = ''; try { // \u5c1d\u8bd5\u4ece\u9875\u9762\u4e2d\u83b7\u53d6\u9009\u9879 // \u5b9a\u4e49\u53ef\u80fd\u5305\u542b\u9009\u9879\u7684\u9009\u62e9\u5668 const optionSelectors = [ '.option-content', // \u901a\u7528\u9009\u9879\u5185\u5bb9 '.el-radio__label', // Element UI \u5355\u9009 '.el-checkbox__label', // Element UI \u591a\u9009 '.ant-radio-wrapper', // Ant Design \u5355\u9009 '.ant-checkbox-wrapper', // Ant Design \u591a\u9009 'label.option', // \u901a\u7528\u9009\u9879\u6807\u7b7e '.option-item', // \u901a\u7528\u9009\u9879\u9879 '.answer-item', // \u7b54\u6848\u9879 '.subject-item', // \u9898\u76ee\u9879 'li.option', // \u5217\u8868\u9009\u9879 'div[class*="option"]', // \u5305\u542b option \u7684 div 'span[class*="option"]', // \u5305\u542b option \u7684 span 'input[type="radio"] + label', // \u5355\u9009\u6309\u94ae\u540e\u7684\u6807\u7b7e 'input[type="checkbox"] + label' // \u590d\u9009\u6846\u540e\u7684\u6807\u7b7e ]; // \u5408\u5e76\u6240\u6709\u9009\u62e9\u5668\u5e76\u67e5\u8be2 const optionsElements = document.querySelectorAll(optionSelectors.join(', ')); if (optionsElements && optionsElements.length > 0) { const optionsArray = []; optionsElements.forEach(el => { // \u6e05\u7406\u6587\u672c,\u79fb\u9664\u9009\u9879\u6807\u8bb0(\u5982 A.、B.、C. \u7b49) let text = el.textContent.trim(); text = text.replace(/^[A-Z][\.\、\s]+/i, '').trim(); if (text && !optionsArray.includes(text)) { optionsArray.push(text); } }); // \u5982\u679c\u6ca1\u6709\u627e\u5230\u9009\u9879,\u5c1d\u8bd5\u4ece\u9898\u76ee\u4e2d\u63d0\u53d6 if (optionsArray.length === 0) { // \u5c1d\u8bd5\u4ece\u9898\u76ee\u6587\u672c\u4e2d\u63d0\u53d6\u9009\u9879 const questionMatch = _q.match(/\(([^)]+)\)/); if (questionMatch && questionMatch[1]) { // \u63d0\u53d6\u62ec\u53f7\u4e2d\u7684\u9009\u9879 optionsArray.push(...questionMatch[1].split(/[|,,、]/)); } else { // \u5c1d\u8bd5\u4ece\u9898\u76ee\u672b\u5c3e\u63d0\u53d6\u9009\u9879 const endOptionsMatch = _q.match(/[A-D][\.、][\s\S]+?[A-D][\.、][\s\S]+/); if (endOptionsMatch) { optionsArray.push(...endOptionsMatch[0].split(/[A-D][\.、]/)); } // \u5c1d\u8bd5\u67e5\u627e\u9898\u76ee\u4e2d\u7684\u9009\u9879\u5206\u9694\u7b26 const splitOptions = _q.split(/[|,,、]/); if (splitOptions.length > 1) { // \u5982\u679c\u5206\u5272\u540e\u6709\u591a\u4e2a\u90e8\u5206,\u53ef\u80fd\u662f\u9009\u9879 const lastPart = splitOptions[splitOptions.length - 1]; // \u68c0\u67e5\u6700\u540e\u4e00\u90e8\u5206\u662f\u5426\u5305\u542b\u9009\u9879\u6807\u8bb0 if (lastPart.match(/[A-D]/)) { optionsArray.push(...splitOptions); } } } } options = optionsArray.join('|'); logger('\u63d0\u53d6\u5230\u9009\u9879: ' + options, 'blue'); } } catch (e) { logger('\u63d0\u53d6\u9009\u9879\u5931\u8d25: ' + e, 'red'); } // \u5904\u7406\u9898\u76ee\u4e2d\u53ef\u80fd\u5305\u542b\u7684\u9009\u9879 let extractedOptions = ''; // \u68c0\u67e5\u9898\u76ee\u662f\u5426\u5305\u542b\u9009\u9879\u683c\u5f0f "\u9898\u76ee\u5185\u5bb9 \u7aef\u65b9|\u5218\u94ed\u4f20|\u5218\u9e57|\u5218\u8083\u66fe" const optionsSeparatorIndex = processedQuestion.lastIndexOf(' '); if (optionsSeparatorIndex !== -1) { const possibleOptions = processedQuestion.substring(optionsSeparatorIndex + 1); // \u68c0\u67e5\u662f\u5426\u5305\u542b\u9009\u9879\u5206\u9694\u7b26 if (possibleOptions.includes('|')) { processedQuestion = processedQuestion.substring(0, optionsSeparatorIndex); extractedOptions = possibleOptions; logger('\u4ece\u9898\u76ee\u4e2d\u63d0\u53d6\u9009\u9879: ' + extractedOptions, 'blue'); } } // \u5904\u7406\u7279\u6b8a\u683c\u5f0f:\u9898\u76ee\u672b\u5c3e\u5305\u542b\u62ec\u53f7\u548c\u9009\u9879 if (!extractedOptions) { const bracketMatch = processedQuestion.match(/\(\)[\s]*([^()]+)$/); if (bracketMatch && bracketMatch[1]) { const afterBracket = bracketMatch[1].trim(); if (afterBracket.includes('|')) { extractedOptions = afterBracket; // \u79fb\u9664\u62ec\u53f7\u548c\u9009\u9879\u90e8\u5206 processedQuestion = processedQuestion.replace(/\(\)[\s]*[^()]+$/, '()'); logger('\u4ece\u9898\u76ee\u62ec\u53f7\u540e\u63d0\u53d6\u9009\u9879: ' + extractedOptions, 'blue'); } } } // \u5c06\u9898\u578b\u6570\u5b57\u8f6c\u6362\u4e3a\u540d\u79f0 let typeNames = { '0': '\u5355\u9009\u9898', '1': '\u591a\u9009\u9898', '2': '\u586b\u7a7a\u9898', '3': '\u5224\u65ad\u9898', '4': '\u7b80\u7b54\u9898', '5': '\u9009\u62e9\u9898' }; let typeName = typeNames[extractedType] || '\u672a\u77e5\u9898\u578b'; logger('\u9898\u76ee\u7c7b\u578b: ' + typeName, 'green'); if (extractedOptions) { logger('\u4f7f\u7528\u9898\u76ee\u4e2d\u63d0\u53d6\u7684\u9009\u9879: ' + extractedOptions, 'green'); } else if (options) { logger('\u4f7f\u7528\u9875\u9762\u5143\u7d20\u63d0\u53d6\u7684\u9009\u9879: ' + options, 'green'); } // \u6784\u5efa\u8bf7\u6c42\u6570\u636e let requestData = "key=" + encodeURIComponent(userKey) + "&question=" + encodeURIComponent(processedQuestion) + "&type=" + encodeURIComponent(extractedType); // \u4f18\u5148\u4f7f\u7528\u4ece\u9898\u76ee\u4e2d\u63d0\u53d6\u7684\u9009\u9879,\u5176\u6b21\u4f7f\u7528\u4ece\u9875\u9762\u5143\u7d20\u63d0\u53d6\u7684\u9009\u9879 if (extractedOptions) { requestData += "&options=" + encodeURIComponent(extractedOptions); } else if (options) { requestData += "&options=" + encodeURIComponent(options); } // \u4e0d\u518d\u663e\u793a\u53d1\u9001\u8bf7\u6c42\u4fe1\u606f // logger('\u53d1\u9001\u8bf7\u6c42: ' + requestData, 'gray'); GM_xmlhttpRequest({ method: "POST", url: API_BASE_URL + "?act=xxt", headers: { "Content-Type": "application/x-www-form-urlencoded", "Authorization": "Bearer " + userKey // \u6dfb\u52a0\u6388\u6743\u5934\u90e8 }, data: requestData, timeout: 120000, // \u5c06\u8d85\u65f6\u65f6\u95f4\u4ece20\u79d2\u589e\u52a0\u5230120\u79d2 onload: function (response) { if (response.status == 200) { try { // \u79fb\u9664\u670d\u52a1\u5668\u54cd\u5e94\u5185\u5bb9\u7684\u65e5\u5fd7\u8f93\u51fa // logger('\u670d\u52a1\u5668\u54cd\u5e94\u72b6\u6001: ' + response.status, 'gray'); // \u68c0\u67e5\u54cd\u5e94\u662f\u5426\u4e3a\u7a7a if (!response.responseText) { logger('\u670d\u52a1\u5668\u54cd\u5e94\u5185\u5bb9\u4e3a\u7a7a', 'red'); reject('\u670d\u52a1\u5668\u54cd\u5e94\u5185\u5bb9\u4e3a\u7a7a'); return; } let res = JSON.parse(response.responseText); // \u79fb\u9664\u670d\u52a1\u5668\u54cd\u5e94\u5185\u5bb9\u7684\u65e5\u5fd7\u8f93\u51fa // logger('\u670d\u52a1\u5668\u54cd\u5e94\u7801: ' + res.code, 'gray'); // \u9996\u5148\u68c0\u67e5\u662f\u5426\u6709\u7b54\u6848(\u4efb\u4f55\u72b6\u6001\u7801) if (res.msg && res.msg.includes('\u672a\u627e\u5230\u7b54\u6848')) { // \u5982\u679c\u660e\u786e\u63d0\u793a\u672a\u627e\u5230\u7b54\u6848,\u5c1d\u8bd5\u4f7f\u7528AI logger('\u9898\u5e93\u8fd4\u56de:' + res.msg + ',\u51c6\u5907\u4f7f\u7528AI\u5c1d\u8bd5\u56de\u7b54...', 'orange'); // \u6253\u5370\u5f53\u524dAI\u8bbe\u7f6e\u72b6\u6001 logger('\u9898\u5e93\u7b54\u9898\u529f\u80fd\u72b6\u6001:' + (localStorage.getItem('GPTJsSetting.useTiku') === 'true' ? '\u5df2\u5f00\u542f' : '\u672a\u5f00\u542f'), '#1890ff'); logger('AI\u7b54\u9898\u529f\u80fd\u72b6\u6001:' + (localStorage.getItem('GPTJsSetting.useAI') === 'true' ? '\u5df2\u5f00\u542f' : '\u672a\u5f00\u542f'), '#1890ff'); logger('\u968f\u673a\u7b54\u9898\u529f\u80fd\u72b6\u6001:' + (localStorage.getItem('GPTJsSetting.randomAnswer') === 'true' ? '\u5df2\u5f00\u542f' : '\u672a\u5f00\u542f'), '#1890ff'); logger('\u4f7f\u7528\u6a21\u578b:' + (localStorage.getItem('GPTJsSetting.model') || 'gpt-3.5-turbo-16k'), '#1890ff'); // \u663e\u793a\u684c\u9762\u901a\u77e5 showDesktopNotification('\u9898\u5e93\u65e0\u7b54\u6848', `\u9898\u578b: ${typeName}\n\u9898\u76ee: ${processedQuestion.substring(0, 30)}...`, ''); // \u5207\u6362\u5230AI\u7b54\u9898 if (localStorage.getItem('GPTJsSetting.useAI') === 'true') { // \u4f7f\u7528AI\u5c1d\u8bd5\u83b7\u53d6\u7b54\u6848 logger('\u5df2\u5f00\u542fAI\u7b54\u9898\u529f\u80fd,\u51c6\u5907\u83b7\u53d6AI\u7b54\u6848...', '#1890ff'); getAIAnswer(processedQuestion, typeName) .then(aiAnswer => { // AI\u6210\u529f\u83b7\u53d6\u7b54\u6848 logger('AI\u6210\u529f\u56de\u7b54,\u7ee7\u7eed\u5904\u7406...', 'green'); resolve(aiAnswer); }) .catch(error => { // AI\u56de\u7b54\u51fa\u9519,\u5c1d\u8bd5\u968f\u673a\u7b54\u9898 logger('AI\u56de\u7b54\u5931\u8d25: ' + error, 'red'); // \u68c0\u67e5\u662f\u5426\u5f00\u542f\u968f\u673a\u7b54\u9898\u529f\u80fd if (localStorage.getItem('GPTJsSetting.randomAnswer') === 'true') { // \u4f7f\u7528\u968f\u673a\u7b54\u9898\u529f\u80fd\u4f5c\u4e3a\u5907\u9009 logger('\u5c1d\u8bd5\u4f7f\u7528\u968f\u673a\u7b54\u9898\u529f\u80fd\u4f5c\u4e3a\u5907\u9009...', '#1890ff'); const randomAnswer = getRandomAnswer(typeName); logger('\u6210\u529f\u751f\u6210\u968f\u673a\u7b54\u6848: ' + randomAnswer, 'green'); resolve(randomAnswer); } else { // \u8bbe\u7f6e\u4e0d\u81ea\u52a8\u63d0\u4ea4 localStorage.setItem('GPTJsSetting.sub', false); // \u8fd4\u56de\u7a7a\u7b54\u6848,\u7ee7\u7eed\u4e0b\u4e00\u9898 resolve(''); } }); return; } else if (localStorage.getItem('GPTJsSetting.randomAnswer') === 'true') { // \u4f7f\u7528\u968f\u673a\u7b54\u9898\u529f\u80fd logger('\u672a\u5f00\u542fAI\u7b54\u9898\u4f46\u5df2\u5f00\u542f\u968f\u673a\u7b54\u9898,\u51c6\u5907\u751f\u6210\u968f\u673a\u7b54\u6848...', '#1890ff'); const randomAnswer = getRandomAnswer(typeName); logger('\u6210\u529f\u751f\u6210\u968f\u673a\u7b54\u6848: ' + randomAnswer, 'green'); resolve(randomAnswer); return; } else { // \u65e2\u6ca1\u6709\u5f00\u542fAI\u7b54\u9898,\u4e5f\u6ca1\u6709\u5f00\u542f\u968f\u673a\u7b54\u9898 logger('\u672a\u5f00\u542fAI\u7b54\u9898\u548c\u968f\u673a\u7b54\u9898\u529f\u80fd,\u7559\u7a7a\u5e76\u7ee7\u7eed\u4e0b\u4e00\u9898...', 'red'); // \u8bbe\u7f6e\u4e0d\u81ea\u52a8\u63d0\u4ea4 localStorage.setItem('GPTJsSetting.sub', false); // \u8fd4\u56de\u7a7a\u7b54\u6848,\u7ee7\u7eed\u4e0b\u4e00\u9898 resolve(''); return; } } // \u68c0\u67e5\u662f\u5426\u6709\u9519\u8bef\u4fe1\u606f if (res.code === 0) { logger('\u9519\u8bef: ' + res.msg, 'red'); // \u5982\u679c\u662fKey\u9a8c\u8bc1\u5931\u8d25,\u63d0\u793a\u7528\u6237\u8bbe\u7f6e\u6b63\u786e\u7684Key if (res.msg.includes('Key\u9a8c\u8bc1\u5931\u8d25') || res.msg.includes('\u8bf7\u63d0\u4f9b\u6709\u6548\u7684Key')) { logger('\u8bf7\u5728\u8bbe\u7f6e\u4e2d\u914d\u7f6e\u6b63\u786e\u7684Key', 'red'); // \u663e\u793a\u684c\u9762\u901a\u77e5 showDesktopNotification('Key\u9a8c\u8bc1\u5931\u8d25', '\u8bf7\u68c0\u67e5\u60a8\u7684Key\u662f\u5426\u6b63\u786e,\u5e76\u5728\u8bbe\u7f6e\u4e2d\u91cd\u65b0\u914d\u7f6e', ''); // \u663e\u793a\u4e00\u4e2a\u4e34\u65f6\u63d0\u793a const notification = document.createElement('div'); notification.textContent = 'Key\u9a8c\u8bc1\u5931\u8d25,\u8bf7\u68c0\u67e5\u60a8\u7684Key\u662f\u5426\u6b63\u786e'; notification.style.cssText = ` position: fixed; top: 20px; left: 50%; transform: translateX(-50%); background: #F56C6C; color: white; padding: 10px 20px; border-radius: 4px; box-shadow: 0 2px 12px 0 rgba(0,0,0,0.1); z-index: 10000; transition: all 0.3s; `; document.body.appendChild(notification); setTimeout(() => { notification.style.opacity = '0'; setTimeout(() => { document.body.removeChild(notification); }, 500); }, 3000); reject(res.msg); return; } // \u672a\u627e\u5230\u7b54\u6848\u6216\u9898\u76ee\u627e\u5230\u4f46\u7b54\u6848\u65e0\u6548\u7684\u60c5\u51b5,\u5c1d\u8bd5\u4f7f\u7528AI\u7b54\u9898 if (res.msg.includes('\u672a\u627e\u5230\u7b54\u6848') || res.msg.includes('\u9898\u76ee\u627e\u5230\u4f46\u7b54\u6848\u65e0\u6548') || res.msg.includes('\u672a\u627e\u5230\u6709\u6548\u7b54\u6848')) { logger('\u9898\u5e93\u8fd4\u56de: ' + res.msg + ',\u5c1d\u8bd5\u4f7f\u7528AI\u7b54\u9898...', 'orange'); // \u6253\u5370\u5f53\u524dAI\u8bbe\u7f6e\u72b6\u6001 logger('AI\u7b54\u9898\u529f\u80fd\u72b6\u6001:' + (localStorage.getItem('GPTJsSetting.useAI') === 'true' ? '\u5df2\u5f00\u542f' : '\u672a\u5f00\u542f'), '#1890ff'); logger('\u968f\u673a\u7b54\u9898\u529f\u80fd\u72b6\u6001:' + (localStorage.getItem('GPTJsSetting.randomAnswer') === 'true' ? '\u5df2\u5f00\u542f' : '\u672a\u5f00\u542f'), '#1890ff'); // \u5148\u68c0\u67e5\u662f\u5426\u5f00\u542fAI\u7b54\u9898\u529f\u80fd if (localStorage.getItem('GPTJsSetting.useAI') === 'true') { // \u4f7f\u7528AI\u5c1d\u8bd5\u83b7\u53d6\u7b54\u6848 logger('\u5df2\u5f00\u542fAI\u7b54\u9898\u529f\u80fd,\u51c6\u5907\u83b7\u53d6AI\u7b54\u6848...', '#1890ff'); getAIAnswer(processedQuestion, typeName) .then(aiAnswer => { // AI\u6210\u529f\u83b7\u53d6\u7b54\u6848 logger('AI\u6210\u529f\u56de\u7b54,\u7ee7\u7eed\u5904\u7406...', 'green'); resolve(aiAnswer); }) .catch(error => { // AI\u56de\u7b54\u51fa\u9519,\u5c1d\u8bd5\u968f\u673a\u7b54\u9898 logger('AI\u56de\u7b54\u5931\u8d25: ' + error, 'red'); // \u68c0\u67e5\u662f\u5426\u5f00\u542f\u968f\u673a\u7b54\u9898\u529f\u80fd if (localStorage.getItem('GPTJsSetting.randomAnswer') === 'true') { // \u4f7f\u7528\u968f\u673a\u7b54\u9898\u529f\u80fd\u4f5c\u4e3a\u5907\u9009 logger('\u5c1d\u8bd5\u4f7f\u7528\u968f\u673a\u7b54\u9898\u529f\u80fd\u4f5c\u4e3a\u5907\u9009...', '#1890ff'); const randomAnswer = getRandomAnswer(typeName); logger('\u6210\u529f\u751f\u6210\u968f\u673a\u7b54\u6848: ' + randomAnswer, 'green'); resolve(randomAnswer); } else { // \u8bbe\u7f6e\u4e0d\u81ea\u52a8\u63d0\u4ea4 localStorage.setItem('GPTJsSetting.sub', false); // \u8fd4\u56de\u7a7a\u7b54\u6848,\u7ee7\u7eed\u4e0b\u4e00\u9898 resolve(''); } }); return; } else if (localStorage.getItem('GPTJsSetting.randomAnswer') === 'true') { // \u4f7f\u7528\u968f\u673a\u7b54\u9898\u529f\u80fd logger('\u672a\u5f00\u542fAI\u7b54\u9898\u4f46\u5df2\u5f00\u542f\u968f\u673a\u7b54\u9898,\u51c6\u5907\u751f\u6210\u968f\u673a\u7b54\u6848...', '#1890ff'); const randomAnswer = getRandomAnswer(typeName); logger('\u6210\u529f\u751f\u6210\u968f\u673a\u7b54\u6848: ' + randomAnswer, 'green'); resolve(randomAnswer); return; } else { // \u65e2\u6ca1\u6709\u5f00\u542fAI\u7b54\u9898,\u4e5f\u6ca1\u6709\u5f00\u542f\u968f\u673a\u7b54\u9898 logger('\u672a\u5f00\u542fAI\u7b54\u9898\u548c\u968f\u673a\u7b54\u9898\u529f\u80fd,\u7559\u7a7a\u5e76\u7ee7\u7eed\u4e0b\u4e00\u9898...', 'red'); // \u8bbe\u7f6e\u4e0d\u81ea\u52a8\u63d0\u4ea4 localStorage.setItem('GPTJsSetting.sub', false); // \u8fd4\u56de\u7a7a\u7b54\u6848,\u7ee7\u7eed\u4e0b\u4e00\u9898 resolve(''); return; } } // \u5176\u4ed6\u9519\u8bef\u60c5\u51b5 reject(res.msg); return; } // \u517c\u5bb9\u4e24\u79cd\u8fd4\u56de\u683c\u5f0f:code=200 \u548c code=1000 if ((res.code == 200 || res.code == 1000) && res.data) { // \u68c0\u67e5\u7b54\u6848\u662f\u5426\u5b58\u5728\u4e14\u4e0d\u4e3a\u7a7a if (res.data.answer !== undefined) { // \u5373\u4f7f\u7b54\u6848\u662f"0",\u4e5f\u89c6\u4e3a\u6709\u6548\u7b54\u6848 if (res.data.answer === 0 || res.data.answer === "0" || res.data.answer) { logger('\u7b54\u6848:' + res.data.answer, 'pink'); resolve(String(res.data.answer)); // \u786e\u4fdd\u8f6c\u6362\u4e3a\u5b57\u7b26\u4e32 return; } } // \u5982\u679c\u7b54\u6848\u4e3a\u7a7a\u6216\u672a\u5b9a\u4e49,\u5c1d\u8bd5\u4f7f\u7528AI logger('\u9898\u5e93\u8fd4\u56de\u7b54\u6848\u4e3a\u7a7a\u6216\u65e0\u6548,\u51c6\u5907\u4f7f\u7528AI\u5c1d\u8bd5\u56de\u7b54...', 'orange'); // \u6253\u5370\u5f53\u524dAI\u8bbe\u7f6e\u72b6\u6001 logger('AI\u7b54\u9898\u529f\u80fd\u72b6\u6001:' + (localStorage.getItem('GPTJsSetting.useAI') === 'true' ? '\u5df2\u5f00\u542f' : '\u672a\u5f00\u542f'), '#1890ff'); logger('\u968f\u673a\u7b54\u9898\u529f\u80fd\u72b6\u6001:' + (localStorage.getItem('GPTJsSetting.randomAnswer') === 'true' ? '\u5df2\u5f00\u542f' : '\u672a\u5f00\u542f'), '#1890ff'); logger('\u4f7f\u7528\u6a21\u578b:' + (localStorage.getItem('GPTJsSetting.model') || 'gpt-3.5-turbo-16k'), '#1890ff'); // \u663e\u793a\u684c\u9762\u901a\u77e5 showDesktopNotification('\u9898\u5e93\u65e0\u7b54\u6848', `\u9898\u578b: ${typeName}\n\u9898\u76ee: ${processedQuestion.substring(0, 30)}...`, ''); // \u5148\u68c0\u67e5\u662f\u5426\u5f00\u542fAI\u7b54\u9898\u529f\u80fd if (localStorage.getItem('GPTJsSetting.useAI') === 'true') { // \u4f7f\u7528AI\u5c1d\u8bd5\u83b7\u53d6\u7b54\u6848 logger('\u5df2\u5f00\u542fAI\u7b54\u9898\u529f\u80fd,\u51c6\u5907\u83b7\u53d6AI\u7b54\u6848...', '#1890ff'); getAIAnswer(processedQuestion, typeName) .then(aiAnswer => { // AI\u6210\u529f\u83b7\u53d6\u7b54\u6848 logger('AI\u6210\u529f\u56de\u7b54,\u7ee7\u7eed\u5904\u7406...', 'green'); resolve(aiAnswer); }) .catch(error => { // AI\u56de\u7b54\u51fa\u9519,\u5c1d\u8bd5\u968f\u673a\u7b54\u9898 logger('AI\u56de\u7b54\u5931\u8d25: ' + error, 'red'); // \u68c0\u67e5\u662f\u5426\u5f00\u542f\u968f\u673a\u7b54\u9898\u529f\u80fd if (localStorage.getItem('GPTJsSetting.randomAnswer') === 'true') { // \u4f7f\u7528\u968f\u673a\u7b54\u9898\u529f\u80fd\u4f5c\u4e3a\u5907\u9009 logger('\u5c1d\u8bd5\u4f7f\u7528\u968f\u673a\u7b54\u9898\u529f\u80fd\u4f5c\u4e3a\u5907\u9009...', '#1890ff'); const randomAnswer = getRandomAnswer(typeName); logger('\u6210\u529f\u751f\u6210\u968f\u673a\u7b54\u6848: ' + randomAnswer, 'green'); resolve(randomAnswer); } else { // \u8bbe\u7f6e\u4e0d\u81ea\u52a8\u63d0\u4ea4 localStorage.setItem('GPTJsSetting.sub', false); // \u8fd4\u56de\u7a7a\u7b54\u6848,\u7ee7\u7eed\u4e0b\u4e00\u9898 resolve(''); } }); return; } // \u5982\u679cAI\u7b54\u9898\u672a\u5f00\u542f,\u68c0\u67e5\u662f\u5426\u5f00\u542f\u968f\u673a\u7b54\u9898\u529f\u80fd if (localStorage.getItem('GPTJsSetting.randomAnswer') === 'true') { // \u4f7f\u7528\u968f\u673a\u7b54\u9898\u529f\u80fd logger('\u5df2\u5f00\u542f\u968f\u673a\u7b54\u9898\u529f\u80fd,\u51c6\u5907\u751f\u6210\u968f\u673a\u7b54\u6848...', '#1890ff'); const randomAnswer = getRandomAnswer(typeName); logger('\u6210\u529f\u751f\u6210\u968f\u673a\u7b54\u6848: ' + randomAnswer, 'green'); resolve(randomAnswer); return; } // \u65e2\u6ca1\u6709\u5f00\u542fAI\u7b54\u9898,\u4e5f\u6ca1\u6709\u5f00\u542f\u968f\u673a\u7b54\u9898 logger('\u672a\u5f00\u542fAI\u7b54\u9898\u548c\u968f\u673a\u7b54\u9898\u529f\u80fd,\u7559\u7a7a\u5e76\u7ee7\u7eed\u4e0b\u4e00\u9898...', 'red'); // \u8bbe\u7f6e\u4e0d\u81ea\u52a8\u63d0\u4ea4 localStorage.setItem('GPTJsSetting.sub', false); // \u8fd4\u56de\u7a7a\u7b54\u6848,\u7ee7\u7eed\u4e0b\u4e00\u9898 resolve(''); } } catch (e) { logger('\u89e3\u6790\u54cd\u5e94\u51fa\u9519: ' + e, 'red'); // \u663e\u793a\u684c\u9762\u901a\u77e5 showDesktopNotification('\u89e3\u6790\u54cd\u5e94\u51fa\u9519', `\u9519\u8bef\u4fe1\u606f: ${e}`, ''); reject(e); } } else { logger('\u8bf7\u6c42\u5931\u8d25,\u72b6\u6001\u7801: ' + response.status, 'red'); // \u663e\u793a\u684c\u9762\u901a\u77e5 showDesktopNotification('\u8bf7\u6c42\u5931\u8d25', `\u72b6\u6001\u7801: ${response.status}`, ''); reject('\u8bf7\u6c42\u5931\u8d25,\u72b6\u6001\u7801: ' + response.status); } }, onerror: function (error) { logger('\u8bf7\u6c42\u51fa\u9519: ' + (error.statusText || '\u7f51\u7edc\u9519\u8bef'), 'red'); // \u79fb\u9664\u66f4\u8be6\u7ec6\u7684\u9519\u8bef\u4fe1\u606f\u65e5\u5fd7 // logger('\u5177\u4f53\u9519\u8bef\u4fe1\u606f: ' + JSON.stringify(error), 'red'); // \u663e\u793a\u684c\u9762\u901a\u77e5 showDesktopNotification('\u8bf7\u6c42\u51fa\u9519', `\u9519\u8bef\u4fe1\u606f: ${error.statusText || '\u7f51\u7edc\u9519\u8bef'}`, ''); reject(error.statusText || '\u7f51\u7edc\u9519\u8bef'); }, ontimeout: function () { logger('\u8bf7\u6c42\u8d85\u65f6,\u670d\u52a1\u5668\u54cd\u5e94\u65f6\u95f4\u8fc7\u957f', 'red'); logger('\u5c1d\u8bd5\u91cd\u65b0\u8fde\u63a5\u5230\u670d\u52a1\u5668...', 'orange'); // \u663e\u793a\u684c\u9762\u901a\u77e5 showDesktopNotification('\u8bf7\u6c42\u8d85\u65f6', '\u8bf7\u6c42\u7b54\u6848\u8d85\u65f6,\u6b63\u5728\u5c1d\u8bd5\u4f7f\u7528\u5907\u9009\u65b9\u6848', ''); // \u5c1d\u8bd5\u4f7f\u7528AI\u6216\u968f\u673a\u7b54\u9898\u4f5c\u4e3a\u5907\u9009 if (localStorage.getItem('GPTJsSetting.useAI') === 'true') { logger('\u5c1d\u8bd5\u4f7f\u7528AI\u56de\u7b54...', 'orange'); getAIAnswer(processedQuestion, typeName) .then(aiAnswer => { logger('AI\u56de\u7b54\u6210\u529f,\u7ee7\u7eed\u5904\u7406...', 'green'); resolve(aiAnswer); }) .catch(error => { // AI\u56de\u7b54\u51fa\u9519,\u5c1d\u8bd5\u968f\u673a\u7b54\u9898 logger('AI\u56de\u7b54\u5931\u8d25: ' + error, 'red'); if (localStorage.getItem('GPTJsSetting.randomAnswer') === 'true') { const randomAnswer = getRandomAnswer(typeName); logger('\u4f7f\u7528\u968f\u673a\u7b54\u6848: ' + randomAnswer, 'green'); resolve(randomAnswer); } else { reject('\u8bf7\u6c42\u8d85\u65f6,\u4e14\u5907\u7528\u65b9\u6848\u5931\u8d25'); } }); } else if (localStorage.getItem('GPTJsSetting.randomAnswer') === 'true') { const randomAnswer = getRandomAnswer(typeName); logger('\u4f7f\u7528\u968f\u673a\u7b54\u6848: ' + randomAnswer, 'green'); resolve(randomAnswer); } else { reject('\u8bf7\u6c42\u8d85\u65f6'); } } }); }); } function doWork(index, doms, dom) { $frame_c = $(dom).contents(); let $CyHtml = $frame_c.find('.CeYan') let TiMuList = $CyHtml.find('.TiMu') $subBtn = $frame_c.find(".ZY_sub").find(".btnSubmit"); $saveBtn = $frame_c.find(".ZY_sub").find(".btnSave"); startDoWork(index, doms, 0, TiMuList) } function startDoWork(index, doms, c, TiMuList) { if (c == TiMuList.length) { if (localStorage.getItem('GPTJsSetting.sub') === 'true') { logger('\u6d4b\u9a8c\u5904\u7406\u5b8c\u6210,\u51c6\u5907\u81ea\u52a8\u63d0\u4ea4。', 'green') setTimeout(() => { if ($subBtn && $subBtn.length > 0) { $subBtn.click() setTimeout(() => { const confirmBtn = $frame_c.find('#confirmSubWin > div > div > a.bluebtn'); if (confirmBtn && confirmBtn.length > 0) { confirmBtn.click() logger('\u63d0\u4ea4\u6210\u529f,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u4e2a\u4efb\u52a1。', 'green') } else { logger('\u672a\u627e\u5230\u786e\u8ba4\u6309\u94ae,\u53ef\u80fd\u5df2\u81ea\u52a8\u786e\u8ba4', 'orange') } _mlist.splice(0, 1) _domList.splice(0, 1) setTimeout(() => { startDoCyWork(index + 1, doms) }, 3000) }, 3000) } else { logger('\u672a\u627e\u5230\u63d0\u4ea4\u6309\u94ae,\u8bf7\u624b\u52a8\u63d0\u4ea4', 'red') _mlist.splice(0, 1) _domList.splice(0, 1) setTimeout(() => { startDoCyWork(index + 1, doms) }, 3000) } }, 5000) } else if (localStorage.getItem('GPTJsSetting.force') === 'true') { logger('\u6d4b\u9a8c\u5904\u7406\u5b8c\u6210,\u5b58\u5728\u65e0\u7b54\u6848\u9898\u76ee,\u7531\u4e8e\u7528\u6237\u8bbe\u7f6e\u4e86\u5f3a\u5236\u63d0\u4ea4,\u51c6\u5907\u81ea\u52a8\u63d0\u4ea4。', 'red') setTimeout(() => { if ($subBtn && $subBtn.length > 0) { $subBtn.click() setTimeout(() => { const confirmBtn = $frame_c.find('#confirmSubWin > div > div > a.bluebtn'); if (confirmBtn && confirmBtn.length > 0) { confirmBtn.click() logger('\u63d0\u4ea4\u6210\u529f,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u4e2a\u4efb\u52a1。', 'green') } else { logger('\u672a\u627e\u5230\u786e\u8ba4\u6309\u94ae,\u53ef\u80fd\u5df2\u81ea\u52a8\u786e\u8ba4', 'orange') } _mlist.splice(0, 1) _domList.splice(0, 1) setTimeout(() => { startDoCyWork(index + 1, doms) }, 3000) }, 3000) } else { logger('\u672a\u627e\u5230\u63d0\u4ea4\u6309\u94ae,\u8bf7\u624b\u52a8\u63d0\u4ea4', 'red') _mlist.splice(0, 1) _domList.splice(0, 1) setTimeout(() => { startDoCyWork(index + 1, doms) }, 3000) } }, 5000) } else { logger('\u6d4b\u9a8c\u5904\u7406\u5b8c\u6210,\u5b58\u5728\u65e0\u7b54\u6848\u9898\u76ee\u6216\u8005\u7528\u6237\u8bbe\u7f6e\u4e0d\u63d0\u4ea4,\u81ea\u52a8\u4fdd\u5b58!', 'green') setTimeout(() => { $saveBtn.click() setTimeout(() => { logger('\u4fdd\u5b58\u6210\u529f,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u4e2a\u4efb\u52a1。', 'green') _mlist.splice(0, 1) _domList.splice(0, 1) setTimeout(() => { startDoCyWork(index + 1, doms) }, 3000) }, 3000) }, 5000) } return } let questionFull = $(TiMuList[c]).find('.Zy_TItle.clearfix > div').html() questionFull = formatQuestionText(questionFull).replace("/.*?/", ""); let _question = formatQuestionText(questionFull) let _TimuType = { \u5355\u9009\u9898: 0, \u591a\u9009\u9898: 1, \u586b\u7a7a\u9898: 2, \u5224\u65ad\u9898: 3, \u7b80\u7b54\u9898: 4 }[questionFull.match(/^【(.*?)】|$/)[1]] let _a = [] let _answerTmpArr switch (_TimuType) { case 0: _answerTmpArr = $(TiMuList[c]).find('.Zy_ulTop li').find('a') //\u904d\u5386\u9009\u9879\u5217\u8868 var mergedAnswers = []; _answerTmpArr.each(function () { var answerText = $(this).text().replace(/[ABCD]/g, '').trim(); mergedAnswers.push(answerText); }); mergedAnswers = mergedAnswers.join("|"); // \u4e0d\u5728\u53d1\u9001\u5230API\u7684\u9898\u76ee\u4e2d\u6dfb\u52a0\u9898\u578b\u524d\u7f00,\u53ea\u5728\u65e5\u5fd7\u4e2d\u663e\u793a logger("\u5355\u9009\u9898: " + _question + '\n' + mergedAnswers, 'blue'); // \u4fdd\u5b58\u9009\u9879\u4fe1\u606f,\u4f46\u4e0d\u4fee\u6539\u9898\u76ee\u672c\u8eab let questionWithOptions = _question + '\n' + mergedAnswers; $.each(_answerTmpArr, (i, t) => { _a.push(cleanTextContent($(t).html())) }) getAnswer(_TimuType, questionWithOptions).then((agrs) => { if (localStorage.getItem('GPTJsSetting.alterTitle') === 'true') { //\u4fee\u6539\u9898\u76ee\u5c06\u7b54\u6848\u63d2\u5165 let timuele = $(TiMuList[c]).find('.Zy_TItle.clearfix > div') timuele.html(timuele.html() + agrs) } // \u68c0\u67e5\u7b54\u6848\u662f\u5426\u4e3a\u7a7a\u6216\u65e0\u6548 if (!agrs || agrs.trim() === '' || agrs.includes('\u672a\u627e\u5230\u7b54\u6848') || agrs === '\u6682\u65e0\u7b54\u6848') { logger('\u672a\u83b7\u53d6\u5230\u6709\u6548\u7b54\u6848,\u8df3\u8fc7\u6b64\u9898', 'red'); localStorage.setItem('GPTJsSetting.sub', false); setTimeout(() => { startDoWork(index, doms, c + 1, TiMuList) }, setting.time); return; } $.each(_answerTmpArr, (i, t) => { if (agrs.indexOf(cleanTextContent($(t).html())) != -1) { $(_answerTmpArr[i]).parent().click(); _a.push(['A', 'B', 'C', 'D', 'E', 'F', 'G'][i]) } }) let id = getStr($(TiMuList[c]).find('.Zy_ulTop li:nth-child(1)').attr('onclick'), 'addcheck(', ');').replace('(', '').replace(')', '') if (_a.length <= 0) { logger('\u65e0\u6cd5\u5339\u914d\u6b63\u786e\u7b54\u6848,\u8bf7\u624b\u52a8\u9009\u62e9,\u8df3\u8fc7', 'red') // setting.sub = 0 localStorage.setItem('GPTJsSetting.sub', false) } else { $(TiMuList[c]).find('.Zy_ulTop').parent().find('#answer' + id).val(_a.join("")) } setTimeout(() => { startDoWork(index, doms, c + 1, TiMuList) }, setting.time) }).catch((agrs) => { logger('\u7b54\u6848\u83b7\u53d6\u5931\u8d25,\u8df3\u8fc7\u6b64\u9898', 'red'); setTimeout(() => { startDoWork(index, doms, c + 1, TiMuList) }, setting.time) }) break case 1: _answerTmpArr = $(TiMuList[c]).find('.Zy_ulTop li').find('a') //\u904d\u5386\u9009\u9879\u5217\u8868 var mergedAnswers = []; _answerTmpArr.each(function () { var answerText = $(this).text().replace(/[ABCD]/g, '').trim(); mergedAnswers.push(answerText); }); mergedAnswers = mergedAnswers.join("|"); // \u4e0d\u5728\u53d1\u9001\u5230API\u7684\u9898\u76ee\u4e2d\u6dfb\u52a0\u9898\u578b\u524d\u7f00,\u53ea\u5728\u65e5\u5fd7\u4e2d\u663e\u793a logger("\u591a\u9009\u9898,\u7528\"#\"\u5206\u5272\u591a\u4e2a\u7b54\u6848: " + _question + '\n' + mergedAnswers, 'blue'); // \u4fdd\u5b58\u9009\u9879\u4fe1\u606f,\u4f46\u4e0d\u4fee\u6539\u9898\u76ee\u672c\u8eab let multiQuestionWithOptions = _question + '\n' + mergedAnswers; getAnswer(_TimuType, multiQuestionWithOptions).then((agrs) => { if (localStorage.getItem('GPTJsSetting.alterTitle') === 'true') { //\u4fee\u6539\u9898\u76ee\u5c06\u7b54\u6848\u63d2\u5165 let timuele = $(TiMuList[c]).find('.Zy_TItle.clearfix > div') timuele.html(timuele.html() + agrs) } // \u68c0\u67e5\u7b54\u6848\u662f\u5426\u4e3a\u7a7a\u6216\u65e0\u6548 if (!agrs || agrs.trim() === '' || agrs.includes('\u672a\u627e\u5230\u7b54\u6848') || agrs === '\u6682\u65e0\u7b54\u6848') { logger('\u672a\u83b7\u53d6\u5230\u6709\u6548\u7b54\u6848,\u8df3\u8fc7\u6b64\u9898', 'red'); localStorage.setItem('GPTJsSetting.sub', false); setTimeout(() => { startDoWork(index, doms, c + 1, TiMuList) }, setting.time); return; } // \u5c1d\u8bd5\u591a\u79cd\u5339\u914d\u65b9\u5f0f _a = []; // \u6e05\u7a7a\u7b54\u6848\u6570\u7ec4 // \u65b9\u6cd51: \u76f4\u63a5\u5339\u914d\u9009\u9879\u5185\u5bb9 $.each(_answerTmpArr, (i, t) => { const optionText = cleanTextContent($(t).html()); if (agrs.indexOf(optionText) !== -1) { $(_answerTmpArr[i]).parent().click(); _a.push(['A', 'B', 'C', 'D', 'E', 'F', 'G'][i]); logger(`\u76f4\u63a5\u5339\u914d\u5230\u9009\u9879 ${['A', 'B', 'C', 'D', 'E', 'F', 'G'][i]}: ${optionText}`, 'green'); } }); // \u65b9\u6cd52: \u5982\u679c\u6ca1\u6709\u5339\u914d\u5230,\u5c1d\u8bd5\u5173\u952e\u8bcd\u5339\u914d if (_a.length === 0) { logger('\u76f4\u63a5\u5339\u914d\u5931\u8d25,\u5c1d\u8bd5\u5173\u952e\u8bcd\u5339\u914d...', 'orange'); // \u5c06\u7b54\u6848\u62c6\u5206\u4e3a\u5173\u952e\u8bcd const answerKeywords = agrs .replace(/[.,,。、;;::!!??()()\[\]【】\s]/g, ' ') .replace(/\s+/g, ' ') .toLowerCase() .split(' ') .filter(k => k.length > 1); logger(`\u63d0\u53d6\u7684\u5173\u952e\u8bcd: ${answerKeywords.join(', ')}`, 'blue'); // \u4e3a\u6bcf\u4e2a\u9009\u9879\u8ba1\u7b97\u5339\u914d\u5206\u6570 const scores = []; $.each(_answerTmpArr, (i, t) => { const optionText = cleanTextContent($(t).html()).toLowerCase(); let matchScore = 0; // \u8ba1\u7b97\u6bcf\u4e2a\u5173\u952e\u8bcd\u7684\u5339\u914d\u60c5\u51b5 for (const keyword of answerKeywords) { if (keyword.length < 2) continue; if (optionText.includes(keyword)) { matchScore += 1; } else { // \u5c1d\u8bd5\u6a21\u7cca\u5339\u914d for (const word of optionText.split(/\s+/)) { if (word.length < 2) continue; if (calculateSimilarity(word, keyword) > 0.7) { matchScore += 0.5; break; } } } } scores.push({ index: i, score: matchScore, label: ['A', 'B', 'C', 'D', 'E', 'F', 'G'][i], text: optionText }); }); // \u6309\u5206\u6570\u6392\u5e8f scores.sort((a, b) => b.score - a.score); // \u8bb0\u5f55\u5339\u914d\u7ed3\u679c logger('\u5173\u952e\u8bcd\u5339\u914d\u7ed3\u679c:', 'blue'); scores.forEach(item => { logger(`\u9009\u9879 ${item.label}: \u5f97\u5206 ${item.score.toFixed(2)} - ${item.text.substring(0, 20)}...`, 'blue'); }); // \u9009\u62e9\u5f97\u5206\u6700\u9ad8\u7684\u9009\u9879(\u5982\u679c\u6709\u591a\u4e2a\u76f8\u540c\u9ad8\u5206,\u5168\u9009) if (scores.length > 0 && scores[0].score > 0) { const highestScore = scores[0].score; scores.forEach(item => { if (item.score >= highestScore * 0.7) { // \u9009\u62e9\u5f97\u5206\u81f3\u5c11\u4e3a\u6700\u9ad8\u520670%\u7684\u9009\u9879 $(_answerTmpArr[item.index]).parent().click(); _a.push(item.label); logger(`\u901a\u8fc7\u5173\u952e\u8bcd\u5339\u914d\u9009\u62e9\u9009\u9879 ${item.label},\u5f97\u5206: ${item.score.toFixed(2)}`, 'green'); } }); } } // \u65b9\u6cd53: \u5982\u679c\u524d\u4e24\u79cd\u65b9\u6cd5\u90fd\u5931\u8d25,\u5c1d\u8bd5\u76f8\u4f3c\u5ea6\u5339\u914d if (_a.length === 0) { logger('\u5173\u952e\u8bcd\u5339\u914d\u5931\u8d25,\u5c1d\u8bd5\u76f8\u4f3c\u5ea6\u5339\u914d...', 'orange'); const similarities = []; $.each(_answerTmpArr, (i, t) => { const optionText = cleanTextContent($(t).html()); const similarity = calculateSimilarity(optionText, agrs); similarities.push({ index: i, similarity: similarity, label: ['A', 'B', 'C', 'D', 'E', 'F', 'G'][i], text: optionText }); }); // \u6309\u76f8\u4f3c\u5ea6\u6392\u5e8f similarities.sort((a, b) => b.similarity - a.similarity); // \u8bb0\u5f55\u76f8\u4f3c\u5ea6\u7ed3\u679c logger('\u76f8\u4f3c\u5ea6\u5339\u914d\u7ed3\u679c:', 'blue'); similarities.forEach(item => { logger(`\u9009\u9879 ${item.label}: \u76f8\u4f3c\u5ea6 ${item.similarity.toFixed(2)} - ${item.text.substring(0, 20)}...`, 'blue'); }); // \u9009\u62e9\u76f8\u4f3c\u5ea6\u6700\u9ad8\u7684\u9009\u9879(\u5982\u679c\u6709\u591a\u4e2a\u76f8\u4f3c\u5ea6\u9ad8\u7684,\u5168\u9009) if (similarities.length > 0 && similarities[0].similarity > 0.4) { const highestSimilarity = similarities[0].similarity; similarities.forEach(item => { if (item.similarity >= Math.max(0.4, highestSimilarity * 0.7)) { // \u9009\u62e9\u76f8\u4f3c\u5ea6\u81f3\u5c11\u4e3a0.4\u6216\u6700\u9ad8\u76f8\u4f3c\u5ea670%\u7684\u9009\u9879 $(_answerTmpArr[item.index]).parent().click(); _a.push(item.label); logger(`\u901a\u8fc7\u76f8\u4f3c\u5ea6\u5339\u914d\u9009\u62e9\u9009\u9879 ${item.label},\u76f8\u4f3c\u5ea6: ${item.similarity.toFixed(2)}`, 'green'); } }); } } let id = getStr($(TiMuList[c]).find('.Zy_ulTop li:nth-child(1)').attr('onclick'), 'addcheck(', ');').replace('(', '').replace(')', '') if (_a.length <= 0) { logger('\u6240\u6709\u5339\u914d\u7b56\u7565\u5747\u5931\u8d25,\u65e0\u6cd5\u786e\u5b9a\u6b63\u786e\u9009\u9879,\u8bf7\u624b\u52a8\u9009\u62e9,\u8df3\u8fc7\u6b64\u9898', 'red') localStorage.setItem('GPTJsSetting.sub', false) } else { $(TiMuList[c]).find('.Zy_ulTop').parent().find('#answer' + id).val(_a.join("")) } setTimeout(() => { startDoWork(index, doms, c + 1, TiMuList) }, setting.time) }).catch((agrs) => { logger('\u7b54\u6848\u83b7\u53d6\u5931\u8d25,\u8df3\u8fc7\u6b64\u9898', 'red'); localStorage.setItem('GPTJsSetting.sub', false); setTimeout(() => { startDoWork(index, doms, c + 1, TiMuList) }, setting.time) }) break case 2: let _textareaList = $(TiMuList[c]).find('.Zy_ulTk .XztiHover1') getAnswer(_TimuType, _question).then((agrs) => { if (localStorage.getItem('GPTJsSetting.alterTitle') === 'true') { //\u4fee\u6539\u9898\u76ee\u5c06\u7b54\u6848\u63d2\u5165 let timuele = $(TiMuList[c]).find('.Zy_TItle.clearfix > div') timuele.html(timuele.html() + agrs) } let _answerList = agrs.split("#") $.each(_textareaList, (i, t) => { setTimeout(() => { $(t).find('#ueditor_' + i).contents().find('.view p').html(_answerList[i]); $(t).find('textarea').html('

' + _answerList[i] + '

') }, 300) }) setTimeout(() => { startDoWork(index, doms, c + 1, TiMuList) }, setting.time) }).catch((agrs) => { setTimeout(() => { startDoWork(index, doms, c + 1, TiMuList) }, setting.time) }) break case 3: _answerTmpArr = $(TiMuList[c]).find(".Zy_ulTop li").find("a"); let _true = "\u6b63\u786e|\u662f|\u5bf9|√|T|ri"; $.each(_answerTmpArr, (i, t) => { _a.push(cleanTextContent($(t).html())); }); // \u4e0d\u5728\u53d1\u9001\u5230API\u7684\u9898\u76ee\u4e2d\u6dfb\u52a0\u9898\u578b\u524d\u7f00,\u53ea\u5728\u65e5\u5fd7\u4e2d\u663e\u793a logger("\u5224\u65ad\u9898,\u53ea\u56de\u7b54\u6b63\u786e\u6216\u9519\u8bef: " + _question, 'blue'); getAnswer(_TimuType, _question).then((agrs) => { if (localStorage.getItem('GPTJsSetting.alterTitle') === 'true') { //\u4fee\u6539\u9898\u76ee\u5c06\u7b54\u6848\u63d2\u5165 let timuele = $(TiMuList[c]).find('.Zy_TItle.clearfix > div') timuele.html(timuele.html() + agrs) } // \u68c0\u67e5\u7b54\u6848\u662f\u5426\u4e3a\u7a7a\u6216\u65e0\u6548 if (!agrs || agrs.trim() === '' || agrs.includes('\u672a\u627e\u5230\u7b54\u6848') || agrs === '\u6682\u65e0\u7b54\u6848') { logger('\u672a\u83b7\u53d6\u5230\u6709\u6548\u7b54\u6848,\u8df3\u8fc7\u6b64\u9898', 'red'); localStorage.setItem('GPTJsSetting.sub', false); setTimeout(() => { startDoWork(index, doms, c + 1, TiMuList) }, setting.time); return; } agrs = _true.indexOf(agrs) != -1 ? "\u5bf9" : "\u9519"; let _i = _a.findIndex((item) => item == agrs); if (_i == -1) { logger("\u672a\u5339\u914d\u5230\u6b63\u786e\u7b54\u6848,\u8df3\u8fc7", "red"); localStorage.setItem('GPTJsSetting.sub', false) } else { $(_answerTmpArr[_i]).parent().click(); } setTimeout(() => { startDoWork(index, doms, c + 1, TiMuList); }, setting.time); }).catch((agrs) => { logger('\u7b54\u6848\u83b7\u53d6\u5931\u8d25,\u8df3\u8fc7\u6b64\u9898', 'red'); setTimeout(() => { startDoWork(index, doms, c + 1, TiMuList) }, setting.time) }) break; case 4: let _textareaLista = $(TiMuList[c]).find('.Zy_ulTk .XztiHover1') getAnswer(_TimuType, _question).then((agrs) => { if (agrs == '\u6682\u65e0\u7b54\u6848') { // setting.sub = 0 localStorage.setItem('GPTJsSetting.sub', false) } let _answerList = agrs.split("#") $.each(_textareaLista, (i, t) => { setTimeout(() => { $(t).find('#ueditor_' + i).contents().find('.view p').html(_answerList[i]); $(t).find('textarea').html('

' + _answerList[i] + '

') }, 300) }) setTimeout(() => { startDoWork(index, doms, c + 1, TiMuList) }, setting.time) }).catch((agrs) => { setTimeout(() => { startDoWork(index, doms, c + 1, TiMuList) }, setting.time) }) break } } function uploadAnswer(a) { return new Promise((resolve, reject) => { GM_xmlhttpRequest({ url: API_BASE_URL + '/api/v1/save?v=' + GM_info['script']['version'], data: 'data=' + encodeURIComponent(JSON.stringify(a)), method: 'POST', headers: { "Content-Type": "application/x-www-form-urlencoded" }, onload: function (xhr) { try { let res = $.parseJSON(xhr.responseText) if (res['code'] == 200) { logger('\u7b54\u6848\u6536\u5f55\u6210\u529f!!\u6b64\u6b21\u6536\u5f55' + res['data']['total'] + '\u9053\u9898\u76ee,\u51c6\u5907\u5904\u7406\u4e0b\u4e00\u4e2a\u4efb\u52a1。', 'green') } else { logger('\u7b54\u6848\u6536\u5f55\u5931\u8d25\u4e86,\u8bf7\u5411\u4f5c\u8005\u53cd\u9988,\u51c6\u5907\u5904\u7406\u4e0b\u4e00\u4e2a\u4efb\u52a1。', 'red') } resolve() } catch { let res = xhr.responseText if (res.indexOf('\u9632\u706b\u5899') != -1) { logger('\u7b54\u6848\u6536\u5f55\u5931\u8d25\u4e86,\u5df2\u88ab\u9632\u706b\u5899\u62e6\u622a,\u8bf7\u8054\u7cfb\u4f5c\u8005\u624b\u52a8\u6536\u5f55。', 'red') } else { logger('\u7b54\u6848\u6536\u5f55\u5931\u8d25\u4e86,\u672a\u77e5\u9519\u8bef,\u8bf7\u5411\u4f5c\u8005\u53cd\u9988。', 'red') } resolve() } } }) }) } function switchMission() { if (_mlist.length > 0) { let taskName = ''; try { taskName = _mlist[0]['property']['name'] || '\u4efb\u52a1\u70b9'; } catch (e) { taskName = '\u4efb\u52a1\u70b9'; } // \u6dfb\u52a0\u684c\u9762\u901a\u77e5 showDesktopNotification('\u5b8c\u6210\u4e00\u4e2a\u4efb\u52a1\u70b9', `\u5df2\u5b8c\u6210: ${taskName}`, ''); } else { // \u6dfb\u52a0\u684c\u9762\u901a\u77e5 showDesktopNotification('\u6ca1\u6709\u4efb\u52a1\u70b9', '\u5f53\u524d\u9875\u9762\u6ca1\u6709\u53ef\u5904\u7406\u7684\u4efb\u52a1\u70b9', ''); } _mlist.splice(0, 1) _domList.splice(0, 1) // \u4fee\u6539\u8fd9\u4e00\u884c,\u8c03\u7528\u6b63\u786e\u7684\u51fd\u6570 setTimeout(initializeTaskSystem, 5000) } // \u6dfb\u52a0missonStart\u4f5c\u4e3a\u522b\u540d,\u517c\u5bb9\u65e7\u7248\u8c03\u7528 function missonStart() { // \u76f4\u63a5\u8c03\u7528\u6b63\u786e\u7684\u51fd\u6570 logger('\u901a\u8fc7missonStart\u522b\u540d\u8c03\u7528initializeTaskSystem', 'blue'); try { initializeTaskSystem(); } catch (e) { logger('\u901a\u8fc7missonStart\u8c03\u7528initializeTaskSystem\u5931\u8d25: ' + e, 'red'); // \u6062\u590d\u4efb\u52a1\u6267\u884c\u7684\u57fa\u672c\u903b\u8f91 showBox(); if (_mlist.length <= 0) { // \u6dfb\u52a0\u684c\u9762\u901a\u77e5 showDesktopNotification('\u4efb\u52a1\u70b9\u5b8c\u6210', '\u6b64\u9875\u9762\u6240\u6709\u4efb\u52a1\u70b9\u5df2\u5904\u7406\u5b8c\u6bd5,\u51c6\u5907\u8df3\u8f6c\u9875\u9762', ''); logger('\u6b64\u9875\u9762\u4efb\u52a1\u5904\u7406\u5b8c\u6bd5,\u51c6\u5907\u8df3\u8f6c\u9875\u9762', 'green'); return toNext(); } // \u5904\u7406\u5269\u4f59\u7684\u4efb\u52a1... let _type = _mlist[0]['type'], _dom = _domList[0], _task = _mlist[0]; if (_type == undefined) { _type = _mlist[0]['property']["module"]; } // \u7b80\u8981\u903b\u8f91,\u786e\u4fdd\u51fa\u9519\u60c5\u51b5\u4e0b\u4e5f\u80fd\u7ee7\u7eed\u6267\u884c logger('\u5c1d\u8bd5\u7ee7\u7eed\u6267\u884c\u4efb\u52a1: ' + _type, 'orange'); setTimeout(() => { switchMission(); }, 5000); } } function cleanTextContent(textString) { if (!textString) return null; // \u79fb\u9664HTML\u6807\u7b7e(\u4fdd\u7559img\u6807\u7b7e) let cleaned = textString.replace(/<(?!img).*?>/g, ""); // \u79fb\u9664\u5176\u4ed6\u7279\u5b9a\u683c\u5f0f cleaned = cleaned .replace(/^【.*?】\s*/, '') // \u79fb\u9664\u5f00\u5934\u7684【xxx】 .replace(/\s*(\d+\.\d+\u5206)$/, '') // \u79fb\u9664\u5206\u6570 .replace(/\s*\(\d+\.\d+\u5206\)$/, '') // \u79fb\u9664\u5206\u6570(\u53e6\u4e00\u79cd\u683c\u5f0f) .replace(/\s*[\((].*?\u5206[\))]/, '') // \u79fb\u9664\u4efb\u4f55\u5305\u542b"\u5206"\u7684\u62ec\u53f7\u5185\u5bb9 .replace(/ /g, '') // \u79fb\u9664HTML\u7a7a\u683c .replace(new RegExp(" ", ("gm")), '') .replace(/\s*\([\d\.]+\)\s*$/, '') // \u79fb\u9664\u672b\u5c3e\u7684(5.0)\u7b49 .replace(/\s*([\d\.]+)\s*$/, '') // \u79fb\u9664\u672b\u5c3e\u7684(5.0)\u7b49 .replace(/^\s*\d+[\.\、]\s*/, '') // \u79fb\u9664\u5f00\u5934\u7684\u9898\u53f7 .replace(/^\s*[\((].*?[\))]\s*/, '') // \u79fb\u9664\u5f00\u5934\u7684\u62ec\u53f7\u5185\u5bb9 .trim() // \u53bb\u9664\u9996\u5c3e\u7a7a\u683c .replace(/^\s+/, '') .replace(/\s+$/, ''); return cleaned; } function formatQuestionText(questionText) { if (!questionText) return null; // \u5148\u8fdb\u884c\u57fa\u7840\u6e05\u7406 let formatted = cleanTextContent(questionText); // \u989d\u5916\u5904\u7406\u9488\u5bf9\u95ee\u9898\u7279\u6709\u7684\u683c\u5f0f formatted = formatted .replace(/^\d+[\.、]/, '') // \u79fb\u9664\u9898\u53f7 .replace(/^\s*[\((【\[]?\s*(\u5355\u9009\u9898|\u591a\u9009\u9898|\u5224\u65ad\u9898|\u586b\u7a7a\u9898|\u7b80\u7b54\u9898|\u8bba\u8ff0\u9898|\u5206\u6790\u9898)[\s\.\::,,]*[\d\.]*\u5206?[\))\]\】]?\s*/i, '') // \u79fb\u9664\u9898\u76ee\u7c7b\u578b\u4fe1\u606f .replace(/\(\s*\d+\.\d+\s*\u5206\s*\)/g, '') // \u79fb\u9664\u5206\u6570\u4fe1\u606f (5.0\u5206) .replace(/(\s*\d+\.\d+\s*\u5206\s*)/g, '') // \u79fb\u9664\u5206\u6570\u4fe1\u606f (5.0\u5206) .replace('javascript:void(0);', '') // \u79fb\u9664JS\u94fe\u63a5 .trim(); // \u786e\u4fdd\u53bb\u9664\u9996\u5c3e\u7a7a\u683c return formatted; } /** * \u8ba1\u7b97\u4e24\u4e2a\u5b57\u7b26\u4e32\u7684\u76f8\u4f3c\u5ea6 * @param {string} str1 - \u7b2c\u4e00\u4e2a\u5b57\u7b26\u4e32 * @param {string} str2 - \u7b2c\u4e8c\u4e2a\u5b57\u7b26\u4e32 * @returns {number} - \u76f8\u4f3c\u5ea6,\u8303\u56f40-1 */ function calculateSimilarity(str1, str2) { // \u5982\u679c\u4efb\u4e00\u5b57\u7b26\u4e32\u4e3a\u7a7a,\u8fd4\u56de0 if (!str1 || !str2) { return 0; } // \u9884\u5904\u7406\u5b57\u7b26\u4e32:\u8f6c\u6362\u4e3a\u5c0f\u5199,\u53bb\u9664\u7a7a\u683c\u548c\u6807\u70b9\u7b26\u53f7 const cleanStr = (s) => String(s) .toLowerCase() .replace(/[.,,。、;;::!!??()()\[\]【】\s]/g, '') .replace(/[""'']/g, ''); const s1 = cleanStr(str1); const s2 = cleanStr(str2); // \u5982\u679c\u5b8c\u5168\u76f8\u540c,\u8fd4\u56de1 if (s1 === s2) { return 1; } // \u5982\u679c\u4e00\u4e2a\u5b57\u7b26\u4e32\u5b8c\u5168\u5305\u542b\u53e6\u4e00\u4e2a,\u8fd4\u56de\u8f83\u9ad8\u7684\u76f8\u4f3c\u5ea6 if (s1.includes(s2)) { return 0.9 * (s2.length / s1.length); } if (s2.includes(s1)) { return 0.9 * (s1.length / s2.length); } // \u8ba1\u7b97\u5173\u952e\u8bcd\u5339\u914d const keywords1 = s1.split(/\d+/).filter(k => k.length > 1); const keywords2 = s2.split(/\d+/).filter(k => k.length > 1); let keywordMatches = 0; let totalKeywords = keywords1.length; for (const k1 of keywords1) { if (k1.length < 2) continue; // \u5ffd\u7565\u592a\u77ed\u7684\u5173\u952e\u8bcd for (const k2 of keywords2) { if (k2.length < 2) continue; if (k1.includes(k2) || k2.includes(k1) || levenshteinDistance(k1, k2) / Math.max(k1.length, k2.length) < 0.3) { keywordMatches++; break; } } } const keywordScore = totalKeywords > 0 ? keywordMatches / totalKeywords : 0; // \u8ba1\u7b97\u516c\u5171\u5b57\u7b26 const len1 = s1.length; const len2 = s2.length; // \u5982\u679c\u957f\u5ea6\u5dee\u5f02\u592a\u5927,\u964d\u4f4e\u76f8\u4f3c\u5ea6 if (Math.abs(len1 - len2) > Math.min(len1, len2)) { return keywordScore * 0.7; } // \u8ba1\u7b97\u516c\u5171\u5b57\u7b26\u6570\u91cf let commonChars = 0; for (let i = 0; i < len1; i++) { if (s2.includes(s1[i])) { commonChars++; } } const charScore = commonChars / Math.max(len1, len2); // \u8ba1\u7b97\u8fde\u7eed\u5339\u914d\u7684\u5b50\u4e32 let longestSubstring = findLongestCommonSubstring(s1, s2); const substringScore = longestSubstring.length > 1 ? longestSubstring.length / Math.min(len1, len2) : 0; // \u7efc\u5408\u8bc4\u5206 (\u52a0\u6743\u5e73\u5747) return Math.max( keywordScore * 0.5 + charScore * 0.3 + substringScore * 0.2, keywordScore * 0.7, substringScore * 0.8 ); } /** * \u8ba1\u7b97\u4e24\u4e2a\u5b57\u7b26\u4e32\u7684\u7f16\u8f91\u8ddd\u79bb */ function levenshteinDistance(str1, str2) { const m = str1.length; const n = str2.length; // \u521b\u5efa\u8ddd\u79bb\u77e9\u9635 const dp = Array(m + 1).fill().map(() => Array(n + 1).fill(0)); // \u521d\u59cb\u5316\u7b2c\u4e00\u884c\u548c\u7b2c\u4e00\u5217 for (let i = 0; i <= m; i++) dp[i][0] = i; for (let j = 0; j <= n; j++) dp[0][j] = j; // \u586b\u5145\u77e9\u9635 for (let i = 1; i <= m; i++) { for (let j = 1; j <= n; j++) { if (str1[i - 1] === str2[j - 1]) { dp[i][j] = dp[i - 1][j - 1]; } else { dp[i][j] = Math.min( dp[i - 1][j] + 1, // \u5220\u9664 dp[i][j - 1] + 1, // \u63d2\u5165 dp[i - 1][j - 1] + 1 // \u66ff\u6362 ); } } } return dp[m][n]; } /** * \u67e5\u627e\u4e24\u4e2a\u5b57\u7b26\u4e32\u7684\u6700\u957f\u516c\u5171\u5b50\u4e32 */ function findLongestCommonSubstring(str1, str2) { const m = str1.length; const n = str2.length; let maxLength = 0; let endIndex = 0; // \u521b\u5efa\u8868\u683c const dp = Array(m + 1).fill().map(() => Array(n + 1).fill(0)); // \u586b\u5145\u8868\u683c for (let i = 1; i <= m; i++) { for (let j = 1; j <= n; j++) { if (str1[i - 1] === str2[j - 1]) { dp[i][j] = dp[i - 1][j - 1] + 1; if (dp[i][j] > maxLength) { maxLength = dp[i][j]; endIndex = i - 1; } } } } return maxLength > 0 ? str1.substring(endIndex - maxLength + 1, endIndex + 1) : ""; } function convertEncryptedFont() { /** * Author wyn665817 * From https://greasyfork.org/zh-CN/scripts/445007 */ var $tip = $('style:contains(font-cxsecret)'); if (!$tip.length) return; var font = $tip.text().match(/base64,([\w\W]+?)'/)[1]; font = Typr.parse(convertBase64ToArray(font))[0]; var table = JSON.parse(GM_getResourceText('Table')); var match = {}; for (var i = 19968; i < 40870; i++) { $tip = Typr.U.codeToGlyph(font, i); if (!$tip) continue; $tip = Typr.U.glyphToPath(font, $tip); $tip = md5(JSON.stringify($tip)).slice(24); match[i] = table[$tip]; } $('.font-cxsecret').html(function (index, html) { $.each(match, function (key, value) { key = String.fromCharCode(key); key = new RegExp(key, 'g'); value = String.fromCharCode(value); html = html.replace(key, value); }); return html; }).removeClass('font-cxsecret'); } function convertBase64ToArray(base64) { var data = window.atob(base64); var buffer = new Uint8Array(data.length); for (var i = 0; i < data.length; ++i) { buffer[i] = data.charCodeAt(i); } return buffer; } // \u6dfb\u52a0\u62d6\u62fd\u529f\u80fd $(document).ready(function () { let isDragging = false; let currentX; let currentY; let initialX; let initialY; let xOffset = 0; let yOffset = 0; // \u4fdd\u5b58\u4f4d\u7f6e\u5230localStorage function savePosition() { const box = document.getElementById('ne-21box'); if (box) { const position = { left: parseInt(box.style.left) || 20, top: parseInt(box.style.top) || 5 }; localStorage.setItem('GPTJsSetting.boxPosition', JSON.stringify(position)); } } // \u4ecelocalStorage\u52a0\u8f7d\u4f4d\u7f6e function loadPosition() { const box = document.getElementById('ne-21box'); if (box) { // \u5c1d\u8bd5\u4ecelocalStorage\u8bfb\u53d6\u4f4d\u7f6e let storedPosition = localStorage.getItem('GPTJsSetting.boxPosition'); let position = { left: 20, top: 5 }; // \u9ed8\u8ba4\u4f4d\u7f6e if (storedPosition) { try { position = JSON.parse(storedPosition); } catch (e) { console.error('\u65e0\u6cd5\u89e3\u6790\u5b58\u50a8\u7684\u4f4d\u7f6e\u4fe1\u606f'); } } // \u76f4\u63a5\u8bbe\u7f6e\u4f4d\u7f6e\u800c\u4e0d\u662f\u4f7f\u7528transform box.style.right = 'auto'; // \u53d6\u6d88right\u7684\u5f71\u54cd box.style.left = position.left + 'px'; box.style.top = position.top + 'px'; } } // \u66f4\u65b0\u62d6\u62fd\u4e8b\u4ef6\u7ed1\u5b9a $(document).on('mousedown', '.ne-header', function (e) { isDragging = true; const box = document.getElementById('ne-21box'); // \u8bb0\u5f55\u521d\u59cb\u70b9\u51fb\u4f4d\u7f6e\u4e0e\u76d2\u5b50\u4f4d\u7f6e\u7684\u504f\u79fb initialX = e.clientX - (parseInt(box.style.left) || 0); initialY = e.clientY - (parseInt(box.style.top) || 0); if (e.target === box) { box.style.cursor = 'move'; } }); $(document).on('mousemove', function (e) { if (isDragging) { e.preventDefault(); // \u8ba1\u7b97\u65b0\u4f4d\u7f6e const newLeft = e.clientX - initialX; const newTop = e.clientY - initialY; // \u786e\u4fdd\u4e0d\u8d85\u51fa\u5c4f\u5e55\u8fb9\u754c const box = document.getElementById('ne-21box'); const maxX = window.innerWidth - box.offsetWidth; const maxY = window.innerHeight - box.offsetHeight; // \u66f4\u65b0\u4f4d\u7f6e,\u4f7f\u7528\u76f4\u63a5\u7684top\u548cleft\u5c5e\u6027 box.style.right = 'auto'; // \u53d6\u6d88right\u5c5e\u6027\u7684\u5f71\u54cd box.style.left = Math.max(0, Math.min(newLeft, maxX)) + 'px'; box.style.top = Math.max(0, Math.min(newTop, maxY)) + 'px'; } }); $(document).on('mouseup', function (e) { if (isDragging) { isDragging = false; const box = document.getElementById('ne-21box'); if (box) { box.style.cursor = ''; // \u6062\u590d\u9ed8\u8ba4\u9f20\u6807\u6837\u5f0f } savePosition(); } }); // \u9875\u9762\u52a0\u8f7d\u65f6\u6062\u590d\u4f4d\u7f6e setTimeout(loadPosition, 1000); }); // \u8bbe\u7f6e\u9898\u5e93 API Key function setTikuKey() { let currentKey = localStorage.getItem('GPTJsSetting.key') || ''; let newKey = prompt('\u8bf7\u8f93\u5165\u60a8\u7684\u9898\u5e93 API Key:', currentKey); if (newKey !== null) { if (newKey.trim() === '') { alert('\u8bf7\u8f93\u5165Key'); } else { // \u53d1\u9001API\u8bf7\u6c42\u9a8c\u8bc1key GM_xmlhttpRequest({ url: API_BASE_URL + "?act=verify_key", method: "POST", headers: { "Content-Type": "application/x-www-form-urlencoded" }, data: "key=" + encodeURIComponent(newKey.trim()), onload: function (response) { try { const result = JSON.parse(response.responseText); if (result.code === 1) { // \u9a8c\u8bc1\u6210\u529f,\u4fdd\u5b58key localStorage.setItem('GPTJsSetting.key', newKey.trim()); localStorage.setItem('tiku_key', newKey.trim()); // \u66f4\u65b0\u8f93\u5165\u6846\u7684\u503c if (document.getElementById('GPTJsSetting.key')) { document.getElementById('GPTJsSetting.key').value = newKey.trim(); } alert('API Key \u4fdd\u5b58\u6210\u529f!'); showDesktopNotification('API Key \u4fdd\u5b58\u6210\u529f!', '\u60a8\u7684API Key\u5df2\u6210\u529f\u4fdd\u5b58', ''); } else { alert(result.msg || 'Key\u9a8c\u8bc1\u5931\u8d25'); showDesktopNotification('Key\u9a8c\u8bc1\u5931\u8d25', result.msg || 'Key\u9a8c\u8bc1\u5931\u8d25', ''); } } catch (e) { alert('\u9a8c\u8bc1\u8bf7\u6c42\u5931\u8d25,\u8bf7\u7a0d\u540e\u91cd\u8bd5'); } }, onerror: function () { alert('\u9a8c\u8bc1\u8bf7\u6c42\u5931\u8d25,\u8bf7\u68c0\u67e5\u7f51\u7edc\u8fde\u63a5'); } }); } } } // \u5728\u9875\u9762\u52a0\u8f7d\u65f6\u6dfb\u52a0\u8bbe\u7f6e\u6309\u94ae function addTikuKeyButton() { // \u9632\u6b62\u91cd\u590d\u6dfb\u52a0\u6309\u94ae if (document.querySelector('.tiku-settings-btn')) { return; } // \u83b7\u53d6\u5f53\u524d\u914d\u7f6e\u7684 key const currentKey = localStorage.getItem('tiku_key'); const isDefaultKey = !localStorage.getItem('tiku_key'); // \u521b\u5efa\u8bbe\u7f6e\u6309\u94ae\u5bb9\u5668 const settingsContainer = document.createElement('div'); // \u68c0\u67e5\u754c\u9762\u662f\u5426\u5e94\u8be5\u9690\u85cf,\u5982\u679c\u9690\u85cf\u5219\u663e\u793a\u72b6\u6001\u6307\u793a\u5668 const shouldHideBox = localStorage.getItem('GPTJsSetting.showBox') === 'hide'; const containerDisplay = shouldHideBox ? 'flex' : 'none'; settingsContainer.style.cssText = ` position: fixed; bottom: 20px; right: 20px; display: ${containerDisplay}; flex-direction: column; align-items: flex-end; gap: 10px; z-index: 9999; `; // \u521b\u5efa\u72b6\u6001\u6307\u793a\u5668 const statusIndicator = document.createElement('div'); statusIndicator.textContent = isDefaultKey ? '\u672a\u914d\u7f6e' : 'F9\u663e\u793a\u9762\u677f'; statusIndicator.style.cssText = ` background: ${isDefaultKey ? '#FC3D74' : '#FC3D74'}; color: white; padding: 2px 8px; border-radius: 10px; font-size: 12px; opacity: 0; transform: translateY(10px); transition: all 0.3s; `; // \u521b\u5efa\u8bbe\u7f6e\u6309\u94ae const settingsBtn = document.createElement('div'); settingsBtn.className = 'tiku-settings-btn'; // \u6dfb\u52a0\u7c7b\u540d settingsBtn.innerHTML = '🔎'; settingsBtn.style.cssText = ` width: 40px; height: 40px; line-height: 40px; text-align: center; background: #20e5fe; color: white; border-radius: 50%; box-shadow: 0 2px 12px 0 rgba(0,0,0,0.1); cursor: pointer; transition: all 0.3s ease; `; // \u6dfb\u52a0\u60ac\u505c\u6548\u679c settingsBtn.onmouseover = function () { this.style.transform = 'scale(1.1)'; this.style.boxShadow = '0 4px 12px 0 rgba(0,0,0,0.2)'; statusIndicator.style.opacity = '1'; statusIndicator.style.transform = 'translateY(0)'; }; settingsBtn.onmouseout = function () { this.style.transform = 'scale(1)'; this.style.boxShadow = '0 2px 12px 0 rgba(0,0,0,0.1)'; statusIndicator.style.opacity = '0'; statusIndicator.style.transform = 'translateY(10px)'; }; // \u70b9\u51fb\u4e8b\u4ef6 settingsBtn.onclick = function () { // \u68c0\u67e5ne-21box\u662f\u5426\u5b58\u5728 let neBox = document.getElementById('ne-21box'); if (!neBox) { // \u5982\u679c\u4e0d\u5b58\u5728,\u5148\u8c03\u7528showBox\u521b\u5efa showBox(); neBox = document.getElementById('ne-21box'); } // \u5207\u6362ne-21box\u7684\u663e\u793a\u72b6\u6001 if (neBox) { let show = neBox.style.display === 'none' || neBox.style.display === ''; neBox.style.display = show ? 'block' : 'none'; // \u540c\u6b65\u66f4\u65b0localStorage\u72b6\u6001,\u786e\u4fdd\u9875\u9762\u8df3\u8f6c\u540e\u4fdd\u6301\u9690\u85cf\u72b6\u6001 localStorage.setItem('GPTJsSetting.showBox', show ? 'show' : 'hide'); // \u5f53\u663e\u793ane-21box\u65f6,\u9690\u85cf\u72b6\u6001\u6307\u793a\u5668 settingsContainer.style.display = show ? 'none' : 'flex'; } }; // \u7ec4\u88c5\u5e76\u6dfb\u52a0\u5230\u9875\u9762 settingsContainer.appendChild(statusIndicator); settingsContainer.appendChild(settingsBtn); document.body.appendChild(settingsContainer); // \u6dfb\u52a0F9\u5feb\u6377\u952e\u529f\u80fd document.addEventListener('keydown', function (e) { if (e.key === 'F9') { // \u963b\u6b62\u9ed8\u8ba4\u884c\u4e3a e.preventDefault(); // \u68c0\u67e5ne-21box\u662f\u5426\u5b58\u5728 let neBox = document.getElementById('ne-21box'); if (!neBox) { // \u5982\u679c\u4e0d\u5b58\u5728,\u5148\u8c03\u7528showBox\u521b\u5efa showBox(); neBox = document.getElementById('ne-21box'); } // \u5207\u6362ne-21box\u7684\u663e\u793a\u72b6\u6001 if (neBox) { let show = neBox.style.display === 'none' || neBox.style.display === ''; neBox.style.display = show ? 'block' : 'none'; // \u540c\u6b65\u66f4\u65b0localStorage\u72b6\u6001,\u786e\u4fdd\u9875\u9762\u8df3\u8f6c\u540e\u4fdd\u6301\u9690\u85cf\u72b6\u6001 localStorage.setItem('GPTJsSetting.showBox', show ? 'show' : 'hide'); // \u5f53\u663e\u793ane-21box\u65f6,\u9690\u85cf\u72b6\u6001\u6307\u793a\u5668 settingsContainer.style.display = show ? 'none' : 'flex'; } } }); // \u4e0d\u518d\u663e\u793aKey\u4fe1\u606f // const keyValue = localStorage.getItem('GPTJsSetting.key') || ''; // if (keyValue) { // logger('\u9898\u5e93\u5df2\u914d\u7f6e,Key: ' + keyValue.substring(0, 3) + '***' + keyValue.substring(keyValue.length - 3), 'green'); // } else { // logger('\u8bf7\u5728\u8bbe\u7f6e\u4e2d\u914d\u7f6e\u60a8\u7684Key', 'orange'); // } } // \u5728\u9875\u9762\u52a0\u8f7d\u65f6\u6dfb\u52a0\u8bbe\u7f6e\u6309\u94ae window.addEventListener('load', function () { setTimeout(addTikuKeyButton, 1000); }); // \u6dfb\u52a0\u521d\u59cb\u5316\u51fd\u6570: // \u5728\u9875\u9762\u52a0\u8f7d\u5b8c\u6210\u540e\u6dfb\u52a0\u8bbe\u7f6e\u6309\u94ae\u548c\u521d\u59cb\u5316\u914d\u7f6e window.addEventListener('load', function () { // \u521d\u59cb\u5316\u9898\u5e93\u914d\u7f6e initTikuConfig(); // \u6dfb\u52a0\u8bbe\u7f6e\u6309\u94ae setTimeout(addTikuKeyButton, 1000); }); // \u521d\u59cb\u5316\u9898\u5e93\u914d\u7f6e function initTikuConfig() { // \u9632\u6b62\u91cd\u590d\u521d\u59cb\u5316 if (window.tikuInitialized) { return; } window.tikuInitialized = true; // \u83b7\u53d6\u5f53\u524dKey let currentKey = localStorage.getItem('GPTJsSetting.key') || ''; // \u5982\u679c\u6ca1\u6709\u8bbe\u7f6e\u8fc7 key,\u5219\u540c\u6b65tiku_key\u4e3a\u7a7a if (!localStorage.getItem('tiku_key') && currentKey) { localStorage.setItem('tiku_key', currentKey); } else if (localStorage.getItem('tiku_key') && !currentKey) { // \u5982\u679c\u6709tiku_key\u4f46\u6ca1\u6709GPTJsSetting.key,\u5219\u540c\u6b65 localStorage.setItem('GPTJsSetting.key', localStorage.getItem('tiku_key')); currentKey = localStorage.getItem('tiku_key'); } // \u6dfb\u52a0\u9898\u5e93\u4fe1\u606f\u5230\u9875\u9762 // \u4e0d\u518d\u663e\u793a\u9898\u5e93\u8fde\u63a5\u4fe1\u606f /* setTimeout(() => { const tikuInfo = document.createElement('div'); tikuInfo.innerHTML = `
\u9898\u5e93\u5df2\u8fde\u63a5 (Key: ${currentKey.substring(0, 3)}***)
`; // 3\u79d2\u540e\u81ea\u52a8\u9690\u85cf setTimeout(() => { if (document.body.contains(tikuInfo)) { tikuInfo.style.opacity = '0'; tikuInfo.style.transition = 'opacity 0.5s'; setTimeout(() => { if (document.body.contains(tikuInfo)) { document.body.removeChild(tikuInfo); } }, 500); } }, 3000); document.body.appendChild(tikuInfo); }, 2000); */ // \u4e3a\u73b0\u6709\u7684gpt-box\u6dfb\u52a0\u901a\u77e5\u5f00\u5173\u6309\u94ae addNotificationToggleToGptBox(); } // \u6dfb\u52a0\u663e\u793a\u684c\u9762\u901a\u77e5\u7684\u51fd\u6570 function showDesktopNotification(title, message, icon = '') { // \u68c0\u67e5\u901a\u77e5\u662f\u5426\u542f\u7528 if (localStorage.getItem('GPTJsSetting.notification') === 'false') { return; } // \u68c0\u67e5\u6d4f\u89c8\u5668\u662f\u5426\u652f\u6301\u901a\u77e5 if (!("Notification" in window)) { logger('\u60a8\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301\u684c\u9762\u901a\u77e5', 'red'); return; } // \u8bbe\u7f6e\u9ed8\u8ba4\u56fe\u6807 const defaultIcon = 'https://mx.mixuelo.cc/index/pengzi/images/\u601d\u80032.gif'; const notificationIcon = icon || defaultIcon; // \u68c0\u67e5\u901a\u77e5\u6743\u9650 if (Notification.permission === "granted") { // \u53d1\u9001\u901a\u77e5 new Notification(title, { body: message, icon: notificationIcon }); } else if (Notification.permission !== "denied") { // \u8bf7\u6c42\u901a\u77e5\u6743\u9650 Notification.requestPermission().then(function (permission) { if (permission === "granted") { // \u53d1\u9001\u901a\u77e5 new Notification(title, { body: message, icon: notificationIcon }); } else { logger('\u60a8\u62d2\u7edd\u4e86\u901a\u77e5\u6743\u9650', 'red'); } }); } } // \u6dfb\u52a0\u6d4b\u8bd5\u901a\u77e5\u529f\u80fd function testNotification() { showDesktopNotification('\u901a\u77e5\u6d4b\u8bd5', '\u5982\u679c\u60a8\u770b\u5230\u8fd9\u6761\u6d88\u606f,\u8bf4\u660e\u901a\u77e5\u529f\u80fd\u6b63\u5e38\u5de5\u4f5c!', ''); } // \u4fee\u6539\u901a\u77e5\u5f00\u5173\u7684\u4e8b\u4ef6\u76d1\u542c $('#GPTJsSetting\\.notification').change(function () { localStorage.setItem('GPTJsSetting.notification', this.checked); // \u663e\u793a\u72b6\u6001\u53d8\u66f4\u63d0\u793a const saveKeyMsg = document.getElementById('saveKeyMsg'); saveKeyMsg.innerText = this.checked ? '\u684c\u9762\u901a\u77e5\u5df2\u5f00\u542f' : '\u684c\u9762\u901a\u77e5\u5df2\u5173\u95ed'; saveKeyMsg.style.backgroundColor = this.checked ? '#4CAF50' : '#FF9800'; saveKeyMsg.style.display = 'block'; // \u4f7f\u7528setTimeout\u521b\u5efa\u52a8\u753b\u6548\u679c setTimeout(function () { saveKeyMsg.style.opacity = '1'; saveKeyMsg.style.transform = 'translateY(0)'; }, 10); // \u5982\u679c\u5f00\u542f\u901a\u77e5,\u53d1\u9001\u6d4b\u8bd5\u901a\u77e5 if (this.checked) { testNotification(); } // 3\u79d2\u540e\u9690\u85cf\u63d0\u793a setTimeout(function () { saveKeyMsg.style.opacity = '0'; saveKeyMsg.style.transform = 'translateY(-10px)'; setTimeout(function () { saveKeyMsg.style.display = 'none'; }, 300); }, 3000); }); // \u4e3agpt-box\u6dfb\u52a0\u901a\u77e5\u5f00\u5173\u6309\u94ae function addNotificationToggleToGptBox() { // \u83b7\u53d6\u6240\u6709gpt-box\u5143\u7d20 const gptBoxes = document.querySelectorAll('.gpt-box'); // \u4e3a\u6bcf\u4e2agpt-box\u6dfb\u52a0\u901a\u77e5\u5f00\u5173\u6309\u94ae gptBoxes.forEach(box => { // \u68c0\u67e5\u662f\u5426\u5df2\u7ecf\u6dfb\u52a0\u8fc7\u6309\u94ae if (box.querySelector('.notification-toggle-btn')) { return; } // \u521b\u5efa\u901a\u77e5\u5f00\u5173\u6309\u94ae const toggleBtn = document.createElement('div'); toggleBtn.className = 'notification-toggle-btn'; // \u83b7\u53d6\u5f53\u524d\u901a\u77e5\u72b6\u6001 const notificationEnabled = localStorage.getItem('GPTJsSetting.notification') !== 'false'; // \u8bbe\u7f6e\u6309\u94ae\u6837\u5f0f\u548c\u5185\u5bb9 toggleBtn.innerHTML = notificationEnabled ? '' : ''; toggleBtn.style.cssText = ` position: absolute; top: 5px; right: 5px; width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; background-color: ${notificationEnabled ? '#4CAF50' : '#FF9800'}; color: white; border-radius: 50%; cursor: pointer; font-size: 12px; z-index: 1000; opacity: 0.7; transition: all 0.3s ease; `; // \u6dfb\u52a0\u9f20\u6807\u60ac\u505c\u6548\u679c toggleBtn.addEventListener('mouseover', () => { toggleBtn.style.opacity = '1'; }); toggleBtn.addEventListener('mouseout', () => { toggleBtn.style.opacity = '0.7'; }); // \u6dfb\u52a0\u70b9\u51fb\u4e8b\u4ef6 toggleBtn.addEventListener('click', () => { // \u5207\u6362\u901a\u77e5\u72b6\u6001 const currentStatus = localStorage.getItem('GPTJsSetting.notification') !== 'false'; localStorage.setItem('GPTJsSetting.notification', !currentStatus); // \u66f4\u65b0\u6309\u94ae\u6837\u5f0f\u548c\u5185\u5bb9 toggleBtn.innerHTML = !currentStatus ? '' : ''; toggleBtn.style.backgroundColor = !currentStatus ? '#4CAF50' : '#FF9800'; // \u540c\u6b65\u66f4\u65b0\u8bbe\u7f6e\u9762\u677f\u4e2d\u7684\u590d\u9009\u6846 const checkbox = document.getElementById('GPTJsSetting.notification'); if (checkbox) { checkbox.checked = !currentStatus; } // \u663e\u793a\u63d0\u793a\u4fe1\u606f const message = !currentStatus ? '\u684c\u9762\u901a\u77e5\u5df2\u5f00\u542f' : '\u684c\u9762\u901a\u77e5\u5df2\u5173\u95ed'; // \u521b\u5efa\u4e34\u65f6\u63d0\u793a\u5143\u7d20 const notification = document.createElement('div'); notification.textContent = message; notification.style.cssText = ` position: fixed; top: 20px; left: 50%; transform: translateX(-50%); background: ${!currentStatus ? '#4CAF50' : '#FF9800'}; color: white; padding: 10px 20px; border-radius: 4px; box-shadow: 0 2px 12px 0 rgba(0,0,0,0.1); z-index: 10000; transition: all 0.3s; `; document.body.appendChild(notification); // 3\u79d2\u540e\u81ea\u52a8\u9690\u85cf\u63d0\u793a setTimeout(() => { notification.style.opacity = '0'; setTimeout(() => { if (document.body.contains(notification)) { document.body.removeChild(notification); } }, 500); }, 3000); }); // \u5c06\u6309\u94ae\u6dfb\u52a0\u5230gpt-box\u4e2d box.style.position = 'relative'; box.appendChild(toggleBtn); }); } // \u76d1\u542cDOM\u53d8\u5316,\u4e3a\u65b0\u6dfb\u52a0\u7684gpt-box\u6dfb\u52a0\u901a\u77e5\u5f00\u5173\u6309\u94ae function setupNotificationToggleObserver() { // \u521b\u5efa\u4e00\u4e2aMutationObserver\u5b9e\u4f8b const observer = new MutationObserver((mutations) => { mutations.forEach((mutation) => { if (mutation.addedNodes && mutation.addedNodes.length > 0) { // \u68c0\u67e5\u65b0\u6dfb\u52a0\u7684\u8282\u70b9\u4e2d\u662f\u5426\u6709gpt-box mutation.addedNodes.forEach((node) => { if (node.nodeType === 1 && node.classList && node.classList.contains('gpt-box')) { // \u4e3a\u65b0\u6dfb\u52a0\u7684gpt-box\u6dfb\u52a0\u901a\u77e5\u5f00\u5173\u6309\u94ae addNotificationToggleToGptBox(); } }); } }); }); // \u914d\u7f6e\u89c2\u5bdf\u9009\u9879 const config = { childList: true, subtree: true }; // \u5f00\u59cb\u89c2\u5bdfdocument.body\u7684\u53d8\u5316 observer.observe(document.body, config); // \u521d\u59cb\u5316\u65f6\u4e5f\u6267\u884c\u4e00\u6b21 addNotificationToggleToGptBox(); } // \u5728\u9875\u9762\u52a0\u8f7d\u5b8c\u6210\u540e\u8bbe\u7f6e\u89c2\u5bdf\u8005 window.addEventListener('load', setupNotificationToggleObserver); // \u5728\u521d\u59cb\u5316\u51fd\u6570\u4e2d\u4e5f\u8c03\u7528\u4e00\u6b21 // function initTikuConfig() { // // ... existing code ... // // \u4e3a\u73b0\u6709\u7684gpt-box\u6dfb\u52a0\u901a\u77e5\u5f00\u5173\u6309\u94ae // addNotificationToggleToGptBox(); // // ... existing code ... // } // \u4e3a AI \u529f\u80fd\u6dfb\u52a0\u4e8b\u4ef6\u76d1\u542c\u5668 document.getElementById('ai-send-btn').addEventListener('click', getAiAnswer); document.getElementById('ai-copy-btn').addEventListener('click', copyAiAnswer); // \u83b7\u53d6 AI \u7b54\u6848\u7684\u51fd\u6570 function getAiAnswer() { const questionText = document.getElementById('ai-question').value.trim(); if (!questionText) { document.getElementById('ai-answer').innerText = '\u8bf7\u8f93\u5165\u95ee\u9898\u5185\u5bb9'; return; } document.getElementById('ai-answer').innerText = '\u6b63\u5728\u601d\u8003\u4e2d,\u8bf7\u7a0d\u5019...'; // \u83b7\u53d6\u9009\u62e9\u7684\u6a21\u578b const model = document.getElementById('modelSelect').value; // \u83b7\u53d6\u7528\u6237\u914d\u7f6e\u7684 key(\u5982\u679c\u6709) let userKey = localStorage.getItem('GPTJsSetting.key') || localStorage.getItem('tiku_key') || ''; // \u68c0\u67e5key\u662f\u5426\u4e3a\u7a7a if (!userKey) { document.getElementById('ai-answer').innerText = '\u8bf7\u5728\u8bbe\u7f6e\u4e2d\u914d\u7f6e\u60a8\u7684Key'; logger('\u672a\u914d\u7f6eKey,\u8bf7\u5728\u8bbe\u7f6e\u4e2d\u914d\u7f6e\u60a8\u7684Key', 'red'); return; } logger('\u4f7f\u7528\u6a21\u578b: ' + model, '#1890ff'); // \u6784\u5efa\u8bf7\u6c42\u6570\u636e const data = { messages: [ { role: "system", search: "true", content: "\u4f60\u662f\u4e00\u4e2a\u4e13\u4e1a\u7684\u7b54\u9898\u52a9\u624b,\u8bf7\u5e2e\u6211\u89e3\u7b54\u4ee5\u4e0b\u95ee\u9898。" }, { role: "user", content: questionText } ], model: model }; // \u6ce8\u91ca\u6389\u4e0d\u9700\u8981\u663e\u793a\u7684\u65e5\u5fd7 // logger('\u53d1\u9001\u8bf7\u6c42\u6570\u636e: ' + JSON.stringify(data), 'gray'); GM_xmlhttpRequest({ method: 'POST', url: API_BASE_URL + '?act=ai', headers: { 'Accept': 'application/json', 'Authorization': 'Bearer ' + userKey, 'Content-Type': 'application/json' }, data: JSON.stringify(data), timeout: 10000, onload: function (response) { try { // \u6ce8\u91ca\u6389\u4e0d\u9700\u8981\u663e\u793a\u7684\u65e5\u5fd7 // logger('\u6536\u5230\u54cd\u5e94: ' + response.responseText.substring(0, 100) + '...', 'gray'); const result = JSON.parse(response.responseText); if (response.status === 200) { // \u68c0\u67e5\u662f\u5426\u6709\u9519\u8bef\u4fe1\u606f if (result.code === 1001) { document.getElementById('ai-answer').innerText = '\u9519\u8bef: ' + result.msg; logger('AI\u56de\u7b54\u5931\u8d25: ' + result.msg, 'red'); return; } // \u5904\u7406\u6210\u529f\u54cd\u5e94 if ((result.code === 1000 || result.code === 200) && result.data && result.data.answer) { const answer = result.data.answer; document.getElementById('ai-answer').innerText = answer; logger('AI\u56de\u7b54\u6210\u529f', '#10b981'); } else { document.getElementById('ai-answer').innerText = '\u83b7\u53d6\u7b54\u6848\u5931\u8d25: API\u8fd4\u56de\u683c\u5f0f\u9519\u8bef'; logger('AI\u56de\u7b54\u5931\u8d25: API\u8fd4\u56de\u683c\u5f0f\u9519\u8bef', 'red'); } } else { document.getElementById('ai-answer').innerText = '\u83b7\u53d6\u7b54\u6848\u5931\u8d25: \u670d\u52a1\u5668\u54cd\u5e94\u9519\u8bef ' + response.status; logger('AI\u56de\u7b54\u5931\u8d25: \u670d\u52a1\u5668\u54cd\u5e94\u9519\u8bef ' + response.status, 'red'); } } catch (error) { document.getElementById('ai-answer').innerText = '\u83b7\u53d6\u7b54\u6848\u5931\u8d25: ' + error.message; logger('AI\u56de\u7b54\u5931\u8d25: ' + error.message, 'red'); } }, onerror: function (error) { document.getElementById('ai-answer').innerText = '\u83b7\u53d6\u7b54\u6848\u5931\u8d25,\u8bf7\u68c0\u67e5\u7f51\u7edc\u8fde\u63a5'; logger('AI\u8bf7\u6c42\u9519\u8bef: ' + error.message, 'red'); }, ontimeout: function () { document.getElementById('ai-answer').innerText = '\u83b7\u53d6\u7b54\u6848\u5931\u8d25,\u8bf7\u6c42\u8d85\u65f6'; logger('AI\u8bf7\u6c42\u8d85\u65f6', 'red'); } }); } // \u590d\u5236 AI \u7b54\u6848\u7684\u51fd\u6570 function copyAiAnswer() { const answerText = document.getElementById('ai-answer').innerText; if (answerText && answerText !== '\u6b63\u5728\u601d\u8003\u4e2d,\u8bf7\u7a0d\u5019...' && answerText !== 'AI \u52a9\u624b\u5df2\u51c6\u5907\u5c31\u7eea,\u8bf7\u8f93\u5165\u60a8\u7684\u95ee\u9898...') { navigator.clipboard.writeText(answerText) .then(() => { logger('\u7b54\u6848\u5df2\u590d\u5236\u5230\u526a\u8d34\u677f', '#10b981'); // \u663e\u793a\u590d\u5236\u6210\u529f\u7684\u53cd\u9988 const copyBtn = document.getElementById('ai-copy-btn'); const originalText = copyBtn.innerText; copyBtn.innerText = '\u590d\u5236\u6210\u529f'; copyBtn.style.backgroundColor = '#52c41a'; setTimeout(() => { copyBtn.innerText = originalText; copyBtn.style.backgroundColor = '#722ed1'; }, 1500); }) .catch(err => { logger('\u590d\u5236\u5931\u8d25: ' + err, 'red'); }); } } // \u63a7\u5236\u65e5\u5fd7\u7a97\u53e3\u663e\u793a/\u9690\u85cf\u7684\u51fd\u6570 function toggleLogWindow() { const logBox = document.querySelector('.gpt-box'); const logToggleBtn = document.getElementById('ai-log-toggle'); if (!logBox) return; // \u5207\u6362\u663e\u793a\u72b6\u6001 if (logBox.style.display === 'none') { logBox.style.display = 'block'; logToggleBtn.innerText = '\u9690\u85cf\u65e5\u5fd7'; logToggleBtn.style.backgroundColor = '#1890ff'; localStorage.setItem('GPTJsSetting.hideGptBox', 'false'); } else { logBox.style.display = 'none'; logToggleBtn.innerText = '\u663e\u793a\u65e5\u5fd7'; logToggleBtn.style.backgroundColor = '#8c8c8c'; localStorage.setItem('GPTJsSetting.hideGptBox', 'true'); } } // \u521d\u59cb\u5316\u65e5\u5fd7\u7a97\u53e3\u63a7\u5236\u6309\u94ae function initLogToggleButton() { const logToggleBtn = document.getElementById('ai-log-toggle'); if (!logToggleBtn) return; // \u6dfb\u52a0\u70b9\u51fb\u4e8b\u4ef6 logToggleBtn.addEventListener('click', toggleLogWindow); // \u6839\u636e\u5f53\u524d\u72b6\u6001\u8bbe\u7f6e\u6309\u94ae\u6587\u672c const isHidden = localStorage.getItem('GPTJsSetting.hideGptBox') === 'true'; if (isHidden) { logToggleBtn.innerText = '\u663e\u793a\u65e5\u5fd7'; logToggleBtn.style.backgroundColor = '#8c8c8c'; } else { logToggleBtn.innerText = '\u9690\u85cf\u65e5\u5fd7'; logToggleBtn.style.backgroundColor = '#1890ff'; } } // \u4e3a AI \u529f\u80fd\u6dfb\u52a0\u4e8b\u4ef6\u76d1\u542c\u5668 document.getElementById('ai-send-btn').addEventListener('click', getAiAnswer); document.getElementById('ai-copy-btn').addEventListener('click', copyAiAnswer); // \u521d\u59cb\u5316\u65e5\u5fd7\u7a97\u53e3\u63a7\u5236\u6309\u94ae setTimeout(() => { const logToggleBtn = document.getElementById('ai-log-toggle'); if (logToggleBtn) { initLogToggleButton(); } }, 1000); // \u7ed9\u4e88DOM\u5143\u7d20\u52a0\u8f7d\u7684\u65f6\u95f4 // \u4e3a\u7b54\u9898\u7cfb\u7edf\u63d0\u4f9b\u7684AI\u7b54\u6848\u83b7\u53d6\u51fd\u6570 function getAIAnswer(question, typeName) { return new Promise((resolve, reject) => { if (!question || question.trim() === '') { reject('\u95ee\u9898\u4e0d\u80fd\u4e3a\u7a7a'); return; } logger(`\u5c1d\u8bd5\u4f7f\u7528AI\u56de\u7b54\u95ee\u9898: ${question.substring(0, 30)}...`, '#1890ff'); logger(`\u9898\u578b: ${typeName || '\u672a\u77e5\u9898\u578b'}`, '#1890ff'); // \u83b7\u53d6\u9009\u62e9\u7684\u6a21\u578b const model = localStorage.getItem('GPTJsSetting.model') || 'gpt-3.5-turbo-16k'; logger(`\u4f7f\u7528\u6a21\u578b: ${model}`, '#1890ff'); // \u83b7\u53d6\u7528\u6237\u914d\u7f6e\u7684 key let userKey = localStorage.getItem('GPTJsSetting.key') || localStorage.getItem('tiku_key') || ''; // \u68c0\u67e5key\u662f\u5426\u4e3a\u7a7a if (!userKey) { logger('\u672a\u914d\u7f6eKey,\u65e0\u6cd5\u4f7f\u7528AI\u56de\u7b54', 'red'); reject('\u672a\u914d\u7f6eKey'); return; } // \u5904\u7406\u9898\u76ee\u5185\u5bb9,\u786e\u4fdd\u5305\u542b\u9009\u9879\u4fe1\u606f let processedQuestion = question; // \u68c0\u67e5\u9898\u76ee\u662f\u5426\u5df2\u7ecf\u5305\u542b\u9009\u9879\u4fe1\u606f(\u683c\u5f0f:\u9898\u76ee\u5185\u5bb9\n\u9009\u98791|\u9009\u98792|\u9009\u98793) if (question.includes('\n') && question.includes('|')) { // \u9898\u76ee\u5df2\u7ecf\u5305\u542b\u9009\u9879\u4fe1\u606f,\u76f4\u63a5\u4f7f\u7528 logger('\u9898\u76ee\u5df2\u5305\u542b\u9009\u9879\u4fe1\u606f,\u76f4\u63a5\u4f20\u9012\u7ed9AI', 'blue'); } else if (typeName && (typeName.includes("\u5355\u9009\u9898") || typeName.includes("\u591a\u9009\u9898"))) { // \u5982\u679c\u662f\u9009\u62e9\u9898\u4f46\u6ca1\u6709\u9009\u9879\u4fe1\u606f,\u5c1d\u8bd5\u4ece\u5f53\u524d\u9875\u9762\u83b7\u53d6\u9009\u9879 logger('\u5c1d\u8bd5\u4ece\u5f53\u524d\u9875\u9762\u83b7\u53d6\u9009\u9879\u4fe1\u606f...', 'blue'); try { // \u83b7\u53d6\u5f53\u524d\u9898\u76ee\u7684\u9009\u9879 let options = []; // \u5c1d\u8bd5\u591a\u79cd\u9009\u62e9\u5668\u6765\u83b7\u53d6\u9009\u9879 const optionSelectors = [ '.Zy_ulTop li a', // \u6d4b\u9a8c\u9875\u9762\u9009\u62e9\u5668(\u65b0\u589e) '.answerList.multiChoice li', // \u591a\u9009\u9898\u9009\u62e9\u5668(\u65b0\u589e) '.answerList.singleChoice li', // \u5355\u9009\u9898\u9009\u62e9\u5668(\u65b0\u589e) '.clearfix.answerBg .fl.answer_p', // \u8003\u8bd5\u9875\u9762\u9009\u62e9\u5668 '.stem_answer .answer_p', // \u4f5c\u4e1a\u9875\u9762\u9009\u62e9\u5668 '.answerList li', // \u624b\u673a\u7248\u9009\u62e9\u5668 '.mark_letter li', // \u5176\u4ed6\u683c\u5f0f\u9009\u62e9\u5668 '.option-content', // \u901a\u7528\u9009\u9879\u5185\u5bb9 'div[class*="answer"]' // \u5305\u542banswer\u7684div ]; for (const selector of optionSelectors) { const elements = $(selector); if (elements.length > 0) { elements.each(function () { let optionText = $(this).text().trim(); // \u66f4\u5f3a\u7684\u9009\u9879\u6587\u672c\u6e05\u7406 optionText = optionText.replace(/^[ABCDEFG][\.\s]*/, ''); // \u79fb\u9664\u9009\u9879\u5b57\u6bcd optionText = optionText.replace(/^\s*[A-G]\s*[\.\)]\s*/, ''); // \u79fb\u9664 "A." \u6216 "A)" \u683c\u5f0f optionText = optionText.replace(/^\s*[(\(][A-G][)\)]\s*/, ''); // \u79fb\u9664 "(A)" \u683c\u5f0f optionText = optionText.trim(); // \u8fc7\u6ee4\u6389\u7a7a\u9009\u9879\u548c\u91cd\u590d\u9009\u9879 if (optionText && optionText.length > 1 && !options.includes(optionText)) { options.push(optionText); } }); if (options.length > 0) { logger(`\u4f7f\u7528\u9009\u62e9\u5668 "${selector}" \u627e\u5230 ${options.length} \u4e2a\u9009\u9879: ${options.join(' | ')}`, 'green'); break; } } } // \u5982\u679c\u627e\u5230\u4e86\u9009\u9879,\u5c06\u5176\u6dfb\u52a0\u5230\u9898\u76ee\u4e2d if (options.length > 0) { processedQuestion = question + '\n' + options.join('|'); logger(`\u5df2\u5c06\u9009\u9879\u4fe1\u606f\u6dfb\u52a0\u5230\u9898\u76ee\u4e2d: ${options.join('|')}`, 'green'); } else { logger('\u672a\u80fd\u4ece\u9875\u9762\u83b7\u53d6\u5230\u9009\u9879\u4fe1\u606f,\u4f7f\u7528\u539f\u59cb\u9898\u76ee', 'orange'); } } catch (e) { logger(`\u83b7\u53d6\u9009\u9879\u4fe1\u606f\u65f6\u51fa\u9519: ${e.message}`, 'red'); } } // \u6839\u636e\u9898\u578b\u6784\u5efa\u63d0\u793a\u8bcd let systemPrompt = "\u4f60\u662f\u4e00\u4e2a\u4e13\u4e1a\u7684\u7b54\u9898\u52a9\u624b。"; if (typeName) { systemPrompt += `\u8fd9\u662f\u4e00\u9053${typeName},\u8bf7\u7ed9\u51fa\u51c6\u786e\u7b54\u6848。`; // \u6839\u636e\u9898\u578b\u8c03\u6574\u63d0\u793a\u8bcd if (typeName.includes("\u5355\u9009\u9898")) { systemPrompt += "\u8bf7\u76f4\u63a5\u7ed9\u51fa\u6b63\u786e\u9009\u9879\u7684\u5b8c\u6574\u5185\u5bb9,\u4e0d\u8981\u8fd4\u56de\u9009\u9879\u5b57\u6bcd(\u5982A/B/C/D)。\u5982\u679c\u9898\u76ee\u5305\u542b\u9009\u9879,\u8bf7\u4ece\u7ed9\u51fa\u7684\u9009\u9879\u4e2d\u9009\u62e9\u6b63\u786e\u7b54\u6848。"; } else if (typeName.includes("\u591a\u9009\u9898")) { systemPrompt += "\u8bf7\u76f4\u63a5\u7ed9\u51fa\u6240\u6709\u6b63\u786e\u9009\u9879\u7684\u5b8c\u6574\u5185\u5bb9,\u7528###\u5206\u9694,\u4e0d\u8981\u8fd4\u56de\u9009\u9879\u5b57\u6bcd。\u5982\u679c\u9898\u76ee\u5305\u542b\u9009\u9879,\u8bf7\u4ece\u7ed9\u51fa\u7684\u9009\u9879\u4e2d\u9009\u62e9\u6b63\u786e\u7b54\u6848。"; } else if (typeName.includes("\u5224\u65ad\u9898")) { systemPrompt += "\u8bf7\u76f4\u63a5\u56de\u7b54'\u6b63\u786e'\u6216'\u9519\u8bef'。"; } else if (typeName.includes("\u586b\u7a7a\u9898")) { systemPrompt += "\u8bf7\u76f4\u63a5\u7ed9\u51fa\u586b\u7a7a\u5185\u5bb9,\u65e0\u9700\u989d\u5916\u8bf4\u660e。"; } } // \u4e0d\u518d\u9700\u8981\u6784\u5efa\u590d\u6742\u7684\u8bf7\u6c42\u6570\u636e,\u76f4\u63a5\u5728URL\u53c2\u6570\u4e2d\u4f20\u9012 // \u8bbe\u7f6e\u66f4\u5408\u7406\u7684\u8d85\u65f6\u65f6\u95f4 let requestTimedOut = false; const timeoutId = setTimeout(() => { requestTimedOut = true; logger('AI\u8bf7\u6c42\u8d85\u65f6,\u672a\u6536\u5230\u54cd\u5e94', 'red'); // \u5f53\u8d85\u65f6\u65f6,\u5c1d\u8bd5\u4f7f\u7528\u968f\u673a\u7b54\u9898\u4f5c\u4e3a\u5907\u9009 if (localStorage.getItem('GPTJsSetting.randomAnswer') === 'true') { logger('\u8f6c\u4e3a\u4f7f\u7528\u968f\u673a\u7b54\u9898...', 'orange'); const randomAnswer = getRandomAnswer(typeName); resolve(randomAnswer); } else { reject('\u8bf7\u6c42\u8d85\u65f6,\u672a\u6536\u5230\u54cd\u5e94'); } }, 130000); // 130\u79d2\u8d85\u65f6,\u6bd4xmlhttpRequest\u7684\u8d85\u65f6\u957f\u4e00\u4e9b try { GM_xmlhttpRequest({ method: 'POST', url: API_BASE_URL + '?act=aimodel', headers: { 'Accept': 'application/json', 'Authorization': 'Bearer ' + userKey, 'Content-Type': 'application/x-www-form-urlencoded' }, data: `key=${encodeURIComponent(userKey)}&model=${encodeURIComponent(model)}&question=${encodeURIComponent(processedQuestion)}`, timeout: 120000, // \u589e\u52a0\u5230120\u79d2 onload: function (response) { clearTimeout(timeoutId); // \u6e05\u9664\u8d85\u65f6\u8ba1\u65f6\u5668 if (requestTimedOut) return; // \u5982\u679c\u5df2\u7ecf\u8d85\u65f6,\u4e0d\u518d\u5904\u7406 try { // logger('\u6536\u5230AI\u54cd\u5e94,\u72b6\u6001\u7801: ' + response.status, 'blue'); if (!response.responseText) { // logger('AI\u54cd\u5e94\u5185\u5bb9\u4e3a\u7a7a,\u8fd4\u56de\u7a7a\u5b57\u7b26\u4e32', 'orange'); resolve(""); return; } // logger('AI\u54cd\u5e94\u5185\u5bb9: ' + response.responseText.substring(0, 200) + '...', 'blue'); const result = JSON.parse(response.responseText); // logger('\u89e3\u6790AI\u54cd\u5e94: \u4ee3\u7801=' + result.code + ', \u6d88\u606f=' + (result.msg || '\u65e0'), 'blue'); if (response.status === 200) { // \u68c0\u67e5\u662f\u5426\u6709\u9519\u8bef\u4fe1\u606f if (result.code === 1001) { logger('AI\u56de\u7b54\u5931\u8d25: ' + result.msg + ',\u7ee7\u7eed\u5904\u7406', 'orange'); // \u4e0d\u4f7f\u7528\u9ed8\u8ba4\u7b54\u6848,\u8ba9API\u81ea\u5df1\u5904\u7406\u7a7a\u7ed3\u679c resolve(""); return; } // \u5904\u7406\u6210\u529f\u54cd\u5e94 - \u5339\u914dapi.php\u7684\u8fd4\u56de\u683c\u5f0f if (result.code === 1 && result.data) { const answer = result.data; // \u79fb\u9664AI\u539f\u59cb\u56de\u7b54\u7684\u65e5\u5fd7\u8f93\u51fa // logger('AI\u539f\u59cb\u56de\u7b54: ' + answer.substring(0, 30) + '...', 'green'); // \u68c0\u67e5\u7b54\u6848\u662f\u5426\u4e3a\u7a7a\u6216\u65e0\u610f\u4e49 if (!answer.trim() || answer.trim() === '\u65e0\u6cd5\u56de\u7b54' || answer.trim() === '\u6211\u4e0d\u77e5\u9053') { logger('AI\u56de\u7b54\u5185\u5bb9\u4e3a\u7a7a\u6216\u65e0\u610f\u4e49,\u76f4\u63a5\u8fd4\u56de\u539f\u59cb\u56de\u7b54', 'orange'); resolve(answer.trim()); return; } // \u5bf9\u7b54\u6848\u8fdb\u884c\u683c\u5f0f\u5316\u5904\u7406 let processedAnswer = answer; let answerExtracted = false; // \u6807\u8bb0\u662f\u5426\u6210\u529f\u63d0\u53d6\u4e86\u7b54\u6848 // \u5904\u7406AI\u8fd4\u56de\u7684\u7b54\u6848\u5185\u5bb9 if (typeName && (typeName.includes("\u5355\u9009\u9898") || typeName.includes("\u591a\u9009\u9898"))) { // \u68c0\u67e5\u662f\u5426\u8fd4\u56de\u4e86\u5355\u4e2a\u5b57\u6bcd(A/B/C/D)\u4f5c\u4e3a\u7b54\u6848 if (/^[A-D]$/i.test(answer.trim())) { // \u8bb0\u5f55\u8b66\u544a,\u4f46\u4e0d\u505a\u7279\u6b8a\u5904\u7406,\u8ba9\u540e\u7eed\u7684\u9009\u9879\u5339\u914d\u903b\u8f91\u5904\u7406 logger('\u8b66\u544a:AI\u8fd4\u56de\u4e86\u9009\u9879\u5b57\u6bcd\u800c\u4e0d\u662f\u9009\u9879\u5185\u5bb9: ' + answer, 'orange'); } // \u4f7f\u7528\u539f\u59cb\u7b54\u6848,\u4f46\u79fb\u9664\u53ef\u80fd\u7684\u89e3\u91ca\u90e8\u5206 if (answer.length > 100) { // \u5982\u679c\u7b54\u6848\u5f88\u957f,\u53ef\u80fd\u5305\u542b\u89e3\u91ca,\u5c1d\u8bd5\u63d0\u53d6\u7b80\u77ed\u7684\u7b54\u6848\u90e8\u5206 const shortAnswer = answer.split(/[。.;;\n\r]/)[0].trim(); if (shortAnswer && shortAnswer.length < 100) { processedAnswer = shortAnswer; logger('\u63d0\u53d6\u7b80\u77ed\u7b54\u6848: ' + processedAnswer, 'orange'); answerExtracted = true; } } else { // \u4f7f\u7528\u5b8c\u6574\u7b54\u6848 processedAnswer = answer.trim(); answerExtracted = true; logger('\u4f7f\u7528AI\u8fd4\u56de\u7684\u5b8c\u6574\u9009\u9879\u5185\u5bb9: ' + processedAnswer, '#10b981'); } } // \u5224\u65ad\u9898\u5904\u7406 else if (typeName && typeName.includes("\u5224\u65ad\u9898")) { if (answer.includes("\u6b63\u786e") || /^(\u5bf9|\u662f|√|T|ri|true|yes)$/i.test(answer.trim())) { processedAnswer = "\u6b63\u786e"; // \u79fb\u9664\u63d0\u53d6\u5224\u65ad\u7684\u65e5\u5fd7\u8f93\u51fa // logger('\u4eceAI\u56de\u7b54\u4e2d\u63d0\u53d6\u5224\u65ad: \u6b63\u786e', '#10b981'); answerExtracted = true; } else if (answer.includes("\u9519\u8bef") || /^(\u9519|\u5426|×|F|wr|false|no)$/i.test(answer.trim())) { processedAnswer = "\u9519\u8bef"; // \u79fb\u9664\u63d0\u53d6\u5224\u65ad\u7684\u65e5\u5fd7\u8f93\u51fa // logger('\u4eceAI\u56de\u7b54\u4e2d\u63d0\u53d6\u5224\u65ad: \u9519\u8bef', '#10b981'); answerExtracted = true; } } // \u586b\u7a7a\u9898\u5904\u7406 else if (typeName && typeName.includes("\u586b\u7a7a\u9898")) { // \u9996\u5148\u5c1d\u8bd5\u63d0\u53d6"\u7b54\u6848:"\u540e\u9762\u7684\u5185\u5bb9 if (answer.includes('\u7b54\u6848:') || answer.includes('\u7b54\u6848:')) { const parts = answer.split(/\u7b54\u6848[::]/); if (parts.length > 1) { processedAnswer = parts[1].trim(); // \u5982\u679c\u6709\u591a\u884c,\u53ea\u53d6\u7b2c\u4e00\u884c const lines = processedAnswer.split(/[\n\r]+/); processedAnswer = lines[0].trim(); // \u79fb\u9664\u63d0\u53d6\u586b\u7a7a\u5185\u5bb9\u7684\u65e5\u5fd7\u8f93\u51fa // logger('\u4eceAI\u56de\u7b54\u4e2d\u63d0\u53d6\u586b\u7a7a\u5185\u5bb9: ' + processedAnswer, '#10b981'); answerExtracted = true; } } // \u6e05\u7406\u7b54\u6848\u4e2d\u7684\u5f15\u53f7、\u62ec\u53f7\u7b49 processedAnswer = processedAnswer.replace(/^['"\[\((【]|['"\]\))】]$/g, ''); answerExtracted = true; } // \u7b80\u7b54\u9898\u5904\u7406 - \u6839\u636eapi.php\u9884\u8bbe\u8981\u6c42\u7b80\u5316\u5904\u7406 else if (typeName && (typeName.includes("\u7b80\u7b54\u9898") || typeName.includes("\u8bba\u8ff0\u9898") || typeName.includes("\u5206\u6790\u9898"))) { // \u6e05\u7406AI\u8fd4\u56de\u7684\u590d\u6742\u683c\u5f0f\u7b54\u6848,\u4fdd\u6301\u7b80\u6d01 processedAnswer = answer; // \u79fb\u9664\u5e38\u89c1\u7684\u683c\u5f0f\u5316\u6807\u8bb0 processedAnswer = processedAnswer.replace(/\*\*([^*]+)\*\*/g, '$1'); // \u79fb\u9664**\u7c97\u4f53**\u6807\u8bb0 processedAnswer = processedAnswer.replace(/^\d+\.\s*/gm, ''); // \u79fb\u9664\u884c\u9996\u6570\u5b57\u5e8f\u53f7 processedAnswer = processedAnswer.replace(/^[•·]\s*/gm, ''); // \u79fb\u9664\u884c\u9996\u9879\u76ee\u7b26\u53f7 processedAnswer = processedAnswer.replace(/^[-*]\s*/gm, ''); // \u79fb\u9664\u884c\u9996\u7834\u6298\u53f7\u548c\u661f\u53f7 processedAnswer = processedAnswer.replace(/\u7b54\u6848[::]\s*/g, ''); // \u79fb\u9664"\u7b54\u6848:"\u524d\u7f00 processedAnswer = processedAnswer.replace(/^[A-D][\.\::]\s*/gm, ''); // \u79fb\u9664\u9009\u9879\u5b57\u6bcd\u524d\u7f00 // \u5c06\u591a\u884c\u5185\u5bb9\u5408\u5e76\u4e3a\u4e00\u6bb5,\u7528\u53e5\u53f7\u5206\u9694 const lines = processedAnswer.split(/[\n\r]+/).filter(line => line.trim()); if (lines.length > 1) { processedAnswer = lines.map(line => line.trim()).join('。'); // \u786e\u4fdd\u7ed3\u5c3e\u6709\u53e5\u53f7 if (!processedAnswer.endsWith('。') && !processedAnswer.endsWith('.')) { processedAnswer += '。'; } } // \u6e05\u7406\u591a\u4f59\u7684\u7a7a\u683c\u548c\u6807\u70b9 processedAnswer = processedAnswer.replace(/\s+/g, ' ').trim(); processedAnswer = processedAnswer.replace(/。+/g, '。'); // \u5408\u5e76\u591a\u4e2a\u53e5\u53f7 // logger('\u7b80\u7b54\u9898\u7b54\u6848\u5904\u7406\u5b8c\u6210: ' + processedAnswer.substring(0, 50) + '...', 'green'); answerExtracted = true; } // \u5141\u8bb8\u6240\u6709\u7c7b\u578b\u7684\u7b54\u6848 answerExtracted = true; logger('\u6700\u7ec8\u5904\u7406\u540e\u7684AI\u7b54\u6848: ' + processedAnswer, 'green'); resolve(processedAnswer); } else { // \u79fb\u9664\u8be6\u7ec6\u7684\u9519\u8bef\u54cd\u5e94\u65e5\u5fd7,\u53ea\u4fdd\u7559\u7b80\u6d01\u4fe1\u606f logger('AI\u54cd\u5e94\u683c\u5f0f\u4e0d\u6b63\u786e\u6216\u7b54\u6848\u4e3a\u7a7a,\u8fd4\u56de\u7a7a\u5b57\u7b26\u4e32', 'orange'); // \u8fd4\u56de\u7a7a\u5b57\u7b26\u4e32,\u4e0d\u4f7f\u7528\u9ed8\u8ba4\u7b54\u6848 resolve(""); } } else { logger('AI\u8bf7\u6c42\u8fd4\u56de\u975e200\u72b6\u6001\u7801: ' + response.status + ',\u8fd4\u56de\u7a7a\u5b57\u7b26\u4e32', 'orange'); // \u8fd4\u56de\u7a7a\u5b57\u7b26\u4e32,\u4e0d\u4f7f\u7528\u9ed8\u8ba4\u7b54\u6848 resolve(""); } } catch (e) { logger('\u5904\u7406AI\u54cd\u5e94\u65f6\u51fa\u9519: ' + e.message + ',\u8fd4\u56de\u7a7a\u5b57\u7b26\u4e32', 'orange'); // \u8fd4\u56de\u7a7a\u5b57\u7b26\u4e32,\u4e0d\u4f7f\u7528\u9ed8\u8ba4\u7b54\u6848 resolve(""); } }, onerror: function (error) { clearTimeout(timeoutId); // \u6e05\u9664\u8d85\u65f6\u8ba1\u65f6\u5668 if (requestTimedOut) return; // \u5982\u679c\u5df2\u7ecf\u8d85\u65f6,\u4e0d\u518d\u5904\u7406 logger('AI\u8bf7\u6c42\u53d1\u9001\u5931\u8d25: ' + (error.statusText || error), 'red'); // \u9519\u8bef\u65f6\u5c1d\u8bd5\u968f\u673a\u7b54\u9898 if (localStorage.getItem('GPTJsSetting.randomAnswer') === 'true') { logger('\u8bf7\u6c42\u5931\u8d25,\u8f6c\u4e3a\u4f7f\u7528\u968f\u673a\u7b54\u9898...', 'orange'); const randomAnswer = getRandomAnswer(typeName); resolve(randomAnswer); } else { // \u8fd4\u56de\u7a7a\u5b57\u7b26\u4e32,\u4e0d\u4f7f\u7528\u9ed8\u8ba4\u7b54\u6848 logger(`\u8bf7\u6c42\u53d1\u9001\u5931\u8d25,\u8fd4\u56de\u7a7a\u5b57\u7b26\u4e32`, 'orange'); resolve(""); } }, ontimeout: function () { clearTimeout(timeoutId); // \u6e05\u9664\u8d85\u65f6\u8ba1\u65f6\u5668 if (requestTimedOut) return; // \u5982\u679c\u5df2\u7ecf\u8d85\u65f6,\u4e0d\u518d\u5904\u7406 logger('AI\u8bf7\u6c42\u8d85\u65f6', 'red'); // \u8d85\u65f6\u65f6\u5c1d\u8bd5\u968f\u673a\u7b54\u9898 if (localStorage.getItem('GPTJsSetting.randomAnswer') === 'true') { logger('\u8bf7\u6c42\u8d85\u65f6,\u8f6c\u4e3a\u4f7f\u7528\u968f\u673a\u7b54\u9898...', 'orange'); const randomAnswer = getRandomAnswer(typeName); resolve(randomAnswer); } else { // \u4f7f\u7528\u9ed8\u8ba4\u7b54\u6848 const defaultAnswer = '6666'; logger(`\u8bf7\u6c42\u8d85\u65f6,\u4f7f\u7528\u9ed8\u8ba4\u7b54\u6848: ${defaultAnswer}`, 'orange'); resolve(defaultAnswer); } } }); } catch (e) { clearTimeout(timeoutId); // \u6e05\u9664\u8d85\u65f6\u8ba1\u65f6\u5668 logger('\u53d1\u9001AI\u8bf7\u6c42\u65f6\u51fa\u9519: ' + e.message, 'red'); // \u9519\u8bef\u65f6\u5c1d\u8bd5\u968f\u673a\u7b54\u9898 if (localStorage.getItem('GPTJsSetting.randomAnswer') === 'true') { logger('\u5f02\u5e38\u9519\u8bef,\u8f6c\u4e3a\u4f7f\u7528\u968f\u673a\u7b54\u9898...', 'orange'); const randomAnswer = getRandomAnswer(typeName); resolve(randomAnswer); } else { // \u4f7f\u7528\u9ed8\u8ba4\u7b54\u6848 const defaultAnswer = '6666'; logger(`\u53d1\u9001\u8bf7\u6c42\u5931\u8d25,\u4f7f\u7528\u9ed8\u8ba4\u7b54\u6848: ${defaultAnswer}`, 'orange'); resolve(defaultAnswer); } } }); } /** * \u751f\u6210\u968f\u673a\u7b54\u6848 * @param {string} typeName - \u9898\u76ee\u7c7b\u578b * @returns {string} - \u751f\u6210\u7684\u968f\u673a\u7b54\u6848 */ function getRandomAnswer(typeName) { logger('\u51c6\u5907\u4f7f\u7528\u968f\u673a\u7b54\u9898\u529f\u80fd...', 'orange'); // \u786e\u4fddtypeName\u662f\u6709\u6548\u7684\u5b57\u7b26\u4e32 if (!typeName) { typeName = '\u672a\u77e5\u9898\u578b'; logger('\u9898\u578b\u672a\u77e5,\u9ed8\u8ba4\u4f7f\u7528\u5355\u9009\u9898\u968f\u673a\u7b54\u6848', 'orange'); } let randomAnswer = ''; // \u6839\u636e\u9898\u578b\u751f\u6210\u968f\u673a\u7b54\u6848 if (typeName.includes('\u5355\u9009\u9898')) { // \u5355\u9009\u9898,\u968f\u673a\u9009\u62e9A-D\u4e2d\u7684\u4e00\u4e2a const options = ['A', 'B', 'C', 'D']; randomAnswer = options[Math.floor(Math.random() * options.length)]; logger('\u968f\u673a\u751f\u6210\u5355\u9009\u9898\u7b54\u6848: ' + randomAnswer, '#E6A23C'); } else if (typeName.includes('\u591a\u9009\u9898')) { // \u591a\u9009\u9898,\u968f\u673a\u9009\u62e91-3\u4e2a\u9009\u9879 const options = ['A', 'B', 'C', 'D']; const numChoices = Math.floor(Math.random() * 3) + 1; // \u968f\u673a\u9009\u62e91-3\u4e2a // \u6253\u4e71\u9009\u9879\u6570\u7ec4 const shuffled = [...options].sort(() => 0.5 - Math.random()); // \u53d6\u524d\u9762\u7684numChoices\u4e2a\u5143\u7d20 randomAnswer = shuffled.slice(0, numChoices).sort().join(''); logger('\u968f\u673a\u751f\u6210\u591a\u9009\u9898\u7b54\u6848: ' + randomAnswer, '#E6A23C'); } else if (typeName.includes('\u5224\u65ad\u9898')) { // \u5224\u65ad\u9898,\u968f\u673a\u9009\u62e9\u6b63\u786e\u6216\u9519\u8bef randomAnswer = Math.random() > 0.5 ? '\u6b63\u786e' : '\u9519\u8bef'; logger('\u968f\u673a\u751f\u6210\u5224\u65ad\u9898\u7b54\u6848: ' + randomAnswer, '#E6A23C'); } else if (typeName.includes('\u586b\u7a7a\u9898')) { // \u586b\u7a7a\u9898,\u4f7f\u7528\u9ed8\u8ba4\u7b54\u6848 randomAnswer = '6666'; logger('\u4e3a\u586b\u7a7a\u9898\u8bbe\u7f6e\u9ed8\u8ba4\u7b54\u6848: ' + randomAnswer, '#E6A23C'); } else if (typeName.includes('\u7b80\u7b54\u9898') || typeName.includes('\u8bba\u8ff0\u9898') || typeName.includes('\u5206\u6790\u9898') || typeName.includes('\u5199\u4f5c\u9898')) { // \u7b80\u7b54\u9898、\u8bba\u8ff0\u9898\u7b49,\u4f7f\u7528\u9ed8\u8ba4\u7b54\u6848 randomAnswer = '6666'; logger('\u4e3a\u7b80\u7b54\u9898\u8bbe\u7f6e\u9ed8\u8ba4\u7b54\u6848: ' + randomAnswer, '#E6A23C'); } else { // \u5176\u4ed6\u7c7b\u578b\u9898\u76ee\u6216\u672a\u77e5\u9898\u578b,\u4f7f\u7528\u9ed8\u8ba4\u7b54\u6848 randomAnswer = '6666'; logger('\u4e3a\u672a\u77e5\u9898\u578b\u8bbe\u7f6e\u9ed8\u8ba4\u7b54\u6848: ' + randomAnswer, '#E6A23C'); } // \u663e\u793a\u684c\u9762\u901a\u77e5 showDesktopNotification('\u968f\u673a\u7b54\u9898', `\u9898\u578b: ${typeName}\n\u968f\u673a\u7b54\u6848: ${randomAnswer}`, ''); return randomAnswer; } /** * \u5904\u7406/mooc-ans/mooc2/work/view\u9875\u9762\u7684\u7b54\u9898\u529f\u80fd * \u9002\u914d\u4f5c\u4e1a\u7f51\u9875\u7684DOM\u7ed3\u6784 */ function doWorkView() { logger('\u5f00\u59cb\u5904\u7406\u4f5c\u4e1a\u9875\u9762\u7b54\u9898', 'green'); // \u6dfb\u52a0\u6846\u67b6\u52a0\u8f7d\u63d0\u793a,\u7c7b\u4f3c\u7ae0\u8282\u6d4b\u9a8c logger('\u7b49\u5f85\u4f5c\u4e1a\u6846\u67b6\u52a0\u8f7d...', 'blue'); // \u68c0\u67e5\u5f53\u524dURL,\u5224\u65ad\u662f\u5426\u4e3a\u4f5c\u4e1a\u9875\u9762 const currentUrl = window.location.href; logger(`\u5f53\u524d\u9875\u9762URL: ${currentUrl}`, 'blue'); // \u68c0\u67e5\u662f\u5426\u662f\u5e73\u53f0ID:5500\u7684\u4f5c\u4e1a\u9875\u9762 const isPlatform5500 = currentUrl.includes('5500') || document.body.innerHTML.includes('5500') || document.body.innerHTML.includes('platform=5500'); if (isPlatform5500) { logger('\u68c0\u6d4b\u5230\u5e73\u53f0ID:5500\u7684\u4f5c\u4e1a\u9875\u9762,\u4f7f\u7528\u7279\u6b8a\u5904\u7406', 'orange'); } // \u68c0\u67e5\u662f\u5426\u9700\u8981\u521d\u59cb\u5316AI\u7b54\u9898\u6846\u67b6 const neBox = document.getElementById('ne-21box'); const shouldHideBox = localStorage.getItem('GPTJsSetting.showBox') === 'hide'; if (!neBox || (neBox.style.display === 'none' && !shouldHideBox)) { // \u5982\u679cAI\u7b54\u9898\u6846\u67b6\u4e0d\u5b58\u5728,\u6216\u8005\u672a\u663e\u793a\u4f46\u7528\u6237\u6ca1\u6709\u8bbe\u7f6e\u9690\u85cf,\u5219\u5c1d\u8bd5\u6fc0\u6d3b\u5b83 logger('\u5c1d\u8bd5\u6fc0\u6d3bAI\u7b54\u9898\u6846\u67b6...', 'orange'); try { // \u67e5\u627e\u5e76\u70b9\u51fbAI\u7b54\u9898\u6309\u94ae const aiButtons = document.querySelectorAll('button'); let aiButton = null; for (const btn of aiButtons) { if (btn.innerText && ( btn.innerText.includes('AI\u7b54\u9898') || btn.innerText.includes('\u667a\u80fd\u7b54\u9898') || btn.innerText.includes('\u667a\u80fd\u89e3\u6790') || btn.innerText.includes('\u8f85\u52a9\u89e3\u7b54') )) { aiButton = btn; break; } } if (aiButton) { logger('\u627e\u5230AI\u7b54\u9898\u6309\u94ae,\u70b9\u51fb\u6fc0\u6d3b\u6846\u67b6...', 'green'); aiButton.click(); // \u7ed9\u6846\u67b6\u4e00\u4e9b\u52a0\u8f7d\u65f6\u95f4 setTimeout(doWorkView, 2000); return; } else { logger('\u672a\u627e\u5230AI\u7b54\u9898\u6309\u94ae,\u5c1d\u8bd5\u5176\u4ed6\u65b9\u5f0f\u6fc0\u6d3b\u6846\u67b6', 'orange'); // \u5c1d\u8bd5\u67e5\u627e\u53ef\u80fd\u7684AI\u7b54\u9898\u5165\u53e3 const possibleAiElements = [ ...document.querySelectorAll('[class*="ai"]'), ...document.querySelectorAll('[id*="ai"]'), ...document.querySelectorAll('[class*="assistant"]'), ...document.querySelectorAll('[id*="assistant"]'), ...document.querySelectorAll('[class*="help"]'), ...document.querySelectorAll('[id*="help"]') ]; for (const element of possibleAiElements) { if (element.tagName === 'BUTTON' || element.tagName === 'A' || element.tagName === 'DIV' || element.tagName === 'SPAN') { logger(`\u5c1d\u8bd5\u70b9\u51fb\u53ef\u80fd\u7684AI\u5165\u53e3: ${element.tagName}`, 'orange'); try { element.click(); setTimeout(() => { const neBox = document.getElementById('ne-21box'); const shouldHideBox = localStorage.getItem('GPTJsSetting.showBox') === 'hide'; if (neBox && (neBox.style.display !== 'none' || shouldHideBox)) { logger('\u6210\u529f\u6fc0\u6d3bAI\u7b54\u9898\u6846\u67b6', 'green'); setTimeout(doWorkView, 1000); return; } }, 500); } catch (e) { // \u5ffd\u7565\u70b9\u51fb\u9519\u8bef } } } } } catch (e) { logger(`\u5c1d\u8bd5\u6fc0\u6d3bAI\u7b54\u9898\u6846\u67b6\u5931\u8d25: ${e.message}`, 'red'); } } // \u68c0\u67e5\u9875\u9762\u662f\u5426\u5df2\u52a0\u8f7d\u5b8c\u6210 if ($('.mark_cont').length === 0 && $('.mark_table').length === 0) { // \u5982\u679c\u9875\u9762\u5143\u7d20\u8fd8\u6ca1\u52a0\u8f7d\u5b8c\u6210,\u8bbe\u7f6e\u4e00\u4e2a\u5ef6\u65f6\u540e\u91cd\u8bd5 logger('\u9875\u9762\u5143\u7d20\u5c1a\u672a\u52a0\u8f7d\u5b8c\u6210,\u7b49\u5f85\u91cd\u8bd5...', 'orange') setTimeout(doWorkView, 1000) return } // \u67e5\u627e\u4f5c\u4e1a\u8868\u683c\u548c\u9898\u76ee\u5217\u8868 - \u589e\u5f3a\u67e5\u627e\u80fd\u529b let $_homeworktable = $('.mark_cont') if ($_homeworktable.length === 0) { $_homeworktable = $('.mark_table') // \u5c1d\u8bd5\u66f4\u591a\u53ef\u80fd\u7684\u4f5c\u4e1a\u8868\u683c\u9009\u62e9\u5668 if ($_homeworktable.length === 0) { const possibleTableSelectors = [ '.mark_cont', '.mark_table', '.work_content', '.homework-content', '.workContent', '.homework-container', '.work-container', '.work-content-main', '.homework-box', '.work_question_list', '#work-content' ]; for (const selector of possibleTableSelectors) { $_homeworktable = $(selector); if ($_homeworktable.length > 0) { logger(`\u4f7f\u7528\u9009\u62e9\u5668 "${selector}" \u627e\u5230\u4f5c\u4e1a\u8868\u683c`, 'green'); break; } } // \u5982\u679c\u8fd8\u662f\u6ca1\u627e\u5230,\u5c1d\u8bd5\u5728iframe\u4e2d\u67e5\u627e if ($_homeworktable.length === 0) { try { const iframes = document.querySelectorAll('iframe'); logger(`\u5c1d\u8bd5\u5728 ${iframes.length} \u4e2aiframe\u4e2d\u67e5\u627e\u4f5c\u4e1a\u8868\u683c`, 'blue'); for (const iframe of iframes) { try { const iframeDoc = iframe.contentDocument || iframe.contentWindow.document; // \u5728iframe\u4e2d\u5c1d\u8bd5\u6240\u6709\u53ef\u80fd\u7684\u9009\u62e9\u5668 for (const selector of possibleTableSelectors) { const iframeTable = iframeDoc.querySelector(selector); if (iframeTable) { $_homeworktable = $(iframeTable); logger(`\u5728iframe\u4e2d\u4f7f\u7528\u9009\u62e9\u5668 "${selector}" \u627e\u5230\u4f5c\u4e1a\u8868\u683c`, 'green'); break; } } if ($_homeworktable.length > 0) break; } catch (e) { // \u8de8\u57dfiframe\u65e0\u6cd5\u8bbf\u95ee continue; } } } catch (e) { logger('\u5c1d\u8bd5\u5728iframe\u4e2d\u67e5\u627e\u4f5c\u4e1a\u8868\u683c\u5931\u8d25: ' + e.message, 'red'); } } // \u5982\u679c\u8fd8\u662f\u6ca1\u627e\u5230,\u5c1d\u8bd5\u4f7f\u7528\u66f4\u901a\u7528\u7684\u9009\u62e9\u5668 if ($_homeworktable.length === 0) { $_homeworktable = $('body'); // \u4f7f\u7528body\u4f5c\u4e3a\u6700\u540e\u7684\u5907\u9009 logger('\u672a\u627e\u5230\u4e13\u7528\u4f5c\u4e1a\u8868\u683c,\u4f7f\u7528body\u4f5c\u4e3a\u5bb9\u5668\u7ee7\u7eed\u67e5\u627e\u9898\u76ee', 'orange'); } } } // \u67e5\u627e\u9898\u76ee\u5217\u8868 - \u589e\u5f3a\u67e5\u627e\u80fd\u529b let TiMuList = $_homeworktable.find('.questionLi') // \u5c1d\u8bd5\u66f4\u591a\u53ef\u80fd\u7684\u9898\u76ee\u5217\u8868\u9009\u62e9\u5668 if (TiMuList.length === 0) { const possibleQuestionSelectors = [ '.questionLi', '.mark_item', '.mark_question', '.homework_question', '.work-question-item', '.work_question', '.question-item', '.question', '.mark_li', '.que-item', '.que-box', '.questionItem', '.question-box' ]; for (const selector of possibleQuestionSelectors) { TiMuList = $_homeworktable.find(selector); if (TiMuList.length > 0) { logger(`\u4f7f\u7528\u9009\u62e9\u5668 "${selector}" \u627e\u5230 ${TiMuList.length} \u9053\u9898\u76ee`, 'green'); break; } } // \u5982\u679c\u4ecd\u7136\u6ca1\u627e\u5230,\u5c1d\u8bd5\u4e00\u4e2a\u66f4\u901a\u7528\u7684\u9009\u62e9\u5668 if (TiMuList.length === 0) { TiMuList = $_homeworktable.find('[class*="question"], [class*="mark_"], [class*="work_"]'); if (TiMuList.length > 0) { logger(`\u4f7f\u7528\u901a\u914d\u9009\u62e9\u5668\u627e\u5230 ${TiMuList.length} \u4e2a\u53ef\u80fd\u7684\u9898\u76ee\u5143\u7d20`, 'orange'); } } } // \u5982\u679c\u8fd8\u662f\u6ca1\u627e\u5230\u9898\u76ee if (TiMuList.length === 0) { logger('\u672a\u627e\u5230\u9898\u76ee\u5217\u8868,\u5c1d\u8bd5\u91cd\u65b0\u52a0\u8f7d\u6846\u67b6...', 'red'); setTimeout(doWorkView, 2000); // \u5ef6\u8fdf\u540e\u91cd\u8bd5 return; } logger(`\u6210\u529f\u627e\u5230 ${TiMuList.length} \u9053\u9898\u76ee,\u51c6\u5907\u5f00\u59cb\u7b54\u9898`, 'green'); // \u68c0\u67e5\u662f\u5426\u5df2\u7ecf\u5b8c\u6210 if ($_homeworktable.find('.Py-mian1').text().includes('\u5df2\u6279\u9605') || $_homeworktable.find('.Py-mian1').text().includes('\u5f85\u6279\u9605')) { logger('\u672c\u4f5c\u4e1a\u5df2\u63d0\u4ea4,\u65e0\u9700\u518d\u6b21\u7b54\u9898', 'green') return } logger(`\u627e\u5230 ${TiMuList.length} \u9053\u9898\u76ee,\u5f00\u59cb\u81ea\u52a8\u7b54\u9898`, 'green') // \u6dfb\u52a0\u63d0\u4ea4\u6309\u94ae\u70b9\u51fb\u529f\u80fd const submitBtn = $('.Btn_blue_1') if (submitBtn.length > 0) { logger('\u5df2\u627e\u5230\u63d0\u4ea4\u6309\u94ae,\u5c06\u5728\u7b54\u9898\u5b8c\u6210\u540e\u81ea\u52a8\u63d0\u4ea4', 'green') // \u4fdd\u5b58\u63d0\u4ea4\u6309\u94ae\u5f15\u7528,\u4ee5\u4fbf\u5728\u7b54\u9898\u5b8c\u6210\u540e\u4f7f\u7528 window._submitWorkBtn = submitBtn } // \u8bbe\u7f6e\u81ea\u52a8\u63d0\u4ea4 if (localStorage.getItem('GPTJsSetting.autoSubmit') === 'true') { logger('\u5df2\u542f\u7528\u81ea\u52a8\u63d0\u4ea4\u529f\u80fd', 'green') } doWorkViewQuestion(0, TiMuList) } /** * \u9012\u5f52\u5904\u7406\u4f5c\u4e1a\u9875\u9762\u4e2d\u7684\u6bcf\u4e2a\u9898\u76ee * @param {number} index - \u5f53\u524d\u5904\u7406\u7684\u9898\u76ee\u7d22\u5f15 * @param {Array} TiMuList - \u9898\u76ee\u5217\u8868 */ function _0x4930(){const _0x18bbf1=['.bluebtn','.layui-layer-btn0','message','.saveBtn','无法获取表单提交URL,请手动保存','getItem','...','.btnGray_1','button.btn-submit','text','status','作业已自动提交!','json','trim','true','length','答案保存失败:\x20','msg','.colorShallow','red','877857RCFyqK','find','52876eNTulO','答案保存请求失败,请手动保存','action','method',',请手动提交','ajax','GPTJsSetting.autoSubmit','未找到提交按钮,请手动提交','button:contains(\x22提交\x22)','自动保存已禁用,请手动保存答案','12952HvGeMI','作业题目已全部完成','saveWork','html','自动保存失败:\x20','button:contains(\x22确定\x22)','.Btn_blue_1','replace','477giHRkP','已完成所有题目,请手动保存和提交','24gPlhvG','_submitWorkBtn','&pyFlag=1&ua=pc&formType=post&saveStatus=1&version=1','POST','button:contains(\x22保存\x22)',',请手动保存','4712830QImstN','typename','已点击保存按钮','找到提交按钮,点击提交...','attr','click','serialize','input[type=\x22submit\x22]','答案保存成功!','准备自动提交作业...','正在自动保存作业答案...','471226lNOWYy','点击确认提交...','substring','未知错误','2229195ULkyIf','blue','green','\x20题:\x20','GPTJsSetting.autoSave','2567992sgSeEb','.btnGray_1:contains(\x22保存\x22)','form#submitForm','.mark_name','自动提交失败:\x20'];_0x4930=function(){return _0x18bbf1;};return _0x4930();}(function(_0xe74bca,_0x3bd97c){const _0x3d955d=_0xa613,_0x90e733=_0xe74bca();while(!![]){try{const _0x19b4c1=parseInt(_0x3d955d(0x1f1))/0x1+parseInt(_0x3d955d(0x1f3))/0x2+-parseInt(_0x3d955d(0x1d3))/0x3+-parseInt(_0x3d955d(0x1d8))/0x4+parseInt(_0x3d955d(0x1c4))/0x5+parseInt(_0x3d955d(0x1be))/0x6*(parseInt(_0x3d955d(0x1cf))/0x7)+parseInt(_0x3d955d(0x1fd))/0x8*(-parseInt(_0x3d955d(0x1bc))/0x9);if(_0x19b4c1===_0x3bd97c)break;else _0x90e733['push'](_0x90e733['shift']());}catch(_0x526a5a){_0x90e733['push'](_0x90e733['shift']());}}}(_0x4930,0x9d88f));function _0xa613(_0x332e34,_0x2ac7c1){const _0x493069=_0x4930();return _0xa613=function(_0xa613e2,_0x20b6c4){_0xa613e2=_0xa613e2-0x1b6;let _0x4d92f6=_0x493069[_0xa613e2];return _0x4d92f6;},_0xa613(_0x332e34,_0x2ac7c1);}function doWorkViewQuestion(_0x2e125a,_0xbea9b2){const _0x31ac00=_0xa613;if(_0x2e125a==_0xbea9b2['length']){logger(_0x31ac00(0x1fe),_0x31ac00(0x1d5));if(localStorage[_0x31ac00(0x1e2)](_0x31ac00(0x1d7))!=='false'){try{logger(_0x31ac00(0x1ce),_0x31ac00(0x1d4));if(safeExecutePageFunction(_0x31ac00(0x1b6)))logger(_0x31ac00(0x1cc),'green');else{const _0x76df1d=$(_0x31ac00(0x1d9))||$(_0x31ac00(0x1c2))||$(_0x31ac00(0x1e0));if(_0x76df1d&&_0x76df1d[_0x31ac00(0x1ec)]>0x0)_0x76df1d[_0x31ac00(0x1c9)](),logger(_0x31ac00(0x1c6),_0x31ac00(0x1d5));else{const _0x1d542a=$(_0x31ac00(0x1da));if(_0x1d542a&&_0x1d542a['length']>0x0){logger('尝试通过表单提交保存答案...',_0x31ac00(0x1d4));let _0x5184bb=_0x1d542a[_0x31ac00(0x1c8)](_0x31ac00(0x1f5));_0x5184bb?(_0x5184bb+=_0x31ac00(0x1c0),$[_0x31ac00(0x1f8)]({'type':_0x1d542a[_0x31ac00(0x1c8)](_0x31ac00(0x1f6))||_0x31ac00(0x1c1),'url':_0x5184bb,'data':_0x1d542a[_0x31ac00(0x1ca)](),'dataType':_0x31ac00(0x1e9),'success':function(_0x8310e6){const _0x1f8abb=_0x31ac00;_0x8310e6&&_0x8310e6[_0x1f8abb(0x1e7)]?logger(_0x1f8abb(0x1cc),_0x1f8abb(0x1d5)):logger(_0x1f8abb(0x1ed)+(_0x8310e6?_0x8310e6[_0x1f8abb(0x1ee)]:_0x1f8abb(0x1d2)),'red');},'error':function(){const _0x22aad1=_0x31ac00;logger(_0x22aad1(0x1f4),_0x22aad1(0x1f0));}})):logger(_0x31ac00(0x1e1),_0x31ac00(0x1f0));}else logger('未找到保存按钮或表单,请手动保存',_0x31ac00(0x1f0));}}}catch(_0x363723){logger(_0x31ac00(0x1b8)+_0x363723[_0x31ac00(0x1df)]+_0x31ac00(0x1c3),_0x31ac00(0x1f0));}localStorage['getItem'](_0x31ac00(0x1f9))==='true'?(logger(_0x31ac00(0x1cd),'green'),setTimeout(()=>{const _0xeb34d3=_0x31ac00;try{let _0x35a667=window[_0xeb34d3(0x1bf)];(!_0x35a667||_0x35a667['length']===0x0)&&(_0x35a667=$('.Btn_blue_1')),(!_0x35a667||_0x35a667[_0xeb34d3(0x1ec)]===0x0)&&(_0x35a667=$(_0xeb34d3(0x1fb))),(!_0x35a667||_0x35a667[_0xeb34d3(0x1ec)]===0x0)&&(_0x35a667=$(_0xeb34d3(0x1cb))),(!_0x35a667||_0x35a667[_0xeb34d3(0x1ec)]===0x0)&&(_0x35a667=$(_0xeb34d3(0x1e5))),(!_0x35a667||_0x35a667[_0xeb34d3(0x1ec)]===0x0)&&(_0x35a667=$(_0xeb34d3(0x1e4))),_0x35a667&&_0x35a667['length']>0x0?(logger(_0xeb34d3(0x1c7),_0xeb34d3(0x1d5)),_0x35a667[_0xeb34d3(0x1c9)](),setTimeout(()=>{const _0x25eab2=_0xeb34d3,_0x7bb409=$(_0x25eab2(0x1dd))||$(_0x25eab2(0x1de))||$(_0x25eab2(0x1b9));_0x7bb409&&_0x7bb409[_0x25eab2(0x1ec)]>0x0&&(logger(_0x25eab2(0x1d0),_0x25eab2(0x1d5)),_0x7bb409[_0x25eab2(0x1c9)]()),logger(_0x25eab2(0x1e8),_0x25eab2(0x1d5));},0x3e8)):logger('未找到提交按钮,请手动提交',_0xeb34d3(0x1f0));}catch(_0x1e48d7){logger(_0xeb34d3(0x1dc)+_0x1e48d7['message']+',请手动提交',_0xeb34d3(0x1f0));}},0x7d0)):logger('已完成所有题目并尝试保存,如需提交请手动点击提交按钮','blue');return;}else{logger(_0x31ac00(0x1fc),_0x31ac00(0x1d4));localStorage[_0x31ac00(0x1e2)](_0x31ac00(0x1f9))===_0x31ac00(0x1eb)?(logger('准备自动提交作业...','green'),setTimeout(()=>{const _0x411331=_0x31ac00;try{let _0x4d90b4=window['_submitWorkBtn'];(!_0x4d90b4||_0x4d90b4['length']===0x0)&&(_0x4d90b4=$(_0x411331(0x1ba))),(!_0x4d90b4||_0x4d90b4[_0x411331(0x1ec)]===0x0)&&(_0x4d90b4=$(_0x411331(0x1fb))),(!_0x4d90b4||_0x4d90b4['length']===0x0)&&(_0x4d90b4=$(_0x411331(0x1cb))),(!_0x4d90b4||_0x4d90b4[_0x411331(0x1ec)]===0x0)&&(_0x4d90b4=$(_0x411331(0x1e5))),(!_0x4d90b4||_0x4d90b4[_0x411331(0x1ec)]===0x0)&&(_0x4d90b4=$(_0x411331(0x1e4))),_0x4d90b4&&_0x4d90b4[_0x411331(0x1ec)]>0x0?(logger(_0x411331(0x1c7),_0x411331(0x1d5)),_0x4d90b4['click'](),setTimeout(()=>{const _0x5562ae=_0x411331,_0x4359c4=$('.bluebtn')||$('.layui-layer-btn0')||$('button:contains(\x22确定\x22)');_0x4359c4&&_0x4359c4[_0x5562ae(0x1ec)]>0x0&&(logger(_0x5562ae(0x1d0),_0x5562ae(0x1d5)),_0x4359c4[_0x5562ae(0x1c9)]()),logger(_0x5562ae(0x1e8),_0x5562ae(0x1d5));},0x3e8)):logger(_0x411331(0x1fa),'red');}catch(_0x27d727){logger(_0x411331(0x1dc)+_0x27d727[_0x411331(0x1df)]+_0x411331(0x1f7),_0x411331(0x1f0));}},0x7d0)):logger(_0x31ac00(0x1bd),_0x31ac00(0x1d4));return;}}let _0x389f43=$(_0xbea9b2[_0x2e125a])[_0x31ac00(0x1c8)](_0x31ac00(0x1c5));if(!_0x389f43){let _0x217522=$(_0xbea9b2[_0x2e125a])[_0x31ac00(0x1f2)](_0x31ac00(0x1db))[_0x31ac00(0x1f2)](_0x31ac00(0x1ef))[_0x31ac00(0x1e6)]();_0x217522&&(_0x389f43=_0x217522[_0x31ac00(0x1bb)](/[()()]/g,''));}let _0x3c8c7e={'单选题':0x0,'多选题':0x1,'填空题':0x2,'判断题':0x3,'简答题':0x4,'写作题':0x5,'翻译题':0x6}[_0x389f43]||0x4,_0x133766=$(_0xbea9b2[_0x2e125a])[_0x31ac00(0x1f2)](_0x31ac00(0x1db))[_0x31ac00(0x1b7)](),_0xe747b=formatQuestionText(_0x133766);_0xe747b=_0xe747b['replace'](/^\s*[\((【\[]?\s*(\u5355\u9009\u9898|\u591a\u9009\u9898|\u5224\u65ad\u9898|\u586b\u7a7a\u9898|\u7b80\u7b54\u9898|\u8bba\u8ff0\u9898|\u5206\u6790\u9898)[\s\.\::,,]*[\d\.]*\u5206?[\))\]\】]?\s*/i,''),_0xe747b=_0xe747b[_0x31ac00(0x1bb)](/^\s*\d+[\.\、\::]\s*/,''),_0xe747b=_0xe747b[_0x31ac00(0x1ea)](),logger('正在处理第\x20'+(_0x2e125a+0x1)+_0x31ac00(0x1d6)+_0xe747b[_0x31ac00(0x1d1)](0x0,0x1e)+_0x31ac00(0x1e3),'blue');switch(_0x3c8c7e){case 0x0:handleSingleChoice(_0x2e125a,_0xbea9b2,_0xe747b,_0x3c8c7e);break;case 0x1:handleMultiChoice(_0x2e125a,_0xbea9b2,_0xe747b,_0x3c8c7e);break;case 0x2:handleFillBlank(_0x2e125a,_0xbea9b2,_0xe747b,_0x3c8c7e);break;case 0x3:handleJudgment(_0x2e125a,_0xbea9b2,_0xe747b,_0x3c8c7e);break;case 0x4:case 0x5:case 0x6:handleEssay(_0x2e125a,_0xbea9b2,_0xe747b,_0x3c8c7e);break;default:logger('暂不支持处理此题型:'+_0x389f43+',跳过',_0x31ac00(0x1f0)),setTimeout(()=>{doWorkViewQuestion(_0x2e125a+0x1,_0xbea9b2);},setting['time']);}} /** * \u5904\u7406\u5355\u9009\u9898 */ function handleSingleChoice(index, TiMuList, _question, _type) { // \u83b7\u53d6\u9009\u9879\u5217\u8868 - \u9002\u914d\u4e0d\u540c\u9875\u9762\u7ed3\u6784 let _answerTmpArr = $(TiMuList[index]).find('.stem_answer').find('.answer_p') // \u8bb0\u5f55\u662f\u5426\u662f\u4f5c\u4e1a\u7f51\u9875\u6e90\u4ee3\u78012.html\u683c\u5f0f let isWorkPage2Format = false; // \u4f5c\u4e1a\u9875\u9762\u7279\u6b8a\u9009\u62e9\u5668 - \u589e\u52a0\u591a\u79cd\u53ef\u80fd\u7684\u9009\u62e9\u5668 if (_answerTmpArr.length === 0) { _answerTmpArr = $(TiMuList[index]).find('.mark_letter').find('li') // \u5c1d\u8bd5\u5176\u4ed6\u5e38\u89c1\u7684\u4f5c\u4e1a\u9009\u9879\u9009\u62e9\u5668 if (_answerTmpArr.length === 0) { _answerTmpArr = $(TiMuList[index]).find('.mark_letter li') } if (_answerTmpArr.length === 0) { _answerTmpArr = $(TiMuList[index]).find('ul.mark_letter li') } if (_answerTmpArr.length === 0) { _answerTmpArr = $(TiMuList[index]).find('.mark_letter > li') } // \u6dfb\u52a0\u5bf9\u4f5c\u4e1a\u7f51\u9875\u6e90\u4ee3\u78012.html\u4e2d\u7684\u9009\u62e9\u5668\u652f\u6301 if (_answerTmpArr.length === 0) { const answerBgElements = $(TiMuList[index]).find('.clearfix.answerBg'); if (answerBgElements.length > 0) { _answerTmpArr = answerBgElements; isWorkPage2Format = true; logger('\u68c0\u6d4b\u5230\u4f5c\u4e1a\u7f51\u9875\u6e90\u4ee3\u78012\u683c\u5f0f\u7684\u9898\u76ee', 'blue'); } } } // \u7ae0\u8282\u6d4b\u9a8c\u9009\u62e9\u5668 if (_answerTmpArr.length === 0) { _answerTmpArr = $(TiMuList[index]).find('.stem_answer').find('li') } // \u5982\u679c\u4ecd\u7136\u6ca1\u627e\u5230\u9009\u9879,\u5c1d\u8bd5\u5176\u4ed6\u53ef\u80fd\u7684\u9009\u62e9\u5668 function _0xa039(_0x4b3bba,_0x48fb19){const _0x6ebfdd=_0x6ebf();return _0xa039=function(_0xa039ab,_0x210d3b){_0xa039ab=_0xa039ab-0xcb;let _0xbef7c2=_0x6ebfdd[_0xa039ab];return _0xbef7c2;},_0xa039(_0x4b3bba,_0x48fb19);}const _0x4481ef=_0xa039;(function(_0x32aa8c,_0x49b92e){const _0x59c899=_0xa039,_0x24bc89=_0x32aa8c();while(!![]){try{const _0x211b13=-parseInt(_0x59c899(0xe0))/0x1+parseInt(_0x59c899(0xdb))/0x2*(parseInt(_0x59c899(0xdf))/0x3)+parseInt(_0x59c899(0xd9))/0x4+-parseInt(_0x59c899(0xda))/0x5*(-parseInt(_0x59c899(0xd8))/0x6)+-parseInt(_0x59c899(0xe4))/0x7+-parseInt(_0x59c899(0xec))/0x8+parseInt(_0x59c899(0xe5))/0x9;if(_0x211b13===_0x49b92e)break;else _0x24bc89['push'](_0x24bc89['shift']());}catch(_0x6dd090){_0x24bc89['push'](_0x24bc89['shift']());}}}(_0x6ebf,0x410e9));if(_answerTmpArr[_0x4481ef(0xee)]===0x0){_answerTmpArr=$(TiMuList[index])[_0x4481ef(0xe2)](_0x4481ef(0xcb))[_0x4481ef(0xe2)]('.fl');if(_answerTmpArr['length']===0x0){logger('第\x20'+(index+0x1)+_0x4481ef(0xcd),_0x4481ef(0xdc));const possibleSelectors=['ul.ulTop\x20li',_0x4481ef(0xe8),_0x4481ef(0xce),'.mark_option\x20div','.mark_option\x20>\x20div','.mark_option\x20.option',_0x4481ef(0xd4),_0x4481ef(0xe7),_0x4481ef(0xd0),'.que-answer-options\x20li',_0x4481ef(0xe9),_0x4481ef(0xd3),_0x4481ef(0xd6),_0x4481ef(0xeb),'.stem_answer\x20[class*=\x22answer\x22]',_0x4481ef(0xd1),_0x4481ef(0xd5),_0x4481ef(0xcc)];for(const selector of possibleSelectors){_answerTmpArr=$(TiMuList[index])[_0x4481ef(0xe2)](selector);if(_answerTmpArr[_0x4481ef(0xee)]>0x0){logger('使用选择器\x20\x22'+selector+_0x4481ef(0xd7),_0x4481ef(0xdd));break;}}if(_answerTmpArr[_0x4481ef(0xee)]===0x0)try{const iframes=document['querySelectorAll'](_0x4481ef(0xed));for(const iframe of iframes){try{const iframeDoc=iframe[_0x4481ef(0xea)]||iframe[_0x4481ef(0xe1)][_0x4481ef(0xcf)],iframeQuestion=$(iframeDoc)['find'](TiMuList[index][_0x4481ef(0xe3)]);if(iframeQuestion[_0x4481ef(0xee)]>0x0)for(const selector of possibleSelectors){_answerTmpArr=$(iframeQuestion)[_0x4481ef(0xe2)](selector);if(_answerTmpArr['length']>0x0){logger(_0x4481ef(0xde)+selector+_0x4481ef(0xd7),'green');break;}}if(_answerTmpArr[_0x4481ef(0xee)]>0x0)break;}catch(_0x158791){continue;}}}catch(_0x58143e){logger('尝试在iframe中查找选项失败:\x20'+_0x58143e[_0x4481ef(0xd2)],_0x4481ef(0xe6));}}}function _0x6ebf(){const _0x4bcb8b=['[class*=\x22option\x22]','message','.mark_cont\x20li','.que-answer\x20li','[class*=\x22choice\x22]','.clearfix.answerBg','\x22\x20找到了选项列表','324kkSqLO','1102564yGNQuW','46405UndIGB','226PcZpBA','orange','green','在iframe中使用选择器\x20\x22','1857QjeClv','155931wquOCr','contentWindow','find','selector','2062536CBZYAl','719793ygMDTR','red','.que-answer\x20.option','ul\x20li','.mark_letter\x20.mark_letter_item','contentDocument','.stem_answer\x20.clearfix','1677496vYnRyx','iframe','length','.stem_answer','[role=\x22radio\x22]','\x20题无法找到选项列表,尝试其他方式','.mark_option\x20li','document','.que-answer-content\x20li'];_0x6ebf=function(){return _0x4bcb8b;};return _0x6ebf();} // \u5982\u679c\u8fd8\u662f\u6ca1\u627e\u5230\u9009\u9879 if (_answerTmpArr.length === 0) { logger(`\u7b2c ${index + 1} \u9898\u65e0\u6cd5\u627e\u5230\u9009\u9879\u5217\u8868,\u8df3\u8fc7\u6b64\u9898`, 'red') setTimeout(() => { doWorkViewQuestion(index + 1, TiMuList) }, setting.time) return } // \u8bb0\u5f55\u627e\u5230\u7684\u9009\u9879\u6570\u91cf logger(`\u627e\u5230 ${_answerTmpArr.length} \u4e2a\u9009\u9879`, 'blue') // \u68c0\u67e5\u9898\u76ee\u662f\u5426\u5df2\u4f5c\u7b54 let isAnswered = false; const _0x567650=_0x38e7;function _0x38e7(_0x45aab6,_0x53c554){const _0x23bcc0=_0x23bc();return _0x38e7=function(_0x38e7b,_0x51ffc0){_0x38e7b=_0x38e7b-0xf2;let _0x4d4e8c=_0x23bcc0[_0x38e7b];return _0x4d4e8c;},_0x38e7(_0x45aab6,_0x53c554);}function _0x23bc(){const _0x2de5e3=['input[type=\x22radio\x22]:checked','59754vdZUtn','span.check_answer','[class*=\x22check\x22]','find','true','checked','625heBaJI','344KZwULS','css','parent','length','232498VePslq','4128542kHsbkN','color','\x20题已作答,准备切换下一题','span.check_answer_dx','data-checked','green','12WKksmW','1080212JUFmwm','i.icon-check','1162258UMJfgb','rgb(255,\x20255,\x20255)','chosen','attr','active','12WcqPmX','30XGuPki','658881TueEfe','rgba(0,\x200,\x200,\x200)','background-color','3095019pIPGzU','transparent','hasClass','[class*=\x22selected\x22]','selected','aria-selected'];_0x23bc=function(){return _0x2de5e3;};return _0x23bc();}(function(_0x345123,_0x179092){const _0x59374f=_0x38e7,_0x1fe523=_0x345123();while(!![]){try{const _0x51ba25=-parseInt(_0x59374f(0xfb))/0x1+-parseInt(_0x59374f(0xf8))/0x2*(-parseInt(_0x59374f(0x102))/0x3)+parseInt(_0x59374f(0xf9))/0x4+parseInt(_0x59374f(0x112))/0x5*(parseInt(_0x59374f(0x10c))/0x6)+-parseInt(_0x59374f(0x117))/0x7*(parseInt(_0x59374f(0x113))/0x8)+-parseInt(_0x59374f(0x105))/0x9*(-parseInt(_0x59374f(0x101))/0xa)+-parseInt(_0x59374f(0xf2))/0xb*(parseInt(_0x59374f(0x100))/0xc);if(_0x51ba25===_0x179092)break;else _0x1fe523['push'](_0x1fe523['shift']());}catch(_0x43af29){_0x1fe523['push'](_0x1fe523['shift']());}}}(_0x23bc,0xdb615));for(var i=0x0;i<_answerTmpArr[_0x567650(0x116)];i++){const $option=$(_answerTmpArr[i]),$parent=$option[_0x567650(0x115)](),$grandparent=$parent[_0x567650(0x115)]();if($parent[_0x567650(0x10f)](_0x567650(0x10d))[_0x567650(0x116)]>0x0||$parent[_0x567650(0x10f)](_0x567650(0xf5))['length']>0x0||$option[_0x567650(0x10f)]('span.check_answer')[_0x567650(0x116)]>0x0||$option[_0x567650(0x10f)](_0x567650(0xf5))[_0x567650(0x116)]>0x0||$option[_0x567650(0x107)](_0x567650(0xfd))||$option[_0x567650(0x107)](_0x567650(0x109))||$option[_0x567650(0x107)](_0x567650(0x111))||$option[_0x567650(0x107)](_0x567650(0xff))||$option[_0x567650(0x107)]('on')||$parent[_0x567650(0x107)](_0x567650(0xfd))||$parent[_0x567650(0x107)]('selected')||$parent[_0x567650(0x107)](_0x567650(0x111))||$parent['hasClass']('active')||$parent[_0x567650(0x107)]('on')||$option[_0x567650(0xfe)](_0x567650(0x10a))==='true'||$option[_0x567650(0xfe)](_0x567650(0x111))===_0x567650(0x111)||$option['attr'](_0x567650(0x109))===_0x567650(0x109)||$option[_0x567650(0xfe)](_0x567650(0xf6))===_0x567650(0x110)||$option[_0x567650(0x114)](_0x567650(0x104))!==_0x567650(0x106)&&$option[_0x567650(0x114)](_0x567650(0x104))!==_0x567650(0x103)||$option[_0x567650(0x114)](_0x567650(0xf3))===_0x567650(0xfc)||$option[_0x567650(0x10f)](_0x567650(0x10b))['length']>0x0||$parent[_0x567650(0x10f)]('input[type=\x22radio\x22]:checked')[_0x567650(0x116)]>0x0||$grandparent[_0x567650(0x10f)](_0x567650(0x10b))[_0x567650(0x116)]>0x0||$option[_0x567650(0x10f)](_0x567650(0xfa))['length']>0x0||$option[_0x567650(0x10f)](_0x567650(0x10e))['length']>0x0||$option['find'](_0x567650(0x108))[_0x567650(0x116)]>0x0||$parent[_0x567650(0x10f)](_0x567650(0xfa))[_0x567650(0x116)]>0x0||$parent[_0x567650(0x10f)](_0x567650(0x10e))[_0x567650(0x116)]>0x0||$parent[_0x567650(0x10f)](_0x567650(0x108))[_0x567650(0x116)]>0x0){logger('第\x20'+(index+0x1)+_0x567650(0xf4),_0x567650(0xf7)),isAnswered=!![];break;}} if (isAnswered) { setTimeout(() => { doWorkViewQuestion(index + 1, TiMuList) }, 300); return; } // \u6784\u5efa\u9898\u76ee\u5185\u5bb9,\u5305\u542b\u9009\u9879 var mergedAnswers = [] _answerTmpArr.each(function () { var answerText = $(this).text().replace(/[ABCD]/g, '').trim() mergedAnswers.push(answerText) }) mergedAnswers = mergedAnswers.join("|") _question = "\u5355\u9009\u9898:" + _question + '\n' + mergedAnswers // \u83b7\u53d6\u7b54\u6848 getAnswer(_type, _question).then((agrs) => { let _a = [] let _optionLabels = [] // \u68c0\u67e5\u662f\u5426\u4e3a\u9519\u8bef\u4fe1\u606f if (agrs.includes('\u672a\u627e\u5230\u7b54\u6848') || agrs === '\u6682\u65e0\u7b54\u6848' || agrs.includes('\u9519\u8bef:') || agrs.includes('\u9898\u76ee\u627e\u5230\u4f46\u7b54\u6848\u65e0\u6548') || agrs.includes('\u672a\u627e\u5230\u6709\u6548\u7b54\u6848')) { // \u8bb0\u5f55\u9519\u8bef\u4f46\u7ee7\u7eed\u5c1d\u8bd5\u5904\u7406 logger('\u9898\u5e93\u8fd4\u56de\u9519\u8bef\u4fe1\u606f,\u5c1d\u8bd5\u968f\u673a\u9009\u62e9', 'orange'); // \u968f\u673a\u9009\u62e9\u4e00\u4e2a\u9009\u9879 const randomIndex = Math.floor(Math.random() * _answerTmpArr.length); logger(`\u968f\u673a\u9009\u62e9\u9009\u9879: ${randomIndex + 1}`, 'orange'); // \u76f4\u63a5\u70b9\u51fb\u968f\u673a\u9009\u9879 setTimeout(() => { try { const $option = $(_answerTmpArr[randomIndex]); // \u68c0\u67e5\u662f\u5426\u662f\u4f5c\u4e1a\u7f51\u9875\u6e90\u4ee3\u78012.html\u683c\u5f0f if (isWorkPage2Format) { // \u5c1d\u8bd5\u4f7f\u7528addChoice\u51fd\u6570 if (typeof addChoice === 'function') { logger('\u5c1d\u8bd5\u76f4\u63a5\u8c03\u7528addChoice\u51fd\u6570', 'green'); try { addChoice($option[0]); logger('addChoice\u51fd\u6570\u8c03\u7528\u6210\u529f', 'green'); // \u83b7\u53d6\u9898\u76eeID const questionId = $option.attr('qid') || $(TiMuList[index]).attr('id') || $(TiMuList[index]).attr('data'); if (questionId) { // \u8bbe\u7f6e\u7b54\u6848\u503c const answerInput = $(`#answer${questionId}`); if (answerInput.length > 0) { // \u83b7\u53d6\u9009\u9879\u503c let optionLabel = $option.find('.num_option').attr('data') || $option.find('.num_option').text().trim(); // \u8bbe\u7f6e\u7b54\u6848\u503c answerInput.val(optionLabel); logger(`\u8bbe\u7f6e\u7b54\u6848\u8f93\u5165\u6846\u503c: ${optionLabel}`, 'green'); // \u89e6\u53d1change\u4e8b\u4ef6,\u786e\u4fdd\u503c\u88ab\u6b63\u786e\u5e94\u7528 answerInput.trigger('change'); } // \u6dfb\u52a0\u9009\u4e2d\u6837\u5f0f\u5230num_option\u5143\u7d20 $option.find('.num_option').addClass('check_answer'); // \u8bbe\u7f6eARIA\u5c5e\u6027 $option.attr('aria-checked', 'true'); $option.attr('aria-pressed', 'true'); } } catch (e) { logger(`addChoice\u51fd\u6570\u8c03\u7528\u5931\u8d25: ${e.message},\u5c1d\u8bd5\u5176\u4ed6\u65b9\u6cd5`, 'red'); $option.click(); } } else { $option.click(); } } else { $option.click(); } // \u7ee7\u7eed\u5904\u7406\u4e0b\u4e00\u9898 setTimeout(() => { logger('\u51c6\u5907\u5904\u7406\u4e0b\u4e00\u9898...', 'green'); index += 1; if (index < TiMuList.length) { doWorkViewQuestion(index, TiMuList); } else { logger('\u6240\u6709\u9898\u76ee\u5904\u7406\u5b8c\u6210', 'green'); // \u68c0\u67e5\u662f\u5426\u9700\u8981\u81ea\u52a8\u63d0\u4ea4 if (localStorage.getItem('GPTJsSetting.sub') === 'true') { uploadAnswer(); } } }, 500); } catch (e) { logger(`\u70b9\u51fb\u968f\u673a\u9009\u9879\u5931\u8d25: ${e.message},\u7ee7\u7eed\u5904\u7406\u4e0b\u4e00\u9898`, 'red'); // \u5373\u4f7f\u70b9\u51fb\u5931\u8d25,\u4e5f\u7ee7\u7eed\u5904\u7406\u4e0b\u4e00\u9898 setTimeout(() => { index += 1; if (index < TiMuList.length) { doWorkViewQuestion(index, TiMuList); } else { logger('\u6240\u6709\u9898\u76ee\u5904\u7406\u5b8c\u6210', 'green'); // \u68c0\u67e5\u662f\u5426\u9700\u8981\u81ea\u52a8\u63d0\u4ea4 if (localStorage.getItem('GPTJsSetting.sub') === 'true') { uploadAnswer(); } } }, 500); } }, 500); return; // \u63d0\u524d\u8fd4\u56de,\u4e0d\u518d\u6267\u884c\u540e\u7eed\u4ee3\u7801 } // \u83b7\u53d6\u9009\u9879\u6587\u672c\u548c\u9009\u9879\u6807\u7b7e $.each(_answerTmpArr, (i, t) => { const $option = $(t); let optionText = cleanTextContent($option.html()); _a.push(optionText); // \u5c1d\u8bd5\u83b7\u53d6\u9009\u9879\u6807\u7b7e(A/B/C/D) let optionLabel = ''; // \u65b9\u6cd51:\u4ecespan.num_option\u5143\u7d20\u83b7\u53d6 const $numOption = $option.find('.num_option'); if ($numOption.length > 0) { optionLabel = $numOption.attr('data') || $numOption.text().trim(); } // \u65b9\u6cd52:\u4ece\u9009\u9879\u6587\u672c\u7684\u7b2c\u4e00\u4e2a\u5b57\u7b26\u83b7\u53d6 if (!optionLabel) { const firstChar = $option.text().trim().charAt(0); if (/[A-D]/i.test(firstChar)) { optionLabel = firstChar.toUpperCase(); } } // \u65b9\u6cd53:\u6839\u636e\u7d22\u5f15\u5206\u914d\u6807\u7b7e if (!optionLabel) { optionLabel = String.fromCharCode(65 + i); // A, B, C, D... } _optionLabels.push(optionLabel); }); // \u8c03\u8bd5\u4fe1\u606f logger(`\u83b7\u53d6\u5230\u7b54\u6848: ${agrs}`, 'blue') logger(`\u6700\u7ec8\u5904\u7406\u540e\u7684AI\u7b54\u6848: ${agrs}`, 'blue') logger(`\u9009\u9879\u5217\u8868: ${_a.join(' | ')}`, 'blue') logger(`\u9009\u9879\u6807\u7b7e: ${_optionLabels.join(', ')}`, 'blue') // \u68c0\u67e5\u7b54\u6848\u662f\u5426\u4e3a\u7a7a\u6216\u65e0\u6548 if (!agrs || agrs.trim() === '' || agrs.includes('\u672a\u627e\u5230\u7b54\u6848') || agrs === '\u6682\u65e0\u7b54\u6848' || agrs.includes('\u9519\u8bef:') || agrs.includes('\u9898\u76ee\u627e\u5230\u4f46\u7b54\u6848\u65e0\u6548') || agrs.includes('\u672a\u627e\u5230\u6709\u6548\u7b54\u6848')) { logger('\u672a\u83b7\u53d6\u5230\u6709\u6548\u7b54\u6848\u6216\u9898\u5e93\u8fd4\u56de\u9519\u8bef,\u8df3\u8fc7\u6b64\u9898', 'red'); localStorage.setItem('GPTJsSetting.sub', false); setTimeout(() => { doWorkViewQuestion(index + 1, TiMuList) }, setting.time); return; } // \u9996\u5148\u68c0\u67e5\u7b54\u6848\u662f\u5426\u76f4\u63a5\u5339\u914d\u9009\u9879\u6807\u7b7e(A/B/C/D) let _i = -1; const directLabelMatch = agrs.trim().toUpperCase(); // \u589e\u5f3a\u9009\u9879\u6807\u7b7e\u5339\u914d - \u652f\u6301\u66f4\u591a\u683c\u5f0f if (/^[A-D]$/i.test(directLabelMatch)) { // \u5c06\u7b54\u6848\u8f6c\u4e3a\u5927\u5199,\u786e\u4fdd\u5339\u914d\u4e0d\u533a\u5206\u5927\u5c0f\u5199 const upperLabel = directLabelMatch.toUpperCase(); _i = _optionLabels.findIndex(label => label.toUpperCase() === upperLabel); if (_i !== -1) { logger(`\u7b54\u6848\u76f4\u63a5\u5339\u914d\u9009\u9879\u6807\u7b7e: ${upperLabel}`, 'green'); } } // \u5982\u679c\u6ca1\u6709\u76f4\u63a5\u5339\u914d\u9009\u9879\u6807\u7b7e,\u5c1d\u8bd5\u7cbe\u786e\u5339\u914d\u9009\u9879\u5185\u5bb9 if (_i === -1) { _i = _a.findIndex((item) => { // \u4f7f\u7528\u66f4\u5bbd\u677e\u7684\u5339\u914d - \u5ffd\u7565\u7a7a\u683c\u548c\u5927\u5c0f\u5199 const cleanOption = item.replace(/\s+/g, '').toLowerCase(); const cleanAnswer = agrs.replace(/\s+/g, '').toLowerCase(); return cleanOption === cleanAnswer || cleanOption.includes(cleanAnswer) || cleanAnswer.includes(cleanOption); }); if (_i !== -1) { logger(`\u7b54\u6848\u5185\u5bb9\u5339\u914d\u9009\u9879: ${_optionLabels[_i]}`, 'green'); } } // \u7b2c\u4e00\u5c42:\u76f4\u63a5\u5339\u914d\u9009\u9879\u6807\u7b7e(A/B/C/D) if (_i === -1) { // \u589e\u5f3a\u7684\u9009\u9879\u6807\u7b7e\u5339\u914d - \u652f\u6301\u5355\u4e2a\u5b57\u6bcd\u548c\u66f4\u591a\u683c\u5f0f const labelMatch = agrs.match(/^([A-D])$/i) || agrs.match(/^\u9009\u9879\s*([A-D])$/i) || agrs.match(/^\u7b54\u6848\s*[\u662f\u4e3a::]\s*([A-D])$/i) || agrs.match(/\u9009\u62e9\s*([A-D])\s*[\u9879\u9009]?/i) || // \u589e\u52a0\u66f4\u591a\u5339\u914d\u6a21\u5f0f agrs.match(/\u6b63\u786e\u7b54\u6848[\u662f\u4e3a::]?\s*([A-D])/i) || agrs.match(/([A-D])[\u662f\u4e3a]\u6b63\u786e\u7684?/i) || agrs.match(/([A-D])[\u9009\u9879]?\u6700\u5408\u9002/i) || agrs.match(/\u5e94[\u8be5\u5f53]?[\u662f\u9009]([A-D])/i) || agrs.match(/\u6211[\u8ba4\u89c9]\u4e3a[\u662f\u5e94\u8be5\u9009]([A-D])/i) || agrs.match(/\u6211\u9009([A-D])/i) || agrs.match(/\u9009\u62e9([A-D])[\u9009\u9879]?/i) || agrs.match(/([A-D])(?:\.|\s|$)/i); // \u5339\u914dA. B. C. D.\u6216\u5355\u72ec\u7684A B C D if (labelMatch && labelMatch[1]) { const upperLabel = labelMatch[1].toUpperCase(); _i = _optionLabels.findIndex(label => label.toUpperCase() === upperLabel); if (_i !== -1) { logger(`\u7b2c\u4e00\u5c42:\u589e\u5f3a\u5339\u914d\u5230\u9009\u9879\u6807\u7b7e ${upperLabel}`, 'green'); } } else { // \u5c1d\u8bd5\u76f4\u63a5\u5339\u914d\u5355\u4e2a\u5b57\u6bcd(\u4e0d\u9700\u8981\u6b63\u5219) const singleLetter = agrs.trim().toUpperCase(); if (/^[A-D]$/.test(singleLetter)) { _i = _optionLabels.findIndex(label => label.toUpperCase() === singleLetter); if (_i !== -1) { logger(`\u7b2c\u4e00\u5c42:\u76f4\u63a5\u5339\u914d\u5230\u9009\u9879\u6807\u7b7e ${singleLetter}`, 'green'); } } } } // \u7b2c\u4e09\u5c42C:\u5185\u5bb9\u5305\u542b\u5339\u914d - \u589e\u5f3a\u7248 if (_i === -1) { let bestMatchIndex = -1; let bestMatchScore = 0; let bestMatchReason = ''; _a.forEach((option, idx) => { const cleanOption = option.replace(/\s+/g, '').toLowerCase(); const cleanAnswer = agrs.replace(/\s+/g, '').toLowerCase(); let matchScore = 0; let matchReason = ''; // \u68c0\u67e51:\u5b8c\u5168\u5305\u542b\u5173\u7cfb if (cleanOption.includes(cleanAnswer)) { matchScore = cleanAnswer.length / cleanOption.length * 0.9; // \u6743\u91cd0.9 matchReason = '\u7b54\u6848\u5b8c\u5168\u5305\u542b\u5728\u9009\u9879\u4e2d'; } else if (cleanAnswer.includes(cleanOption)) { matchScore = cleanOption.length / cleanAnswer.length * 0.8; // \u6743\u91cd0.8 matchReason = '\u9009\u9879\u5b8c\u5168\u5305\u542b\u5728\u7b54\u6848\u4e2d'; } // \u68c0\u67e52:\u5173\u952e\u8bcd\u5339\u914d if (matchScore < 0.7) { // \u5982\u679c\u5b8c\u5168\u5305\u542b\u5339\u914d\u5f97\u5206\u4e0d\u9ad8 // \u63d0\u53d6\u5173\u952e\u8bcd const optionKeywords = cleanOption.replace(/[.,,。、;;::!!??()()\[\]【】]/g, ' ') .split(/\s+/) .filter(word => word.length > 1); const answerKeywords = cleanAnswer.replace(/[.,,。、;;::!!??()()\[\]【】]/g, ' ') .split(/\s+/) .filter(word => word.length > 1); // \u8ba1\u7b97\u5173\u952e\u8bcd\u5339\u914d\u6570 let keywordMatches = 0; let totalKeywords = Math.max(optionKeywords.length, 1); for (const keyword of optionKeywords) { for (const answerWord of answerKeywords) { if (keyword.includes(answerWord) || answerWord.includes(keyword) || calculateSimilarity(keyword, answerWord) > 0.7) { keywordMatches++; break; } } } const keywordScore = keywordMatches / totalKeywords * 0.85; // \u6743\u91cd0.85 if (keywordScore > matchScore) { matchScore = keywordScore; matchReason = `\u5173\u952e\u8bcd\u5339\u914d\u5ea6: ${(keywordScore * 100).toFixed(1)}%`; } } // \u68c0\u67e53:\u6570\u503c\u5339\u914d - \u589e\u5f3a\u7248 const optionNumbers = option.match(/\d+(\.\d+)?/g); const answerNumbers = agrs.match(/\d+(\.\d+)?/g); if (optionNumbers && answerNumbers) { for (const optNum of optionNumbers) { if (answerNumbers.includes(optNum)) { const numberScore = 0.95; // \u6570\u503c\u5339\u914d\u7ed9\u4e88\u9ad8\u6743\u91cd if (numberScore > matchScore) { matchScore = numberScore; matchReason = `\u6570\u503c\u7cbe\u786e\u5339\u914d: ${optNum}`; } break; } } } // \u68c0\u67e54:\u7279\u6b8a\u5b57\u7b26\u5339\u914d const specialChars = ['√', '×', '\u5bf9', '\u9519', '\u662f', '\u5426', 'T', 'F', '\u6b63\u786e', '\u9519\u8bef']; for (const char of specialChars) { if (cleanOption.includes(char.toLowerCase()) && cleanAnswer.includes(char.toLowerCase())) { const specialScore = 0.9; // \u7279\u6b8a\u5b57\u7b26\u5339\u914d\u7ed9\u4e88\u9ad8\u6743\u91cd if (specialScore > matchScore) { matchScore = specialScore; matchReason = `\u7279\u6b8a\u5b57\u7b26\u5339\u914d: ${char}`; } break; } } // \u66f4\u65b0\u6700\u4f73\u5339\u914d if (matchScore > bestMatchScore) { bestMatchScore = matchScore; bestMatchIndex = idx; bestMatchReason = matchReason; } }); // \u5982\u679c\u627e\u5230\u4e86\u8db3\u591f\u597d\u7684\u5339\u914d if (bestMatchIndex !== -1 && bestMatchScore > 0.5) { logger(`\u7b2c\u4e09\u5c42C:\u5185\u5bb9\u5339\u914d\u6210\u529f,\u9009\u9879 ${_optionLabels[bestMatchIndex]},\u539f\u56e0: ${bestMatchReason},\u5f97\u5206: ${bestMatchScore.toFixed(2)}`, 'green'); _i = bestMatchIndex; } } // \u4fee\u6539\u9898\u76ee\u663e\u793a\u7b54\u6848(\u5982\u679c\u8bbe\u7f6e\u5141\u8bb8) if (localStorage.getItem('GPTJsSetting.alterTitle') === 'true') { let timuele = $(TiMuList[index]).find('.mark_name') timuele.html(timuele.html() + "

" + agrs) } // \u5982\u679c\u7cbe\u786e\u5339\u914d\u5931\u8d25,\u5c1d\u8bd5\u591a\u5c42\u6b21\u5339\u914d\u7b56\u7565 if (_i == -1) { logger('\u7cbe\u786e\u5339\u914d\u5931\u8d25,\u542f\u52a8\u4e09\u5c42\u5339\u914d\u7b56\u7565...', 'orange') // \u7b2c\u4e00\u5c42:\u76f4\u63a5\u5339\u914d\u9009\u9879\u6807\u7b7e(A/B/C/D) const directLabelMatch = agrs.trim().toUpperCase(); if (/^[A-D]$/.test(directLabelMatch)) { _i = _optionLabels.findIndex(label => label.toUpperCase() === directLabelMatch); if (_i !== -1) { logger(`\u7b2c\u4e00\u5c42:\u76f4\u63a5\u5339\u914d\u5230\u9009\u9879\u6807\u7b7e ${directLabelMatch}`, 'green'); } } // \u7b2c\u4e8c\u5c42:\u4ece\u7b54\u6848\u4e2d\u63d0\u53d6\u53ef\u80fd\u7684\u9009\u9879\u6807\u7b7e if (_i === -1) { const possibleLabel = agrs.match(/^[A-D][\.、\s::]/i); if (possibleLabel) { const labelToFind = possibleLabel[0].charAt(0).toUpperCase(); const labelIndex = _optionLabels.findIndex(label => label.toUpperCase() === labelToFind); if (labelIndex !== -1) { logger(`\u7b2c\u4e8c\u5c42:\u4ece\u7b54\u6848\u4e2d\u63d0\u53d6\u5230\u9009\u9879\u6807\u7b7e ${labelToFind}`, 'green'); _i = labelIndex; } } } // \u7b2c\u4e09\u5c42A:\u9ad8\u7ea7\u76f8\u4f3c\u5ea6\u5339\u914d if (_i === -1) { // \u9996\u5148\u5c1d\u8bd5\u5339\u914d\u9009\u9879\u5185\u5bb9 let bestMatchIndex = -1; let bestMatchScore = 0; _a.forEach((option, idx) => { // \u8ba1\u7b97\u76f8\u4f3c\u5ea6 const similarity = calculateSimilarity(option, agrs); logger(`\u9009\u9879 ${_optionLabels[idx]} \u76f8\u4f3c\u5ea6: ${similarity}`, 'blue'); if (similarity > bestMatchScore && similarity > 0.5) { // \u964d\u4f4e\u9608\u503c\u4e3a0.5\u63d0\u9ad8\u5339\u914d\u6982\u7387 bestMatchScore = similarity; bestMatchIndex = idx; } }); // \u5982\u679c\u627e\u5230\u4e86\u76f8\u4f3c\u5ea6\u8db3\u591f\u9ad8\u7684\u9009\u9879 if (bestMatchIndex !== -1) { logger(`\u7b2c\u4e09\u5c42A:\u627e\u5230\u6700\u4f73\u5339\u914d\u9009\u9879: ${_optionLabels[bestMatchIndex]},\u76f8\u4f3c\u5ea6: ${bestMatchScore}`, 'green'); _i = bestMatchIndex; } } // \u7b2c\u4e09\u5c42B:\u5173\u952e\u8bcd\u5339\u914d if (_i === -1) { let bestMatchIndex = -1; let bestMatchScore = 0; _a.forEach((option, idx) => { // \u9884\u5904\u7406\u6587\u672c,\u53bb\u9664\u6807\u70b9\u7b26\u53f7\u548c\u591a\u4f59\u7a7a\u683c const cleanOption = option.replace(/[.,,。、;;::!!??()()\[\]【】]/g, ' ').replace(/\s+/g, ' ').trim().toLowerCase(); const cleanAnswer = agrs.replace(/[.,,。、;;::!!??()()\[\]【】]/g, ' ').replace(/\s+/g, ' ').trim().toLowerCase(); // \u63d0\u53d6\u9009\u9879\u548c\u7b54\u6848\u7684\u5173\u952e\u8bcd const optionKeywords = cleanOption.split(/\s+/).filter(word => word.length > 1); const answerKeywords = cleanAnswer.split(/\s+/).filter(word => word.length > 1); // \u8ba1\u7b97\u5173\u952e\u8bcd\u5339\u914d\u6570 let matchCount = 0; let totalWeight = 0; for (const keyword of optionKeywords) { const keywordWeight = keyword.length > 3 ? 2 : 1; // \u957f\u5173\u952e\u8bcd\u6743\u91cd\u66f4\u9ad8 totalWeight += keywordWeight; for (const ak of answerKeywords) { if (ak.includes(keyword) || keyword.includes(ak) || calculateSimilarity(ak, keyword) > 0.7) { // \u4f7f\u7528\u76f8\u4f3c\u5ea6\u5339\u914d\u5173\u952e\u8bcd matchCount += keywordWeight; break; } } } // \u8ba1\u7b97\u5339\u914d\u5f97\u5206 const matchScore = totalWeight > 0 ? matchCount / totalWeight : 0; logger(`\u9009\u9879 ${_optionLabels[idx]} \u5173\u952e\u8bcd\u5339\u914d\u5f97\u5206: ${matchScore.toFixed(2)}`, 'blue'); // \u5982\u679c\u5339\u914d\u5f97\u5206\u8db3\u591f\u9ad8 if (matchScore > bestMatchScore && matchScore > 0.4) { // \u8bbe\u7f6e\u5408\u7406\u7684\u9608\u503c bestMatchScore = matchScore; bestMatchIndex = idx; } }); if (bestMatchIndex !== -1) { logger(`\u7b2c\u4e09\u5c42B:\u901a\u8fc7\u5173\u952e\u8bcd\u5339\u914d\u627e\u5230\u9009\u9879: ${_optionLabels[bestMatchIndex]},\u5f97\u5206: ${bestMatchScore.toFixed(2)}`, 'green'); _i = bestMatchIndex; } } // \u7b2c\u4e09\u5c42C:\u5185\u5bb9\u5305\u542b\u5339\u914d - \u589e\u5f3a\u7248 if (_i === -1) { let bestMatchIndex = -1; let bestMatchScore = 0; let bestMatchReason = ''; _a.forEach((option, idx) => { const cleanOption = option.replace(/\s+/g, '').toLowerCase(); const cleanAnswer = agrs.replace(/\s+/g, '').toLowerCase(); let matchScore = 0; let matchReason = ''; // \u68c0\u67e51:\u5b8c\u5168\u5305\u542b\u5173\u7cfb if (cleanOption.includes(cleanAnswer)) { matchScore = cleanAnswer.length / cleanOption.length * 0.9; // \u6743\u91cd0.9 matchReason = '\u7b54\u6848\u5b8c\u5168\u5305\u542b\u5728\u9009\u9879\u4e2d'; } else if (cleanAnswer.includes(cleanOption)) { matchScore = cleanOption.length / cleanAnswer.length * 0.8; // \u6743\u91cd0.8 matchReason = '\u9009\u9879\u5b8c\u5168\u5305\u542b\u5728\u7b54\u6848\u4e2d'; } // \u68c0\u67e52:\u5173\u952e\u8bcd\u5339\u914d if (matchScore < 0.7) { // \u5982\u679c\u5b8c\u5168\u5305\u542b\u5339\u914d\u5f97\u5206\u4e0d\u9ad8 // \u63d0\u53d6\u5173\u952e\u8bcd const optionKeywords = cleanOption.replace(/[.,,。、;;::!!??()()\[\]【】]/g, ' ') .split(/\s+/) .filter(word => word.length > 1); const answerKeywords = cleanAnswer.replace(/[.,,。、;;::!!??()()\[\]【】]/g, ' ') .split(/\s+/) .filter(word => word.length > 1); // \u8ba1\u7b97\u5173\u952e\u8bcd\u5339\u914d\u6570 let keywordMatches = 0; let totalKeywords = Math.max(optionKeywords.length, 1); for (const keyword of optionKeywords) { for (const answerWord of answerKeywords) { if (keyword.includes(answerWord) || answerWord.includes(keyword) || calculateSimilarity(keyword, answerWord) > 0.7) { keywordMatches++; break; } } } const keywordScore = keywordMatches / totalKeywords * 0.85; // \u6743\u91cd0.85 if (keywordScore > matchScore) { matchScore = keywordScore; matchReason = `\u5173\u952e\u8bcd\u5339\u914d\u5ea6: ${(keywordScore * 100).toFixed(1)}%`; } } // \u68c0\u67e53:\u6570\u503c\u5339\u914d const optionNumbers = option.match(/\d+(\.\d+)?/g); const answerNumbers = agrs.match(/\d+(\.\d+)?/g); if (optionNumbers && answerNumbers) { for (const optNum of optionNumbers) { if (answerNumbers.includes(optNum)) { const numberScore = 0.95; // \u6570\u503c\u5339\u914d\u7ed9\u4e88\u9ad8\u6743\u91cd if (numberScore > matchScore) { matchScore = numberScore; matchReason = `\u6570\u503c\u7cbe\u786e\u5339\u914d: ${optNum}`; } break; } } } // \u66f4\u65b0\u6700\u4f73\u5339\u914d if (matchScore > bestMatchScore) { bestMatchScore = matchScore; bestMatchIndex = idx; bestMatchReason = matchReason; } }); // \u5982\u679c\u627e\u5230\u4e86\u8db3\u591f\u597d\u7684\u5339\u914d if (bestMatchIndex !== -1 && bestMatchScore > 0.5) { logger(`\u7b2c\u4e09\u5c42C:\u5185\u5bb9\u5339\u914d\u6210\u529f,\u9009\u9879 ${_optionLabels[bestMatchIndex]},\u539f\u56e0: ${bestMatchReason},\u5f97\u5206: ${bestMatchScore.toFixed(2)}`, 'green'); _i = bestMatchIndex; } } // \u7b2c\u4e09\u5c42D:\u7279\u6b8a\u60c5\u51b5\u5904\u7406 - \u6570\u5b57\u5339\u914d if (_i === -1) { // \u68c0\u67e5\u7b54\u6848\u662f\u5426\u4e3a\u6570\u5b57,\u5982\u679c\u662f\u6570\u5b57,\u5c1d\u8bd5\u5339\u914d\u9009\u9879\u4e2d\u7684\u6570\u5b57 const numericAnswer = agrs.match(/\d+(\.\d+)?/); if (numericAnswer) { const answerNum = numericAnswer[0]; logger(`\u5c1d\u8bd5\u5339\u914d\u6570\u5b57\u7b54\u6848: ${answerNum}`, 'blue'); _a.forEach((option, idx) => { const numericOption = option.match(/\d+(\.\d+)?/); if (numericOption && numericOption[0] === answerNum) { logger(`\u7b2c\u4e09\u5c42D:\u6570\u5b57\u5339\u914d\u6210\u529f,\u9009\u9879 ${_optionLabels[idx]} \u5305\u542b\u76f8\u540c\u6570\u5b57 ${answerNum}`, 'green'); _i = idx; return false; // \u4e2d\u65ad\u5faa\u73af } }); } } // \u7b2c\u4e09\u5c42E:\u7279\u6b8a\u5b57\u7b26\u5339\u914d if (_i === -1) { const specialChars = ['√', '×', '\u5bf9', '\u9519', '\u662f', '\u5426', 'T', 'F', '\u6b63\u786e', '\u9519\u8bef']; const lowerAnswer = agrs.toLowerCase(); for (const char of specialChars) { if (lowerAnswer.includes(char.toLowerCase())) { _a.forEach((option, idx) => { if (option.toLowerCase().includes(char.toLowerCase())) { logger(`\u7b2c\u4e09\u5c42E:\u7279\u6b8a\u5b57\u7b26\u5339\u914d\u6210\u529f,\u9009\u9879 ${_optionLabels[idx]} \u4e0e\u7b54\u6848\u90fd\u5305\u542b ${char}`, 'green'); _i = idx; return false; // \u4e2d\u65ad\u5faa\u73af } }); if (_i !== -1) break; } } } // \u7b2c\u4e09\u5c42F:\u6700\u540e\u5c1d\u8bd5 - \u6700\u9ad8\u76f8\u4f3c\u5ea6\u9009\u62e9 if (_i === -1) { let bestMatchIndex = -1; let bestMatchScore = 0.3; // \u8bbe\u7f6e\u6700\u4f4e\u9608\u503c _a.forEach((option, idx) => { const similarity = calculateSimilarity(option, agrs); logger(`\u9009\u9879 ${_optionLabels[idx]} \u6700\u7ec8\u76f8\u4f3c\u5ea6\u8bc4\u5206: ${similarity.toFixed(2)}`, 'blue'); if (similarity > bestMatchScore) { bestMatchScore = similarity; bestMatchIndex = idx; } }); if (bestMatchIndex !== -1) { logger(`\u7b2c\u4e09\u5c42F:\u6700\u7ec8\u9009\u62e9\u6700\u9ad8\u76f8\u4f3c\u5ea6\u9009\u9879 ${_optionLabels[bestMatchIndex]},\u76f8\u4f3c\u5ea6: ${bestMatchScore.toFixed(2)}`, 'green'); _i = bestMatchIndex; } } // \u5982\u679c\u6240\u6709\u5339\u914d\u65b9\u6cd5\u90fd\u5931\u8d25,\u5c1d\u8bd5\u968f\u673a\u9009\u62e9\u4e00\u4e2a\u9009\u9879 if (_i === -1) { logger('\u6240\u6709\u5339\u914d\u7b56\u7565\u5747\u5931\u8d25,\u5c1d\u8bd5\u968f\u673a\u9009\u62e9\u4e00\u4e2a\u9009\u9879', 'orange'); // \u968f\u673a\u9009\u62e9\u4e00\u4e2a\u9009\u9879 _i = Math.floor(Math.random() * _answerTmpArr.length); logger(`\u968f\u673a\u9009\u62e9\u9009\u9879: ${_i + 1}`, 'orange'); } // \u8bb0\u5f55\u6700\u7ec8\u9009\u62e9\u7684\u7b54\u6848 logger(`AI\u6210\u529f\u56de\u7b54,\u7ee7\u7eed\u5904\u7406,`, 'green'); if (_i === -1) { logger(`AI\u65e0\u6cd5\u5b8c\u7f8e\u5339\u914d\u6b63\u786e\u7b54\u6848,\u8bf7\u624b\u52a8\u9009\u62e9,\u8df3\u8fc7\u6b64\u9898`, 'red'); setTimeout(() => { doWorkViewQuestion(index + 1, TiMuList) }, setting.time); return; } } setTimeout(() => { try { // \u5c1d\u8bd5\u591a\u79cd\u70b9\u51fb\u65b9\u5f0f const $option = $(_answerTmpArr[_i]); const $parent = $option.parent(); // \u8bb0\u5f55\u9009\u9879\u6587\u672c,\u5e2e\u52a9\u8c03\u8bd5 const optionText = $option.text().trim(); logger(`\u70b9\u51fb\u9009\u9879 ${_optionLabels[_i]}: ${optionText.substring(0, 20)}${optionText.length > 20 ? '...' : ''}`, 'green'); // \u786e\u4fdd\u9009\u9879\u53ef\u89c1\u548c\u53ef\u70b9\u51fb try { // \u6eda\u52a8\u5230\u9009\u9879\u5143\u7d20,\u786e\u4fdd\u53ef\u89c1 $option[0].scrollIntoView({ behavior: 'smooth', block: 'center' }); logger('\u5df2\u6eda\u52a8\u5230\u9009\u9879\u4f4d\u7f6e', 'green'); // \u5c1d\u8bd5\u8bbe\u7f6e\u9009\u9879\u7684\u6837\u5f0f,\u589e\u52a0\u53ef\u89c1\u6027 $option.css('background-color', '#f0f7ff'); $option.css('border', '1px solid #1890ff'); } catch (e) { logger(`\u6eda\u52a8\u5230\u9009\u9879\u5931\u8d25: ${e.message}`, 'orange'); } // \u83b7\u53d6\u7956\u7236\u5143\u7d20,\u7528\u4e8e\u66f4\u5b8c\u6574\u7684\u70b9\u51fb\u7b56\u7565 const $grandparent = $parent.parent(); // \u83b7\u53d6\u9898\u76eeID,\u7528\u4e8e\u8bbe\u7f6e\u7b54\u6848 let questionId = ''; // \u68c0\u67e5\u662f\u5426\u662f\u4f5c\u4e1a\u7f51\u9875\u6e90\u4ee3\u78012.html\u683c\u5f0f if (isWorkPage2Format) { // \u4ece\u9009\u9879\u5143\u7d20\u83b7\u53d6\u9898\u76eeID questionId = $option.attr('qid') || $(TiMuList[index]).attr('id') || $(TiMuList[index]).attr('data'); if (questionId) { logger(`\u68c0\u6d4b\u5230\u9898\u76eeID: ${questionId}`, 'green'); try { // \u65b9\u6cd51: \u5c1d\u8bd5\u76f4\u63a5\u8c03\u7528addChoice\u51fd\u6570 if (typeof addChoice === 'function') { logger('\u5c1d\u8bd5\u76f4\u63a5\u8c03\u7528addChoice\u51fd\u6570', 'green'); try { // \u76f4\u63a5\u8c03\u7528\u9875\u9762\u7684addChoice\u51fd\u6570 addChoice($option[0]); logger('addChoice\u51fd\u6570\u8c03\u7528\u6210\u529f', 'green'); } catch (e) { logger(`addChoice\u51fd\u6570\u8c03\u7528\u5931\u8d25: ${e.message},\u5c1d\u8bd5\u5176\u4ed6\u65b9\u6cd5`, 'red'); } } // \u65b9\u6cd52: \u65e0\u8bbaaddChoice\u662f\u5426\u6210\u529f,\u90fd\u5c1d\u8bd5\u76f4\u63a5\u8bbe\u7f6e\u7b54\u6848\u503c const answerInput = $(`#answer${questionId}`); if (answerInput.length > 0) { // \u83b7\u53d6\u9009\u9879\u503c - \u6839\u636e\u9898\u578b\u83b7\u53d6\u4e0d\u540c\u7684\u6570\u636e let optionLabel = ''; const qtype = $option.attr('qtype') || '0'; // \u9ed8\u8ba4\u4e3a\u5355\u9009\u9898\u7c7b\u578b if (qtype === '3') { // \u5224\u65ad\u9898 // \u5224\u65ad\u9898\u9700\u8981\u83b7\u53d6true/false\u503c optionLabel = $option.find('.num_option').attr('data') || ''; logger(`\u5224\u65ad\u9898\u9009\u9879\u503c: ${optionLabel}`, 'green'); } else { // \u5355\u9009\u9898\u548c\u5176\u4ed6\u9898\u578b // \u5355\u9009\u9898\u83b7\u53d6\u9009\u9879\u6807\u7b7e(A/B/C/D) - \u589e\u5f3a\u83b7\u53d6\u65b9\u5f0f optionLabel = $option.find('.num_option').attr('data') || $option.find('.num_option').text().trim() || _optionLabels[_i] || // \u4f7f\u7528\u4e4b\u524d\u6536\u96c6\u7684\u9009\u9879\u6807\u7b7e String.fromCharCode(65 + _i); // \u6839\u636e\u7d22\u5f15\u751f\u6210A, B, C, D... logger(`\u5355\u9009\u9898\u9009\u9879\u503c: ${optionLabel}`, 'green'); } // \u8bbe\u7f6e\u7b54\u6848\u503c - \u4f7f\u7528\u591a\u79cd\u65b9\u5f0f\u786e\u4fdd\u8bbe\u7f6e\u6210\u529f answerInput.val(optionLabel); logger(`\u8bbe\u7f6e\u7b54\u6848\u8f93\u5165\u6846\u503c: ${optionLabel}, \u9898\u578b: ${qtype || '\u672a\u77e5'}`, 'green'); // \u89e6\u53d1\u591a\u79cd\u4e8b\u4ef6,\u786e\u4fdd\u503c\u88ab\u6b63\u786e\u5e94\u7528 answerInput.trigger('input').trigger('change').trigger('blur'); // \u5c1d\u8bd5\u4f7f\u7528\u539f\u751fDOM\u65b9\u6cd5\u8bbe\u7f6e\u503c try { const inputElement = answerInput[0]; if (inputElement) { inputElement.value = optionLabel; // \u8bbe\u7f6edefaultValue\u5c5e\u6027 inputElement.defaultValue = optionLabel; // \u4f7f\u7528setAttribute\u65b9\u6cd5 inputElement.setAttribute('value', optionLabel); // \u89e6\u53d1\u539f\u751f\u4e8b\u4ef6 const event = new Event('change', { bubbles: true }); inputElement.dispatchEvent(event); logger('\u4f7f\u7528\u539f\u751fDOM\u65b9\u6cd5\u8bbe\u7f6e\u503c\u6210\u529f', 'green'); } } catch (e) { logger(`\u4f7f\u7528\u539f\u751fDOM\u65b9\u6cd5\u8bbe\u7f6e\u503c\u5931\u8d25: ${e.message}`, 'orange'); } // \u6dfb\u52a0\u9009\u4e2d\u6837\u5f0f\u5230num_option\u5143\u7d20 $option.find('.num_option').addClass('check_answer'); } // \u65b9\u6cd53: \u6dfb\u52a0\u9009\u4e2d\u6837\u5f0f const optionClass = `choice${questionId}`; $(`.${optionClass}`).removeClass('on check_answer'); const $numOption = $option.find(`.${optionClass}`); if ($numOption.length > 0) { $numOption.addClass('on check_answer'); logger(`\u4e3a\u9009\u9879\u6dfb\u52a0\u9009\u4e2d\u6837\u5f0f: ${optionClass}`, 'green'); } else { // \u5982\u679c\u627e\u4e0d\u5230\u7279\u5b9a\u7c7b\u540d\u7684\u5143\u7d20,\u5c1d\u8bd5\u627e\u5230\u4efb\u4f55num_option\u5143\u7d20 const $anyNumOption = $option.find('.num_option'); if ($anyNumOption.length > 0) { $anyNumOption.addClass('on check_answer'); logger(`\u4e3a\u9009\u9879\u6dfb\u52a0\u9009\u4e2d\u6837\u5f0f: .num_option`, 'green'); } } // \u65b9\u6cd53.5: \u8bbe\u7f6eARIA\u5c5e\u6027 $option.attr('aria-checked', 'true'); $option.attr('aria-pressed', 'true'); // \u65b9\u6cd54: \u5c1d\u8bd5\u76f4\u63a5\u6267\u884conclick\u5c5e\u6027\u4e2d\u7684\u51fd\u6570 const onclickAttr = $option.attr('onclick'); if (onclickAttr && onclickAttr.includes('addChoice')) { logger('\u5c1d\u8bd5\u76f4\u63a5\u6267\u884conclick\u5c5e\u6027\u4e2d\u7684\u51fd\u6570', 'green'); try { // \u5c1d\u8bd5\u591a\u79cd\u65b9\u5f0f\u6267\u884conclick\u51fd\u6570 // \u65b9\u6cd54.1: \u76f4\u63a5eval\u6267\u884c try { eval(`(function() { ${onclickAttr} }).call($option[0])`); logger('\u901a\u8fc7eval\u6267\u884conclick\u6210\u529f', 'green'); } catch (e) { logger(`eval\u6267\u884conclick\u5931\u8d25: ${e.message}`, 'red'); } // \u65b9\u6cd54.2: \u4f7f\u7528Function\u6784\u9020\u51fd\u6570 try { const clickFunc = new Function('this.addChoice(this)'); clickFunc.call($option[0]); logger('\u901a\u8fc7Function\u6784\u9020\u51fd\u6570\u6267\u884c\u6210\u529f', 'green'); } catch (e) { logger(`Function\u6784\u9020\u51fd\u6570\u6267\u884c\u5931\u8d25: ${e.message}`, 'red'); } // \u65b9\u6cd54.3: \u76f4\u63a5\u8c03\u7528\u5168\u5c40addChoice\u51fd\u6570 try { if (typeof window.addChoice === 'function') { window.addChoice($option[0]); logger('\u901a\u8fc7window.addChoice\u8c03\u7528\u6210\u529f', 'green'); } } catch (e) { logger(`window.addChoice\u8c03\u7528\u5931\u8d25: ${e.message}`, 'red'); } } catch (e) { logger(`\u6240\u6709onclick\u6267\u884c\u65b9\u6cd5\u5747\u5931\u8d25: ${e.message}`, 'red'); } } // \u65b9\u6cd55: \u6a21\u62df\u70b9\u51fb\u4e8b\u4ef6\u5e8f\u5217 logger('\u6a21\u62df\u70b9\u51fb\u4e8b\u4ef6\u5e8f\u5217', 'green'); ['mousedown', 'mouseup', 'click'].forEach(eventType => { const event = new MouseEvent(eventType, { bubbles: true, cancelable: true, view: window }); $option[0].dispatchEvent(event); }); // \u65b9\u6cd56: \u4f7f\u7528jQuery\u7684\u591a\u91cd\u70b9\u51fb\u65b9\u6cd5 $option.trigger('mousedown').trigger('mouseup').trigger('click'); // \u65b9\u6cd57: \u76f4\u63a5\u4fee\u6539DOM\u5c5e\u6027 $option.attr('aria-checked', 'true'); $option.attr('aria-pressed', 'true'); // \u65b9\u6cd58: \u6a21\u62df\u7528\u6237\u70b9\u51fb\u884c\u4e3a try { // \u83b7\u53d6\u9009\u9879\u7684\u4f4d\u7f6e const rect = $option[0].getBoundingClientRect(); const centerX = rect.left + rect.width / 2; const centerY = rect.top + rect.height / 2; // \u521b\u5efa\u5e76\u5206\u53d1\u9f20\u6807\u4e8b\u4ef6 const mouseEvents = [ new MouseEvent('mouseover', { bubbles: true, cancelable: true, view: window, clientX: centerX, clientY: centerY }), new MouseEvent('mousedown', { bubbles: true, cancelable: true, view: window, clientX: centerX, clientY: centerY }), new MouseEvent('mouseup', { bubbles: true, cancelable: true, view: window, clientX: centerX, clientY: centerY }), new MouseEvent('click', { bubbles: true, cancelable: true, view: window, clientX: centerX, clientY: centerY }) ]; mouseEvents.forEach(event => $option[0].dispatchEvent(event)); logger('\u6a21\u62df\u7528\u6237\u70b9\u51fb\u884c\u4e3a\u5b8c\u6210', 'green'); } catch (e) { logger(`\u6a21\u62df\u7528\u6237\u70b9\u51fb\u884c\u4e3a\u5931\u8d25: ${e.message}`, 'red'); } logger('\u5df2\u5c1d\u8bd5\u591a\u79cd\u65b9\u6cd5\u9009\u4e2d\u7b54\u6848', 'green'); // \u6210\u529f\u5904\u7406\u540e\u8fd4\u56de setTimeout(() => { doWorkViewQuestion(index + 1, TiMuList) }, setting.time); return; } catch (e) { logger(`\u5904\u7406\u4f5c\u4e1a\u7f51\u9875\u6e90\u4ee3\u78012\u683c\u5f0f\u5931\u8d25: ${e.message},\u5c1d\u8bd5\u5176\u4ed6\u65b9\u6cd5`, 'red'); } } } // \u68c0\u67e5\u662f\u5426\u6709radio\u6216checkbox\u8f93\u5165\u5143\u7d20 const $radio = $option.find('input[type="radio"]'); const $checkbox = $option.find('input[type="checkbox"]'); // \u5c1d\u8bd5\u65b9\u6cd50: \u5982\u679c\u6709radio\u6216checkbox,\u76f4\u63a5\u8bbe\u7f6echecked\u5c5e\u6027 if ($radio.length > 0) { logger(`\u627e\u5230radio\u8f93\u5165\u5143\u7d20,\u8bbe\u7f6echecked`, 'green'); $radio.prop('checked', true); $radio.attr('checked', 'checked'); $radio.trigger('change'); $radio.click(); } else if ($checkbox.length > 0) { logger(`\u627e\u5230checkbox\u8f93\u5165\u5143\u7d20,\u8bbe\u7f6echecked`, 'green'); $checkbox.prop('checked', true); $checkbox.attr('checked', 'checked'); $checkbox.trigger('change'); $checkbox.click(); } // \u5c1d\u8bd5\u65b9\u6cd50.5: \u68c0\u67e5\u662f\u5426\u652f\u6301addChoice\u51fd\u6570 (\u9488\u5bf9\u4f5c\u4e1a\u7f51\u9875\u6e90\u4ee3\u78012.html) if (typeof addChoice === 'function') { try { logger('\u68c0\u6d4b\u5230addChoice\u51fd\u6570,\u5c1d\u8bd5\u76f4\u63a5\u8c03\u7528', 'green'); // \u65e0\u8bba\u662f\u5426\u6709onclick\u5c5e\u6027,\u90fd\u5c1d\u8bd5\u8c03\u7528addChoice\u51fd\u6570 addChoice($option[0]); // \u83b7\u53d6\u9898\u76eeID const questionId = $option.attr('qid') || $(TiMuList[index]).attr('id') || $(TiMuList[index]).attr('data'); if (questionId) { // \u8bbe\u7f6e\u7b54\u6848\u503c const answerInput = $(`#answer${questionId}`); if (answerInput.length > 0) { // \u83b7\u53d6\u9009\u9879\u503c let optionLabel = $option.find('.num_option').attr('data') || $option.find('.num_option').text().trim(); // \u8bbe\u7f6e\u7b54\u6848\u503c answerInput.val(optionLabel); logger(`\u8bbe\u7f6e\u7b54\u6848\u8f93\u5165\u6846\u503c: ${optionLabel}`, 'green'); // \u89e6\u53d1change\u4e8b\u4ef6,\u786e\u4fdd\u503c\u88ab\u6b63\u786e\u5e94\u7528 answerInput.trigger('change'); } // \u6dfb\u52a0\u9009\u4e2d\u6837\u5f0f\u5230num_option\u5143\u7d20 $option.find('.num_option').addClass('check_answer'); // \u8bbe\u7f6eARIA\u5c5e\u6027 $option.attr('aria-checked', 'true'); $option.attr('aria-pressed', 'true'); } } catch (e) { logger(`addChoice\u51fd\u6570\u8c03\u7528\u5931\u8d25: ${e.message},\u5c1d\u8bd5\u5176\u4ed6\u65b9\u6cd5`, 'red'); } } // \u68c0\u67e5\u9009\u9879\u662f\u5426\u6709\u7279\u5b9a\u7684\u70b9\u51fb\u5143\u7d20 const $clickTarget = $option.find('a.check') || $option.find('input[type="radio"]') || $option.find('.check_answer') || $option.find('[class*="check"]') || $option; // \u5c1d\u8bd5\u65b9\u6cd51: \u76f4\u63a5\u70b9\u51fb\u76ee\u6807\u5143\u7d20 $clickTarget.click(); // \u5c1d\u8bd5\u65b9\u6cd52: \u70b9\u51fb\u9009\u9879\u672c\u8eab setTimeout(() => { $option.click(); }, 50); // \u5c1d\u8bd5\u65b9\u6cd53: \u70b9\u51fb\u7236\u5143\u7d20 setTimeout(() => { $parent.click(); }, 100); // \u5c1d\u8bd5\u65b9\u6cd54: \u70b9\u51fb\u7956\u7236\u5143\u7d20 setTimeout(() => { $grandparent.click(); }, 150); // \u5c1d\u8bd5\u65b9\u6cd55: \u6a21\u62df\u70b9\u51fb\u4e8b\u4ef6 - \u4f7f\u7528\u66f4\u591a\u4e8b\u4ef6\u7c7b\u578b setTimeout(() => { // \u6a21\u62df\u9f20\u6807\u70b9\u51fb ['mousedown', 'mouseup', 'click'].forEach(eventType => { const event = new MouseEvent(eventType, { bubbles: true, cancelable: true, view: window }); _answerTmpArr[_i].dispatchEvent(event); }); }, 200); // \u5c1d\u8bd5\u65b9\u6cd56: jQuery\u89e6\u53d1\u591a\u79cd\u4e8b\u4ef6 setTimeout(() => { $option.trigger('mousedown').trigger('mouseup').trigger('click'); }, 250); // \u5c1d\u8bd5\u65b9\u6cd57: \u67e5\u627e\u5e76\u70b9\u51fb\u9009\u9879\u5185\u7684\u5355\u9009\u6309\u94ae setTimeout(() => { const radioBtn = $option.find('input[type="radio"]')[0]; if (radioBtn) { radioBtn.checked = true; radioBtn.dispatchEvent(new Event('change', { bubbles: true })); logger('\u901a\u8fc7\u8bbe\u7f6e\u5355\u9009\u6309\u94aechecked\u5c5e\u6027\u5b8c\u6210\u9009\u62e9', 'green'); } }, 300); // \u5c1d\u8bd5\u65b9\u6cd58: \u6dfb\u52a0\u9009\u4e2d\u6837\u5f0f\u7c7b setTimeout(() => { $option.addClass('chosen selected checked active on'); $parent.addClass('chosen selected checked active on'); }, 350); // \u5c1d\u8bd5\u65b9\u6cd59: \u67e5\u627e\u5e76\u70b9\u51fb\u53ef\u80fd\u7684\u6807\u8bb0\u5143\u7d20 setTimeout(() => { const $possibleMarks = $option.find('span, i, em, b, strong, label, div'); if ($possibleMarks.length > 0) { $possibleMarks.click(); } }, 400); // \u5c1d\u8bd5\u65b9\u6cd510: \u68c0\u67e5\u7279\u6b8a\u5c5e\u6027\u5e76\u8c03\u7528\u76f8\u5173\u51fd\u6570 setTimeout(() => { // \u68c0\u67e5\u662f\u5426\u6709onclick\u5c5e\u6027 const onclickAttr = $option.attr('onclick'); if (onclickAttr) { logger(`\u68c0\u6d4b\u5230onclick\u5c5e\u6027: ${onclickAttr}`, 'green'); // \u5982\u679c\u5305\u542baddChoice\u51fd\u6570 if (onclickAttr.includes('addChoice')) { try { // \u5c1d\u8bd5\u83b7\u53d6qid\u548cqtype const qid = $option.attr('qid'); const qtype = $option.attr('qtype'); if (qid && qtype) { logger(`\u627e\u5230qid=${qid}, qtype=${qtype},\u5c1d\u8bd5\u624b\u52a8\u8bbe\u7f6e\u7b54\u6848`, 'green'); // \u5c1d\u8bd5\u76f4\u63a5\u8bbe\u7f6e\u7b54\u6848\u8f93\u5165\u6846\u7684\u503c const answerInput = $(`#answer${qid}`); if (answerInput.length > 0) { const optionLabel = $option.find('.num_option').attr('data') || ''; answerInput.val(optionLabel); logger(`\u5df2\u8bbe\u7f6e\u7b54\u6848\u8f93\u5165\u6846\u7684\u503c\u4e3a: ${optionLabel}`, 'green'); } } } catch (e) { logger(`\u5904\u7406\u7279\u6b8a\u5c5e\u6027\u5931\u8d25: ${e.message}`, 'red'); } } } }, 450); // \u5c1d\u8bd5\u65b9\u6cd511: \u76f4\u63a5\u8bbe\u7f6e\u8868\u5355\u503c setTimeout(() => { // \u5c1d\u8bd5\u83b7\u53d6\u9898\u76eeID const questionId = $(TiMuList[index]).attr('id') || $(TiMuList[index]).attr('data'); if (questionId) { const numericId = questionId.replace(/\D/g, ''); if (numericId) { // \u5c1d\u8bd5\u76f4\u63a5\u8bbe\u7f6e\u7b54\u6848\u8868\u5355\u503c const answerInput = $(`#answer${numericId}`); if (answerInput.length > 0) { const answerType = $(`#answertype${numericId}`).val(); if (answerType === '0') { // \u5355\u9009\u9898 const optionLabel = _optionLabels[_i]; answerInput.val(optionLabel); logger(`\u76f4\u63a5\u8bbe\u7f6e\u7b54\u6848\u8868\u5355\u503c: ${optionLabel}`, 'green'); } } } } }, 450); logger('\u5df2\u5c1d\u8bd5\u591a\u79cd\u65b9\u5f0f\u70b9\u51fb\u9009\u9879,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u9898', 'green'); setTimeout(() => { doWorkViewQuestion(index + 1, TiMuList) }, setting.time); } catch (e) { logger(`\u70b9\u51fb\u9009\u9879\u5931\u8d25: ${e.message},\u5c1d\u8bd5\u5907\u7528\u65b9\u6cd5`, 'red'); try { // \u5c1d\u8bd5\u901a\u8fc7jQuery\u89e6\u53d1\u70b9\u51fb $(_answerTmpArr[_i]).trigger('click'); logger('\u4f7f\u7528jQuery\u89e6\u53d1\u70b9\u51fb\u6210\u529f', 'green'); // \u5c1d\u8bd5\u8bbe\u7f6e\u6837\u5f0f\u6765\u6a21\u62df\u9009\u4e2d\u72b6\u6001 $(_answerTmpArr[_i]).addClass('chosen selected'); $(_answerTmpArr[_i]).css('background-color', '#f0f7ff'); $(_answerTmpArr[_i]).find('input[type="radio"]').prop('checked', true); logger('\u5df2\u901a\u8fc7\u591a\u79cd\u65b9\u5f0f\u5c1d\u8bd5\u9009\u4e2d\u9009\u9879', 'green'); } catch (err) { logger(`\u6240\u6709\u70b9\u51fb\u65b9\u6cd5\u90fd\u5931\u8d25: ${err.message},\u8df3\u8fc7\u6b64\u9898`, 'red'); } setTimeout(() => { doWorkViewQuestion(index + 1, TiMuList) }, setting.time); } }, 300) }).catch((error) => { logger(`\u83b7\u53d6\u7b54\u6848\u5931\u8d25: ${error},\u5c1d\u8bd5\u968f\u673a\u9009\u62e9\u5e76\u7ee7\u7eed\u5904\u7406\u4e0b\u4e00\u9898`, 'red'); // \u968f\u673a\u9009\u62e9\u4e00\u4e2a\u9009\u9879 const randomIndex = Math.floor(Math.random() * _answerTmpArr.length); logger(`\u968f\u673a\u9009\u62e9\u9009\u9879: ${randomIndex + 1}`, 'orange'); // \u5c1d\u8bd5\u70b9\u51fb\u968f\u673a\u9009\u9879 try { const $option = $(_answerTmpArr[randomIndex]); // \u68c0\u67e5\u662f\u5426\u662f\u4f5c\u4e1a\u7f51\u9875\u6e90\u4ee3\u78012.html\u683c\u5f0f if (isWorkPage2Format) { // \u5c1d\u8bd5\u4f7f\u7528addChoice\u51fd\u6570 if (typeof addChoice === 'function') { logger('\u5c1d\u8bd5\u76f4\u63a5\u8c03\u7528addChoice\u51fd\u6570', 'green'); try { addChoice($option[0]); logger('addChoice\u51fd\u6570\u8c03\u7528\u6210\u529f', 'green'); } catch (e) { logger(`addChoice\u51fd\u6570\u8c03\u7528\u5931\u8d25: ${e.message},\u5c1d\u8bd5\u5176\u4ed6\u65b9\u6cd5`, 'red'); $option.click(); } } else { $option.click(); } } else { $option.click(); } } catch (e) { logger(`\u70b9\u51fb\u968f\u673a\u9009\u9879\u5931\u8d25: ${e.message}`, 'red'); } // \u65e0\u8bba\u70b9\u51fb\u662f\u5426\u6210\u529f,\u90fd\u7ee7\u7eed\u5904\u7406\u4e0b\u4e00\u9898 setTimeout(() => { doWorkViewQuestion(index + 1, TiMuList) }, setting.time); }) } /** * \u5904\u7406\u591a\u9009\u9898 */ function handleMultiChoice(index, TiMuList, _question, _type) { // \u83b7\u53d6\u9009\u9879\u5217\u8868 - \u9002\u914d\u4e0d\u540c\u9875\u9762\u7ed3\u6784 let _answerTmpArr = $(TiMuList[index]).find('.stem_answer').find('.answer_p') // \u8bb0\u5f55\u662f\u5426\u662f\u4f5c\u4e1a\u7f51\u9875\u6e90\u4ee3\u78012.html\u683c\u5f0f let isWorkPage2Format = false; // \u4f5c\u4e1a\u9875\u9762\u7279\u6b8a\u9009\u62e9\u5668 - \u589e\u52a0\u591a\u79cd\u53ef\u80fd\u7684\u9009\u62e9\u5668 if (_answerTmpArr.length === 0) { _answerTmpArr = $(TiMuList[index]).find('.mark_letter').find('li') // \u5c1d\u8bd5\u5176\u4ed6\u5e38\u89c1\u7684\u4f5c\u4e1a\u9009\u9879\u9009\u62e9\u5668 if (_answerTmpArr.length === 0) { _answerTmpArr = $(TiMuList[index]).find('.mark_letter li') } if (_answerTmpArr.length === 0) { _answerTmpArr = $(TiMuList[index]).find('ul.mark_letter li') } if (_answerTmpArr.length === 0) { _answerTmpArr = $(TiMuList[index]).find('.mark_letter > li') } // \u6dfb\u52a0\u5bf9\u4f5c\u4e1a\u7f51\u9875\u6e90\u4ee3\u78012.html\u4e2d\u7684\u9009\u62e9\u5668\u652f\u6301 if (_answerTmpArr.length === 0) { const answerBgElements = $(TiMuList[index]).find('.clearfix.answerBg'); if (answerBgElements.length > 0) { _answerTmpArr = answerBgElements; isWorkPage2Format = true; logger('\u68c0\u6d4b\u5230\u4f5c\u4e1a\u7f51\u9875\u6e90\u4ee3\u78012\u683c\u5f0f\u7684\u591a\u9009\u9898', 'blue'); } } } // \u7ae0\u8282\u6d4b\u9a8c\u9009\u62e9\u5668 if (_answerTmpArr.length === 0) { _answerTmpArr = $(TiMuList[index]).find('.stem_answer').find('li') } // \u5982\u679c\u4ecd\u7136\u6ca1\u627e\u5230\u9009\u9879,\u5c1d\u8bd5\u5176\u4ed6\u53ef\u80fd\u7684\u9009\u62e9\u5668 if (_answerTmpArr.length === 0) { _answerTmpArr = $(TiMuList[index]).find('.stem_answer').find('.fl') if (_answerTmpArr.length === 0) { logger(`\u7b2c ${index + 1} \u9898\u65e0\u6cd5\u627e\u5230\u9009\u9879\u5217\u8868,\u5c1d\u8bd5\u5176\u4ed6\u65b9\u5f0f`, 'orange') // \u5c1d\u8bd5\u66f4\u591a\u53ef\u80fd\u7684\u9009\u62e9\u5668 const possibleSelectors = [ 'ul.ulTop li', 'ul li', '.mark_option li', '.mark_option div', '.mark_option > div', '.mark_option .option', '.que-answer li', '.que-answer .option', '.que-answer-content li', '.que-answer-options li', '.mark_letter .mark_letter_item', '.mark_cont li', '.clearfix.answerBg', // \u4f5c\u4e1a\u7f51\u9875\u6e90\u4ee3\u78012.html\u4e2d\u7684\u9009\u62e9\u5668 '.stem_answer .clearfix', // \u901a\u7528\u9009\u62e9\u5668 '.stem_answer [class*="answer"]', // \u5305\u542banswer\u7684\u5143\u7d20 '[class*="option"]', // \u5305\u542boption\u7684\u5143\u7d20 '[class*="choice"]', // \u5305\u542bchoice\u7684\u5143\u7d20 '[role="checkbox"]' // ARIA\u89d2\u8272\u4e3acheckbox\u7684\u5143\u7d20 ]; // \u5c1d\u8bd5\u6bcf\u4e2a\u53ef\u80fd\u7684\u9009\u62e9\u5668 for (const selector of possibleSelectors) { _answerTmpArr = $(TiMuList[index]).find(selector); if (_answerTmpArr.length > 0) { logger(`\u4f7f\u7528\u9009\u62e9\u5668 "${selector}" \u627e\u5230\u4e86\u9009\u9879\u5217\u8868`, 'green'); break; } } } } // \u5982\u679c\u8fd8\u662f\u6ca1\u627e\u5230\u9009\u9879 if (_answerTmpArr.length === 0) { logger(`\u7b2c ${index + 1} \u9898\u65e0\u6cd5\u627e\u5230\u9009\u9879\u5217\u8868,\u8df3\u8fc7\u6b64\u9898`, 'red') setTimeout(() => { doWorkViewQuestion(index + 1, TiMuList) }, setting.time) return } // \u68c0\u67e5\u9898\u76ee\u662f\u5426\u5df2\u4f5c\u7b54 let isAnswered = false; let answeredCount = 0; for (var i = 0; i < _answerTmpArr.length; i++) { // \u68c0\u67e5\u591a\u79cd\u53ef\u80fd\u7684\u5df2\u7b54\u6807\u8bb0 const $option = $(_answerTmpArr[i]); const $parent = $option.parent(); if ( ($parent.find('span.check_answer').length > 0) || ($parent.find('span.check_answer_dx').length > 0) || ($option.hasClass('chosen')) || ($option.hasClass('selected')) || ($option.attr('aria-selected') === 'true') ) { answeredCount++; } } // \u5982\u679c\u6709\u4efb\u4f55\u9009\u9879\u88ab\u9009\u4e2d,\u8ba4\u4e3a\u9898\u76ee\u5df2\u4f5c\u7b54 if (answeredCount > 0) { logger(`\u7b2c ${index + 1} \u9898\u5df2\u4f5c\u7b54(${answeredCount}\u4e2a\u9009\u9879),\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u9898`, 'green') setTimeout(() => { doWorkViewQuestion(index + 1, TiMuList) }, 300); return; } // \u6784\u5efa\u9898\u76ee\u5185\u5bb9,\u5305\u542b\u9009\u9879 var mergedAnswers = [] _answerTmpArr.each(function () { var answerText = $(this).text().replace(/[ABCD]/g, '').trim() mergedAnswers.push(answerText) }) mergedAnswers = mergedAnswers.join("|") _question = "\u591a\u9009\u9898:" + _question + '\n' + mergedAnswers // \u83b7\u53d6\u7b54\u6848 getAnswer(_type, _question).then((agrs) => { // \u8c03\u8bd5\u4fe1\u606f logger(`\u83b7\u53d6\u5230\u7b54\u6848: ${agrs}`, 'blue') // \u68c0\u67e5\u7b54\u6848\u662f\u5426\u4e3a\u7a7a\u6216\u65e0\u6548 if (!agrs || agrs.trim() === '' || agrs.includes('\u672a\u627e\u5230\u7b54\u6848') || agrs === '\u6682\u65e0\u7b54\u6848' || agrs.includes('\u9519\u8bef:') || agrs.includes('\u9898\u76ee\u627e\u5230\u4f46\u7b54\u6848\u65e0\u6548') || agrs.includes('\u672a\u627e\u5230\u6709\u6548\u7b54\u6848')) { logger('\u672a\u83b7\u53d6\u5230\u6709\u6548\u7b54\u6848\u6216\u9898\u5e93\u8fd4\u56de\u9519\u8bef,\u8df3\u8fc7\u6b64\u9898', 'red'); localStorage.setItem('GPTJsSetting.sub', false); setTimeout(() => { doWorkViewQuestion(index + 1, TiMuList) }, setting.time); return; } // \u4fee\u6539\u9898\u76ee\u663e\u793a\u7b54\u6848(\u5982\u679c\u8bbe\u7f6e\u5141\u8bb8) if (localStorage.getItem('GPTJsSetting.alterTitle') === 'true') { let timuele = $(TiMuList[index]).find('.mark_name') timuele.html(timuele.html() + "

" + agrs) } // \u9009\u62e9\u5339\u914d\u7684\u9009\u9879 let selectedOptions = 0; $.each(_answerTmpArr, (i, t) => { const optionText = cleanTextContent($(t).html()); const $option = $(_answerTmpArr[i]); const $parent = $option.parent(); // \u5c1d\u8bd5\u7cbe\u786e\u5339\u914d if (agrs.indexOf(optionText) !== -1) { selectedOptions++; logger(`\u5339\u914d\u9009\u9879 ${i + 1}: ${optionText}`, 'green'); // \u5c1d\u8bd5\u591a\u79cd\u70b9\u51fb\u65b9\u5f0f setTimeout(() => { try { // \u7279\u6b8a\u5904\u7406\u4f5c\u4e1a\u7f51\u9875\u6e90\u4ee3\u78012.html\u683c\u5f0f if (isWorkPage2Format) { // \u4ece\u9009\u9879\u5143\u7d20\u83b7\u53d6\u9898\u76eeID const questionId = $option.attr('qid'); if (questionId) { logger(`\u68c0\u6d4b\u5230\u9898\u76eeID: ${questionId}`, 'green'); try { // \u65b9\u6cd51: \u5c1d\u8bd5\u76f4\u63a5\u8c03\u7528addChoice\u51fd\u6570 if (typeof addChoice === 'function') { logger('\u5c1d\u8bd5\u76f4\u63a5\u8c03\u7528addChoice\u51fd\u6570', 'green'); try { // \u76f4\u63a5\u8c03\u7528\u9875\u9762\u7684addChoice\u51fd\u6570 addChoice($option[0]); logger('addChoice\u51fd\u6570\u8c03\u7528\u6210\u529f', 'green'); } catch (e) { logger(`addChoice\u51fd\u6570\u8c03\u7528\u5931\u8d25: ${e.message},\u5c1d\u8bd5\u5176\u4ed6\u65b9\u6cd5`, 'red'); } } // \u83b7\u53d6\u9009\u9879\u6807\u7b7e const optionLabel = $option.find('.num_option').attr('data') || ''; // \u65b9\u6cd52: \u65e0\u8bbaaddChoice\u662f\u5426\u6210\u529f,\u90fd\u5c1d\u8bd5\u76f4\u63a5\u8bbe\u7f6e\u7b54\u6848\u503c const answerInput = $(`#answer${questionId}`); if (answerInput.length > 0) { // \u83b7\u53d6\u5f53\u524d\u503c const currentValue = answerInput.val() || ''; // \u6dfb\u52a0\u65b0\u9009\u9879,\u786e\u4fdd\u4e0d\u91cd\u590d if (!currentValue.includes(optionLabel)) { const newValue = currentValue ? (currentValue + optionLabel) : optionLabel; answerInput.val(newValue); logger(`\u8bbe\u7f6e\u591a\u9009\u7b54\u6848\u8868\u5355\u503c: ${newValue}`, 'green'); // \u89e6\u53d1change\u4e8b\u4ef6,\u786e\u4fdd\u503c\u88ab\u6b63\u786e\u5e94\u7528 answerInput.trigger('change'); } } // \u65b9\u6cd53: \u6dfb\u52a0\u9009\u4e2d\u6837\u5f0f const optionClass = `choice${questionId}`; $option.find(`.${optionClass}`).addClass('on'); // \u65b9\u6cd54: \u5c1d\u8bd5\u76f4\u63a5\u6267\u884conclick\u5c5e\u6027\u4e2d\u7684\u51fd\u6570 const onclickAttr = $option.attr('onclick'); if (onclickAttr && onclickAttr.includes('addChoice')) { logger('\u5c1d\u8bd5\u76f4\u63a5\u6267\u884conclick\u5c5e\u6027\u4e2d\u7684\u51fd\u6570', 'green'); try { // \u521b\u5efa\u5e76\u6267\u884c\u4e00\u4e2a\u65b0\u7684\u51fd\u6570,\u5185\u5bb9\u662fonclick\u5c5e\u6027\u7684\u503c const clickFunc = new Function($option[0], onclickAttr); clickFunc($option[0]); logger('onclick\u51fd\u6570\u6267\u884c\u6210\u529f', 'green'); } catch (e) { logger(`onclick\u51fd\u6570\u6267\u884c\u5931\u8d25: ${e.message}`, 'red'); } } // \u65b9\u6cd55: \u6a21\u62df\u70b9\u51fb\u4e8b\u4ef6 logger('\u6a21\u62df\u70b9\u51fb\u4e8b\u4ef6', 'green'); const clickEvent = new MouseEvent('click', { bubbles: true, cancelable: true, view: window }); $option[0].dispatchEvent(clickEvent); // \u65b9\u6cd56: \u4f7f\u7528jQuery\u7684click\u65b9\u6cd5 $option.click(); logger('\u5df2\u5c1d\u8bd5\u591a\u79cd\u65b9\u6cd5\u9009\u4e2d\u7b54\u6848', 'green'); return; // \u6210\u529f\u5904\u7406\u540e\u8fd4\u56de,\u4e0d\u6267\u884c\u540e\u7eed\u70b9\u51fb\u5c1d\u8bd5 } catch (e) { logger(`\u5904\u7406\u4f5c\u4e1a\u7f51\u9875\u6e90\u4ee3\u78012\u683c\u5f0f\u5931\u8d25: ${e.message},\u5c1d\u8bd5\u5176\u4ed6\u65b9\u6cd5`, 'red'); } } } // \u5e38\u89c4\u5904\u7406 - \u68c0\u67e5\u662f\u5426\u652f\u6301addChoice\u51fd\u6570 if (typeof addChoice === 'function' && $option.attr('onclick') && $option.attr('onclick').includes('addChoice')) { try { logger('\u68c0\u6d4b\u5230addChoice\u51fd\u6570,\u5c1d\u8bd5\u76f4\u63a5\u8c03\u7528', 'green'); addChoice($option[0]); } catch (e) { logger(`addChoice\u51fd\u6570\u8c03\u7528\u5931\u8d25: ${e.message}`, 'red'); } } // \u5c1d\u8bd5\u65b9\u6cd51: \u76f4\u63a5\u70b9\u51fb\u9009\u9879 $option.click(); // \u5c1d\u8bd5\u65b9\u6cd52: \u70b9\u51fb\u7236\u5143\u7d20 setTimeout(() => { $parent.click(); }, 50); // \u5c1d\u8bd5\u65b9\u6cd53: \u6a21\u62df\u70b9\u51fb\u4e8b\u4ef6 setTimeout(() => { const clickEvent = new MouseEvent('click', { bubbles: true, cancelable: true, view: window }); _answerTmpArr[i].dispatchEvent(clickEvent); }, 100); // \u5c1d\u8bd5\u65b9\u6cd54: jQuery\u89e6\u53d1\u70b9\u51fb setTimeout(() => { $option.trigger('click'); }, 150); // \u5c1d\u8bd5\u65b9\u6cd55: \u8bbe\u7f6e\u8868\u5355\u503c setTimeout(() => { // \u5c1d\u8bd5\u83b7\u53d6\u9898\u76eeID\u548c\u9009\u9879\u6807\u7b7e const questionId = $(TiMuList[index]).attr('id') || $(TiMuList[index]).attr('data'); const optionLabel = $option.find('.num_option').attr('data') || $option.find('.num_option').text().trim() || String.fromCharCode(65 + i); // A, B, C, D... if (questionId) { const numericId = questionId.replace(/\D/g, ''); if (numericId) { // \u5c1d\u8bd5\u76f4\u63a5\u8bbe\u7f6e\u7b54\u6848\u8868\u5355\u503c const answerInput = $(`#answer${numericId}`); if (answerInput.length > 0) { // \u83b7\u53d6\u5f53\u524d\u503c const currentValue = answerInput.val() || ''; // \u6dfb\u52a0\u65b0\u9009\u9879,\u786e\u4fdd\u4e0d\u91cd\u590d if (!currentValue.includes(optionLabel)) { const newValue = currentValue ? (currentValue + optionLabel) : optionLabel; answerInput.val(newValue); logger(`\u8bbe\u7f6e\u591a\u9009\u7b54\u6848\u8868\u5355\u503c: ${newValue}`, 'green'); } } } } }, 200); } catch (e) { logger(`\u70b9\u51fb\u9009\u9879 ${i + 1} \u5931\u8d25: ${e.message}`, 'red'); } }, 300 + (i * 200)); // \u9519\u5f00\u70b9\u51fb\u65f6\u95f4,\u907f\u514d\u51b2\u7a81 } else { // \u5982\u679c\u7cbe\u786e\u5339\u914d\u5931\u8d25,\u5c1d\u8bd5\u6a21\u7cca\u5339\u914d const similarity = calculateSimilarity(optionText, agrs); if (similarity > 0.7) { // \u8bbe\u7f6e\u66f4\u9ad8\u7684\u9608\u503c,\u56e0\u4e3a\u662f\u591a\u9009\u9898 selectedOptions++; logger(`\u6a21\u7cca\u5339\u914d\u9009\u9879 ${i + 1}: ${optionText},\u76f8\u4f3c\u5ea6: ${similarity}`, 'green'); setTimeout(() => { try { $option.click(); setTimeout(() => { $parent.click(); }, 50); } catch (e) { logger(`\u70b9\u51fb\u9009\u9879 ${i + 1} \u5931\u8d25: ${e.message}`, 'red'); } }, 300 + (i * 200)); } } }); if (selectedOptions > 0) { logger(`\u81ea\u52a8\u9009\u62e9\u4e86 ${selectedOptions} \u4e2a\u9009\u9879,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u9898`, 'green'); } else { logger('\u672a\u80fd\u5339\u914d\u5230\u4efb\u4f55\u9009\u9879,\u53ef\u80fd\u9700\u8981\u624b\u52a8\u9009\u62e9', 'red'); } // \u65e0\u8bba\u5982\u4f55,\u7ee7\u7eed\u4e0b\u4e00\u9898 setTimeout(() => { doWorkViewQuestion(index + 1, TiMuList) }, setting.time + (selectedOptions * 200)); }).catch((agrs) => { logger('\u83b7\u53d6\u7b54\u6848\u5931\u8d25,\u8df3\u8fc7\u6b64\u9898', 'red'); setTimeout(() => { doWorkViewQuestion(index + 1, TiMuList) }, setting.time); }) } /** * \u5904\u7406\u586b\u7a7a\u9898 */ function handleFillBlank(index, TiMuList, _question, _type) { logger(`\u5f00\u59cb\u5904\u7406\u7b2c ${index + 1} \u9898\u586b\u7a7a\u9898`, 'blue'); // \u68c0\u67e5\u662f\u5426\u4e3a\u4f5c\u4e1a\u9875\u9762\u7684\u586b\u7a7a\u9898 const currentQuestion = $(TiMuList[index]); const questionId = currentQuestion.attr('id') || currentQuestion.attr('data'); // \u68c0\u67e5\u9898\u76ee\u7c7b\u578b if (questionId) { const answerTypeInput = currentQuestion.find(`#answertype${questionId}`); if (answerTypeInput.length > 0) { const answerType = answerTypeInput.val(); if (answerType === '2') { // \u8fd9\u662f\u4f5c\u4e1a\u9875\u9762\u7684\u586b\u7a7a\u9898,\u4f7f\u7528\u4e13\u95e8\u7684\u5904\u7406\u51fd\u6570 return handleWorkPageFillBlank(index, TiMuList, currentQuestion, questionId, _question, _type); } } } // \u83b7\u53d6\u6587\u672c\u6846\u5217\u8868 - \u589e\u5f3a\u67e5\u627e\u80fd\u529b let _textareaList = []; // \u5c1d\u8bd5\u591a\u79cd\u53ef\u80fd\u7684\u586b\u7a7a\u6846\u9009\u62e9\u5668 const possibleSelectors = [ // \u6807\u51c6\u9009\u62e9\u5668 '.stem_answer .Answer .divText .textDIV textarea', '.stem_answer textarea', // \u4f5c\u4e1a\u9875\u9762\u5e38\u89c1\u9009\u62e9\u5668 '.mark_answer input[type="text"]', '.mark_answer textarea', '.mark_answer .blank', '.mark_answer [class*="blank"]', '.mark_answer [class*="fill"]', '.mark_answer .fillblank', '.mark_answer .fill_answer', // \u901a\u7528\u9009\u62e9\u5668 'input[type="text"]', 'textarea.blank', '.blank', '[class*="blank"]', '[class*="fill"]' ]; // \u5728\u5f53\u524d\u9898\u76ee\u4e2d\u5c1d\u8bd5\u5404\u79cd\u9009\u62e9\u5668 for (const selector of possibleSelectors) { const elements = $(TiMuList[index]).find(selector); if (elements.length > 0) { logger(`\u4f7f\u7528\u9009\u62e9\u5668 "${selector}" \u627e\u5230 ${elements.length} \u4e2a\u586b\u7a7a\u6846`, 'green'); _textareaList = elements.toArray(); break; } } // \u5982\u679c\u4ecd\u7136\u6ca1\u627e\u5230,\u5c1d\u8bd5\u5728\u6574\u4e2a\u6587\u6863\u4e2d\u67e5\u627e if (_textareaList.length === 0) { logger('\u5728\u9898\u76ee\u5185\u672a\u627e\u5230\u586b\u7a7a\u6846,\u5c1d\u8bd5\u5728\u6574\u4e2a\u6587\u6863\u4e2d\u67e5\u627e', 'orange'); // \u5c1d\u8bd5\u67e5\u627e\u53ef\u80fd\u4e0e\u5f53\u524d\u9898\u76ee\u76f8\u5173\u7684\u586b\u7a7a\u6846 const questionId = $(TiMuList[index]).attr('id') || ''; const questionIndex = index + 1; for (const selector of possibleSelectors) { // \u5148\u5c1d\u8bd5\u67e5\u627e\u4e0e\u9898\u76eeID\u6216\u7d22\u5f15\u76f8\u5173\u7684\u5143\u7d20 let elements = $(`[id*="${questionId}"] ${selector}, [id*="question${questionIndex}"] ${selector}, [id*="q${questionIndex}"] ${selector}`); // \u5982\u679c\u6ca1\u627e\u5230,\u5c1d\u8bd5\u4e00\u822c\u9009\u62e9\u5668 if (elements.length === 0) { elements = $(selector); } if (elements.length > 0) { logger(`\u5728\u6587\u6863\u4e2d\u4f7f\u7528\u9009\u62e9\u5668 "${selector}" \u627e\u5230 ${elements.length} \u4e2a\u586b\u7a7a\u6846`, 'green'); _textareaList = elements.toArray(); break; } } // \u5c1d\u8bd5\u5728iframe\u4e2d\u67e5\u627e if (_textareaList.length === 0) { try { const iframes = document.querySelectorAll('iframe'); logger(`\u5c1d\u8bd5\u5728 ${iframes.length} \u4e2aiframe\u4e2d\u67e5\u627e\u586b\u7a7a\u6846`, 'blue'); for (const iframe of iframes) { try { const iframeDoc = iframe.contentDocument || iframe.contentWindow.document; // \u5728iframe\u4e2d\u5c1d\u8bd5\u6240\u6709\u53ef\u80fd\u7684\u9009\u62e9\u5668 for (const selector of possibleSelectors) { const elements = $(iframeDoc).find(selector); if (elements.length > 0) { logger(`\u5728iframe\u4e2d\u4f7f\u7528\u9009\u62e9\u5668 "${selector}" \u627e\u5230 ${elements.length} \u4e2a\u586b\u7a7a\u6846`, 'green'); _textareaList = elements.toArray(); break; } } if (_textareaList.length > 0) break; } catch (e) { // \u8de8\u57dfiframe\u65e0\u6cd5\u8bbf\u95ee continue; } } } catch (e) { logger(`\u5728iframe\u4e2d\u67e5\u627e\u586b\u7a7a\u6846\u65f6\u51fa\u9519: ${e.message}`, 'red'); } } } // \u5982\u679c\u4ecd\u7136\u6ca1\u627e\u5230\u586b\u7a7a\u6846 if (_textareaList.length === 0) { logger(`\u7b2c ${index + 1} \u9898\u672a\u627e\u5230\u586b\u7a7a\u6846,\u8df3\u8fc7\u6b64\u9898`, 'red'); setTimeout(() => { doWorkViewQuestion(index + 1, TiMuList) }, setting.time); return; } logger(`\u627e\u5230 ${_textareaList.length} \u4e2a\u586b\u7a7a\u6846`, 'green'); // \u4e0d\u518d\u5224\u65ad\u9898\u76ee\u662f\u5426\u5df2\u4f5c\u7b54,\u800c\u662f\u6e05\u7a7a\u73b0\u6709\u5185\u5bb9\u5e76\u91cd\u65b0\u586b\u5199 // \u6e05\u7a7a\u6240\u6709\u6587\u672c\u6846\u5185\u5bb9 for (const textarea of _textareaList) { const $textarea = $(textarea); const _id = $textarea.attr('id'); // \u68c0\u67e5UEditor\u5185\u5bb9\u5e76\u6e05\u7a7a if (_id && typeof UE !== 'undefined' && UE.getEditor && UE.getEditor(_id)) { const editor = UE.getEditor(_id); const content = editor.getContent(); if (content && content !== '') { logger(`\u6e05\u7a7a\u7b2c ${index + 1} \u9898\u5df2\u6709\u5185\u5bb9,\u51c6\u5907\u91cd\u65b0\u586b\u5199`, 'orange'); editor.setContent(''); // \u6e05\u7a7a\u5185\u5bb9 } } else if ($textarea.is('input') || $textarea.is('textarea')) { // \u6e05\u7a7a\u666e\u901ainput/textarea\u5185\u5bb9 if ($textarea.val() && $textarea.val().trim() !== '') { $textarea.val(''); $textarea.trigger('input').trigger('change'); } } } // \u6784\u5efa\u9898\u76ee\u5185\u5bb9 _question = "\u586b\u7a7a\u9898,\u7528\"|\"\u5206\u5272\u591a\u4e2a\u7b54\u6848:" + _question; // \u83b7\u53d6\u7b54\u6848 getAnswer(_type, _question).then((agrs) => { logger(`\u83b7\u53d6\u5230\u7b54\u6848: ${agrs}`, 'green'); // \u89e3\u6790\u7b54\u6848,\u5904\u7406\u591a\u4e2a\u7a7a\u7684\u60c5\u51b5 let _answerTmpArr = agrs.split('|'); logger(`\u89e3\u6790\u51fa ${_answerTmpArr.length} \u4e2a\u7b54\u6848`, 'blue'); // \u586b\u5199\u7b54\u6848\u5230\u6bcf\u4e2a\u6587\u672c\u6846 let filledCount = 0; for (let i = 0; i < _textareaList.length; i++) { const textarea = _textareaList[i]; const $textarea = $(textarea); const _currentId = $textarea.attr('id'); // \u83b7\u53d6\u5f53\u524d\u7a7a\u5bf9\u5e94\u7684\u7b54\u6848,\u5982\u679c\u6ca1\u6709\u5bf9\u5e94\u7d22\u5f15\u7684\u7b54\u6848,\u4f7f\u7528\u7b2c\u4e00\u4e2a\u7b54\u6848 const answerText = _answerTmpArr[i] || _answerTmpArr[0]; try { // \u5c1d\u8bd5\u4f7f\u7528UEditor\u586b\u5199 if (_currentId && typeof UE !== 'undefined' && UE.getEditor) { try { let editor = UE.getEditor(_currentId); if (editor) { setTimeout(() => { try { editor.setContent(answerText); logger(`\u4f7f\u7528UEditor\u6210\u529f\u586b\u5199\u7b2c ${i + 1} \u4e2a\u7a7a: ${answerText}`, 'green'); filledCount++; } catch (e) { logger(`\u4f7f\u7528UEditor\u586b\u5199\u7b2c ${i + 1} \u4e2a\u7a7a\u5931\u8d25: ${e.message}`, 'red'); } }, 300); continue; // \u5982\u679c\u4f7f\u7528UEditor\u6210\u529f,\u8df3\u8fc7\u540e\u7eed\u65b9\u6cd5 } } catch (e) { logger(`\u4f7f\u7528UEditor\u586b\u5199\u7b2c ${i + 1} \u4e2a\u7a7a\u65f6\u51fa\u9519: ${e.message}`, 'red'); } } // \u5c1d\u8bd5\u76f4\u63a5\u8bbe\u7f6einput/textarea\u503c if ($textarea.is('input') || $textarea.is('textarea')) { $textarea.val(answerText); // \u89e6\u53d1change\u4e8b\u4ef6,\u786e\u4fdd\u503c\u88ab\u6b63\u786e\u5904\u7406 $textarea.trigger('input').trigger('change'); logger(`\u76f4\u63a5\u8bbe\u7f6e\u7b2c ${i + 1} \u4e2a\u7a7a\u7684\u503c\u6210\u529f: ${answerText}`, 'green'); filledCount++; } else { // \u5982\u679c\u4e0d\u662f\u6807\u51c6\u8f93\u5165\u5143\u7d20,\u5c1d\u8bd5\u5176\u4ed6\u65b9\u6cd5 $textarea.text(answerText); $textarea.attr('value', answerText); logger(`\u5c1d\u8bd5\u5176\u4ed6\u65b9\u6cd5\u8bbe\u7f6e\u7b2c ${i + 1} \u4e2a\u7a7a\u7684\u503c: ${answerText}`, 'orange'); filledCount++; } } catch (e) { logger(`\u586b\u5199\u7b2c ${i + 1} \u4e2a\u7a7a\u65f6\u51fa\u9519: ${e.message}`, 'red'); } } if (filledCount > 0) { logger(`\u6210\u529f\u586b\u5199\u4e86 ${filledCount}/${_textareaList.length} \u4e2a\u7a7a,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u9898`, 'green'); } else { logger('\u586b\u5199\u7b54\u6848\u53ef\u80fd\u4e0d\u6210\u529f,\u4f46\u4ecd\u5c06\u7ee7\u7eed\u4e0b\u4e00\u9898', 'orange'); } setTimeout(() => { doWorkViewQuestion(index + 1, TiMuList) }, setting.time); }).catch((error) => { logger(`\u83b7\u53d6\u7b54\u6848\u5931\u8d25: ${error},\u4f7f\u7528\u9ed8\u8ba4\u7b54\u6848`, 'orange'); // \u4f7f\u7528\u9ed8\u8ba4\u7b54\u6848 const defaultAnswer = '6666'; logger(`\u4f7f\u7528\u9ed8\u8ba4\u7b54\u6848: ${defaultAnswer}`, 'orange'); // \u586b\u5199\u9ed8\u8ba4\u7b54\u6848\u5230\u6bcf\u4e2a\u6587\u672c\u6846 let filledCount = 0; for (let i = 0; i < _textareaList.length; i++) { const textarea = _textareaList[i]; const $textarea = $(textarea); const _currentId = $textarea.attr('id'); try { // \u5c1d\u8bd5\u4f7f\u7528UEditor\u586b\u5199 if (_currentId && typeof UE !== 'undefined' && UE.getEditor) { try { let editor = UE.getEditor(_currentId); if (editor) { setTimeout(() => { try { editor.setContent(defaultAnswer); logger(`\u4f7f\u7528UEditor\u6210\u529f\u586b\u5199\u7b2c ${i + 1} \u4e2a\u7a7a: ${defaultAnswer}`, 'green'); filledCount++; } catch (e) { logger(`\u4f7f\u7528UEditor\u586b\u5199\u7b2c ${i + 1} \u4e2a\u7a7a\u5931\u8d25: ${e.message}`, 'red'); } }, 300); continue; // \u5982\u679c\u4f7f\u7528UEditor\u6210\u529f,\u8df3\u8fc7\u540e\u7eed\u65b9\u6cd5 } } catch (e) { logger(`\u4f7f\u7528UEditor\u586b\u5199\u7b2c ${i + 1} \u4e2a\u7a7a\u65f6\u51fa\u9519: ${e.message}`, 'red'); } } // \u5c1d\u8bd5\u76f4\u63a5\u8bbe\u7f6einput/textarea\u503c if ($textarea.is('input') || $textarea.is('textarea')) { $textarea.val(defaultAnswer); // \u89e6\u53d1change\u4e8b\u4ef6,\u786e\u4fdd\u503c\u88ab\u6b63\u786e\u5904\u7406 $textarea.trigger('input').trigger('change'); logger(`\u76f4\u63a5\u8bbe\u7f6e\u7b2c ${i + 1} \u4e2a\u7a7a\u7684\u503c\u6210\u529f: ${defaultAnswer}`, 'green'); filledCount++; } else { // \u5982\u679c\u4e0d\u662f\u6807\u51c6\u8f93\u5165\u5143\u7d20,\u5c1d\u8bd5\u5176\u4ed6\u65b9\u6cd5 $textarea.text(defaultAnswer); $textarea.attr('value', defaultAnswer); logger(`\u5c1d\u8bd5\u5176\u4ed6\u65b9\u6cd5\u8bbe\u7f6e\u7b2c ${i + 1} \u4e2a\u7a7a\u7684\u503c: ${defaultAnswer}`, 'orange'); filledCount++; } } catch (e) { logger(`\u586b\u5199\u7b2c ${i + 1} \u4e2a\u7a7a\u65f6\u51fa\u9519: ${e.message}`, 'red'); } } if (filledCount > 0) { logger(`\u6210\u529f\u586b\u5199\u4e86 ${filledCount}/${_textareaList.length} \u4e2a\u7a7a,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u9898`, 'green'); } else { logger('\u586b\u5199\u7b54\u6848\u53ef\u80fd\u4e0d\u6210\u529f,\u4f46\u4ecd\u5c06\u7ee7\u7eed\u4e0b\u4e00\u9898', 'orange'); } setTimeout(() => { doWorkViewQuestion(index + 1, TiMuList) }, setting.time); }); } /** * \u5904\u7406\u4f5c\u4e1a\u9875\u9762\u7684\u586b\u7a7a\u9898 * \u4e13\u95e8\u5904\u7406answertype=2\u7684\u586b\u7a7a\u9898 */ function handleWorkPageFillBlank(index, TiMuList, currentQuestion, questionId, _question, _type) { logger(`\u5f00\u59cb\u5904\u7406\u4f5c\u4e1a\u9875\u9762\u7684\u586b\u7a7a\u9898,\u9898\u76eeID: ${questionId}`, 'blue'); // \u83b7\u53d6\u586b\u7a7a\u6570\u91cf const tiankongSizeInput = currentQuestion.find(`input[name="tiankongsize${questionId}"]`); const blankCount = parseInt(tiankongSizeInput.val() || "1"); logger(`\u586b\u7a7a\u9898\u6709 ${blankCount} \u4e2a\u7a7a`, 'blue'); // \u6784\u5efa\u9898\u76ee\u5185\u5bb9 _question = "\u586b\u7a7a\u9898,\u7528\"|\"\u5206\u5272\u591a\u4e2a\u7b54\u6848:" + _question; // \u83b7\u53d6\u7b54\u6848 getAnswer(_type, _question).then((agrs) => { logger(`\u83b7\u53d6\u5230\u7b54\u6848: ${agrs}`, 'green'); // \u68c0\u67e5\u7b54\u6848\u662f\u5426\u4e3a\u7a7a\u6216\u65e0\u6548 if (!agrs || agrs.trim() === '' || agrs.includes('\u672a\u627e\u5230\u7b54\u6848') || agrs === '\u6682\u65e0\u7b54\u6848' || agrs.includes('\u9519\u8bef:') || agrs.includes('\u9898\u76ee\u627e\u5230\u4f46\u7b54\u6848\u65e0\u6548') || agrs.includes('\u672a\u627e\u5230\u6709\u6548\u7b54\u6848')) { logger('\u83b7\u53d6\u5230\u7684\u7b54\u6848\u65e0\u6548,\u4f7f\u7528\u9ed8\u8ba4\u7b54\u6848: 6666', 'orange'); agrs = '6666'; // \u8bbe\u7f6e\u9ed8\u8ba4\u7b54\u6848 } // \u89e3\u6790\u7b54\u6848,\u5904\u7406\u591a\u4e2a\u7a7a\u7684\u60c5\u51b5 let blankAnswers = []; // \u5c1d\u8bd5\u591a\u79cd\u5206\u9694\u7b26 if (agrs.includes('###')) { blankAnswers = agrs.split('###'); } else if (agrs.includes(';')) { blankAnswers = agrs.split(';'); } else if (agrs.includes(';')) { blankAnswers = agrs.split(';'); } else if (agrs.includes('、')) { blankAnswers = agrs.split('、'); } else if (agrs.includes(',')) { blankAnswers = agrs.split(','); } else if (agrs.includes(',')) { blankAnswers = agrs.split(','); } else if (agrs.includes('|')) { blankAnswers = agrs.split('|'); } else { // \u5982\u679c\u6ca1\u6709\u5206\u9694\u7b26,\u6574\u4e2a\u7b54\u6848\u4f5c\u4e3a\u4e00\u4e2a\u7a7a\u7684\u7b54\u6848 blankAnswers = [agrs]; } // \u6e05\u7406\u7b54\u6848 blankAnswers = blankAnswers.map(ans => ans.trim()).filter(ans => ans); logger(`\u89e3\u6790\u51fa ${blankAnswers.length} \u4e2a\u7a7a\u7684\u7b54\u6848`, 'blue'); // \u586b\u5199\u6bcf\u4e2a\u7a7a\u7684\u7b54\u6848 let filledCount = 0; for (let i = 1; i <= blankCount; i++) { const editorId = `answerEditor${questionId}${i}`; // \u83b7\u53d6\u5f53\u524d\u7a7a\u5bf9\u5e94\u7684\u7b54\u6848,\u5982\u679c\u6ca1\u6709\u5bf9\u5e94\u7d22\u5f15\u7684\u7b54\u6848,\u4f7f\u7528\u7b2c\u4e00\u4e2a\u7b54\u6848 const answerContent = (i <= blankAnswers.length) ? blankAnswers[i - 1] : (blankAnswers.length > 0 ? blankAnswers[0] : ""); try { // \u5c1d\u8bd5\u4f7f\u7528UEditor\u586b\u5199 if (typeof UE !== 'undefined' && UE.getEditor) { let editor = UE.getEditor(editorId); if (editor) { setTimeout(() => { try { editor.setContent(`

${answerContent}

`); editor.sync(); // \u540c\u6b65\u5185\u5bb9\u5230\u8868\u5355 logger(`\u6210\u529f\u586b\u5199\u7b2c ${i} \u4e2a\u7a7a: ${answerContent}`, 'green'); filledCount++; } catch (e) { logger(`\u586b\u5199\u7b2c ${i} \u4e2a\u7a7a\u5931\u8d25: ${e.message}`, 'red'); } }, 300 * i); // \u9519\u5f00\u65f6\u95f4,\u907f\u514d\u51b2\u7a81 } else { // \u5982\u679c\u627e\u4e0d\u5230\u7f16\u8f91\u5668,\u5c1d\u8bd5\u76f4\u63a5\u8bbe\u7f6e\u8868\u5355\u503c const formField = $(`#${editorId}`); if (formField.length > 0) { formField.val(`

${answerContent}

`); formField.trigger('change'); logger(`\u76f4\u63a5\u8bbe\u7f6e\u7b2c ${i} \u4e2a\u7a7a\u7684\u8868\u5355\u503c: ${answerContent}`, 'green'); filledCount++; } else { logger(`\u672a\u627e\u5230\u7b2c ${i} \u4e2a\u7a7a\u7684\u7f16\u8f91\u5668\u6216\u8868\u5355\u5b57\u6bb5`, 'red'); } } } else { logger('UEditor\u672a\u5b9a\u4e49,\u65e0\u6cd5\u586b\u5199\u7b54\u6848', 'red'); } } catch (e) { logger(`\u5904\u7406\u7b2c ${i} \u4e2a\u7a7a\u65f6\u51fa\u9519: ${e.message}`, 'red'); } } if (filledCount > 0) { logger(`\u6210\u529f\u586b\u5199\u4e86 ${filledCount}/${blankCount} \u4e2a\u7a7a,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u9898`, 'green'); } else { logger('\u586b\u5199\u7b54\u6848\u53ef\u80fd\u4e0d\u6210\u529f,\u4f46\u4ecd\u5c06\u7ee7\u7eed\u4e0b\u4e00\u9898', 'orange'); } setTimeout(() => { doWorkViewQuestion(index + 1, TiMuList) }, setting.time + (blankCount * 300)); }).catch((error) => { logger(`\u83b7\u53d6\u7b54\u6848\u5931\u8d25: ${error},\u4f7f\u7528\u9ed8\u8ba4\u7b54\u6848`, 'orange'); // \u4f7f\u7528\u9ed8\u8ba4\u7b54\u6848 const defaultAnswer = '6666'; logger(`\u4f7f\u7528\u9ed8\u8ba4\u7b54\u6848: ${defaultAnswer}`, 'orange'); // \u586b\u5199\u9ed8\u8ba4\u7b54\u6848\u5230\u6bcf\u4e2a\u7a7a let filledCount = 0; for (let i = 1; i <= blankCount; i++) { const editorId = `answerEditor${questionId}${i}`; try { // \u5c1d\u8bd5\u4f7f\u7528UEditor\u586b\u5199 if (typeof UE !== 'undefined' && UE.getEditor) { let editor = UE.getEditor(editorId); if (editor) { setTimeout(() => { try { editor.setContent(`

${defaultAnswer}

`); editor.sync(); // \u540c\u6b65\u5185\u5bb9\u5230\u8868\u5355 logger(`\u6210\u529f\u586b\u5199\u7b2c ${i} \u4e2a\u7a7a: ${defaultAnswer}`, 'green'); filledCount++; } catch (e) { logger(`\u586b\u5199\u7b2c ${i} \u4e2a\u7a7a\u5931\u8d25: ${e.message}`, 'red'); } }, 300 * i); // \u9519\u5f00\u65f6\u95f4,\u907f\u514d\u51b2\u7a81 } else { // \u5982\u679c\u627e\u4e0d\u5230\u7f16\u8f91\u5668,\u5c1d\u8bd5\u76f4\u63a5\u8bbe\u7f6e\u8868\u5355\u503c const formField = $(`#${editorId}`); if (formField.length > 0) { formField.val(`

${defaultAnswer}

`); formField.trigger('change'); logger(`\u76f4\u63a5\u8bbe\u7f6e\u7b2c ${i} \u4e2a\u7a7a\u7684\u8868\u5355\u503c: ${defaultAnswer}`, 'green'); filledCount++; } else { logger(`\u672a\u627e\u5230\u7b2c ${i} \u4e2a\u7a7a\u7684\u7f16\u8f91\u5668\u6216\u8868\u5355\u5b57\u6bb5`, 'red'); } } } else { logger('UEditor\u672a\u5b9a\u4e49,\u65e0\u6cd5\u586b\u5199\u7b54\u6848', 'red'); } } catch (e) { logger(`\u5904\u7406\u7b2c ${i} \u4e2a\u7a7a\u65f6\u51fa\u9519: ${e.message}`, 'red'); } } if (filledCount > 0) { logger(`\u6210\u529f\u586b\u5199\u4e86 ${filledCount}/${blankCount} \u4e2a\u7a7a,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u9898`, 'green'); } else { logger('\u586b\u5199\u7b54\u6848\u53ef\u80fd\u4e0d\u6210\u529f,\u4f46\u4ecd\u5c06\u7ee7\u7eed\u4e0b\u4e00\u9898', 'orange'); } setTimeout(() => { doWorkViewQuestion(index + 1, TiMuList) }, setting.time + (blankCount * 300)); }); } /** * \u5904\u7406\u5224\u65ad\u9898 */ function handleJudgment(index, TiMuList, _question, _type) { // \u83b7\u53d6\u9009\u9879\u5217\u8868 - \u9002\u914d\u4e0d\u540c\u9875\u9762\u7ed3\u6784 let _answerTmpArr = $(TiMuList[index]).find('.stem_answer').find('.answer_p') // \u4f5c\u4e1a\u9875\u9762\u7279\u6b8a\u9009\u62e9\u5668 if (_answerTmpArr.length === 0) { _answerTmpArr = $(TiMuList[index]).find('.mark_letter').find('li') } // \u7ae0\u8282\u6d4b\u9a8c\u9009\u62e9\u5668 if (_answerTmpArr.length === 0) { _answerTmpArr = $(TiMuList[index]).find('.stem_answer').find('li') } // \u6dfb\u52a0\u5bf9\u4f5c\u4e1a\u7f51\u9875\u6e90\u4ee3\u78012.html\u4e2d\u7684\u9009\u62e9\u5668\u652f\u6301 if (_answerTmpArr.length === 0) { // \u5148\u5c1d\u8bd5\u67e5\u627e\u5224\u65ad\u9898\u7684\u9009\u62e9\u5668(clearfix answerBg) const answerBgElements = $(TiMuList[index]).find('.clearfix.answerBg'); if (answerBgElements.length > 0) { _answerTmpArr = answerBgElements; logger('\u68c0\u6d4b\u5230\u4f5c\u4e1a\u7f51\u9875\u6e90\u4ee3\u78012\u683c\u5f0f\u7684\u5224\u65ad\u9898', 'blue'); } else { // \u518d\u5c1d\u8bd5\u67e5\u627e\u5355\u9009\u9898\u7684\u9009\u62e9\u5668(clearfix answerBg workTextWrap) const answerBgWorkTextElements = $(TiMuList[index]).find('.clearfix.answerBg.workTextWrap'); if (answerBgWorkTextElements.length > 0) { _answerTmpArr = answerBgWorkTextElements; logger('\u68c0\u6d4b\u5230\u4f5c\u4e1a\u7f51\u9875\u6e90\u4ee3\u78012\u683c\u5f0f\u7684\u5355\u9009\u9898\u4f5c\u4e3a\u5224\u65ad\u9898\u5904\u7406', 'blue'); } } } // \u5982\u679c\u4ecd\u7136\u6ca1\u627e\u5230\u9009\u9879,\u5c1d\u8bd5\u5176\u4ed6\u53ef\u80fd\u7684\u9009\u62e9\u5668 if (_answerTmpArr.length === 0) { _answerTmpArr = $(TiMuList[index]).find('.stem_answer').find('.fl') if (_answerTmpArr.length === 0) { logger(`\u7b2c ${index + 1} \u9898\u65e0\u6cd5\u627e\u5230\u9009\u9879\u5217\u8868,\u5c1d\u8bd5\u5176\u4ed6\u65b9\u5f0f`, 'orange') _answerTmpArr = $(TiMuList[index]).find('ul.ulTop li') if (_answerTmpArr.length === 0) { _answerTmpArr = $(TiMuList[index]).find('ul li') } } } // \u5982\u679c\u8fd8\u662f\u6ca1\u627e\u5230\u9009\u9879 if (_answerTmpArr.length === 0) { logger(`\u7b2c ${index + 1} \u9898\u65e0\u6cd5\u627e\u5230\u9009\u9879\u5217\u8868,\u8df3\u8fc7\u6b64\u9898`, 'red') setTimeout(() => { doWorkViewQuestion(index + 1, TiMuList) }, setting.time) return } // \u68c0\u67e5\u9898\u76ee\u662f\u5426\u5df2\u4f5c\u7b54 let isAnswered = false; for (var i = 0; i < _answerTmpArr.length; i++) { // \u68c0\u67e5\u591a\u79cd\u53ef\u80fd\u7684\u5df2\u7b54\u6807\u8bb0 const $option = $(_answerTmpArr[i]); const $parent = $option.parent(); if ( ($parent.find('span.check_answer').length > 0) || ($parent.find('span.check_answer_dx').length > 0) || ($option.hasClass('chosen')) || ($option.hasClass('selected')) || ($option.attr('aria-selected') === 'true') ) { logger(`\u7b2c ${index + 1} \u9898\u5df2\u4f5c\u7b54,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u9898`, 'green') isAnswered = true; break; } } if (isAnswered) { setTimeout(() => { doWorkViewQuestion(index + 1, TiMuList) }, 300); return; } // \u6784\u5efa\u9898\u76ee\u5185\u5bb9 _question = "\u5224\u65ad\u9898(\u53ea\u56de\u7b54\u6b63\u786e\u6216\u9519\u8bef):" + _question if (_answerTmpArr.length > 0) { _question += '\n' + _answerTmpArr.text() } let _a = [] $.each(_answerTmpArr, (i, t) => { _a.push($(t).text().trim()) }) // \u83b7\u53d6\u7b54\u6848 getAnswer(_type, _question).then((agrs) => { let _true = '\u6b63\u786e|\u662f|\u5bf9|√|T|ri' let _false = '\u9519\u8bef|\u5426|\u9519|×|F|wr' let _i = -1 // \u68c0\u67e5\u662f\u5426\u4e3a\u9519\u8bef\u4fe1\u606f if (agrs.includes('\u672a\u627e\u5230\u7b54\u6848') || agrs === '\u6682\u65e0\u7b54\u6848' || agrs.includes('\u9519\u8bef:') || agrs.includes('\u9898\u76ee\u627e\u5230\u4f46\u7b54\u6848\u65e0\u6548') || agrs.includes('\u672a\u627e\u5230\u6709\u6548\u7b54\u6848')) { // \u8bb0\u5f55\u9519\u8bef\u4f46\u7ee7\u7eed\u5c1d\u8bd5\u5904\u7406 logger('\u9898\u5e93\u8fd4\u56de\u9519\u8bef\u4fe1\u606f,\u5c1d\u8bd5\u968f\u673a\u9009\u62e9', 'orange'); // \u968f\u673a\u9009\u62e9\u4e00\u4e2a\u9009\u9879 _i = Math.floor(Math.random() * _answerTmpArr.length); logger(`\u968f\u673a\u9009\u62e9\u9009\u9879: ${_i + 1}`, 'orange'); } else if (_true.indexOf(agrs) != -1) { _i = _a.findIndex((item) => _true.indexOf(item) != -1) logger(`\u5339\u914d\u5230"\u6b63\u786e"\u9009\u9879`, 'green'); } else if (_false.indexOf(agrs) != -1) { _i = _a.findIndex((item) => _false.indexOf(item) != -1) logger(`\u5339\u914d\u5230"\u9519\u8bef"\u9009\u9879`, 'green'); } else { logger('\u7b54\u6848\u5339\u914d\u51fa\u9519,\u5c1d\u8bd5\u968f\u673a\u9009\u62e9', 'red') // \u968f\u673a\u9009\u62e9\u4e00\u4e2a\u9009\u9879 _i = Math.floor(Math.random() * _answerTmpArr.length); logger(`\u968f\u673a\u9009\u62e9\u9009\u9879: ${_i + 1}`, 'orange'); } // \u5982\u679c\u4ecd\u7136\u6ca1\u6709\u627e\u5230\u5339\u914d\u9879,\u968f\u673a\u9009\u62e9\u4e00\u4e2a\u9009\u9879 if (_i === -1) { logger('\u6240\u6709\u5339\u914d\u65b9\u6cd5\u5747\u5931\u8d25,\u968f\u673a\u9009\u62e9\u4e00\u4e2a\u9009\u9879', 'orange'); _i = Math.floor(Math.random() * _answerTmpArr.length); logger(`\u968f\u673a\u9009\u62e9\u9009\u9879: ${_i + 1}`, 'orange'); } if (_i !== -1) { setTimeout(() => { try { // \u5c1d\u8bd5\u591a\u79cd\u70b9\u51fb\u65b9\u5f0f const $option = $(_answerTmpArr[_i]); const $parent = $option.parent(); const $grandparent = $parent.parent(); logger(`\u70b9\u51fb\u5224\u65ad\u9898\u9009\u9879: ${_i + 1}`, 'green'); // \u83b7\u53d6\u9898\u76eeID const questionId = $(TiMuList[index]).attr('id') || $(TiMuList[index]).attr('data'); if (questionId) { logger(`\u9898\u76eeID: ${questionId}`, 'green'); // \u5c1d\u8bd5\u65b9\u6cd51: \u76f4\u63a5\u8c03\u7528addChoice\u51fd\u6570 if (typeof addChoice === 'function') { logger('\u5c1d\u8bd5\u76f4\u63a5\u8c03\u7528addChoice\u51fd\u6570', 'green'); try { // \u76f4\u63a5\u8c03\u7528\u9875\u9762\u7684addChoice\u51fd\u6570 addChoice($option[0]); logger('addChoice\u51fd\u6570\u8c03\u7528\u6210\u529f', 'green'); } catch (e) { logger(`addChoice\u51fd\u6570\u8c03\u7528\u5931\u8d25: ${e.message},\u5c1d\u8bd5\u5176\u4ed6\u65b9\u6cd5`, 'red'); } } // \u5c1d\u8bd5\u65b9\u6cd52: \u8bbe\u7f6e\u7b54\u6848\u503c\u548cARIA\u5c5e\u6027 const answerInput = $(`#answer${questionId}`); if (answerInput.length > 0) { // \u83b7\u53d6\u9009\u9879\u503c - \u5224\u65ad\u9898\u9700\u8981\u83b7\u53d6true/false\u503c let optionLabel = $option.find('.num_option').attr('data') || ''; // \u8bbe\u7f6e\u7b54\u6848\u503c answerInput.val(optionLabel); logger(`\u8bbe\u7f6e\u7b54\u6848\u8f93\u5165\u6846\u503c: ${optionLabel}`, 'green'); // \u89e6\u53d1change\u4e8b\u4ef6,\u786e\u4fdd\u503c\u88ab\u6b63\u786e\u5e94\u7528 answerInput.trigger('change'); // \u6dfb\u52a0\u9009\u4e2d\u6837\u5f0f\u5230num_option\u5143\u7d20 $option.find('.num_option').addClass('check_answer'); } // \u8bbe\u7f6eARIA\u5c5e\u6027 $option.attr('aria-checked', 'true'); $option.attr('aria-pressed', 'true'); } // \u5c1d\u8bd5\u65b9\u6cd53: \u76f4\u63a5\u70b9\u51fb\u9009\u9879 $option.click(); // \u5c1d\u8bd5\u65b9\u6cd54: \u70b9\u51fb\u7236\u5143\u7d20 setTimeout(() => { $parent.click(); }, 50); // \u5c1d\u8bd5\u65b9\u6cd55: \u70b9\u51fb\u7956\u7236\u5143\u7d20 setTimeout(() => { $grandparent.click(); }, 100); // \u5c1d\u8bd5\u65b9\u6cd56: \u6a21\u62df\u70b9\u51fb\u4e8b\u4ef6\u5e8f\u5217 setTimeout(() => { // \u6a21\u62df\u9f20\u6807\u70b9\u51fb ['mousedown', 'mouseup', 'click'].forEach(eventType => { const event = new MouseEvent(eventType, { bubbles: true, cancelable: true, view: window }); _answerTmpArr[_i].dispatchEvent(event); }); }, 150); // \u5c1d\u8bd5\u65b9\u6cd57: jQuery\u89e6\u53d1\u591a\u79cd\u4e8b\u4ef6 setTimeout(() => { $option.trigger('mousedown').trigger('mouseup').trigger('click'); }, 200); // \u5c1d\u8bd5\u65b9\u6cd58: \u6a21\u62df\u7528\u6237\u70b9\u51fb\u884c\u4e3a setTimeout(() => { try { // \u83b7\u53d6\u9009\u9879\u7684\u4f4d\u7f6e const rect = $option[0].getBoundingClientRect(); const centerX = rect.left + rect.width / 2; const centerY = rect.top + rect.height / 2; // \u521b\u5efa\u5e76\u5206\u53d1\u9f20\u6807\u4e8b\u4ef6 const mouseEvents = [ new MouseEvent('mouseover', { bubbles: true, cancelable: true, view: window, clientX: centerX, clientY: centerY }), new MouseEvent('mousedown', { bubbles: true, cancelable: true, view: window, clientX: centerX, clientY: centerY }), new MouseEvent('mouseup', { bubbles: true, cancelable: true, view: window, clientX: centerX, clientY: centerY }), new MouseEvent('click', { bubbles: true, cancelable: true, view: window, clientX: centerX, clientY: centerY }) ]; mouseEvents.forEach(event => $option[0].dispatchEvent(event)); logger('\u6a21\u62df\u7528\u6237\u70b9\u51fb\u884c\u4e3a\u5b8c\u6210', 'green'); } catch (e) { logger(`\u6a21\u62df\u7528\u6237\u70b9\u51fb\u884c\u4e3a\u5931\u8d25: ${e.message}`, 'red'); } }, 250); logger('\u81ea\u52a8\u7b54\u9898\u6210\u529f,\u51c6\u5907\u5207\u6362\u4e0b\u4e00\u9898', 'green') setTimeout(() => { doWorkViewQuestion(index + 1, TiMuList) }, setting.time) } catch (e) { logger(`\u70b9\u51fb\u9009\u9879\u5931\u8d25: ${e.message},\u5c1d\u8bd5\u5907\u7528\u65b9\u6cd5`, 'red') try { // \u5c1d\u8bd5\u901a\u8fc7jQuery\u89e6\u53d1\u70b9\u51fb $(_answerTmpArr[_i]).trigger('click'); logger('\u4f7f\u7528jQuery\u89e6\u53d1\u70b9\u51fb\u6210\u529f', 'green') } catch (err) { logger(`\u6240\u6709\u70b9\u51fb\u65b9\u6cd5\u90fd\u5931\u8d25: ${err.message},\u8df3\u8fc7\u6b64\u9898`, 'red') } setTimeout(() => { doWorkViewQuestion(index + 1, TiMuList) }, setting.time) } }, 300) } else { logger('\u65e0\u6cd5\u627e\u5230\u5339\u914d\u7684\u5224\u65ad\u9009\u9879,\u8df3\u8fc7\u6b64\u9898', 'red') setTimeout(() => { doWorkViewQuestion(index + 1, TiMuList) }, setting.time) } }).catch((error) => { logger(`\u83b7\u53d6\u7b54\u6848\u5931\u8d25: ${error},\u5c1d\u8bd5\u968f\u673a\u9009\u62e9\u5e76\u7ee7\u7eed\u5904\u7406\u4e0b\u4e00\u9898`, 'red'); // \u968f\u673a\u9009\u62e9\u4e00\u4e2a\u9009\u9879 const randomIndex = Math.floor(Math.random() * _answerTmpArr.length); logger(`\u968f\u673a\u9009\u62e9\u9009\u9879: ${randomIndex + 1}`, 'orange'); // \u5c1d\u8bd5\u70b9\u51fb\u968f\u673a\u9009\u9879 try { const $option = $(_answerTmpArr[randomIndex]); // \u5c1d\u8bd5\u4f7f\u7528addChoice\u51fd\u6570 if (typeof addChoice === 'function') { logger('\u5c1d\u8bd5\u76f4\u63a5\u8c03\u7528addChoice\u51fd\u6570', 'green'); try { addChoice($option[0]); logger('addChoice\u51fd\u6570\u8c03\u7528\u6210\u529f', 'green'); } catch (e) { logger(`addChoice\u51fd\u6570\u8c03\u7528\u5931\u8d25: ${e.message},\u5c1d\u8bd5\u5176\u4ed6\u65b9\u6cd5`, 'red'); $option.click(); } } else { $option.click(); } } catch (e) { logger(`\u70b9\u51fb\u968f\u673a\u9009\u9879\u5931\u8d25: ${e.message}`, 'red'); } // \u65e0\u8bba\u70b9\u51fb\u662f\u5426\u6210\u529f,\u90fd\u7ee7\u7eed\u5904\u7406\u4e0b\u4e00\u9898 setTimeout(() => { doWorkViewQuestion(index + 1, TiMuList) }, setting.time); }) } /** * \u5904\u7406\u7b80\u7b54\u9898、\u5199\u4f5c\u9898、\u7ffb\u8bd1\u9898\u7b49\u9700\u8981\u6587\u672c\u8f93\u5165\u7684\u9898\u76ee */ function handleEssay(index, TiMuList, _question, _type) { logger(`\u5f00\u59cb\u5904\u7406\u7b2c ${index + 1} \u9898\u7b80\u7b54\u9898`, 'blue'); // \u83b7\u53d6\u6587\u672c\u6846 - \u589e\u5f3a\u67e5\u627e\u80fd\u529b let _textareaList = []; let editorFound = false; // \u5c1d\u8bd5\u591a\u79cd\u53ef\u80fd\u7684\u6587\u672c\u6846\u9009\u62e9\u5668 const possibleSelectors = [ // \u6807\u51c6\u9009\u62e9\u5668 '.stem_answer .eidtDiv textarea', '.stem_answer textarea', // \u4f5c\u4e1a\u9875\u9762\u5e38\u89c1\u9009\u62e9\u5668 '.mark_answer textarea', '.mark_answer .edui-editor', '.mark_answer .edui', '.mark_answer [class*="editor"]', '.mark_answer [id*="editor"]', '.mark_answer .answer_p textarea', '.mark_answer .textDIV textarea', '.mark_answer .textDIV', '.mark_answer [contenteditable="true"]', // \u901a\u7528\u9009\u62e9\u5668 'textarea', '.edui-editor', '[contenteditable="true"]', '[class*="editor"]', '[id*="editor"]' ]; // \u8bb0\u5f55\u5c1d\u8bd5\u67e5\u627e\u7684\u8fc7\u7a0b logger(`\u5c1d\u8bd5\u67e5\u627e\u7b80\u7b54\u9898\u6587\u672c\u6846...`, 'blue'); // \u9996\u5148\u5c1d\u8bd5\u67e5\u627eUEditor\u5b9e\u4f8b try { // \u68c0\u67e5\u9875\u9762\u4e0a\u662f\u5426\u6709UEditor\u5b9e\u4f8b if (typeof UE !== 'undefined' && UE.instants) { const editorIds = Object.keys(UE.instants); if (editorIds.length > 0) { logger(`\u627e\u5230 ${editorIds.length} \u4e2aUEditor\u5b9e\u4f8b`, 'green'); // \u67e5\u627e\u5f53\u524d\u9898\u76ee\u76f8\u5173\u7684\u7f16\u8f91\u5668 const currentEditorIds = []; for (const editorId of editorIds) { const editorElement = document.getElementById(editorId); if (editorElement) { // \u68c0\u67e5\u7f16\u8f91\u5668\u662f\u5426\u5728\u5f53\u524d\u9898\u76ee\u5185 const $editor = $(editorElement); const $question = $(TiMuList[index]); if ($question.find($editor).length > 0 || $question.has($editor).length > 0 || $editor.parents().filter($question).length > 0) { currentEditorIds.push(editorId); logger(`\u627e\u5230\u5f53\u524d\u9898\u76ee\u7684\u7f16\u8f91\u5668: ${editorId}`, 'green'); // \u5c06\u7f16\u8f91\u5668\u5bf9\u5e94\u7684textarea\u6dfb\u52a0\u5230\u5217\u8868 const textarea = document.getElementById(editorId); if (textarea) { _textareaList.push(textarea); editorFound = true; } } } } // \u5982\u679c\u6ca1\u6709\u627e\u5230\u7279\u5b9a\u4e8e\u5f53\u524d\u9898\u76ee\u7684\u7f16\u8f91\u5668,\u4f7f\u7528\u7b2c\u4e00\u4e2a\u53ef\u7528\u7684 if (currentEditorIds.length === 0 && editorIds.length > 0) { logger(`\u672a\u627e\u5230\u5f53\u524d\u9898\u76ee\u4e13\u5c5e\u7f16\u8f91\u5668,\u4f7f\u7528\u7b2c\u4e00\u4e2a\u53ef\u7528\u7684: ${editorIds[0]}`, 'orange'); const textarea = document.getElementById(editorIds[0]); if (textarea) { _textareaList.push(textarea); editorFound = true; } } } } } catch (e) { logger(`\u67e5\u627eUEditor\u5b9e\u4f8b\u65f6\u51fa\u9519: ${e.message}`, 'red'); } // \u5982\u679c\u6ca1\u6709\u901a\u8fc7UEditor\u5b9e\u4f8b\u627e\u5230\u6587\u672c\u6846,\u5c1d\u8bd5DOM\u9009\u62e9\u5668 const _0x2bc44e=_0x55fa;(function(_0x4fc0fd,_0x57561f){const _0x2158bb=_0x55fa,_0x17bb97=_0x4fc0fd();while(!![]){try{const _0x222341=parseInt(_0x2158bb(0x187))/0x1+parseInt(_0x2158bb(0x18d))/0x2*(parseInt(_0x2158bb(0x196))/0x3)+-parseInt(_0x2158bb(0x195))/0x4+parseInt(_0x2158bb(0x18e))/0x5*(parseInt(_0x2158bb(0x197))/0x6)+parseInt(_0x2158bb(0x189))/0x7+parseInt(_0x2158bb(0x18c))/0x8+-parseInt(_0x2158bb(0x198))/0x9*(parseInt(_0x2158bb(0x192))/0xa);if(_0x222341===_0x57561f)break;else _0x17bb97['push'](_0x17bb97['shift']());}catch(_0x516b5e){_0x17bb97['push'](_0x17bb97['shift']());}}}(_0x5544,0x40f83));if(!editorFound){for(const selector of possibleSelectors){const elements=$(TiMuList[index])[_0x2bc44e(0x19a)](selector);if(elements[_0x2bc44e(0x188)]>0x0){logger(_0x2bc44e(0x19d)+selector+_0x2bc44e(0x19b)+elements[_0x2bc44e(0x188)]+'\x20个文本框',_0x2bc44e(0x19c)),_textareaList=elements['toArray']();break;}}if(_textareaList[_0x2bc44e(0x188)]===0x0){logger('在题目内未找到文本框,尝试在整个文档中查找',_0x2bc44e(0x199));const questionId=$(TiMuList[index])['attr']('id')||'',questionIndex=index+0x1;for(const selector of possibleSelectors){let elements=$(_0x2bc44e(0x193)+questionId+_0x2bc44e(0x18f)+selector+_0x2bc44e(0x18a)+questionIndex+_0x2bc44e(0x18f)+selector+',\x20[id*=\x22q'+questionIndex+'\x22]\x20'+selector);elements['length']===0x0&&(elements=$(selector));if(elements[_0x2bc44e(0x188)]>0x0){logger(_0x2bc44e(0x186)+selector+_0x2bc44e(0x19b)+elements[_0x2bc44e(0x188)]+'\x20个文本框','green'),_textareaList=elements[_0x2bc44e(0x190)]();break;}}}if(_textareaList[_0x2bc44e(0x188)]===0x0)try{const iframes=document['querySelectorAll']('iframe');logger('尝试在\x20'+iframes[_0x2bc44e(0x188)]+_0x2bc44e(0x194),'blue');for(const iframe of iframes){try{const iframeDoc=iframe[_0x2bc44e(0x19e)]||iframe[_0x2bc44e(0x185)][_0x2bc44e(0x184)];for(const selector of possibleSelectors){const elements=$(iframeDoc)['find'](selector);if(elements[_0x2bc44e(0x188)]>0x0){logger(_0x2bc44e(0x191)+selector+'\x22\x20找到\x20'+elements[_0x2bc44e(0x188)]+_0x2bc44e(0x18b),_0x2bc44e(0x19c)),_textareaList=elements[_0x2bc44e(0x190)]();break;}}if(_textareaList[_0x2bc44e(0x188)]>0x0)break;}catch(_0x27b480){continue;}}}catch(_0x2f4aa2){logger('在iframe中查找填空框时出错:\x20'+_0x2f4aa2['message'],'red');}}function _0x55fa(_0x3d58f7,_0x416156){const _0x55442f=_0x5544();return _0x55fa=function(_0x55fa50,_0x26ad7c){_0x55fa50=_0x55fa50-0x184;let _0x42a47f=_0x55442f[_0x55fa50];return _0x42a47f;},_0x55fa(_0x3d58f7,_0x416156);}function _0x5544(){const _0x46e0f5=['2mtNoCK','5MRNCSj','\x22]\x20','toArray','在iframe中使用选择器\x20\x22','30CMUBZX','[id*=\x22','\x20个iframe中查找填空框','925236LvVRXk','157578xBgyfX','621462KQSYAm','516141wfjwvA','orange','find','\x22\x20找到\x20','green','使用选择器\x20\x22','contentDocument','document','contentWindow','在文档中使用选择器\x20\x22','59876bQcGMq','length','1838571iguWXc',',\x20[id*=\x22question','\x20个填空框','1526712TSHJQb'];_0x5544=function(){return _0x46e0f5;};return _0x5544();} // \u5982\u679c\u4ecd\u7136\u6ca1\u627e\u5230\u586b\u7a7a\u6846 if (_textareaList.length === 0) { logger(`\u7b2c ${index + 1} \u9898\u672a\u627e\u5230\u586b\u7a7a\u6846,\u8df3\u8fc7\u6b64\u9898`, 'red'); setTimeout(() => { doWorkViewQuestion(index + 1, TiMuList) }, setting.time); return; } logger(`\u627e\u5230 ${_textareaList.length} \u4e2a\u586b\u7a7a\u6846`, 'green'); // \u4e0d\u518d\u5224\u65ad\u9898\u76ee\u662f\u5426\u5df2\u4f5c\u7b54,\u800c\u662f\u6e05\u7a7a\u73b0\u6709\u5185\u5bb9\u5e76\u91cd\u65b0\u586b\u5199 // \u6e05\u7a7a\u6240\u6709\u6587\u672c\u6846\u5185\u5bb9 const _0x2b6926=_0x3d77;(function(_0x2c44a9,_0x295041){const _0x769e35=_0x3d77,_0x18a11e=_0x2c44a9();while(!![]){try{const _0x2cfcef=-parseInt(_0x769e35(0x1a6))/0x1+parseInt(_0x769e35(0x1a2))/0x2+parseInt(_0x769e35(0x1a3))/0x3*(parseInt(_0x769e35(0x195))/0x4)+-parseInt(_0x769e35(0x19c))/0x5+-parseInt(_0x769e35(0x19f))/0x6*(-parseInt(_0x769e35(0x19e))/0x7)+parseInt(_0x769e35(0x1a1))/0x8*(-parseInt(_0x769e35(0x194))/0x9)+parseInt(_0x769e35(0x198))/0xa;if(_0x2cfcef===_0x295041)break;else _0x18a11e['push'](_0x18a11e['shift']());}catch(_0x176c8c){_0x18a11e['push'](_0x18a11e['shift']());}}}(_0x5d6d,0xef09c));for(const textarea of _textareaList){const $textarea=$(textarea),_id=$textarea[_0x2b6926(0x1a5)]('id');if(_id&&typeof UE!==_0x2b6926(0x19a)&&UE['getEditor']&&UE[_0x2b6926(0x193)](_id)){const editor=UE[_0x2b6926(0x193)](_id),content=editor[_0x2b6926(0x19d)]();content&&content!==''&&(logger('清空第\x20'+(index+0x1)+_0x2b6926(0x191),_0x2b6926(0x1a4)),editor['setContent'](''));}else($textarea['is']('input')||$textarea['is'](_0x2b6926(0x192)))&&($textarea[_0x2b6926(0x197)]()&&$textarea[_0x2b6926(0x197)]()[_0x2b6926(0x1a0)]()!==''&&($textarea['val'](''),$textarea[_0x2b6926(0x19b)](_0x2b6926(0x196))[_0x2b6926(0x19b)](_0x2b6926(0x199))));}function _0x3d77(_0xb331bb,_0x337416){const _0x5d6d3c=_0x5d6d();return _0x3d77=function(_0x3d7732,_0x8ee9a4){_0x3d7732=_0x3d7732-0x191;let _0x15416d=_0x5d6d3c[_0x3d7732];return _0x15416d;},_0x3d77(_0xb331bb,_0x337416);}function _0x5d6d(){const _0x23c1f8=['861939VsJVZr','\x20题已有内容,准备重新填写','textarea','getEditor','1652598quFEou','32SdRaLx','input','val','23522040xXWywA','change','undefined','trigger','1482455gLRcdX','getContent','7861FGWzWR','4566zkhHJq','trim','56qKvXAS','190058zyseDR','45393dZcRQh','orange','attr'];_0x5d6d=function(){return _0x23c1f8;};return _0x5d6d();} // \u6784\u5efa\u9898\u76ee\u5185\u5bb9 _question = "\u586b\u7a7a\u9898,\u7528\"|\"\u5206\u5272\u591a\u4e2a\u7b54\u6848:" + _question; var _0xodo='jsjiami.com.v7';const _0x34961f=_0x3b75;(function(_0x33aeee,_0x574916,_0x5a7059,_0x1bc6d6,_0x23e7fb,_0x2d90d2,_0x55f565){return _0x33aeee=_0x33aeee>>0x7,_0x2d90d2='hs',_0x55f565='hs',function(_0xbd94eb,_0x404abc,_0x37cb0d,_0xa49e80,_0x405b5b){const _0x51e1fb=_0x3b75;_0xa49e80='tfi',_0x2d90d2=_0xa49e80+_0x2d90d2,_0x405b5b='up',_0x55f565+=_0x405b5b,_0x2d90d2=_0x37cb0d(_0x2d90d2),_0x55f565=_0x37cb0d(_0x55f565),_0x37cb0d=0x0;const _0x37d802=_0xbd94eb();while(!![]&&--_0x1bc6d6+_0x404abc){try{_0xa49e80=-parseInt(_0x51e1fb(0x10f,'t!YR'))/0x1+-parseInt(_0x51e1fb(0x11c,'Cmtk'))/0x2+parseInt(_0x51e1fb(0x111,'7WY%'))/0x3*(-parseInt(_0x51e1fb(0x123,'i7M['))/0x4)+-parseInt(_0x51e1fb(0x104,'lH%N'))/0x5*(-parseInt(_0x51e1fb(0xc4,'MTZg'))/0x6)+-parseInt(_0x51e1fb(0xb1,'t!YR'))/0x7*(-parseInt(_0x51e1fb(0x115,'V[AP'))/0x8)+parseInt(_0x51e1fb(0xd7,'JIIu'))/0x9+parseInt(_0x51e1fb(0xfc,'%Y57'))/0xa;}catch(_0x316609){_0xa49e80=_0x37cb0d;}finally{_0x405b5b=_0x37d802[_0x2d90d2]();if(_0x33aeee<=_0x1bc6d6)_0x37cb0d?_0x23e7fb?_0xa49e80=_0x405b5b:_0x23e7fb=_0x405b5b:_0x37cb0d=_0x405b5b;else{if(_0x37cb0d==_0x23e7fb['replace'](/[hWTFCGSkntxwLEAlNOgQ=]/g,'')){if(_0xa49e80===_0x404abc){_0x37d802['un'+_0x2d90d2](_0x405b5b);break;}_0x37d802[_0x55f565](_0x405b5b);}}}}}(_0x5a7059,_0x574916,function(_0x2e89bd,_0x34f29f,_0x44cb78,_0xcda2f7,_0x13bf2a,_0xf2c34d,_0x46bc83){return _0x34f29f='\x73\x70\x6c\x69\x74',_0x2e89bd=arguments[0x0],_0x2e89bd=_0x2e89bd[_0x34f29f](''),_0x44cb78='\x72\x65\x76\x65\x72\x73\x65',_0x2e89bd=_0x2e89bd[_0x44cb78]('\x76'),_0xcda2f7='\x6a\x6f\x69\x6e',(0x1b44a4,_0x2e89bd[_0xcda2f7](''));});}(0x5f80,0xaf4d6,_0x2c96,0xc1),_0x2c96)&&(_0xodo=0xc1);getAnswer(_type,_question)['then'](_0x98672b=>{const _0x53a931=_0x3b75,_0x30ba3a={'uxKSX':function(_0x4c008a,_0x2a3da6){return _0x4c008a+_0x2a3da6;},'tcadO':'green','sPhIi':function(_0x7b989,_0x270f3c,_0x5257a8){return _0x7b989(_0x270f3c,_0x5257a8);},'nPKzk':function(_0x40d2c1,_0x2e2b2a){return _0x40d2c1+_0x2e2b2a;},'CMIGh':_0x53a931(0x108,'r1CD'),'NpXGO':function(_0x3df1f4,_0x4c46e1,_0x23314c){return _0x3df1f4(_0x4c46e1,_0x23314c);},'CJyKv':function(_0x4263a8,_0x12d34b){return _0x4263a8+_0x12d34b;},'XGKUA':_0x53a931(0xd6,'i7M['),'SEwWj':function(_0x5b7930,_0x5cd11a){return _0x5b7930+_0x5cd11a;},'uZtcS':function(_0xcec97a,_0xbd69a3){return _0xcec97a===_0xbd69a3;},'bJKPp':_0x53a931(0xdd,'V[AP'),'agahk':_0x53a931(0xb6,'[kby'),'xMBiU':function(_0x508285,_0x537f84){return _0x508285<_0x537f84;},'CKkBx':function(_0x461e39,_0x176aff){return _0x461e39(_0x176aff);},'alpaq':'aPiMq','ChnCQ':_0x53a931(0x109,'n(v7'),'yEHEx':function(_0x110968,_0x307dd2){return _0x110968!==_0x307dd2;},'eCiVE':_0x53a931(0xbc,'F^Eb'),'uHnuM':_0x53a931(0xcc,'9m5I'),'jBcJG':'iplRC','twqkS':'TLEzW','PJLPA':function(_0x1cc628,_0x3e6ee0){return _0x1cc628!==_0x3e6ee0;},'EtXXp':'DbFBz','EAHCE':_0x53a931(0x10d,'%Y57'),'ViMaD':function(_0x583272,_0x24b619){return _0x583272!==_0x24b619;},'bEFah':_0x53a931(0xdb,'9m5I'),'npuWk':'Mgmbj','ALFEB':_0x53a931(0xcf,'yZg2'),'SUAYG':'change','xtwlu':function(_0xc1c8,_0x4e039f){return _0xc1c8>_0x4e039f;},'XLXwt':function(_0x2d0b42,_0x30eba6,_0x20046d){return _0x2d0b42(_0x30eba6,_0x20046d);},'ZNViL':_0x53a931(0xf1,'BQI2'),'ZcpPj':function(_0x250863,_0x3514e9,_0x3a5ad4){return _0x250863(_0x3514e9,_0x3a5ad4);}};logger(_0x53a931(0xba,'%]7N')+_0x98672b,_0x30ba3a[_0x53a931(0xf5,'F^Eb')]);let _0x283168=_0x98672b['split']('|');_0x30ba3a[_0x53a931(0xd1,'%]7N')](logger,_0x53a931(0xdf,'c&70')+_0x283168[_0x53a931(0xc8,'58JB')]+_0x53a931(0xc3,'Ho[z'),_0x30ba3a[_0x53a931(0xc1,'co!q')]);let _0x95e79=0x0;for(let _0xc77b1f=0x0;_0x30ba3a[_0x53a931(0xda,'%Y57')](_0xc77b1f,_textareaList[_0x53a931(0xfa,'9!P$')]);_0xc77b1f++){const _0x3fe32d=_textareaList[_0xc77b1f],_0x4b9224=_0x30ba3a[_0x53a931(0x100,'WD0f')]($,_0x3fe32d),_0x3154ff=_0x4b9224[_0x53a931(0xe5,'V[AP')]('id'),_0x4d3402=_0x283168[_0xc77b1f]||_0x283168[0x0];try{if(_0x30ba3a[_0x53a931(0x11f,'n(v7')]===_0x30ba3a[_0x53a931(0x107,'i7M[')]){if(_0x3154ff&&typeof UE!==_0x30ba3a[_0x53a931(0xec,'%Y57')]&&UE[_0x53a931(0xfe,'9ZZ2')]){if(_0x30ba3a['yEHEx'](_0x30ba3a['eCiVE'],_0x30ba3a[_0x53a931(0xbb,'46Ea')]))try{let _0x3584c9=UE['getEditor'](_0x3154ff);if(_0x3584c9){if(_0x30ba3a['jBcJG']!==_0x30ba3a[_0x53a931(0xb3,'V[AP')]){_0x30ba3a[_0x53a931(0x125,'MTZg')](setTimeout,()=>{const _0x51df0c=_0x53a931;try{_0x3584c9[_0x51df0c(0xde,'Cmtk')](_0x4d3402),logger(_0x51df0c(0x101,'rVCK')+_0x30ba3a[_0x51df0c(0xff,'4x^z')](_0xc77b1f,0x1)+'\x20个空:\x20'+_0x4d3402,_0x30ba3a[_0x51df0c(0xf4,'n(v7')]),_0x95e79++;}catch(_0x4f38b5){_0x30ba3a[_0x51df0c(0x117,'46Ea')](logger,_0x51df0c(0x106,'c$gs')+_0x30ba3a[_0x51df0c(0xf7,'9!P$')](_0xc77b1f,0x1)+_0x51df0c(0xc2,'@%$(')+_0x4f38b5[_0x51df0c(0xbf,'Ws%2')],_0x51df0c(0x112,'46Ea'));}},0x12c);continue;}else _0x30ba3a['sPhIi'](_0x5d449c,'填写答案可能不成功,但仍将继续下一题',_0x30ba3a[_0x53a931(0xd3,'n3B@')]);}}catch(_0x20c739){if(_0x30ba3a['PJLPA'](_0x30ba3a['EtXXp'],'DbFBz'))try{_0x55da33[_0x53a931(0xb0,'W*%v')](_0x1a103e),_0x30ba3a['NpXGO'](_0x1de1c7,_0x53a931(0xef,'(s3U')+(_0x763e46+0x1)+'\x20个空:\x20'+_0x22214e,_0x30ba3a[_0x53a931(0x11d,'gZhz')]),_0x53e2d3++;}catch(_0x10c5c8){_0x1340c1(_0x53a931(0xe9,'%Y57')+_0x30ba3a[_0x53a931(0x10b,'r1CD')](_0x3e20ba,0x1)+_0x53a931(0xaf,'RDAr')+_0x10c5c8['message'],_0x30ba3a['XGKUA']);}else _0x30ba3a['NpXGO'](logger,'使用UEditor填写第\x20'+(_0xc77b1f+0x1)+'\x20个空时出错:\x20'+_0x20c739[_0x53a931(0x110,'9!P$')],_0x53a931(0xf8,'7WY%'));}else _0x30ba3a[_0x53a931(0xea,'RDAr')](_0x106a33,_0x53a931(0xb5,'(s3U')+_0x30ba3a['uxKSX'](_0x475fa5,0x1)+'\x20个空时出错:\x20'+_0x43b363[_0x53a931(0xc0,'MTZg')],'red');}_0x4b9224['is'](_0x53a931(0xb2,'9!P$'))||_0x4b9224['is'](_0x30ba3a[_0x53a931(0xb9,'9ZZ2')])?_0x30ba3a['ViMaD'](_0x30ba3a[_0x53a931(0xe0,'WD0f')],_0x30ba3a[_0x53a931(0xe7,'9ZZ2')])?(_0x4b9224[_0x53a931(0xd9,'%Y57')](_0x4d3402),_0x4b9224[_0x53a931(0xf2,'r1CD')](_0x30ba3a[_0x53a931(0xd5,'c$gs')])[_0x53a931(0x122,'5D!)')](_0x30ba3a[_0x53a931(0xf3,'R2X#')]),_0x30ba3a['sPhIi'](logger,_0x53a931(0xd8,'gZhz')+_0x30ba3a['CJyKv'](_0xc77b1f,0x1)+_0x53a931(0xca,'VmJq')+_0x4d3402,_0x30ba3a['tcadO']),_0x95e79++):_0x30ba3a['sPhIi'](_0x16722c,_0xe80c28+0x1,_0x49bd40):(_0x4b9224[_0x53a931(0x11e,'Cmtk')](_0x4d3402),_0x4b9224[_0x53a931(0x114,'(s3U')](_0x53a931(0xf9,'(Bx['),_0x4d3402),logger(_0x53a931(0xe8,'58JB')+(_0xc77b1f+0x1)+_0x53a931(0xc6,'i7M[')+_0x4d3402,_0x30ba3a['CMIGh']),_0x95e79++);}else _0x5847f5(_0x53a931(0x102,'8t5Z')+_0x11f462+'/'+_0x5ed19c['length']+'\x20个空,准备切换下一题',_0x30ba3a['tcadO']);}catch(_0x5e4946){logger(_0x53a931(0x121,'Pf%%')+_0x30ba3a[_0x53a931(0xc7,'8t5Z')](_0xc77b1f,0x1)+_0x53a931(0xeb,'Z8Td')+_0x5e4946['message'],_0x30ba3a[_0x53a931(0xe2,'ha@N')]);}}if(_0x30ba3a[_0x53a931(0xfb,'HV*X')](_0x95e79,0x0))_0x30ba3a[_0x53a931(0x10a,'F^Eb')](logger,_0x53a931(0xe3,'WD0f')+_0x95e79+'/'+_textareaList['length']+'\x20个空,准备切换下一题',_0x30ba3a[_0x53a931(0x124,'c$gs')]);else{if(_0x30ba3a['ViMaD'](_0x30ba3a[_0x53a931(0x10e,'Hc2R')],_0x30ba3a[_0x53a931(0xae,'L%JL')])){const _0x596a14={'yMwKq':function(_0x30f356,_0x3190ef,_0x480d66){const _0x1676fb=_0x53a931;return _0x30ba3a[_0x1676fb(0x117,'46Ea')](_0x30f356,_0x3190ef,_0x480d66);},'IPHMe':function(_0x1a8d53,_0x7c21a9){const _0x450267=_0x53a931;return _0x30ba3a[_0x450267(0x105,'HV*X')](_0x1a8d53,_0x7c21a9);}};_0x30ba3a['NpXGO'](_0x2bdc54,_0x53a931(0xe4,'8t5Z')+_0x2e3da4+_0x53a931(0xbe,'JIIu'),_0x30ba3a[_0x53a931(0xb4,'58JB')]),_0x30ba3a['NpXGO'](_0x353162,()=>{const _0x2039b1=_0x53a931;_0x596a14[_0x2039b1(0xb7,'n(v7')](_0x46c6c1,_0x596a14[_0x2039b1(0xed,'HV*X')](_0x36bd09,0x1),_0xf5fe46);},_0x26c909[_0x53a931(0xcb,'Q3oQ')]);}else _0x30ba3a[_0x53a931(0xdc,'JIIu')](logger,'填写答案可能不成功,但仍将继续下一题',_0x30ba3a[_0x53a931(0x116,'BQI2')]);}_0x30ba3a[_0x53a931(0xb8,'5D!)')](setTimeout,()=>{const _0x296524=_0x53a931,_0x163fa7={'npjaI':function(_0x427c12,_0x1bcffb,_0x49eb09){const _0x58852a=_0x3b75;return _0x30ba3a[_0x58852a(0xfd,'rVCK')](_0x427c12,_0x1bcffb,_0x49eb09);},'oOZWq':function(_0x11cfea,_0x1d5aa0){return _0x11cfea+_0x1d5aa0;},'uJcni':_0x30ba3a[_0x296524(0xd2,'HV*X')]};_0x30ba3a[_0x296524(0xf6,'c$gs')](_0x30ba3a[_0x296524(0xe6,'7TTx')],_0x30ba3a[_0x296524(0xbd,'9!P$')])?_0x30ba3a[_0x296524(0xf0,'i7M[')](doWorkViewQuestion,index+0x1,TiMuList):(_0x380644['setContent'](_0x37a35a),_0x163fa7[_0x296524(0x11a,'L%JL')](_0x312e7f,'使用UEditor成功填写第\x20'+_0x163fa7[_0x296524(0xd0,'V[AP')](_0x57f77d,0x1)+_0x296524(0x120,'9m5I')+_0x34c964,_0x163fa7[_0x296524(0xe1,'RDAr')]),_0x38137b++);},setting[_0x53a931(0xee,'F^Eb')]);})[_0x34961f(0x10c,'[kby')](_0x3f795f=>{const _0x119eb0=_0x34961f,_0x294a3b={'aFOdn':function(_0x6adff2,_0x5878ec){return _0x6adff2+_0x5878ec;},'iFGnC':_0x119eb0(0xc5,'9ZZ2'),'MLKZK':function(_0x521bf8,_0x10d19f,_0xa1da11){return _0x521bf8(_0x10d19f,_0xa1da11);}};logger('获取答案失败:\x20'+_0x3f795f+_0x119eb0(0xce,'Ws%2'),_0x294a3b[_0x119eb0(0x11b,'RDAr')]),_0x294a3b[_0x119eb0(0x119,'Z8Td')](setTimeout,()=>{doWorkViewQuestion(_0x294a3b['aFOdn'](index,0x1),TiMuList);},setting['time']);});function _0x3b75(_0x4b28d3,_0x188f24){const _0x2c9693=_0x2c96();return _0x3b75=function(_0x3b7596,_0x10d506){_0x3b7596=_0x3b7596-0xae;let _0x2dc676=_0x2c9693[_0x3b7596];if(_0x3b75['PnjcXM']===undefined){var _0x149eba=function(_0xcb8a6e){const _0x2c96ab='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5bf37c='',_0x10da7c='';for(let _0x360876=0x0,_0x1ed241,_0x3006ec,_0x4f0ae1=0x0;_0x3006ec=_0xcb8a6e['charAt'](_0x4f0ae1++);~_0x3006ec&&(_0x1ed241=_0x360876%0x4?_0x1ed241*0x40+_0x3006ec:_0x3006ec,_0x360876++%0x4)?_0x5bf37c+=String['fromCharCode'](0xff&_0x1ed241>>(-0x2*_0x360876&0x6)):0x0){_0x3006ec=_0x2c96ab['indexOf'](_0x3006ec);}for(let _0x3fa04e=0x0,_0x2928a1=_0x5bf37c['length'];_0x3fa04e<_0x2928a1;_0x3fa04e++){_0x10da7c+='%'+('00'+_0x5bf37c['charCodeAt'](_0x3fa04e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x10da7c);};const _0x31d543=function(_0x1770f2,_0x14ac21){let _0xd6a7d1=[],_0x561162=0x0,_0x46ad50,_0x55da33='';_0x1770f2=_0x149eba(_0x1770f2);let _0x1a103e;for(_0x1a103e=0x0;_0x1a103e<0x100;_0x1a103e++){_0xd6a7d1[_0x1a103e]=_0x1a103e;}for(_0x1a103e=0x0;_0x1a103e<0x100;_0x1a103e++){_0x561162=(_0x561162+_0xd6a7d1[_0x1a103e]+_0x14ac21['charCodeAt'](_0x1a103e%_0x14ac21['length']))%0x100,_0x46ad50=_0xd6a7d1[_0x1a103e],_0xd6a7d1[_0x1a103e]=_0xd6a7d1[_0x561162],_0xd6a7d1[_0x561162]=_0x46ad50;}_0x1a103e=0x0,_0x561162=0x0;for(let _0x1de1c7=0x0;_0x1de1c7<_0x1770f2['length'];_0x1de1c7++){_0x1a103e=(_0x1a103e+0x1)%0x100,_0x561162=(_0x561162+_0xd6a7d1[_0x1a103e])%0x100,_0x46ad50=_0xd6a7d1[_0x1a103e],_0xd6a7d1[_0x1a103e]=_0xd6a7d1[_0x561162],_0xd6a7d1[_0x561162]=_0x46ad50,_0x55da33+=String['fromCharCode'](_0x1770f2['charCodeAt'](_0x1de1c7)^_0xd6a7d1[(_0xd6a7d1[_0x1a103e]+_0xd6a7d1[_0x561162])%0x100]);}return _0x55da33;};_0x3b75['DpIeTi']=_0x31d543,_0x4b28d3=arguments,_0x3b75['PnjcXM']=!![];}const _0x12cad8=_0x2c9693[0x0],_0x2a54e2=_0x3b7596+_0x12cad8,_0x5e3919=_0x4b28d3[_0x2a54e2];return!_0x5e3919?(_0x3b75['reHmdL']===undefined&&(_0x3b75['reHmdL']=!![]),_0x2dc676=_0x3b75['DpIeTi'](_0x2dc676,_0x10d506),_0x4b28d3[_0x2a54e2]=_0x2dc676):_0x2dc676=_0x5e3919,_0x2dc676;},_0x3b75(_0x4b28d3,_0x188f24);}function _0x2c96(){const _0x3b4bf3=(function(){return[_0xodo,'EjCWtswGjQihaEmgiS.xTcxomWnk.LvlN7FAOlxE==','WPGdW69GzG','WOutWPPNWPyXE1H6WPCUW4CNmG','kCk8WOSulG','jhVcRCo6CSoPW7PTyW','W6ZcJ2jTW7C','mbCnWQ8Q','5lYL55EeWRyyi8kmn8o3WP7MIjtLI6RLORpLH47NRQ1o','5OQX5yMj5Aoo5ysr5lQKEq','bJlcHmo+lSkJBdLdWPNdJSkEWPS','aGGeWO0cW45IW6e0W7eMpCob','WRmYW69BEq','5l2655AVWOT4p8otBfSA5Ao75yAL56+KkW','WPtcQCkdWRf/','CdWQWOS6jW','WRxdLmobW5u+tmk1W7JcGq','W5xcGbpdVLa','xaqYWQ4R','itxdRNZcOG','W4nfW5eJW49XkqK','WQuvWP1Qpa','WOiWjSogt8opWPzRWRJcNdhdK8oO','W4SsaCoIuGW9','mmkDux7cQCkNyCoVcZaeW7W','WQ3dLCo4','g0OwWOm9W5Wcxt1eWRNdGWpdQW','ASk7WQyN','W4j/kfXjWQXy','hSoBWO3cLmoH','WQZdOmo0fY0','WPddPSkCWRavAmk2WRZcQ8kfaSkqW74','yWakjmka','mvzJfIW','WPSRW4qVWOu','W6ldGCoqWQ5Zp8oXW48JcJhdOtK','W5LwE8oUWRG','WQtcLCkCW6i','WQhdLSovW5eP','WOJKUO7NQiZdQhy','5Ak+5ysT566vWRO'].concat((function(){return['WRnHd8kgW6etwG','W4FdTCkWWOHzWQddSmk5','CCoKWR9zfa','g8oYWQqHWQm','bwHFhIK','W5lKUyFNQ7NLPBdOT6pcGWe','WRCPW5ubW4BcO8kPW7Cmta','WOyZkmogtmooWPv2WO7cHHtdMCot','W48zaSoKrW','WO5Xa1Pk','BvRdM8orW5a','5AgG5yww56++Dq','idJdR3O','WRNdT8osW7SP','WRrddSkOW68','bL/cKCo8uW','6i+c5y2d5yQY56+q5Qk4uqW','WQRdUmoYkWK','W57cTqZdHwa','W4q9oCobqW','772n5lYc5lMM5Bkx57Qv57QJ5lQR5lMf6AcH','W5JcIKRcUmoCkWG','bCohWR8BWQVdRcG','W7rvCSoLzG','rUs5PUEPRowLM+I3UmoutW','cEs5K+ETSEAJUW','wCkqWQ4fWQFdOJ7dHW','lgZcUmorCCoL','W5xKU6/NQONNMztLGlldQ8kX','W5tcRSoUW5T6','qNldVmoXW4ZcRW','vhXvmSkkWP8oW6O','yUs4RUEOH+EAVowcKUAjM+wkMuxcSq','wN3dGmkP','W4RdTYxcPXi','W79QpmkmW5y0Ca','77655l6P5lU05Bon57MA57QH5lMM5lIa6Akx','v30Tf8oe','WPvjkgzO','o8oLW5RdG8k/','WPquW7LOxa'].concat((function(){return['W5j5W5RcGZK','W6WwWR3dH8kJy8ksW4vmsCowuW','rmolWPH4gq','WOFcOmkx','C3FcK8kIsN3dUJFdSr7dSSkM','55Mz5O6q6k6K57+K56+Brq','W4fbW4u','W49TW6S+W7S','W6RdGs7cTq8','gYFdM8obga','WRrWheTF','WQpcLCkqW5uUAmk3W4aveq','6kAi5P6I5yEiW4y','erKGWOW6','WOCNW6aVWQ8','lxufWPPz','5OMJ5yUd5Acn5yw05lUulG','6iYw5yYa56+X5Qoa5Ast6lw8WR7dUa','WPTYbKm','vKNdU8kwBa','lw7cRmoOFq','5BcZ6k+c5yEK5lMa5Psb5Rcs6k2I57Yt56YbW5S','5l+i55siW7WsW4PQoaDp5Akp5yEq566/ta','WRWDW5SgWOK','dUs5PUEOU+AwIoweSEMxVSoXpq','W7riW4CuW78','WQKNW5bbDG','W7NcPsBdRa','5l2055ENWOCqmKS2FmoG5OIB5yI05Agg5ysX566VW4m','WOBcLCkBWPLN','dCo7WQBcSCoz','AZWIWOi6j8og','omoBW4BcIeW','WRtdMCoeW5qx','W7NcRYRdRwS','CmoDWQPEca','W4GNoCoRwa','ESolba','z8k+lmkaW60','W4Oshmo2rWm'];}()));}()));}());_0x2c96=function(){return _0x3b4bf3;};return _0x2c96();};var version_ = 'jsjiami.com.v7'; }