您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
icve-funs
当前为
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.greasyfork.icu/scripts/399050/786368/icve-helper.js
// ==UserScript== // @name icve-helper // @namespace [email protected] // @version 1.0.0 // @description icve-funs // @author AI_童话 // @grant GM_xmlhttpRequest // @grant unsafeWindow // ==/UserScript== let $ = getjQuery(unsafeWindow); // 常用url let url = { login_port: 'https://zjy2.icve.com.cn/dzx/portalApi/portallogin/login', login: 'https://zjy2.icve.com.cn/api/common/login/login', verifyCode: 'https://zjy2.icve.com.cn/api/common/VerifyCode/index?t=', myHomework_getMyHomeworkList: 'https://zjy2.icve.com.cn/api/student/myHomework/getMyHomeworkList' }; /** 向控制台输出 hello world! * @method hello */ function hello() { console.log("hello world"); } /** 获取网站的jQuery, 并添加自己的函数 * @method getjQuery * @param window unsafewindow * @returns $ */ function getjQuery(window) { /** 等待元素出现 * @method wait * @param func 找到元素后执行 * @param times 检测次数 -1 一直检测 * @param interval 检测间隔 默认20s */ window.jQuery.fn.wait = function (func, times, interval) { var _times = times || -1, // 100次 _interval = interval || 20, // 20毫秒每次 _self = this, _selector = this.selector, // 选择器 _iIntervalID; // 定时器id if (this.length) { // 如果已经获取到了,就直接执行函数 func && func.call(this); } else { _iIntervalID = setInterval(function () { if (!_times) { // 是0就退出 clearInterval(_iIntervalID); } _times <= 0 || _times--; // 如果是正数就 -- _self = $(_selector); // 再次选择 if (_self.length) { // 判断是否取到 func && func.call(_self); clearInterval(_iIntervalID); } }, _interval); } } return window.jQuery; } /* * 职教云作业解封文本限制 @tuChanged */ function uncageCopyLimit() { let arr = ["oncontextmenu", "ondragstart", "onselectstart", "onselect", "oncopy", "onbeforecopy"] for (let i of arr) $(".hasNoLeft").attr(i, "return true") console.log("已成功复制解除限制,📣如果您有软件定制(管理系统,APP,小程序等),毕设困扰,又或者课程设计困扰等欢迎联系,价格从优,源码调试成功再付款💰,实力保证,包远程,包讲解 QQ:2622321887") } // 学生 class Student { constructor(userName, userPwd) { this.userName = userName; this.userPwd = userPwd; } // 登录 login() { return new Promise((resolve, reject) => { GM_xmlhttpRequest({ method: 'POST', url: url.login, headers: { 'Content-type': 'application/x-www-form-urlencoded' }, data: 'userName=' + userName + '&userPwd=' + userPwd , timeout: setting.time, onload: function (xhr) { if (xhr.status == 200) { let obj = JSON.parse(xhr.responseText); resolve(obj); } } }); }); } // 获取我的作业列表 getMyHomeworkList(unprocessed) { return new Promise((resolve, reject) => { let that = this; // 防止this 丢失 GM_xmlhttpRequest({ url: url.myHomework_getMyHomeworkList, method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' }, data: 'unprocessed=' + unprocessed || 0, timeout: setting.timeout, onload: (xhr) => { if (xhr.status == 200) { var obj = JSON.parse(xhr.responseText); that.hmwrkList = obj.list; // list resolve(that.hmwrkList); } } }); }); } // 不写了 累 getDetail(hmwrk) { if (hmwrk instanceof HomeWork) { } } getHistory(hmwrk) { if (hmwrk instanceof HomeWork) { } } } // 我 是 学生 class I extends Student { constructor(userName, userPwd) { super(userName, userPwd); } // 获取我的试卷信息 getPerivewInfo() { let courseOpenId = $('[name=courseOpenId]').value; let openClassId = $('[name=openClassId]').value; let homeWorkId = $('[name=homeworkId]').value; let hkTermTimeId = ($('[name=hkTermTimeId]') || $('[name=homeworkTermTimeId]')).value; this.hmwrk = new HomeWork(courseOpenId, openClassId, homeWorkId, hkTermTimeId); // 获取我的作业信息 return this.hmwrk; } copy(hmwrk) { if (!(hmwrk instanceof HomeWork)) { return '不是作业没办法复制呢!'; } fillAnswer(hmwrk.history); } } // 我朋友 是 学生 class MyFriend extends Student { constructor(userName, userPwd) { super(userName, userPwd); } // 我的朋友帮助我 async helpWith(hmwrk) { console.log(hmwrk); if (!(hmwrk instanceof HomeWork)) { // 如果是 HomeWork return '数据类型错误!'; // 传过来的不是作业 } console.log(await this.getMyHomeworkList()); // 获取我的作业列表 hmwrkList let isfndCourse = false; // 是否找到课程 for (let i = 0; i < this.hmwrkList.length; i++) { let hk = this.hmwrkList[i]; if (hk.courseOpenId == hmwrk.courseOpenId) { isfndCourse = true; // 找到相应课程 this.hmwrkList = hk.homeworkList; // 根据courseOpenId 获取 homeworkList break; } } if (!isfndCourse) { // 如果找到相应 课程 return '你们没有报名相同的课程.'; } let isfndHmwrk = false; // 是否找该作业 for (let i = 0; i < this.hmwrkList.length; i++) { let hk = this.hmwrkList[i]; if (hk.homeworkId == hmwrk.homeWorkId) { isfndHmwrk = true; if (!hk.stuHomeworkCount) return '该学生还未做答!'; // 如果作答次数为0, 直接返回 // 朋友的作业 this.hmwrk = new HomeWork(hk.courseOpenId, hk.openClassId, hk.homeWorkId, hk.hkTermTimeId) ; this.hmwrk.info = hk; // 朋友作业的官方信息 await this.hmwrk.getDetail(); // 朋友获取作业的详细 console.log(await this.hmwrk.getHistory()); // 朋友获取作答记录 return '成功获取朋友的作业.'; } } return '你的朋友没有这个作业!'; } } // 作业 class HomeWork { constructor(courseOpenId, openClassId, homeWorkId, hkTermTimeId) { this.courseOpenId = courseOpenId; this.openClassId = openClassId; this.homeWorkId = homeWorkId; // 作业id this.hkTermTimeId = hkTermTimeId; } // 获取该作业的详细信息 homeworkStulist getDetail() { return new Promise((resolve, reject) => { GM_xmlhttpRequest({ method: 'POST', url: window.urls.homework_detail, headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' }, data: 'courseOpenId=' + this.info.courseOpenId + '&openClassId=' + this.info.openClassId + '&homeworkId=' + this.info.homeworkId + '&hkTermTimeId=' + this.info.hkTermTimeId // '&dtype=1&viewType=2&unprocessed=0' , timeout: setting.time, onload: xhr => { if (xhr.status == 200) { this.detail = JSON.parse(xhr.responseText); resolve(this.detail); } } }); }) } // 根据 stuHomeworkId 获取 批过的试卷 getHistory() { return new Promise((resolve, reject) => { let index = this.detail.homeworkStulist.length - 1; // 最后一次提交 console.log(this.detail.homeworkStulist); GM_xmlhttpRequest({ method: 'POST', url: window.urls.homework_history, headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' }, data: 'courseOpenId=' + this.detail.courseOpenId + '&homeWorkId=' + this.detail.homeworkId + '&studentWorkId=' + this.detail.homeworkStulist[index].Id , timeout: setting.time, onload: xhr => { if (xhr.status == 200) { this.history = JSON.parse(xhr.responseText); resolve(this.history); } } }); }) } }