网课视频辅助学习助手

支持:【思想天下】【河北药师网】【湖南师范大学】【新疆继续教育】【成都市中小学】【湖北第二师范】【高等学历】【电子科技大学】【华东师范大学教师研修平台】【企安全】【夏邑县小学教师】【贵州省党员干部网络学院】【江西专技学习网】【浙江省建设人才远程继续教育平台】【云南省执业药师协会】【河南教师培训网】【浙里学习】【石家庄铁道大学】【宁夏专业技术人员继续教育在线培训平台】【河南华夏基础教育学院】【师学通】【河南专技在线】【上海开放大学】【国家开放大学】【兰州理工大学】【兰州大学】【北京教师学习网】【青岛市专业技术人员】【兰州资源环境职业技术大学】【漯河学院】【华北电力大学】【河南省新闻出版学校】【东奥会计继续教育】【梦想在线】【广东远程职业培训平台】【黑龙江省网络助学平台】【S云课堂网校】【河北机电职业技术学院】【贵州省专业技术人员继续教育平台】【和学在线】【河南华夏基础】【职教云】【河北教师教育网】【山东干部网络学院】【克拉玛依开放大学继续教育网】【教师专业发展培训网】【广州市干部】【西南交通大学】【甘肃干部网络学院】等

  1. // ==UserScript==
  2. // @name 网课视频辅助学习助手
  3. // @namespace http://tampermonkey.net/
  4. // @version 2.3.3.1
  5. // @description 支持:【思想天下】【河北药师网】【湖南师范大学】【新疆继续教育】【成都市中小学】【湖北第二师范】【高等学历】【电子科技大学】【华东师范大学教师研修平台】【企安全】【夏邑县小学教师】【贵州省党员干部网络学院】【江西专技学习网】【浙江省建设人才远程继续教育平台】【云南省执业药师协会】【河南教师培训网】【浙里学习】【石家庄铁道大学】【宁夏专业技术人员继续教育在线培训平台】【河南华夏基础教育学院】【师学通】【河南专技在线】【上海开放大学】【国家开放大学】【兰州理工大学】【兰州大学】【北京教师学习网】【青岛市专业技术人员】【兰州资源环境职业技术大学】【漯河学院】【华北电力大学】【河南省新闻出版学校】【东奥会计继续教育】【梦想在线】【广东远程职业培训平台】【黑龙江省网络助学平台】【S云课堂网校】【河北机电职业技术学院】【贵州省专业技术人员继续教育平台】【和学在线】【河南华夏基础】【职教云】【河北教师教育网】【山东干部网络学院】【克拉玛依开放大学继续教育网】【教师专业发展培训网】【广州市干部】【西南交通大学】【甘肃干部网络学院】等
  6. // @author
  7. // @match *://*/*
  8. // @grant GM_xmlhttpRequest
  9. // @grant GM_openInTab
  10. // @grant GM_setValue
  11. // @grant GM_getValue
  12. // @grant GM_deleteValue
  13. // @grant GM_addValueChangeListener
  14. // @grant window.close
  15. // @grant window.onurlchange
  16. // @grant GM_registerMenuCommand
  17. // @antifeature payment
  18. // @noframes
  19. // @connect www.gaozhiwang.top
  20. // @connect 47.115.205.88
  21. // @connect localhost
  22. // @antifeature payment 学习辅助付费
  23. // @license MIT
  24. // ==/UserScript==
  25.  
  26. "use strict";
  27. !function () {
  28. const panelcss = `
  29. .myTool{
  30. background: #fff;
  31. width: 234px;
  32. font-size: 14px;
  33. display: flex;
  34. flex-direction: column;
  35. align-items: center;
  36. position: fixed;
  37. z-index: 9999;
  38. top: 70px;
  39. left: 44px;
  40. box-sizing: border-box;
  41. padding: 15px 9px;
  42. border-radius: 5px;
  43. box-shadow: 0 0 9px rgba(0,0,0,.5);
  44. }
  45. .controls{
  46. position: absolute;
  47. right: 12px;
  48. font-size: 27px;
  49. top: 9px;
  50. cursor: pointer;
  51. transition: all 0.4s;
  52. }
  53. .controls:hover{
  54. color: #1f74c;
  55. transform: rotate(360deg);
  56. }
  57. .myTool-content{
  58. transition: all 0.4s;
  59. overflow: hidden;
  60. }
  61. .mytoolkeyipt{
  62. width: 130px;
  63. height: 22px !important;
  64. outline: none;
  65. padding: 0px 3px;
  66. border: 1px solid #757575FF;
  67. border-radius: 3px;
  68. font-size: 13px;
  69. padding: 0px 3px;
  70. margin-right: 5px;
  71. margin-top: 2px;
  72. }
  73. .addkey-btn{
  74. color: #fff;
  75. background: #1f74ca;
  76. }
  77. .removkey-btn{
  78. color: #000;
  79. display: none;
  80. background: #eee;
  81. }
  82. .handleKeyBtn{
  83. width: 54px;
  84. height: 24px;
  85. margin-top: 2px;
  86. border: none;
  87. font-size: 12px;
  88. border-radius: 2px;
  89. cursor: pointer;
  90. }
  91. .handleSpeedUp{
  92. background: orange;
  93. font-size: 12px;
  94. color: #fff;
  95. padding: 4px 15px;
  96. border-radius: 5px;
  97. margin: 0 auto;
  98. max-width: 80px;
  99. margin-top: 10px;
  100. cursor: pointer;
  101. text-align: center;
  102. }
  103. .ctxTipWrap{
  104. min-width: 350px;
  105. min-height: 150px;
  106. text-align: center;
  107. line-height: 150px;
  108. background: #fff;
  109. position: fixed;
  110. z-index: 999;
  111. left: 50%;
  112. top: 50%;
  113. border-radius: 15px;
  114. box-shadow: 0 0 5px rgba(0,0,0,.6);
  115. display:none;
  116. }
  117. .cxtsection{
  118. width: 100%;
  119. box-sizing: border-box;
  120. padding: 0 5px;
  121. margin-bottom: 2px;
  122. }
  123. .cxtsection .ctx-title{
  124. text-align: left;
  125. margin-top: 12px;
  126. font-size: 12px;
  127. color: #4e5969;
  128. border-left: 2px solid #1f74ca;
  129. border-radius: 2px;
  130. padding-left: 3px;
  131. line-height: 16px;
  132. }
  133. .ctxsection2{
  134. display: flex;
  135. justify-content: space-between;
  136. }
  137. .ctxsection2 .speed-select{
  138. width: 50%;
  139. height: 22px !important;
  140. outline: none;
  141. position: relative;
  142. top: 10px;
  143. border: 1px solid #757575FF;
  144. border-radius: 3px;
  145. padding: 0;
  146. padding-left: 10px;
  147. }
  148. .ctxsection3{
  149. display: flex;
  150. align-items: center;
  151. justify-content: space-between;
  152. }
  153. .feedbackBtn{
  154. font-size: 13px;
  155. position: relative;
  156. top: 5px;
  157. cursor: pointer;
  158. color: #000;
  159. }
  160. a{
  161. text-decoration: none;
  162. }
  163. .myTool>.floatWin{
  164. position: fixed;
  165. left: -99999px;
  166. top: 9vh;
  167. width: 70px;
  168. height: 70px;
  169. background-color: orange;
  170. z-index: 9999999;
  171. border-radius: 50%;
  172. transition: all .6s;
  173. cursor: pointer;
  174. text-align: right;
  175. line-height: 70px;
  176. box-sizing: border-box;
  177. color: #fff;
  178. font-size: 13px;
  179. padding-right: 5px;
  180. }
  181. .myTool>.floatWin:hover{
  182. left: 0 !important;
  183. padding-right: 0px;
  184. font-size: 16px;
  185. text-align: center;
  186. }
  187. `;
  188. class GMTool {
  189. constructor() {
  190. }
  191. getValue(e) {
  192. return GM_getValue(e, null)
  193. }
  194. setValue(e, t) {
  195. GM_setValue(e, t)
  196. }
  197. deleteValue(e) {
  198. GM_deleteValue(e)
  199. }
  200. registerMenuCommand(e, t, l) {
  201. GM_registerMenuCommand(e, () => {
  202. "function" == typeof l && l()
  203. }, t)
  204. }
  205. openInTab(e) {
  206. GM_openInTab(e, {active: !0})
  207. }
  208. isDateGreaterThanSevenDays(e) {
  209. e = new Date(e).getTime();
  210. return 7 < ((new Date).getTime() - e) / 864e5
  211. }
  212. axfedata(e) {
  213. return new Promise(t => {
  214. GM_xmlhttpRequest({
  215. ...e, onload: function (e) {
  216. 200 == e.status && t(JSON.parse(e.response))
  217. }
  218. })
  219. })
  220. }
  221. sleep(t) {
  222. return new Promise(e => setTimeout(e, t))
  223. }
  224. }
  225. const MyTool = new GMTool;
  226. let ElementObj = {};
  227. function erf(data) {
  228. try {
  229. eval(data)
  230. } catch (e) {
  231. new Function(data)()
  232. }
  233. }
  234. let _i1 = {
  235. zhihuishu: {mainClass: "zhihuishu"},
  236. uxueyuan: {
  237. mainClass: "CTXCommon",
  238. option: {
  239. nodeListClass: ".page-name", activeClass: "active", listenRebortFn: function (e) {
  240. document.querySelector(".btn-submit")?.click()
  241. }
  242. }
  243. },
  244. ningmengwencai: {
  245. mainClass: "CTXCommon", option: {
  246. nodeListClass: "", activeClass: "", async _init(t) {
  247. let e = setInterval(() => {
  248. try {
  249. if (ElementObj.$allTask = document.querySelectorAll("iframe")[1].contentDocument.querySelectorAll(".childSection"), ElementObj.$allTask.length) {
  250. clearInterval(e), ElementObj.$handleSpeedUp.style.display = "none";
  251. for (let e = 0; e < ElementObj.$allTask.length; e++) if (ElementObj.$allTask[e].classList.contains("active")) {
  252. t.currentIndex = e, t._o1(t);
  253. break
  254. }
  255. }
  256. } catch (e) {
  257. }
  258. }, 1e3)
  259. }, videoEle() {
  260. return new Promise(e => {
  261. let t = 0, l = setInterval(() => {
  262. try {
  263. t += 1, ElementObj.$video = document.querySelectorAll("iframe")[1].contentDocument.querySelector("video"), ElementObj.$video && ElementObj.$video.duration ? (clearInterval(l), e(1)) : 7 <= t && (clearInterval(l), e(2))
  264. } catch (e) {
  265. }
  266. }, 1e3)
  267. })
  268. }, async beforePlayNext() {
  269. document.querySelectorAll("iframe")[1].contentDocument.querySelector("#saveBtn").click(), await MyTool.sleep(3e3)
  270. }
  271. }
  272. },
  273. henanxinxueyuan: {
  274. mainClass: "CTXCommon",
  275. option: {
  276. nodeListClass: ".collapseCont", activeClass: "", getCurrentIndexByOption() {
  277. return new Promise(t => {
  278. for (let e = 0; e < ElementObj.$allTask.length; e++) "[\u5b8c\u6210]" == ElementObj.$allTask[e].childNodes[0].childNodes[0].childNodes[2].firstChild.innerText && t(e)
  279. })
  280. }
  281. }
  282. },
  283. fujianshifan: {mainClass: "fujianshifan"},
  284. gxcic: {mainClass: "gxcic"},
  285. luohexueyuan: {
  286. mainClass: "CTXCommon",
  287. option: {
  288. nodeListClass: "li.catalog-box", activeClass: "activeCss", videoEle: () => new Promise(e => {
  289. let t = 0, l = setInterval(() => {
  290. t += 1, ElementObj.$video = document.querySelector("video"), ElementObj.$video ? (clearInterval(l), e(1)) : 7 <= t && (clearInterval(l), e(2))
  291. }, 1e3)
  292. }), _init: a => new Promise(e => {
  293. let n = setInterval(async () => {
  294. if (ElementObj.$allTask = document.querySelectorAll("li.catalog-box .play-c"), ElementObj.$allTask.length) {
  295. clearInterval(n), ElementObj.$handleSpeedUp.style.display = "none";
  296. for (let e = 0; e < ElementObj.$allTask.length; e++) {
  297. var t = ElementObj.$allTask[e];
  298. if ("\u5df2\u5b66\u4e60" != t.parentElement.querySelector(".c-999").getAttribute("data-original-title")) {
  299. var l = t.parentElement.querySelector(".activeCss");
  300. showTip("\u521d\u59cb\u5316\u5b8c\u6210,\u5373\u5c06\u5f00\u59cb\u64ad\u653e"), l || (t.click(), await MyTool.sleep(2e3)), a.currentIndex = e, a._o1();
  301. break
  302. }
  303. }
  304. }
  305. }, 1e3)
  306. })
  307. }
  308. },
  309. mengxiangzaixian: {
  310. mainClass: "CTXCommon", option: {
  311. nodeListClass: "", _init: () => new Promise(e => {
  312. let t = setInterval(() => {
  313. ElementObj.$allTask = document.querySelectorAll(".el-card__body button i"), ElementObj.$allTask.length && (clearInterval(t), ElementObj.$handleSpeedUp.style.display = "none", toolOption.CtxMain.getCurrentIndex())
  314. }, 1e3)
  315. }), getCurrentIndexByOption: () => new Promise(t => {
  316. var l = document.querySelectorAll(".el-progress");
  317. for (let e = 0; e < l.length; e++) {
  318. var n = l[e], a = n.getAttribute("aria-valuenow");
  319. if (parseInt(a) <= 99) {
  320. n.click(), t(e);
  321. break
  322. }
  323. }
  324. })
  325. }
  326. },
  327. fjsf2: {mainClass: "fjsf2"},
  328. liangyijiaoyu: {mainClass: "liangyijiaoyu"},
  329. zjzx: {mainClass: "zjzx"},
  330. zxpxmr: {mainClass: "zxpxmr"},
  331. ggfw: {mainClass: "ggfw"},
  332. liangshizaixian: {mainClass: "liangshizaixian"},
  333. gzjxjy: {
  334. mainClass: "CTXCommon", runtype: -1, option: {
  335. nodeListClass: "", activeClass: "", nextClass: "p", async _init(o) {
  336. let t = setInterval(async () => {
  337. if (ElementObj.$allTask = document.querySelectorAll(".el-step"), ElementObj.$allTask.length) {
  338. clearInterval(t);
  339. let l = -1;
  340. ElementObj.$allTask.forEach((e, t) => {
  341. e.querySelector(".status-tip") || -1 != o.currentIndex || (o.currentIndex = t), e.classList.contains("active") && (l = t)
  342. }), l != o.currentIndex && ElementObj.$allTask[o.currentIndex].querySelector(".step-title").click(), showTip("✅✅✅\u521d\u59cb\u5316\u5b8c\u6210,\u5373\u5c06\u5f00\u59cb\u81ea\u52a8\u64ad\u653e"), ElementObj.$handleSpeedUp.style.display = "none", void o._o1()
  343. } else {
  344. var e = document.querySelector(".survey-header-subtitle");
  345. if (ElementObj.$allTask = document.querySelectorAll(".question-title"), e && ElementObj.$allTask.length) {
  346. clearInterval(t), showTip("🔉\u9898\u76ee\u521d\u59cb\u5316\u5b8c\u6210", 3e3);
  347. for (var n of ElementObj.$allTask) {
  348. var a = n.querySelector(".show-text").innerText;
  349. let t = n.querySelectorAll(".el-radio__label");
  350. var i = 1 < t.length ? 1 : 2;
  351. 2 == i && (t = n.querySelectorAll(".el-checkbox__label"));
  352. let l = [0];
  353. n = await axfedata({url: _b + "/searchtopic?topicname=" + a, method: "GET"});
  354. n.result.topickey ? l = n.result.topickey.split(",") : 2 == i && (l = [0, 1, 2]);
  355. for (let e = 0; e < t.length; e++) -1 != l.indexOf(e) && t[e].click(), await sleep(400)
  356. }
  357. }
  358. }
  359. }, 1e3)
  360. }, listenRebortFn(e) {
  361. var t = document.querySelector(".dialog-footer button");
  362. t ? t.click() : setTimeout(() => {
  363. ElementObj.$video.play()
  364. }, 1e3)
  365. }
  366. }
  367. },
  368. mingshiclass: {mainClass: "mingshiclass"},
  369. qiangshi: {mainClass: "qiangshi"},
  370. lanzhgoulgjs: {mainClass: "lanzhgoulgjs"},
  371. beijingjiaoshi: {mainClass: "beijingjiaoshi"},
  372. qingyangzgzjzj: {mainClass: "qingyangzgzjzj"},
  373. lanzhouwenli: {mainClass: "lanzhouwenli"},
  374. xuexituqiang: {
  375. mainClass: "CTXCommon",
  376. option: {
  377. activeClass: "lesson-in", nodeListClass: ".lesson", playNext: async e => {
  378. await sleep(1500), e.currentIndex >= ElementObj.$allTask.length - 1 ? alert("\u5f53\u524d\u7ae0\u8282\u8bfe\u7a0b\u5df2\u5168\u90e8\u64ad\u653e\u5b8c\u4e86") : (e.currentIndex += 1, await sleep(2e3), document.querySelector(".el-message-box__btns button")?.click(), setTimeout(() => {
  379. e._o1()
  380. }, 5e3))
  381. }
  382. }
  383. },
  384. guojiazhihuijiaoyu: {mainClass: "guojiazhihuijiaoyu"},
  385. lanzhouchengren: {mainClass: "lanzhouchengren"},
  386. tsbtchinamde: {mainClass: "tsbtchinamde"},
  387. henangongshe: {mainClass: "henangongshe", remark: "\u548c\u5317\u4eac\u6559\u5e08\u4e00\u6837\u7684"},
  388. zjzjsrc: {mainClass: "zjzjsrc"},
  389. lzrejxjy: {mainClass: "lzrejxjy"},
  390. xuzhouyikedaxue: {mainClass: "xuzhouyikedaxue"},
  391. xibeisfzyjy: {mainClass: "xibeisfzyjy"},
  392. zgrtvu: {
  393. mainClass: "CTXCommon",
  394. option: {
  395. nodeListClass: ".page-list .page-item .page-name", activeClass: "cursor", listenRebortFn(e) {
  396. document.querySelector(".btn-submit")?.click();
  397. var t = document.querySelector("#alertModal"),
  398. t = (t && t.classList.contains("in") && document.querySelector(".close-btn").click(), document.querySelector(".math-question-input"));
  399. t && (localStorage.setItem("needMathCaptcha", ""), koLearnCourseViewModel.modalType(""), koLearnCourseViewModel.alertModal.hide(), ElementObj.$video.play())
  400. }
  401. }
  402. },
  403. henandikuang: {mainClass: "henandikuang"},
  404. henanzhuanjipeixun: {
  405. mainClass: "CTXCommon", apis: {
  406. getID(e) {
  407. return new Promise(t => {
  408. fetch(location.origin + "/student/single_video.jsp?" + e, {
  409. headers: {
  410. accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
  411. "accept-language": "zh-CN,zh;q=0.9",
  412. "sec-ch-ua": '"Chromium";v="130", "Google Chrome";v="130", "Not?A_Brand";v="99"',
  413. "sec-ch-ua-mobile": "?0",
  414. "sec-ch-ua-platform": '"Windows"',
  415. "sec-fetch-dest": "iframe",
  416. "sec-fetch-mode": "navigate",
  417. "sec-fetch-site": "same-origin",
  418. "upgrade-insecure-requests": "1"
  419. },
  420. referrerPolicy: "strict-origin-when-cross-origin",
  421. body: null,
  422. method: "GET",
  423. mode: "cors",
  424. credentials: "include"
  425. }).then(e => e.text()).then(e => {
  426. e = /"single_video_save.jsp", {id:([0-9]+), duration:total, studylong:studylong, position:current}/.exec(e)[1];
  427. t(e)
  428. })
  429. })
  430. }, savejsp(e, l) {
  431. return new Promise(t => {
  432. fetch(location.origin + "/student/single_video_save.jsp", {
  433. headers: {
  434. accept: "*/*",
  435. "accept-language": "zh-CN,zh;q=0.9",
  436. "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
  437. "sec-ch-ua": '"Chromium";v="130", "Google Chrome";v="130", "Not?A_Brand";v="99"',
  438. "sec-ch-ua-mobile": "?0",
  439. "sec-ch-ua-platform": '"Windows"',
  440. "sec-fetch-dest": "empty",
  441. "sec-fetch-mode": "cors",
  442. "sec-fetch-site": "same-origin",
  443. "x-requested-with": "XMLHttpRequest"
  444. },
  445. referrerPolicy: "strict-origin-when-cross-origin",
  446. body: `id=${e}&duration=${l}&studylong=${l}&position=` + l,
  447. method: "POST",
  448. mode: "cors",
  449. credentials: "include"
  450. }).then(e => e.text()).then(e => t(e))
  451. })
  452. }
  453. }, option: {
  454. nodeListClass: "", openListenPlayStatus: !1, async _init(n) {
  455. let a = setInterval(async () => {
  456. try {
  457. var e, t, l;
  458. ElementObj.$allTask = document.querySelectorAll("tbody tr"), ElementObj.$allTask.length ? (clearInterval(a), showTip("⚠️⚠️⚠️\u6b63\u5728\u521d\u59cb\u5316", 1500), ElementObj.$allTask.forEach((e, t) => {
  459. 1 < t && (e = e.querySelectorAll("td")[2].innerText, 100 != parseInt(e)) && -1 == n.currentIndex && (n.currentIndex = t)
  460. }), e = location.href, GM_setValue("homeUrl", e), showTip("⚠️⚠\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 3e3), t = ElementObj.$allTask[n.currentIndex].querySelectorAll("td")[3].querySelector("a"), await sleep(200), t.click(), await sleep(1500), document.querySelector("input.textbtn").click(), setTimeout(() => {
  461. window.close()
  462. }, 4500)) : (l = document.querySelector("iframe")?.contentDocument, ElementObj.$video = l?.querySelector("video"), ElementObj.$video && (clearInterval(a), n._o1()), ElementObj.$handleSpeedUp.style.display = "none")
  463. } catch (e) {
  464. }
  465. }, 500)
  466. }, videoEle() {
  467. return new Promise(t => {
  468. let l = 0, n = setInterval(() => {
  469. l += 1;
  470. var e = document.querySelector("iframe")?.contentDocument;
  471. ElementObj.$video = e?.querySelector("video"), ElementObj.$video && ElementObj.$video.duration ? (clearInterval(n), t(1)) : 7 <= l && (clearInterval(n), t(2))
  472. }, 1e3)
  473. })
  474. }, async playFn(e) {
  475. showTip("\u89c6\u9891\u52a0\u8f7d\u4e2d..."), await e.getVideoDom();
  476. var e = Math.trunc(ElementObj.$video.duration), t = ElementObj.$video.src,
  477. l = new URLSearchParams(location.href), n = l.get("cid"), l = l.get("sid"),
  478. t = (showTip("🔊🔊🔊\u6b63\u5728\u8bf7\u6c42\u6570\u636e...."), await _i1.henanzhuanjipeixun.apis.getID(`video=${t}&cid=${n}&sid=` + l));
  479. if (!t || !e) return alert("\u53c2\u6570\u9519\u8bef");
  480. await _i1.henanzhuanjipeixun.apis.savejsp(t, e);
  481. showTip("🔊🔊🔊\u5b66\u4e60\u5b8c\u6210,\u5373\u5c06\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a...."), setTimeout(() => {
  482. window.close()
  483. }, 2500), MyTool.openInTab(MyTool.getValue("homeUrl"))
  484. }
  485. }
  486. },
  487. zhejiangtjj: {mainClass: "zhejiangtjj"},
  488. guizhouzxjxjy: {
  489. mainClass: "CTXCommon",
  490. option: {
  491. nodeListClass: ".lcml_djj_list li", activeClass: "on", playFn: async e => {
  492. clearInterval(e.timer), clearInterval(e.listenVidoeStatusTimer), clearInterval(e.listenRebortTime);
  493. await e.getVideoDom();
  494. document.querySelector(".xgplayer-icon-play")?.click(), showTip("\u6b63\u5728\u52a0\u8f7d\u89c6\u9891", 2e3), await sleep(2e3), await e.getVideoDom(), ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
  495. ElementObj.$video.playbackRate = toolOption.accelerator
  496. }, 3e3), ElementObj.$video.addEventListener("ended", async () => {
  497. showTip("✅✅✅\u5f53\u524d\u89c6\u9891\u5df2\u64ad\u653e\u5b8c,5\u79d2\u540e\u64ad\u653e\u4e0b\u4e00\u4e2a", 4500), e.playNext(e)
  498. }), ElementObj.$video.addEventListener("pause", () => {
  499. setTimeout(() => {
  500. ElementObj.$video.volume = 0, ElementObj.$video.play()
  501. }, 1500)
  502. })
  503. }
  504. }
  505. },
  506. jiangxizhipeizaixian: {mainClass: "jiangxizhipeizaixian"},
  507. anhuijixujyzx: {mainClass: "anhuijixujyzx"},
  508. lanzhoudxgs: {mainClass: "lanzhoudxgs"},
  509. jidianshejijiaoyu: {mainClass: "jidianshejijiaoyu"},
  510. henanzhujianjy: {mainClass: "henanzhujianjy"},
  511. sipingnengcun: {
  512. mainClass: "CTXCommon",
  513. option: {
  514. nodeListClass: ".videolist_item", openListenPlayTime: !1, getCurrentIndexByOption() {
  515. return new Promise(e => {
  516. for (var t = 0; t < ElementObj.$allTask.length; t++) if (!ElementObj.$allTask[t].querySelector(".el-progress").classList.contains("is-success")) {
  517. e(t);
  518. break
  519. }
  520. alert("\u5f53\u524d\u8bfe\u7a0b\u89c6\u9891\u5df2\u5168\u90e8\u64ad\u653e\u5b8c")
  521. })
  522. }
  523. }
  524. },
  525. ycjyluteducn: {mainClass: "ycjyluteducn"},
  526. gdrcjxjyw: {mainClass: "gdrcjxjyw"},
  527. shandongqlteacher: {
  528. mainClass: "CTXCommon",
  529. option: {
  530. nodeListClass: "app-course-catalogue.ng-star-inserted .ant-list-items li",
  531. getCurrentIndexByOption() {
  532. return new Promise(t => {
  533. for (let e = 0; e < ElementObj.$allTask.length; e++) ElementObj.$allTask[e].querySelector("div.align-items-center") || t(e)
  534. })
  535. }
  536. }
  537. },
  538. shixuetong: {mainClass: "shixuetong"},
  539. shandongenhualvyou: {mainClass: "shandongenhualvyou"},
  540. gansugongwuyuan: {mainClass: "gansugongwuyuan"},
  541. wlmqcol: {mainClass: "wlmqcol"},
  542. shandongzhuanyejisu: {mainClass: "shandongzhuanyejisu"},
  543. chongqingzhuanye: {mainClass: "chongqingzhuanye"},
  544. jiaoyuganbuwang: {mainClass: "jiaoyuganbuwang"},
  545. zhijiaoyun: {mainClass: "shandongzhuanyejisu"},
  546. zhijiaoyun2: {mainClass: "zhijiaoyun2"},
  547. zaixianxuexi: {mainClass: "zaixianxuexi"},
  548. anquanshengchanzx: {
  549. mainClass: "CTXCommon", option: {
  550. nodeListClass: "", activeClass: "", videoEle: () => new Promise(e => {
  551. let t = 0, l = setInterval(() => {
  552. t += 1, ElementObj.$video = document.querySelector("#vjs_video_3_html5_api"), ElementObj.$video ? (clearInterval(l), e(1)) : 7 <= t && (clearInterval(l), e(2))
  553. }, 1e3)
  554. }), async _init(a) {
  555. let i = setInterval(async () => {
  556. try {
  557. var e = document.querySelectorAll(".chapter_j>span"),
  558. t = document.querySelectorAll(".first-box");
  559. if (ElementObj.$allTask = e.length ? e : t, ElementObj.$allTask.length) {
  560. clearInterval(i), showTip("\u6b63\u5728\u521d\u59cb\u5316"), ElementObj.$handleSpeedUp.style.display = "none";
  561. for (var l = 0; l <= ElementObj.$allTask.length - 1; l++) {
  562. var n = ElementObj.$allTask[l].querySelector("li");
  563. if (n && n.classList.contains("currse")) {
  564. a.currentIndex = l;
  565. break
  566. }
  567. if (ElementObj.$allTask[l].classList.contains("text-color")) {
  568. a.currentIndex = l;
  569. break
  570. }
  571. }
  572. -1 == a.currentIndex ? alert("\u5f53\u524d\u8bfe\u7a0b\u5df2\u5168\u90e8\u5b66\u5b8c") : ("/course/lesson" != location.pathname && ElementObj.$allTask[a.currentIndex].querySelector("li")?.click(), showTip("\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e"), a._o1())
  573. }
  574. } catch (e) {
  575. }
  576. }, 500)
  577. }, listenRebortFn(e) {
  578. if ("none" != document.querySelector(".mask.mask_bg").style.display) e.playNext(e); else {
  579. var t = ElementObj.$video.currentTime / 60, l = ElementObj.$video.duration / 60,
  580. n = document.querySelector(".vjs-remaining-time-display");
  581. if (n) if ("0:00" == n.innerText) return void e.playNext(e);
  582. l <= t && e.playNext(e)
  583. }
  584. }, async playNext(t) {
  585. if (await sleep(2e3), t.currentIndex >= ElementObj.$allTask.length - 1) alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c"); else {
  586. t.currentIndex += 1;
  587. let e = ElementObj.$allTask[t.currentIndex].querySelector("li");
  588. (e = "/course/lesson" == location.pathname ? ElementObj.$allTask[t.currentIndex] : e)?.click(), setTimeout(() => {
  589. t._o1()
  590. }, 2e3)
  591. }
  592. }
  593. }
  594. },
  595. guojiakaifangdaxue: {mainClass: "guojiakaifangdaxue"},
  596. jjjxjy: {mainClass: "jjjxjy"},
  597. csustcj: {
  598. mainClass: "CTXCommon",
  599. option: {nodeListClass: ".ivu-tree-children .render-content__video", activeClass: "activeVideo"}
  600. },
  601. xiangongyedx: {
  602. mainClass: "CTXCommon", apis: {
  603. getList(e) {
  604. return new Promise(t => {
  605. fetch(location.origin + "/cjapi/other/student/plan/view?id=" + e, {
  606. headers: {
  607. accept: "application/json, text/plain, */*",
  608. authorization: "Bearer." + localStorage.getItem("stuToken"),
  609. "sec-fetch-mode": "cors",
  610. "sec-fetch-site": "same-origin"
  611. },
  612. referrerPolicy: "strict-origin-when-cross-origin",
  613. body: null,
  614. method: "GET",
  615. mode: "cors",
  616. credentials: "include"
  617. }).then(e => e.json()).then(e => {
  618. e = e.data.chapter.map(e => e.items);
  619. t(e)
  620. })
  621. })
  622. }, getDetail(l, n) {
  623. return new Promise((t, e) => {
  624. fetch(location.origin + `/cjapi/other/student/chapter/view?id=${l}&tpcId=` + n, {
  625. headers: {
  626. accept: "application/json, text/plain, */*",
  627. authorization: "Bearer." + localStorage.getItem("stuToken"),
  628. "sec-fetch-mode": "cors",
  629. "sec-fetch-site": "same-origin"
  630. },
  631. referrerPolicy: "strict-origin-when-cross-origin",
  632. body: null,
  633. method: "GET",
  634. mode: "cors",
  635. credentials: "include"
  636. }).then(e => e.json()).then(e => {
  637. t(e.data.details.videoDuration)
  638. })
  639. })
  640. }, save(e) {
  641. return new Promise(t => {
  642. fetch(location.origin + "/cjapi/other/student/curriculum/progress/update/v2", {
  643. headers: {
  644. accept: "application/json, text/plain, */*",
  645. authorization: "Bearer." + localStorage.getItem("stuToken"),
  646. "content-type": "application/json;charset=UTF-8",
  647. isneedprogressbar: "false",
  648. repeatsubmit: "false",
  649. "sec-fetch-mode": "cors",
  650. "sec-fetch-site": "same-origin"
  651. },
  652. referrerPolicy: "strict-origin-when-cross-origin",
  653. body: JSON.stringify(e),
  654. method: "PUT",
  655. mode: "cors",
  656. credentials: "include"
  657. }).then(e => e.json()).then(e => t(e))
  658. })
  659. }
  660. }, option: {
  661. nodeListClass: ".ivu-tree-children .render-content__video", activeClass: "activeVideo", async _init(i) {
  662. let o = setInterval(async () => {
  663. var e = /[0-9]+/.exec(location.pathname)[0], t = document.querySelector(".details-container");
  664. if (e && t) {
  665. clearInterval(o), ElementObj.$handleSpeedUp.style.display = "none", await i.changeHtml(t), i.addInfo("\u6b63\u5728\u83b7\u53d6\u8bfe\u7a0b\u4fe1\u606f");
  666. var l, n, t = await _i1.xiangongyedx.apis.getList(e);
  667. i.addInfo("\u83b7\u53d6\u8bfe\u7a0b\u4fe1\u606f\u6210\u529f");
  668. for (l of t) for (var a of l) -1 == a.title.indexOf("\u7ae0\u8282\u6d4b\u8bc4") && a.video && !a.isover && (i.addInfo(`\u5373\u5c06\u5f00\u59cb\u64ad\u653e${a.title}】`), await _i1.xiangongyedx.apis.save({
  669. tpcId: Number(e),
  670. curriculumid: a.curriculum_id,
  671. chapterid: a.id,
  672. videoid: JSON.parse(a.video)[0].videoid,
  673. type: a.type,
  674. progress: -1
  675. }), n = await _i1.xiangongyedx.apis.getDetail(a.id, e), i.addInfo(`【${a.title}】\u64ad\u653e\u4e2d\u672c\u8282\u89c6\u9891\u65f6\u957f\u4e3a${a.timelen},\u81f3\u5c11\u5b66\u4e60${n}\u79d2`), MyTool.setValue("lenT", n), await i._o1(), (await _i1.xiangongyedx.apis.save({
  676. tpcId: Number(e),
  677. curriculumid: a.curriculum_id,
  678. chapterid: a.id,
  679. videoid: JSON.parse(a.video)[0].videoid,
  680. type: a.type,
  681. progress: n
  682. })).data.isOver) && i.addInfo(a.title + "\u8bfe\u7a0b\u5b66\u4e60\u5b8c\u6210")
  683. }
  684. }, 500)
  685. }, async playFn(e) {
  686. var t, l = MyTool.getValue("lenT");
  687. let n = 0;
  688. for (t of new Array(l)) n += 1, await MyTool.sleep(1e3), e.addInfo(`\u5df2\u64ad\u653e${n}\u79d2`)
  689. }
  690. }
  691. },
  692. hebeiganbu: {mainClass: "hebeiganbu"},
  693. gdedujsxx: {
  694. mainClass: "CTXCommon", option: {
  695. nodeListClass: "", activeClass: "", async _init(e) {
  696. let t = setInterval(async () => {
  697. location.host.includes("gdedu.gov.cn") && (clearInterval(t), ElementObj.$handleSpeedUp.style.display = "none", e._o1())
  698. }, 500)
  699. }, async listenRebortFn(e) {
  700. let t = document.querySelectorAll(".m-question-lst label");
  701. t.length && (t[0].click(), document.querySelector(".btn.u-main-btn").click(), await sleep(3e3), (t = document.querySelectorAll(".m-question-lst label")).length) && (t[1].click(), document.querySelector(".btn.u-main-btn").click());
  702. var l,
  703. n = document.querySelector(".g-study-prompt")?.innerText?.indexOf("\u60a8\u5df2\u5b8c\u6210\u89c2\u770b");
  704. (-1 != n || ([n, l] = document.querySelectorAll(".g-study-prompt span"), n && l && Number(n.innerHTML) <= Number(l.innerHTML))) && e.playNext(e)
  705. }, async playNext(e) {
  706. await sleep(4500), e.currentIndex += 1;
  707. var t = document.querySelector("a.btn.next.crt");
  708. t && (t.click(), setTimeout(() => {
  709. e._o1()
  710. }, 4e3))
  711. }
  712. }
  713. },
  714. wsjkrczyjn: {mainClass: "CTXCommon", option: {nodeListClass: ".setionItem", activeClass: "active"}},
  715. zhuzhouteacher: {mainClass: "zhuzhouteacher"},
  716. yinghuaxuetang: {mainClass: "yinghuaxuetang"},
  717. yidiantong: {
  718. mainClass: "CTXCommon",
  719. option: {
  720. nodeListClass: ".keshi", openListenPlayTime: !1, getCurrentIndexByOption() {
  721. return new Promise(e => {
  722. for (var t = 0; t <= ElementObj.$allTask.length - 1; t++) if (ElementObj.$allTask[t].classList.contains("active")) {
  723. e(t);
  724. break
  725. }
  726. })
  727. }, nextClass: "a"
  728. }
  729. },
  730. shanghaikaifangdx: {mainClass: "shanghaikaifangdx"},
  731. gzgbjy: {mainClass: "gzgbjy"},
  732. jixujiaoyuzaixian: {mainClass: "jixujiaoyuzaixian"},
  733. guizhoujianshezyjs: {mainClass: "guizhoujianshezyjs"},
  734. zaixian100f: {
  735. mainClass: "CTXCommon", option: {
  736. nodeListClass: "", activeClass: "", videoEle: () => new Promise(e => {
  737. let t = 0, l = setInterval(() => {
  738. t += 1, ElementObj.$video = document.querySelector("#vjs_video_3_html5_api"), ElementObj.$video ? (clearInterval(l), e(1)) : 7 <= t && (clearInterval(l), e(2))
  739. }, 1e3)
  740. }), async _init(a) {
  741. let i = setInterval(async () => {
  742. try {
  743. var e = document.querySelectorAll(".chapter_j>span"),
  744. t = document.querySelectorAll(".first-box");
  745. if (ElementObj.$allTask = e.length ? e : t, ElementObj.$allTask.length) {
  746. clearInterval(i), showTip("\u6b63\u5728\u521d\u59cb\u5316"), ElementObj.$handleSpeedUp.style.display = "none";
  747. for (var l = 0; l <= ElementObj.$allTask.length - 1; l++) {
  748. var n = ElementObj.$allTask[l].querySelector("li");
  749. if (n && n.classList.contains("currse")) {
  750. a.currentIndex = l;
  751. break
  752. }
  753. if (ElementObj.$allTask[l].classList.contains("text-color")) {
  754. a.currentIndex = l;
  755. break
  756. }
  757. }
  758. -1 == a.currentIndex ? alert("\u5f53\u524d\u8bfe\u7a0b\u5df2\u5168\u90e8\u5b66\u5b8c") : ("/course/lesson" != location.pathname && ElementObj.$allTask[a.currentIndex].querySelector("li")?.click(), showTip("\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e"), a._o1())
  759. }
  760. } catch (e) {
  761. }
  762. }, 500)
  763. }, listenRebortFn(e) {
  764. if ("none" != document.querySelector(".mask.mask_bg").style.display) e.playNext(e); else {
  765. var t = ElementObj.$video.currentTime / 60, l = ElementObj.$video.duration / 60,
  766. n = document.querySelector(".vjs-remaining-time-display");
  767. if (n) if ("0:00" == n.innerText) return void e.playNext(e);
  768. l <= t && e.playNext(e)
  769. }
  770. }, async playNext(t) {
  771. if (await sleep(2e3), t.currentIndex >= ElementObj.$allTask.length - 1) alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c"); else {
  772. t.currentIndex += 1;
  773. let e = ElementObj.$allTask[t.currentIndex].querySelector("li");
  774. (e = "/course/lesson" == location.pathname ? ElementObj.$allTask[t.currentIndex] : e)?.click(), setTimeout(() => {
  775. t._o1()
  776. }, 2e3)
  777. }
  778. }
  779. }
  780. },
  781. gzteacher: {mainClass: "gzteacher"},
  782. moocxinyingzao: {mainClass: "moocxinyingzao"},
  783. zhejiangzjelib: {mainClass: "zhejiangzjelib"},
  784. jlnkylllnet: {mainClass: "jlnkylllnet"},
  785. dongbeishifandaxue: {mainClass: "dongbeishifandaxue"},
  786. quanguomeotan: {mainClass: "CTXCommon", option: {nodeListClass: ".row1 a.subset-class", activeClass: "on"}},
  787. qzjystudy: {mainClass: "qzjystudy"},
  788. jsjxjypt: {mainClass: "CTXCommon", option: {nodeListClass: ".videoRight ul li", activeClass: "li1"}},
  789. GlivePro: {mainClass: "GlivePro"},
  790. gaodengxueli: {
  791. mainClass: "gaodengxueli",
  792. option: {nodeListClass: ".course-list-txt dd i", activeClass: "fa-youtube-play"}
  793. },
  794. henanzhuanjizaixian: {mainClass: "henanzhuanjizaixian"},
  795. hunannmdxs: {mainClass: "hunannmdxs"},
  796. shenixue: {
  797. mainClass: "CTXCommon",
  798. option: {
  799. nodeListClass: ".jss299", activeClass: "jss300", playNext: () => new Promise(e => {
  800. setTimeout(() => {
  801. ElementObj.$allTask = document.querySelectorAll(".jss299");
  802. for (var e of ElementObj.$allTask) if (!e.querySelector(".jss303")) {
  803. e.click(), setTimeout(() => {
  804. toolOption.CtxMain._o1()
  805. }, 3e3);
  806. break
  807. }
  808. }, 3e3)
  809. })
  810. }
  811. },
  812. dongaokauji: {
  813. mainClass: "CTXCommon", option: {
  814. nodeListClass: "", activeClass: "", openListenPlayTime: !0, _init: async n => {
  815. let a = setInterval(async () => {
  816. if (ElementObj.$parentNodes = document.querySelectorAll("tbody>tr"), -1 != ["/cwweb/lecture/lectureList", "/study/u/myCourse"].indexOf(location.pathname) && ElementObj.$parentNodes.length) {
  817. clearInterval(a);
  818. ElementObj.$handleSpeedUp.style.display = "none";
  819. for (var e = 0; e <= ElementObj.$parentNodes.length - 1; e++) {
  820. var t = ElementObj.$parentNodes[e];
  821. if ("/cwweb/lecture/lectureList" == location.pathname) {
  822. var l = t.querySelectorAll("td")[1].querySelectorAll("span");
  823. if (l[0].innerText != l[1].innerText.replace("/", "")) {
  824. MyTool.setValue("homeUrl", location.href), t.querySelector(".study-a").click(), setTimeout(() => {
  825. window.close()
  826. }, 2e4);
  827. break
  828. }
  829. } else {
  830. let e = t.querySelectorAll("td")[6];
  831. if ("\u5df2\u5b8c\u6210" != (e = "/study/u/myCourse" == location.pathname ? t.querySelectorAll("td")[5] : e).innerText.trim()) {
  832. MyTool.setValue("homeUrl", location.href), t.querySelector("a.operate-a.active").click();
  833. break
  834. }
  835. }
  836. }
  837. location.pathname
  838. }
  839. -1 != location.pathname.indexOf("/cwweb/videoShow/video/videoPlay") && (ElementObj.$handleSpeedUp.style.display = "none", clearInterval(a), n._o1())
  840. }, 1e3)
  841. }, listenRebortFn() {
  842. var e = document.querySelector("#vjs-overlay");
  843. e && (e.parentElement?.removeChild(e), setTimeout(() => {
  844. ElementObj.$video.volume = 0, ElementObj.$video.play()
  845. }, 2e3))
  846. }, async playNext(e) {
  847. var t = MyTool.getValue("homeUrl");
  848. location.href = t, setTimeout(() => {
  849. e._o1()
  850. }, 5e3)
  851. }
  852. }
  853. },
  854. btzjpx: {
  855. mainClass: "CTXCommon",
  856. option: {
  857. nodeListClass: ".classBox",
  858. openListenPlayStatus: !1,
  859. getCurrentIndexByOption: () => new Promise(e => {
  860. for (var t = 0; t <= ElementObj.$allTask.length - 1; t++) "rgb(240, 247, 254)" == ElementObj.$allTask[t].style.background && e(t)
  861. })
  862. }
  863. },
  864. bainianshuren: {mainClass: "bainianshuren"},
  865. dyyxlearning: {mainClass: "dyyxlearning"},
  866. hebeijiaoshijiaoyuwang: {mainClass: "hebeijiaoshijiaoyuwang"},
  867. shangdongganbu: {mainClass: "shangdongganbu"},
  868. yunketang: {
  869. mainClass: "yunketang",
  870. option: {nodeListClass: ".el-collapse-item__content div.file-item", activeClass: "file-item-active"}
  871. },
  872. guojiazhongxiaoxue: {
  873. mainClass: "CTXCommon", option: {
  874. nodeListClass: "", activeClass: "", async _init(a) {
  875. let i = setInterval(async () => {
  876. try {
  877. if (ElementObj.$handleSpeedUp.style.display = "none", ElementObj.$parentNodes = document.querySelectorAll(".fish-collapse-item"), ElementObj.$allTask = document.querySelectorAll(".resource-item"), ElementObj.$parentNodes.length || ElementObj.$allTask.length) {
  878. if (clearInterval(i), 1 == (ElementObj.$parentNodes.length ? 1 : 2)) {
  879. showTip("\u5b66\u4e60\u51c6\u5907\u4e2d~", 1e4);
  880. for (var t of ElementObj.$parentNodes) {
  881. t.querySelector(".fish-collapse-header").click();
  882. var l = t.querySelectorAll(".fish-collapse-header");
  883. let e = 0;
  884. if (1 < l.length) {
  885. for (var n of l) 0 != e && (n.click(), e += 1, await sleep(250));
  886. e = 0
  887. }
  888. await sleep(300)
  889. }
  890. ElementObj.$allTask = document.querySelectorAll(".resource-item");
  891. for (var e = 0; e <= ElementObj.$allTask.length - 1; e++) if ("\u5df2\u5b66\u5b8c" != ElementObj.$allTask[e].querySelector("i").title) {
  892. a.currentIndex = e;
  893. break
  894. }
  895. } else for (e = 0; e <= ElementObj.$allTask.length - 1; e++) if (ElementObj.$allTask[e].classList.contains("resource-item-active")) {
  896. a.currentIndex = e;
  897. break
  898. }
  899. -1 == a.currentIndex ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (ElementObj.$allTask[a.currentIndex].click(), showTip("✅✅✅\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 3e3), setTimeout(() => {
  900. a._o1()
  901. }, 3e3))
  902. }
  903. } catch (e) {
  904. }
  905. }, 1e3)
  906. }, async playNext(e) {
  907. e.currentIndex >= ElementObj.$allTask.length - 1 ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (await sleep(2500), e.currentIndex += 1, ElementObj.$allTask[e.currentIndex].click(), setTimeout(() => {
  908. e._o1()
  909. }, 3e3))
  910. }, listenRebortFn() {
  911. document.querySelectorAll(".fish-btn.fish-btn-primary")[1]?.click();
  912. var e = document.querySelector(".fish-modal-root");
  913. e?.parentElement?.removeChild(e)
  914. }
  915. }
  916. },
  917. huaxiajiaoshiyanpei: {mainClass: "huaxiajiaoshiyanpei"},
  918. zhelixuexi: {mainClass: "zhelixuexi"},
  919. fhswifer: {mainClass: "fhswifer"},
  920. shdfuruuwsor: {
  921. mainClass: "CTXCommon", option: {
  922. nodeListClass: ".simple-list li",
  923. openListenPlayStatus: !1,
  924. openListenPlayTime: !0,
  925. _init: () => new Promise(l => {
  926. let n = setInterval(() => {
  927. var e = document.querySelector(".el-message-box__wrapper");
  928. if (e && "none" != e.style.display && document.querySelector(".el-message-box__btns .el-button--primary").click(), ElementObj.$handleSpeedUp.style.display = "none", ElementObj.$allTask = document.querySelectorAll(".simple-list li"), 0 < ElementObj.$allTask.length) {
  929. clearInterval(n);
  930. for (var t = 0; t <= ElementObj.$allTask.length - 1; t++) if ("\u5b8c\u6210" != ElementObj.$allTask[t].querySelectorAll("div div")[2].innerText) {
  931. "rgb(255, 165, 0)" != ElementObj.$allTask[t].querySelector(".el-tooltip").style.color && ElementObj.$allTask[t].click(), toolOption.CtxMain.pdPlayFn(location.href), l(t);
  932. break
  933. }
  934. }
  935. })
  936. }),
  937. playNext: () => new Promise(e => {
  938. for (var t = 0; t <= ElementObj.$allTask.length - 1; t++) if ("rgb(255, 165, 0)" == ElementObj.$allTask[t].querySelector(".el-tooltip").style.color) {
  939. if ("\u5b8c\u6210" != ElementObj.$allTask[t].querySelectorAll("div div")[2].innerText) return toolOption.CtxMain.pdPlayFn(location.href), !1;
  940. ElementObj.$allTask[t + 1].click(), e(!0);
  941. break
  942. }
  943. }),
  944. listenRebortFn: () => {
  945. "\u5b8c\u6210" == document.querySelector(".el-tooltip[style]").parentElement.querySelectorAll("div div")[1].innerText && location.reload()
  946. }
  947. }
  948. },
  949. cnjiewhr34iuiehs: {
  950. mainClass: "CTXCommon",
  951. option: {
  952. nodeListClass: ".menu ul>li dl",
  953. openListenPlayStatus: !1,
  954. getCurrentIndexByOption: () => new Promise(e => {
  955. e(1)
  956. }),
  957. playNext: () => new Promise(e => {
  958. var t = MyTool.getValue("preVideoSrc");
  959. ElementObj.$video.src == t ? toolOption.CtxMain.play() : (MyTool.setValue("preVideoSrc", ElementObj.$video.src), setTimeout(() => {
  960. location.reload()
  961. }, 3e3))
  962. })
  963. }
  964. },
  965. rrhisdgf283y7jvdf: {mainClass: "rrhisdgf283y7jvdf"},
  966. f6872: {mainClass: "f6872"},
  967. a782: {mainClass: "rrhisdgf283y7jvdf"},
  968. su862v: {
  969. mainClass: "CTXCommon",
  970. option: {
  971. nodeListClass: "#m-chapter-ul li a",
  972. openListenPlayStatus: !1,
  973. openListenPlayTime: !0,
  974. activeClass: "z-crt"
  975. }
  976. },
  977. bfuew28: {
  978. mainClass: "CTXCommon",
  979. option: {
  980. nodeListClass: "", openListenPlayStatus: !1, videoEle: () => new Promise(e => {
  981. let t = 0, l = setInterval(() => {
  982. t += 1, ElementObj.$video = document.querySelectorAll("iframe")[2].contentDocument.querySelector("iframe").contentDocument.querySelector("video"), ElementObj.$video ? (clearInterval(l), e(1)) : 7 <= t && (clearInterval(l), e(2))
  983. }, 1e3)
  984. }), _init: () => new Promise(e => {
  985. let t = setInterval(() => {
  986. var e = document.querySelectorAll("iframe")[2];
  987. e && (ElementObj.$allTask = e.contentDocument.querySelectorAll(".s_point"), 0 < ElementObj.$allTask.length) && (clearInterval(t), ElementObj.$handleSpeedUp.style.display = "none", toolOption.CtxMain.getCurrentIndex())
  988. })
  989. }), getCurrentIndexByOption: () => new Promise(e => {
  990. for (var t = 0; t <= ElementObj.$allTask.length - 1; t++) if (ElementObj.$allTask[t].classList.contains("s_pointerct")) {
  991. e(t);
  992. break
  993. }
  994. }), listenRebortFn: () => {
  995. document.querySelector(".layui-layer-btn0")?.click(), ElementObj.$video.play()
  996. }
  997. }
  998. },
  999. sd199: {
  1000. mainClass: "CTXCommon",
  1001. option: {
  1002. nodeListClass: "", openListenPlayStatus: !1, videoEle: () => new Promise(e => {
  1003. let t = 0, l = setInterval(() => {
  1004. t += 1, ElementObj.$video = document.querySelectorAll("video")[1], ElementObj.$video && ElementObj.$video.src ? (clearInterval(l), e(1)) : 7 <= t && (clearInterval(l), e(2))
  1005. }, 1e3)
  1006. }), _init: n => new Promise(e => {
  1007. let t = 10, l = setInterval(() => {
  1008. t < 0 && (showTip("🔊\u672a\u627e\u5230\u76ee\u5f55,\u8bf7\u5728\u6b64\u754c\u9762\u624b\u52a8\u66f4\u6362\u4e00\u4e2a\u89c6\u9891", 4e3), clearInterval(l)), ElementObj.$allTask = document.querySelectorAll("ul a[id]"), 0 < ElementObj.$allTask.length && (clearInterval(l), ElementObj.$handleSpeedUp.style.display = "none", n.getCurrentIndex()), t += 1
  1009. }, 500)
  1010. }), getCurrentIndexByOption: () => new Promise(e => {
  1011. for (var t = document.querySelector(".learn-title").innerText.replace(/ /g, ""), l = 0; l <= ElementObj.$allTask.length - 1; l++) if (ElementObj.$allTask[l].innerText.replace(/ /g, "") == t) {
  1012. e(l);
  1013. break
  1014. }
  1015. })
  1016. }
  1017. },
  1018. f13v: {
  1019. mainClass: "CTXCommon",
  1020. option: {nodeListClass: ".el-menu li", activeClass: "is-active", openListenPlayStatus: !1}
  1021. },
  1022. g32f: {
  1023. mainClass: "CTXCommon",
  1024. option: {
  1025. nodeListClass: ".bb_e8edf0_dash div[id]",
  1026. activeClass: "cur",
  1027. openListenPlayStatus: !1,
  1028. _init: () => new Promise(e => {
  1029. let t = setInterval(() => {
  1030. ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), ElementObj.$handleSpeedUp.style.display = "none", toolOption.CtxMain._o1())
  1031. })
  1032. }),
  1033. playNext: () => new Promise(e => {
  1034. document.querySelector("a.btItem.Next").click()
  1035. })
  1036. }
  1037. },
  1038. ss10: {
  1039. mainClass: "CTXCommon", option: {
  1040. nodeListClass: ".menu_body span>a.chapter", _init: () => new Promise(l => {
  1041. let n = setInterval(() => {
  1042. if (ElementObj.$parentNodes = document.querySelector("iframe")?.contentDocument?.querySelectorAll(".class-wrapper"), ElementObj.$parentNodes && ElementObj.$parentNodes.length) {
  1043. clearInterval(n);
  1044. var t = localStorage.getItem("curClassName");
  1045. for (let e = 0; e < ElementObj.$parentNodes.length; e++) if (ElementObj.$parentNodes[e].querySelector(".kcmc").innerText.trim() == t) {
  1046. ElementObj.$parentNodes[e + 1].querySelector("input.btn").click();
  1047. break
  1048. }
  1049. l(!0)
  1050. }
  1051. var e;
  1052. "/student/IndexWlkc_BootStrap.aspx" == location.pathname && (clearInterval(n), ElementObj.$parentNodes = document.querySelector("iframe")?.contentDocument?.querySelectorAll(".menu_body span>a[title]"), ElementObj.$parentNodes && ElementObj.$parentNodes.length && ElementObj.$parentNodes[0].click(), l(!0)), ElementObj.$allTask = document.querySelectorAll(".menu_body span>a.chapter"), ElementObj.$allTask.length && (clearInterval(n), e = document.querySelector(".glyphicon-home").innerText.trim(), localStorage.setItem("curClassName", e), toolOption.CtxMain.getCurrentIndex(), l(!0))
  1053. }, 1e3)
  1054. }), getCurrentIndexByOption: () => new Promise(t => {
  1055. for (let e = 0; e < ElementObj.$allTask.length; e++) if ("rgb(51, 122, 183)" == ElementObj.$allTask[e].style.color) {
  1056. t(e);
  1057. break
  1058. }
  1059. }), playFn: async e => {
  1060. var t = /wlkcID=(.+)&wlk/.exec(location.search)[1], l = /wlkckkID=(.+)&/.exec(location.search)[1],
  1061. n = /zjid=(.+)/.exec(location.search)[1],
  1062. a = document.querySelector("#lbl_videoTime").innerText.trim(),
  1063. i = unsafeWindow.__VIEWSTATE.value, o = unsafeWindow.__VIEWSTATEGENERATOR.value,
  1064. r = unsafeWindow.__EVENTVALIDATION.value;
  1065. t && l && n && a && i && o && r ? (await fetch(location.origin + `/student/BootStrap_Video.aspx?wlkcID=${t}&wlkckkID=${l}&zjid=` + n, {
  1066. credentials: "include",
  1067. headers: {
  1068. "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0",
  1069. Accept: "*/*",
  1070. "Accept-Language": "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2",
  1071. "X-Requested-With": "XMLHttpRequest",
  1072. "X-MicrosoftAjax": "Delta=true",
  1073. "Cache-Control": "no-cache",
  1074. "Content-Type": "application/x-www-form-urlencoded; charset=utf-8"
  1075. },
  1076. body: `ScriptManager1=UpdatePanel%7CbtnYXXXSJ&__EVENTTARGET=&__EVENTARGUMENT=&postLearnTime=${Number(a)}&shijiLearnTime=${Number(a)}&learnTime=${Number(a)}&videoState=pause&__VIEWSTATE=${encodeURIComponent(i)}&__VIEWSTATEGENERATOR=${o}&__EVENTVALIDATION=${encodeURIComponent(r)}&__ASYNCPOST=true&btnYXXXSJ=`,
  1077. method: "POST",
  1078. mode: "cors"
  1079. }), toolOption.CtxMain.playNext(e)) : alert("\u53c2\u6570\u9519\u8bef")
  1080. }, playNext: t => new Promise(async e => {
  1081. t.currentIndex >= ElementObj.$allTask.length - 1 ? location.href = location.origin + "/student/IndexTemplate_BootStrap.aspx" : (await sleep(2e3), t.currentIndex += 1, ElementObj.$allTask[t.currentIndex]?.click(), setTimeout(() => {
  1082. t._o1()
  1083. }, 2e3))
  1084. })
  1085. }
  1086. },
  1087. das01: {
  1088. mainClass: "CTXCommon",
  1089. option: {
  1090. nodeListClass: "ul>li:first-child",
  1091. activeClass: "list",
  1092. openListenPlayStatus: !1,
  1093. _init: () => new Promise(t => {
  1094. let l = setInterval(() => {
  1095. if (ElementObj.$handleSpeedUp.style.display = "none", "/online/learn" == location.pathname) {
  1096. var e = document.querySelector(".toStudy");
  1097. if (e) return clearInterval(l), setTimeout(() => {
  1098. window.close()
  1099. }, 1e4), e.click(), void t(!0)
  1100. }
  1101. "/admin/lock/Study" == location.pathname && (ElementObj.$allTask = document.querySelectorAll("ul>li"), ElementObj.$allTask.length) && (clearInterval(l), toolOption.CtxMain.getCurrentIndex(), t(!0))
  1102. }, 500)
  1103. }),
  1104. listenRebortFn: () => {
  1105. var e, t = document.querySelector(".layui-input");
  1106. t && (e = t.getAttribute("data-num3"), t.value = e, document.querySelector(".layui-layer-btn0").click())
  1107. },
  1108. playNext: t => new Promise(async e => {
  1109. t.currentIndex >= ElementObj.$allTask.length - 1 ? location.href = "http://hzsdadmin.zhihuiteacher.com/online/learn" : (await sleep(2500), t.currentIndex += 1, ElementObj.$allTask[t.currentIndex]?.click(), setTimeout(() => {
  1110. t._o1()
  1111. }, 5e3))
  1112. })
  1113. }
  1114. },
  1115. aa101: {mainClass: "CTXCommon", option: {nodeListClass: ".level2>a", activeClass: "cur"}},
  1116. sdf1: {
  1117. mainClass: "CTXCommon",
  1118. option: {
  1119. nodeListClass: ".ml_2 li",
  1120. activeClass: "cur",
  1121. nextClass: ".littletit",
  1122. openListenPlayTime: !1,
  1123. getCurrentIndexByOption: () => new Promise(t => {
  1124. for (let e = 0; e < ElementObj.$allTask.length; e++) {
  1125. var l = ElementObj.$allTask[e].querySelector(".littlebot").querySelector(".el-progress"),
  1126. n = ElementObj.$allTask[e].querySelector(".elli").innerText.trim();
  1127. if (l && -1 == n.indexOf("\u5728\u7ebf\u4f5c\u4e1a") && -1 == n.indexOf("\u4e60\u9898\u6d4b\u9a8c") && -1 == n.indexOf("Test")) {
  1128. t(e);
  1129. break
  1130. }
  1131. }
  1132. }),
  1133. listenRebortFn: () => {
  1134. var e = document.querySelector("._active.elli"),
  1135. t = (e?.parentElement?.parentElement).querySelector(".el-icon-circle-check"),
  1136. e = e.innerText.trim();
  1137. !t && "\u5728\u7ebf\u4f5c\u4e1a" != e && -1 == e.indexOf("\u4e60\u9898\u6d4b\u9a8c") && -1 == e.indexOf("Test") || toolOption.CtxMain.playNext()
  1138. }
  1139. }
  1140. },
  1141. sdf3: {
  1142. mainClass: "CTXCommon",
  1143. option: {nodeListClass: "#classes li", activeClass: "li_current_index", openListenPlayTime: !1}
  1144. },
  1145. dsfs: {
  1146. mainClass: "CTXCommon", option: {
  1147. nodeListClass: "#content a", _init() {
  1148. return new Promise(l => {
  1149. let n = setInterval(() => {
  1150. if (ElementObj.$allTask = document.querySelectorAll("#content a"), ElementObj.$handleSpeedUp.style.display = "none", ElementObj.$allTask.length) {
  1151. clearInterval(n);
  1152. var t = MyTool.getValue("preClassName");
  1153. if (t) {
  1154. for (let e = 0; e < ElementObj.$allTask.length; e++) if (t == ElementObj.$allTask[e].innerText.trim()) {
  1155. MyTool.setValue("homeUrl", location.href), ElementObj.$allTask[e + 1].click();
  1156. break
  1157. }
  1158. } else MyTool.setValue("homeUrl", location.href), ElementObj.$allTask[0].click();
  1159. l(!0)
  1160. }
  1161. var e = document.querySelector(".item-title.label h1 a");
  1162. e && "/m/Exam/Student/startStudy" == location.pathname && (clearInterval(n), e.click(), l(!0)), "/m/Exam/Student/startStudy" == location.pathname && (clearInterval(n), toolOption.CtxMain.pdPlayFn(location.href), l(!0))
  1163. }, 500)
  1164. })
  1165. }, playNext(e) {
  1166. return new Promise(async (e, t) => {
  1167. var l = document.querySelector(".startStudy-title>p")?.innerText.trim();
  1168. MyTool.setValue("preClassName", l), document.querySelector(".bottom-pc-btn button").click(), await sleep(2e3), setTimeout(() => {
  1169. location.reload()
  1170. }, 3e3), document.querySelector(".modal-button.modal-button-bold").click()
  1171. })
  1172. }
  1173. }
  1174. },
  1175. bsd11: {
  1176. mainClass: "CTXCommon", option: {
  1177. nodeListClass: "a.title", getCurrentIndexByOption() {
  1178. return new Promise((t, e) => {
  1179. for (let e = 0; e < ElementObj.$allTask.length; e++) if (ElementObj.$allTask[e].parentElement.classList.contains("active")) {
  1180. t(e);
  1181. break
  1182. }
  1183. })
  1184. }
  1185. }
  1186. },
  1187. s221s: {
  1188. mainClass: "CTXCommon",
  1189. option: {
  1190. nodeListClass: ".tab-content-desc", activeClass: "desc-item-sel", playFn: async e => {
  1191. await e.getVideoDom();
  1192. ElementObj.$video.volume = 0, ElementObj.$video.play(), await sleep(1e3), ElementObj.$video.currentTime += 7200, await sleep(1e3), ElementObj.$video.currentTime += 7200, await sleep(1e3), e.playNext()
  1193. }
  1194. }
  1195. },
  1196. ifsbds: {
  1197. mainClass: "CTXCommon",
  1198. option: {
  1199. nodeListClass: ".tab-content-desc", activeClass: "desc-item-sel", _init: async () => {
  1200. let t = setInterval(() => {
  1201. if (ElementObj.$handleSpeedUp.style.display = "none", "/kaoshi_qnzzxy/majorlist.html" == location.pathname) clearInterval(t), alert("\u8bf7\u9009\u62e9\u4e00\u4e2a\u8bfe\u7a0b,\u70b9\u51fb\u8fdb\u53bb"); else {
  1202. if (ElementObj.$allTask = document.querySelectorAll(".list-group-item"), 0 < ElementObj.$allTask.length) {
  1203. clearInterval(t);
  1204. for (var e of ElementObj.$allTask) if ("\u5b66\u4e60\u8fdb\u5ea6:100.00%" != e.querySelector(".list-group-item-text.text-muted").innerText) {
  1205. MyTool.setValue("homeUrl", location.href), e.click();
  1206. break
  1207. }
  1208. }
  1209. "/kaoshi_qnzzxy/test.html" == location.pathname && (clearInterval(t), toolOption.CtxMain.pdPlayFn(location.href))
  1210. }
  1211. }, 500)
  1212. }, playNext: async e => {
  1213. location.href = MyTool.getValue("homeUrl")
  1214. }
  1215. }
  1216. },
  1217. sfps: {
  1218. mainClass: "CTXCommon",
  1219. option: {
  1220. nodeListClass: "", activeClass: "", openListenPlayStatus: !0, _init: async t => {
  1221. let l = setInterval(async () => {
  1222. if (ElementObj.$handleSpeedUp.style.display = "none", ElementObj.$allTask = document.querySelectorAll(".lesson li"), ElementObj.$allTask.length) {
  1223. clearInterval(l);
  1224. for (var e of ElementObj.$allTask) if (!e.classList.contains("history")) {
  1225. MyTool.setValue("homeUrl", location.href), e.querySelector("a").click();
  1226. break
  1227. }
  1228. }
  1229. "/course-section-video-play" == location.pathname && (clearInterval(l), window.alert = () => {
  1230. }, t._o1())
  1231. }, 200)
  1232. }, playNext: async e => {
  1233. window.alert = () => {
  1234. }, location.href = MyTool.getValue("homeUrl")
  1235. }, listenRebortFn: async () => {
  1236. var e = document.querySelector("#checkCode");
  1237. e.innerText && (document.querySelector("#inputCode").value = e.innerText, await sleep(1500), document.querySelector(".Button1.Button").click()), window.alert = () => !1, ElementObj.$video && ElementObj.$video.currentTime >= ElementObj.$video.duration && toolOption.CtxMain.playNext()
  1238. }
  1239. }
  1240. },
  1241. sf1101: {
  1242. mainClass: "CTXCommon",
  1243. option: {
  1244. nodeListClass: "span.studiedLesson",
  1245. activeClass: "RED",
  1246. openListenPlayStatus: !0,
  1247. async getCurrentIndex(t) {
  1248. for (let e = 0; e < ElementObj.$allTask.length; e++) {
  1249. var l = ElementObj.$allTask[e];
  1250. if (!l.classList.contains("studiedLessonMark")) {
  1251. t.currentIndex = e, showTip("\u521d\u59cb\u5316\u5b8c\u6210,3\u79d2\u540e\u5f00\u59cb\u81ea\u52a8\u64ad\u653e", 3e3), l.click(), setTimeout(() => {
  1252. t.pdPlayFn(location.href)
  1253. }, 2e3);
  1254. break
  1255. }
  1256. }
  1257. -1 === t.currentIndex && alert("\u5f53\u524d\u7ae0\u8282\u6240\u6709\u89c6\u9891\u5df2\u7ecf\u5b66\u4e60\u5b8c")
  1258. },
  1259. videoEle: () => new Promise(e => {
  1260. let t = 0, l = setInterval(() => {
  1261. t += 1, ElementObj.$video = document.querySelector("iframe")?.contentDocument?.querySelector("video"), ElementObj.$video ? (clearInterval(l), e(1)) : 7 <= t && (clearInterval(l), e(2))
  1262. }, 1e3)
  1263. }),
  1264. async listenRebortFn(e) {
  1265. var t = document.querySelector("iframe")?.contentDocument?.querySelector("#popup_panel input");
  1266. t && (t.click(), e.play())
  1267. },
  1268. async playNext() {
  1269. location.reload()
  1270. }
  1271. }
  1272. },
  1273. usd01: {
  1274. mainClass: "CTXCommon", option: {
  1275. nodeListClass: "", activeClass: "", _init: async r => {
  1276. let s = setInterval(async () => {
  1277. if (ElementObj.$handleSpeedUp.style.display = "none", document.querySelector(".iconfont.icon-fujian")) clearInterval(s), showTip("\u5224\u65ad\u6b64\u89c6\u9891\u7ae0\u8282\u4e3a\u975e\u89c6\u9891,\u5373\u5c06\u81ea\u52a8\u8df3\u8fc7", 3e3), await sleep(2500), r.playNext(); else if (ElementObj.$video = document.querySelector("video"), ElementObj.$video) clearInterval(s), document.querySelector(".xt_video_player_common_icon").click(), r._o1(); else if (-1 != location.pathname.indexOf("/v2/web/studentLog")) {
  1278. clearInterval(s);
  1279. var e = location.pathname.replace("/v2/web/studentLog/", "");
  1280. e:for (var t of new Array(100)) {
  1281. var l = await function (e) {
  1282. let l = document.cookie.split(";")[0].replace("csrftoken=", "");
  1283. return new Promise(t => {
  1284. fetch(e, {
  1285. headers: {
  1286. accept: "application/json, text/plain, */*",
  1287. "accept-language": "zh-CN,zh;q=0.9",
  1288. "classroom-id": "19933500",
  1289. priority: "u=1, i",
  1290. "sec-ch-ua": '"Google Chrome";v="125", "Chromium";v="125", "Not.A/Brand";v="24"',
  1291. "sec-ch-ua-mobile": "?0",
  1292. "sec-ch-ua-platform": '"Windows"',
  1293. "sec-fetch-dest": "empty",
  1294. "sec-fetch-mode": "cors",
  1295. "sec-fetch-site": "same-origin",
  1296. "university-id": "2760",
  1297. "uv-id": "2760",
  1298. "x-client": "web",
  1299. "x-csrftoken": l,
  1300. "xt-agent": "web",
  1301. xtbz: "ykt"
  1302. },
  1303. referrerPolicy: "strict-origin-when-cross-origin",
  1304. body: null,
  1305. method: "GET",
  1306. mode: "cors",
  1307. credentials: "include"
  1308. }).then(e => e.json()).then(e => t(e))
  1309. })
  1310. }(`https://www.yuketang.cn/v2/api/web/logs/learn/${e}?actype=15&page=0&offset=20&sort=-1`);
  1311. if (!l.data.activities) break;
  1312. var n, a = l.data.activities.map(e => e.courseware_id), i = await function (e) {
  1313. let l = document.cookie.split(";")[0].replace("csrftoken=", "");
  1314. return new Promise(t => {
  1315. fetch("https://www.yuketang.cn/mooc-api/v1/lms/learn/course/pub_new_pro", {
  1316. headers: {
  1317. accept: "application/json, text/plain, */*",
  1318. "accept-language": "zh-CN,zh;q=0.9",
  1319. "classroom-id": "19933500",
  1320. "content-type": "application/json;charset=UTF-8",
  1321. priority: "u=1, i",
  1322. "sec-ch-ua": '"Google Chrome";v="125", "Chromium";v="125", "Not.A/Brand";v="24"',
  1323. "sec-ch-ua-mobile": "?0",
  1324. "sec-ch-ua-platform": '"Windows"',
  1325. "sec-fetch-dest": "empty",
  1326. "sec-fetch-mode": "cors",
  1327. "sec-fetch-site": "same-origin",
  1328. "university-id": "2760",
  1329. "uv-id": "2760",
  1330. "x-csrftoken": l,
  1331. "xt-agent": "web",
  1332. xtbz: "ykt"
  1333. },
  1334. referrerPolicy: "strict-origin-when-cross-origin",
  1335. body: e,
  1336. method: "POST",
  1337. mode: "cors",
  1338. credentials: "include"
  1339. }).then(e => e.json()).then(e => t(e))
  1340. })
  1341. }(JSON.stringify({cid: e, new_id: a}));
  1342. for (n of l.data.activities) {
  1343. var o = n.courseware_id;
  1344. if (i.data[o] && 1 != i.data[o].total_done) {
  1345. o = `https://www.yuketang.cn/v2/web/xcloud/video-student/${e}/` + n.content.leaf_id;
  1346. MyTool.setValue("homeUrl", location.href), location.href = o;
  1347. break e
  1348. }
  1349. }
  1350. 0
  1351. }
  1352. }
  1353. }, 500)
  1354. }, playNext: async () => {
  1355. showTip("✅✅✅\u5373\u5c06\u5207\u6362\u4e0b\u4e00\u4e2a\u7ae0\u8282"), await sleep(2e3), location.href = MyTool.getValue("homeUrl")
  1356. }
  1357. }
  1358. },
  1359. sdhfks01: {
  1360. mainClass: "CTXCommon",
  1361. option: {
  1362. nodeListClass: ".video .chapterhead.chapterhead1 li",
  1363. activeClass: "current",
  1364. getCurrentIndexByOption: () => new Promise(e => {
  1365. var t = document.querySelector(".video_header .video_number").innerText.replace(/\u7b2c|\u8bb2/g, "");
  1366. e(Number(t) - 1)
  1367. }),
  1368. playNext(l) {
  1369. return new Promise(e => {
  1370. if (l.currentIndex >= ElementObj.$allTask.length - 1) alert("\u5df2\u5168\u90e8\u64ad\u653e\u5b8c"); else {
  1371. showTip("✅✅✅\u5373\u5c06\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u8282");
  1372. let t = setInterval(() => {
  1373. var e = document.querySelector(".el-message-box__btns button");
  1374. e && (l.currentIndex += 1, clearInterval(t), setTimeout(() => {
  1375. l._o1()
  1376. }, 4e3), e.click())
  1377. }, 500)
  1378. }
  1379. })
  1380. }
  1381. }
  1382. },
  1383. s01r: {
  1384. mainClass: "CTXCommon", option: {
  1385. nodeListClass: ".video .chapterhead.chapterhead1 li",
  1386. activeClass: "current",
  1387. openListenPlayTime: !0,
  1388. _init: async l => {
  1389. let n = setInterval(async () => {
  1390. if (ElementObj.$handleSpeedUp.style.display = "none", ElementObj.$allTask = document.querySelectorAll(".ul-course li"), "jxjy.ahhjsoft.com" === location.host && ElementObj.$allTask) clearInterval(n), showTip("🔊🔊🔊\u4ec5\u652f\u6301\u516c\u9700\u8bfe4、\u516c\u9700\u8bfe3", 4e3); else if (ElementObj.$allTask = document.querySelectorAll(".zdBox"), "ah.zhuanjipx.com" === location.host && ElementObj.$allTask.length) {
  1391. clearInterval(n), showTip("🔊🔊🔊\u6b63\u5728\u521d\u59cb\u5316", 4e3), l.classType = 3;
  1392. for (let e = 0; e < ElementObj.$allTask.length; e++) if (ElementObj.$allTask[e].classList.contains("childBox_item_on")) {
  1393. l.currentIndex = e, showTip("✅✅✅\u521d\u59cb\u5316\u5b8c\u6210,\u5f00\u59cb\u64ad\u653e", 2e3), l._o1();
  1394. break
  1395. }
  1396. } else {
  1397. var e = document.querySelectorAll(".ant-collapse-item");
  1398. if (0 < e.length) {
  1399. clearInterval(n), showTip("🔊🔊🔊\u6b63\u5728\u521d\u59cb\u5316", 4e3), l.classType = 4;
  1400. for (var t of e) t.classList.contains("ant-collapse-item-active") || (t.querySelector(".ant-collapse-header").click(), await sleep(100));
  1401. ElementObj.$allTask = document.querySelectorAll(".video_box_k_t_lx");
  1402. for (let e = 0; e < ElementObj.$allTask.length; e++) if (ElementObj.$allTask[e].classList.contains("video_box_k_active")) {
  1403. l.currentIndex = e, showTip("✅✅✅\u521d\u59cb\u5316\u5b8c\u6210,\u5f00\u59cb\u64ad\u653e", 2e3), l._o1();
  1404. break
  1405. }
  1406. }
  1407. }
  1408. }, 300)
  1409. },
  1410. playFn: async n => {
  1411. await n.getVideoDom(), 2 !== n.classType && 3 !== n.classType || (clearInterval(n.timer), clearInterval(n.listenVidoeStatusTimer), clearInterval(n.listenRebortTime), ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
  1412. ElementObj.$video.playbackRate = toolOption.accelerator
  1413. }, 3e3), ElementObj.$video.addEventListener("ended", async () => {
  1414. showTip("✅✅✅\u5f53\u524d\u89c6\u9891\u5df2\u64ad\u653e\u5b8c,5\u79d2\u540e\u64ad\u653e\u4e0b\u4e00\u4e2a", 4500), n.playNext(n)
  1415. }), ElementObj.$video.addEventListener("pause", () => {
  1416. setTimeout(() => {
  1417. ElementObj.$video.volume = 0, ElementObj.$video.play()
  1418. }, 1500)
  1419. })), 4 === n.classType && (await n.changeHtml($el("#video-content-box")), await n.getVideoDom(), n.addInfo("✅✅✅✅✅✅✅✅\u521d\u59cb\u5316\u5b8c\u6210,\u5373\u5c06\u5f00\u59cb\u64ad\u653e✅✅✅✅✅✅✅✅✅"), await sleep(1e3), showTip("🔉\u8bfe\u4ef6\u6b63\u5728\u5b66\u4e60,\u8bf7\u52a1\u70b9\u51fb\u6216\u957f\u65f6\u95f4\u9690\u85cf"), ElementObj.$video.volume = 0, document.querySelector(".vjs-big-play-button")?.click(), ElementObj.$video.play(), setTimeout(async () => {
  1420. var t = Math.ceil(ElementObj.$video.duration);
  1421. if (t) {
  1422. let e = 0;
  1423. for (var l of new Array(1e4)) {
  1424. if (e >= t) {
  1425. ElementObj.$video.currentTime = t - 10, await sleep(1e3), ElementObj.$video.currentTime = t, n.addInfo("🎉🎉🎉🎉🎉🎉🎉🎉\u5df2\u6210\u529f\u5b66\u5b8c🎉🎉🎉🎉🎉🎉🎉🎉"), await sleep(3e3), n.playNext();
  1426. break
  1427. }
  1428. l % 60 == 0 && 0 < l && (ElementObj.$video.currentTime = e), e += +toolOption.accelerator > t ? t : +toolOption.accelerator, n.addInfo(`🔊\u5f53\u524d\u72b6\u6001\u6b63\u5728\u4ee5${toolOption.accelerator}\u500d\u901f\u5b66\u4e60\u4e2d\u5df2\u5b66\u4e60${e}\u79d2\u89c6\u9891\u603b\u65f6\u957f\u4e3a${t / 60}\u5206\u949f`), await sleep(1e3)
  1429. }
  1430. } else alert("\u89c6\u9891\u65f6\u95f4\u9519\u8bef,\u8bf7\u5237\u65b0\u9875\u9762\u91cd\u8bd5")
  1431. }, 2e3))
  1432. },
  1433. async playNext(e) {
  1434. location.reload()
  1435. }
  1436. }
  1437. },
  1438. hsduf: {
  1439. mainClass: "CTXCommon", option: {
  1440. nodeListClass: ".menu_body dd", activeClass: "active", _init: async a => {
  1441. let i = setInterval(async () => {
  1442. ElementObj.$handleSpeedUp.style.display = "none";
  1443. var e = document.querySelector("#a2");
  1444. if (e) {
  1445. clearInterval(i), e.click(), await MyTool.sleep(2500);
  1446. var t = document.querySelectorAll("li[data-trainid]");
  1447. for (let e = 0; e < t.length; e++) {
  1448. var l = t[e];
  1449. MyTool.setValue("homeUrl", location.href), setTimeout(() => {
  1450. window.close()
  1451. }, 2e4), l.querySelector("a").click()
  1452. }
  1453. }
  1454. if (ElementObj.$allTask = document.querySelectorAll(".menu_body dd"), 0 < ElementObj.$allTask.length) {
  1455. clearInterval(i);
  1456. let t = !0;
  1457. for (let e = 0; e < ElementObj.$allTask.length; e++) {
  1458. var n = ElementObj.$allTask[e];
  1459. if (!n.classList.contains("active")) {
  1460. t = !1, a.currentIndex = e, n.classList.contains("hover") || n.querySelector("a").click(), showTip("✅✅✅\u6b63\u5728\u521d\u59cb\u5316", 3e3), a._o1();
  1461. break
  1462. }
  1463. }
  1464. t && (e = MyTool.getValue("homeUrl") || "https://www.ejxjy.com/a/sys/portal/person", location.href = e)
  1465. }
  1466. }, 300)
  1467. }, openListenPlayTime: !0, async playNext() {
  1468. location.reload()
  1469. }, playFn: async e => {
  1470. await e.getVideoDom(), await e.changeHtml(ElementObj.$video.parentElement);
  1471. var t = Math.ceil(ElementObj.$video.duration);
  1472. let l = 0;
  1473. var n = await new Promise(t => {
  1474. fetch(location.href, {
  1475. headers: {
  1476. accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
  1477. "accept-language": "zh-CN,zh;q=0.9",
  1478. priority: "u=0, i",
  1479. "sec-ch-ua": '"Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"',
  1480. "sec-ch-ua-mobile": "?0",
  1481. "sec-ch-ua-platform": '"Windows"',
  1482. "sec-fetch-dest": "document",
  1483. "sec-fetch-mode": "navigate",
  1484. "sec-fetch-site": "same-origin",
  1485. "sec-fetch-user": "?1",
  1486. "upgrade-insecure-requests": "1"
  1487. },
  1488. referrerPolicy: "strict-origin-when-cross-origin",
  1489. body: null,
  1490. method: "GET",
  1491. mode: "cors",
  1492. credentials: "include"
  1493. }).then(e => e.text()).then(e => {
  1494. e = e.match(/saveVideo\?id=(.+)"/)?.[1];
  1495. t(e)
  1496. })
  1497. });
  1498. if (n && t) {
  1499. setInterval(() => {
  1500. document.querySelector(".jbox-button-focus")?.click()
  1501. }, 300);
  1502. var a, i = ElementObj.$video.duration;
  1503. for (a of new Array(1e4)) {
  1504. var o = await function (e, l, n) {
  1505. return new Promise(t => {
  1506. try {
  1507. fetch("https://www.ejxjy.com/a/onlinelearn/stuCourse/saveVideo?id=" + n, {
  1508. headers: {
  1509. accept: "*/*",
  1510. "accept-language": "zh-CN,zh;q=0.9",
  1511. "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
  1512. priority: "u=0, i",
  1513. "sec-ch-ua": '"Google Chrome";v="125", "Chromium";v="125", "Not.A/Brand";v="24"',
  1514. "sec-ch-ua-mobile": "?0",
  1515. "sec-ch-ua-platform": '"Windows"',
  1516. "sec-fetch-dest": "empty",
  1517. "sec-fetch-mode": "cors",
  1518. "sec-fetch-site": "same-origin",
  1519. "x-requested-with": "XMLHttpRequest"
  1520. },
  1521. referrerPolicy: "strict-origin-when-cross-origin",
  1522. body: `nowTime=${e}&videoTime=` + l,
  1523. method: "POST",
  1524. mode: "cors",
  1525. credentials: "include"
  1526. }).then(e => e.json()).then(e => t(e))
  1527. } catch (e) {
  1528. t(!1)
  1529. }
  1530. })
  1531. }(l, i, n);
  1532. if (0 != o && l >= t) {
  1533. e.addInfo("🎉🎉🎉🎉🎉🎉🎉🎉\u5df2\u6210\u529f\u5b66\u5b8c🎉🎉🎉🎉🎉🎉🎉🎉"), await sleep(3e3), e.playNext(e);
  1534. break
  1535. }
  1536. "success" == o.data && (l += +toolOption.accelerator > t ? t : +toolOption.accelerator), e.addInfo(`🔊\u5f53\u524d\u72b6\u6001\u6b63\u5728\u4ee5${toolOption.accelerator}\u500d\u901f\u5b66\u4e60\u4e2d\u5df2\u5b66\u4e60${l}\u79d2\u89c6\u9891\u603b\u65f6\u957f\u4e3a${t / 60}\u5206\u949f`), await sleep(500)
  1537. }
  1538. } else showTip("\u89c6\u9891\u65f6\u95f4\u9519\u8bef,\u8bf7\u5237\u65b0\u9875\u9762\u91cd\u8bd5"), location.reload()
  1539. }
  1540. }
  1541. },
  1542. pa1: {
  1543. mainClass: "CTXCommon", option: {
  1544. activeClass: "", nodeListClass: "", _init: async n => {
  1545. let a = setInterval(() => {
  1546. ElementObj.$handleSpeedUp.style.display = "none";
  1547. var e = document.querySelectorAll(".navItem");
  1548. if (0 < e.length && (e[1].querySelector("span")?.classList.contains("active") || e[1].click()), ElementObj.$parentNodes = document.querySelector("iframe")?.contentDocument?.querySelectorAll(".itemList .contentItem"), 0 < ElementObj.$parentNodes.length) {
  1549. clearInterval(a);
  1550. for (var t of ElementObj.$parentNodes) if (t.querySelector(".ready")) {
  1551. MyTool.setValue("homeUrl", location.href), t.querySelector("a").click();
  1552. break
  1553. }
  1554. } else if (ElementObj.$allTask = document.querySelectorAll(".listGroup .listItem"), 0 < ElementObj.$allTask.length) {
  1555. clearInterval(a);
  1556. let e = !0;
  1557. for (var l of ElementObj.$allTask) if ("\u672a\u5b66\u4e60" === l.querySelector("button").innerText) {
  1558. e = !1, setTimeout(() => {
  1559. n._o1()
  1560. }, 3e3), l.querySelector(".text").click();
  1561. break
  1562. }
  1563. e && (location.href = MyTool.getValue("homeUrl") || "https://aqscpx.91huayi.com/Exercise/ExerciseHome/index")
  1564. }
  1565. }, 500)
  1566. }
  1567. }
  1568. },
  1569. bj1: {
  1570. mainClass: "CTXCommon", option: {
  1571. nodeListClass: "", activeClass: "", _init: async i => {
  1572. let o = setInterval(async () => {
  1573. if (ElementObj.$handleSpeedUp.style.display = "none", ElementObj.$parentNodes = document.querySelectorAll(".iv-personal-course-content li"), ElementObj.$parentNodes.length) {
  1574. clearInterval(o);
  1575. e:for (var e of new Array(2)) {
  1576. for (let e = 0; e < ElementObj.$parentNodes.length; e++) {
  1577. var t = ElementObj.$parentNodes[e],
  1578. l = t.querySelector(".ivu-progress-text span").innerText;
  1579. if (100 != parseInt(l)) {
  1580. MyTool.setValue("homeUrl", location.href), t.querySelectorAll(".iv-course-myClass span")[1].click();
  1581. break e
  1582. }
  1583. }
  1584. document.querySelector(".iv-page-next").click(), showTip("🔊\u6b63\u5728\u5207\u6362\u4e0b\u4e00\u9875...", 3e3), await sleep(3e3)
  1585. }
  1586. } else if (ElementObj.$allTask = document.querySelector(".iv-course-play-detail-menu-item")?.querySelectorAll("li"), 0 < ElementObj.$allTask.length) {
  1587. clearInterval(o);
  1588. for (let e = 0; e < ElementObj.$allTask.length; e++) {
  1589. var n = ElementObj.$allTask[e], a = n.querySelector(".iv-fs-12").innerText;
  1590. if (100 != parseInt(a)) {
  1591. i.currentIndex = e, n.click(), showTip("✅✅✅\u6b63\u5728\u521d\u59cb\u5316", 3e3), setTimeout(() => {
  1592. i._o1()
  1593. }, 3e3);
  1594. break
  1595. }
  1596. }
  1597. }
  1598. }, 300)
  1599. }, async playNext(e) {
  1600. var t;
  1601. e.currentIndex >= ElementObj.$allTask.length - 1 ? (t = MyTool.getValue("homeUrl") || "https://bjce.bjdj.gov.cn/#/personalSpace/MyCourse", window.open(t), window.close()) : (e.currentIndex += 1, ElementObj.$allTask[e.currentIndex]?.click(), setTimeout(() => {
  1602. e._o1()
  1603. }, 2e3))
  1604. }
  1605. }
  1606. },
  1607. sd2: {mainClass: "CTXCommon", option: {nodeListClass: ".numCHapter", activeClass: "active"}},
  1608. sfd9: {
  1609. mainClass: "CTXCommon", option: {
  1610. nodeListClass: ".videoList .item", activeClass: "active", _init: async n => {
  1611. let a = setInterval(async () => {
  1612. ElementObj.$handleSpeedUp.style.display = "none";
  1613. var e = document.querySelector("iframe");
  1614. if ("jxzj.zpwedu.com" === location.host && e && (location.href = e.src), ElementObj.$allTask = document.querySelectorAll(".videoList .item"), 0 < ElementObj.$allTask.length && "jxzjstu.zpwedu.com" === location.host) {
  1615. clearInterval(a);
  1616. for (let e = 0; e < ElementObj.$allTask.length; e++) {
  1617. var t = ElementObj.$allTask[e], l = t.querySelectorAll("div>div")[2];
  1618. if ("100%" != /\((.+)\)/.exec(l.innerText)[1]) {
  1619. t.classList.contains("active") || t.click(), showTip("✅✅✅\u521d\u59cb\u5316\u5b8c\u6210,3\u79d2\u540e\u81ea\u52a8\u64ad\u653e", 3e3), n.currentIndex = e, setTimeout(() => {
  1620. n._o1()
  1621. }, 2e3);
  1622. break
  1623. }
  1624. }
  1625. }
  1626. }, 300)
  1627. }, beforePlayVideo() {
  1628. document.querySelector(".pv-icon-volumeon")?.click()
  1629. }, beforePlayNext(e) {
  1630. var t = document.querySelector(".item.active")?.querySelectorAll("div>div")[2];
  1631. "100%" != /\((.+)\)/.exec(t.innerText)[1] && location.reload()
  1632. }, listenRebortFn() {
  1633. var e = document.querySelector(".item.active")?.querySelectorAll("div>div")[2];
  1634. "100%" == /\((.+)\)/.exec(e.innerText)[1] && location.reload()
  1635. }
  1636. }
  1637. },
  1638. hds1: {
  1639. mainClass: "CTXCommon", option: {
  1640. nodeListClass: ".ml.tab-info a", activeClass: "dd_active", _init: async r => {
  1641. let s = setInterval(async () => {
  1642. ElementObj.$handleSpeedUp.style.display = "none";
  1643. var e = document.querySelectorAll(".content_unit");
  1644. if (e.length) {
  1645. clearInterval(s);
  1646. e:for (var t of e) {
  1647. t.click(), await MyTool.sleep(2e3);
  1648. var l, t = document.querySelector(".note>p").innerText;
  1649. if (!(-1 < t.indexOf("\u606d\u559c\u60a8\u5df2\u5b8c\u6210"))) for (l of document.querySelectorAll("#watchcourseTable tbody tr")) {
  1650. var n, a = l.querySelectorAll("td")[5], i = l.querySelectorAll("td")[6];
  1651. if (a.innerText.trim() != i.innerText.trim() && "\u5df2\u5b8c\u6210" != i.innerText.trim()) {
  1652. l.querySelector(".studyBegin").click(), await MyTool.sleep(2e3), document.querySelector(".layui-layer-btn1")?.click(), await MyTool.sleep(1e3), ElementObj.$allTask = document.querySelectorAll("#Div_CourseProgress tr:not([style])");
  1653. for (n of ElementObj.$allTask) if ("100%" != n.querySelector(".fa6").innerText) {
  1654. MyTool.deleteValue("learnStatus");
  1655. var o = n.querySelector(".star").href;
  1656. MyTool.openInTab(o), GM_addValueChangeListener("learnStatus", (e, t, l, n) => {
  1657. "done" === l && (MyTool.deleteValue("learnStatus"), location.reload())
  1658. });
  1659. break e
  1660. }
  1661. }
  1662. }
  1663. }
  1664. } else ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(s), showTip("✅✅✅\u521d\u59cb\u5316\u5b8c\u6210,3\u79d2\u540e\u81ea\u52a8\u64ad\u653e", 3e3), r.pdPlayFn(location.href))
  1665. }, 300)
  1666. }, async playNext() {
  1667. MyTool.setValue("learnStatus", "done"), await sleep(1e3), window.close()
  1668. }, listenRebortFn() {
  1669. document.querySelector("a.btn-ProofOk")?.click()
  1670. }
  1671. }
  1672. },
  1673. asds1: {
  1674. mainClass: "CTXCommon", option: {
  1675. nodeListClass: "", activeClass: "", _init: async d => {
  1676. let m = setInterval(async () => {
  1677. if (ElementObj.$handleSpeedUp.style.display = "none", ElementObj.$video = document.querySelector("video"), ElementObj.$video) {
  1678. clearInterval(m);
  1679. var t = document.querySelector(".rightcontent") || ElementObj.$video.parentElement,
  1680. l = (await d.changeHtml(t), d.addInfo("\u6b63\u5728\u83b7\u53d6token..."), dsf.getToken());
  1681. d.addInfo("✅✅✅token:" + l), d.addInfo("\u6b63\u5728\u83b7\u53d6\u8bfe\u7a0b\u5217\u8868...");
  1682. let e = location.href.match(/id=(.+)/)[1];
  1683. var n, a = [];
  1684. if (-1 != location.href.indexOf("commonpage/classcolumn")) {
  1685. d.addInfo("\u6b63\u5728\u83b7\u53d6parents"), s = e, c = l;
  1686. e:for (var i of (await new Promise((t, e) => {
  1687. location.origin;
  1688. var l = location.origin + "/nc/pack/channel/course/list";
  1689. fetch(l + "?id=" + s, {
  1690. headers: {
  1691. accept: "application/json, text/plain, */*",
  1692. "accept-language": "zh-CN,zh;q=0.9",
  1693. authorization_token: c,
  1694. client: "pc",
  1695. "sec-ch-ua": '"Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"',
  1696. "sec-ch-ua-mobile": "?0",
  1697. "sec-ch-ua-platform": '"Windows"',
  1698. "sec-fetch-dest": "empty",
  1699. "sec-fetch-mode": "cors",
  1700. "sec-fetch-site": "same-origin"
  1701. },
  1702. referrer: location.origin + "/page.html",
  1703. referrerPolicy: "strict-origin-when-cross-origin",
  1704. body: null,
  1705. method: "GET",
  1706. mode: "cors",
  1707. credentials: "include"
  1708. }).then(e => e.json()).then(e => t(e))
  1709. })).data) {
  1710. d.addInfo(`【${i.name}】`);
  1711. for (let t of i.subList) if (d.addInfo(`\u6b63\u5728\u83b7\u53d6${t.name}\u7684\u8bfe\u7a0b\u5df2\u5b8c\u6210\u8fdb\u5ea6` + t.progress), !(95 < t.progress)) {
  1712. var o = (await u(t.businessId, l)).data.playTree.children.map(e => ({
  1713. ...e,
  1714. businessId: t.businessId
  1715. }));
  1716. a.push(...o);
  1717. break e
  1718. }
  1719. }
  1720. } else {
  1721. t = await u(e, l);
  1722. a.push(...t.data.playTree.children)
  1723. }
  1724. d.addInfo("✅✅✅\u8bfe\u7a0b\u5217\u8868\u83b7\u53d6\u6210\u529f");
  1725. for (n of a) if (!(100 <= n.finishedRate)) {
  1726. d.addInfo("\u5373\u5c06\u5f00\u59cb\u5b66\u4e60" + n.title);
  1727. var r = {
  1728. courseId: e = -1 != location.href.indexOf("commonpage/classcolumn") ? n.businessId : e,
  1729. coursewareId: n.id,
  1730. watchPoint: "00:01:11",
  1731. pulseTime: 10,
  1732. pulseRate: 1,
  1733. realWatchTime: "00:01:06"
  1734. };
  1735. localStorage.setItem("fetchOption", JSON.stringify(r)), localStorage.setItem("token", l), await d._o1();
  1736. break
  1737. }
  1738. }
  1739. var s, c
  1740. }, 900);
  1741. function u(n, a) {
  1742. return new Promise((t, e) => {
  1743. location.origin;
  1744. var l = location.origin + "/inc/nc/course/play/getPlayTrend";
  1745. fetch(l + "?courseId=" + n, {
  1746. headers: {
  1747. accept: "application/json, text/plain, */*",
  1748. "accept-language": "zh-CN,zh;q=0.9",
  1749. authorization_token: a,
  1750. client: "pc",
  1751. "sec-ch-ua": '"Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"',
  1752. "sec-ch-ua-mobile": "?0",
  1753. "sec-ch-ua-platform": '"Windows"',
  1754. "sec-fetch-dest": "empty",
  1755. "sec-fetch-mode": "cors",
  1756. "sec-fetch-site": "same-origin"
  1757. },
  1758. referrerPolicy: "strict-origin-when-cross-origin",
  1759. body: null,
  1760. method: "GET",
  1761. mode: "cors",
  1762. credentials: "include"
  1763. }).then(e => e.json()).then(e => t(e))
  1764. })
  1765. }
  1766. }, playFn: async e => {
  1767. let l = localStorage.getItem("fetchOption"), n = (l = JSON.parse(l), localStorage.getItem("token"));
  1768. for (var t of new Array(1e4)) {
  1769. e.addInfo(`🔊\u5f53\u524d\u72b6\u6001\u6b63\u5728\u4ee5${toolOption.accelerator}\u500d\u901f\u5b66\u4e60\u4e2d,(\u4e2d\u9014\u5173\u95ed\u8fdb\u5ea6\u4e0d\u4fdd\u5b58)`);
  1770. var a = await function () {
  1771. let e = location.origin + "/inc/nc/course/play/pulseSaveRecord";
  1772. return new Promise(t => {
  1773. fetch(e, {
  1774. headers: {
  1775. accept: "application/json, text/plain, */*",
  1776. "accept-language": "zh-CN,zh;q=0.9",
  1777. authorization_token: n,
  1778. client: "pc",
  1779. "content-type": "application/x-www-form-urlencoded;charset=UTF-8",
  1780. "sec-ch-ua": '"Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"',
  1781. "sec-ch-ua-mobile": "?0",
  1782. "sec-ch-ua-platform": '"Windows"',
  1783. "sec-fetch-dest": "empty",
  1784. "sec-fetch-mode": "cors",
  1785. "sec-fetch-site": "same-origin"
  1786. },
  1787. referrer: location.origin + "/page.html",
  1788. referrerPolicy: "strict-origin-when-cross-origin",
  1789. body: `courseId=${l.courseId}&coursewareId=${l.coursewareId}&watchPoint=00%3A06%3A19&pulseTime=10&pulseRate=2&realWatchTime=00%3A02%3A33`,
  1790. method: "POST",
  1791. mode: "cors",
  1792. credentials: "include"
  1793. }).then(e => e.json()).then(e => t(e))
  1794. })
  1795. }();
  1796. if (e.addInfo(`\u5df2\u5b66\u4e60${a.data.finishedRate}%`), 100 <= a.data.finishedRate) {
  1797. location.reload();
  1798. break
  1799. }
  1800. await sleep(1e3)
  1801. }
  1802. }
  1803. }
  1804. },
  1805. sdfs: {
  1806. mainClass: "CTXCommon",
  1807. option: {
  1808. nodeListClass: ".n-collapse-transition .cursor-pointer",
  1809. activeClass: "bg-[#1C2630]",
  1810. openListenPlayStatus: !1,
  1811. openListenPlayTime: !1,
  1812. _init: async t => {
  1813. let l = setInterval(() => {
  1814. if (ElementObj.$handleSpeedUp.style.display = "none", ElementObj.$parentNodes = document.querySelectorAll(".items-center.justify-between.border-solid"), 0 < ElementObj.$parentNodes.length) {
  1815. clearInterval(l), showTip("\u6b63\u5728\u521d\u59cb\u5316");
  1816. for (var e of ElementObj.$parentNodes) e.nextSibling.childNodes.length || e.click();
  1817. ElementObj.$allTask = document.querySelectorAll(".n-collapse-transition .cursor-pointer"), t.getCurrentIndex()
  1818. }
  1819. }, 500)
  1820. }
  1821. }
  1822. },
  1823. yrt5: {
  1824. mainClass: "CTXCommon",
  1825. option: {
  1826. nodeListClass: ".n-collapse-transition .cursor-pointer",
  1827. activeClass: "bg-[#1C2630]",
  1828. openListenPlayStatus: !1,
  1829. openListenPlayTime: !1,
  1830. _init: async l => {
  1831. let n = setInterval(() => {
  1832. ElementObj.$handleSpeedUp.style.display = "none";
  1833. var e = document.querySelectorAll("ul>li");
  1834. if (e.length && -1 != location.pathname.indexOf("/plan/courses")) {
  1835. clearInterval(n);
  1836. for (var t of e) if ("100%" != t.querySelector(".CourseList_per_1kb87BEO").innerText) {
  1837. MyTool.setValue("homeUrl", location.href), t.querySelectorAll("button")[1].click();
  1838. break
  1839. }
  1840. }
  1841. if (ElementObj.$allTask = document.querySelectorAll(".AsideChapter_Item_2dfPMpnP"), ElementObj.$allTask.length) {
  1842. clearInterval(n);
  1843. for (let e = 0; e < ElementObj.$allTask.length; e++) if (ElementObj.$allTask[e].querySelector(".AsideChapter_ItemState_2nxPLU4r")) {
  1844. l.currentIndex = e, l._o1();
  1845. break
  1846. }
  1847. }
  1848. }, 500)
  1849. },
  1850. async playNext(e) {
  1851. var t;
  1852. e.currentIndex >= ElementObj.$allTask.length - 1 ? (t = MyTool.getValue("homeUrl"), window.open(t)) : (e.currentIndex += 1, ElementObj.$allTask[e.currentIndex]?.click(), setTimeout(() => {
  1853. e._o1()
  1854. }, 2e3))
  1855. }
  1856. }
  1857. },
  1858. hf01: {
  1859. mainClass: "CTXCommon", apis: {
  1860. coursefind: e => new Promise(t => {
  1861. fetch(`https://www.secxm.com/api/student/course/find/${e}?page=1&size=10000`, {
  1862. headers: {
  1863. accept: "application/json, text/plain, */*",
  1864. "accept-language": "zh-CN,zh;q=0.9",
  1865. authorization: "Bearer 12fe24bac5d14dcf8a5509b979a21eaa",
  1866. "sec-ch-ua": '"Google Chrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"',
  1867. "sec-ch-ua-mobile": "?0",
  1868. "sec-ch-ua-platform": '"Windows"',
  1869. "sec-fetch-dest": "empty",
  1870. "sec-fetch-mode": "cors",
  1871. "sec-fetch-site": "same-origin"
  1872. },
  1873. referrerPolicy: "strict-origin-when-cross-origin",
  1874. body: null,
  1875. method: "GET",
  1876. mode: "cors",
  1877. credentials: "include"
  1878. }).then(e => e.json()).then(e => t(e))
  1879. }), appendHours: e => new Promise(t => {
  1880. fetch("https://www.secxm.com/api/student/appendHours", {
  1881. headers: {
  1882. accept: "application/json, text/plain, */*",
  1883. "accept-language": "zh-CN,zh;q=0.9",
  1884. authorization: "Bearer 12fe24bac5d14dcf8a5509b979a21eaa",
  1885. "content-type": "application/json",
  1886. "sec-ch-ua": '"Google Chrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"',
  1887. "sec-ch-ua-mobile": "?0",
  1888. "sec-ch-ua-platform": '"Windows"',
  1889. "sec-fetch-dest": "empty",
  1890. "sec-fetch-mode": "cors",
  1891. "sec-fetch-site": "same-origin"
  1892. },
  1893. referrerPolicy: "strict-origin-when-cross-origin",
  1894. body: e,
  1895. method: "POST",
  1896. mode: "cors",
  1897. credentials: "include"
  1898. }).then(e => e.json()).then(e => t(e))
  1899. })
  1900. }, option: {
  1901. nodeListClass: "",
  1902. activeClass: "",
  1903. openListenPlayStatus: !1,
  1904. openListenPlayTime: !1,
  1905. _init: async a => {
  1906. let i = setInterval(async () => {
  1907. ElementObj.$handleSpeedUp.style.display = "none";
  1908. var e = document.querySelector(".video-lt");
  1909. if ("/courseintroduction" === location.pathname && e) {
  1910. clearInterval(i);
  1911. var t = /id=(.+)&loopPlay/.exec(location.href)[1], l = await _i1.hf01.apis.coursefind(t);
  1912. e.style.position = "relative", await a.changeHtml(e);
  1913. for (let e = 0; e < l.result.elements.length; e++) for (var n of l.result.elements[e].subContentTemplate) n.totalClassHours < n.duration && (a.addInfo("\u5373\u5c06\u8fdb\u884c\u672a\u5b8c\u6210\u8bfe\u7a0b", n.title), localStorage.setItem("itemdata", JSON.stringify(n)), await a._o1(a)), await MyTool.sleep(1e3)
  1914. }
  1915. }, 500)
  1916. },
  1917. async playFn(e) {
  1918. var t = localStorage.getItem("itemdata");
  1919. if (!t) return alert("\u53c2\u6570\u9519\u8bef #1");
  1920. let l = (t = JSON.parse(t)).totalClassHours || 0;
  1921. var n, a = {studentCourseId: "", contentId: t.id, duration: 180};
  1922. a.studentCourseId = /id=(.+)&loopPlay/.exec(location.href)[1];
  1923. for (n of new Array(1e3)) {
  1924. if (e.addInfo(`\u5df2\u6210\u529f\u5b66\u4e60${l}\u79d2\u5f53\u524d\u4efb\u52a1\u9700\u5b8c\u6210${t.duration}\u79d2`), l >= t.duration) {
  1925. e.addInfo(`🎉🎉🎉【${t.title}】,\u5b66\u4e60\u5b8c\u6210🎉🎉🎉`);
  1926. break
  1927. }
  1928. await _i1.hf01.apis.appendHours(JSON.stringify(a));
  1929. l += 180, await MyTool.sleep(1e3)
  1930. }
  1931. }
  1932. }
  1933. },
  1934. qf01: {
  1935. mainClass: "CTXCommon", apis: {
  1936. appendHours: e => new Promise(t => {
  1937. MyTool.axfedata({
  1938. method: "GET",
  1939. url: "https://www.gsgbpx.cn/course/saveCoursewareRecord.do?" + e,
  1940. headers: {
  1941. accept: "*/*",
  1942. "accept-language": "zh-CN,zh;q=0.9",
  1943. "sec-ch-ua": '"Google Chrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"',
  1944. "sec-ch-ua-mobile": "?0",
  1945. "sec-ch-ua-platform": '"Windows"',
  1946. "sec-fetch-dest": "empty",
  1947. "sec-fetch-mode": "cors",
  1948. "sec-fetch-site": "same-origin",
  1949. "x-requested-with": "XMLHttpRequest"
  1950. }
  1951. }).then(e => t(e))
  1952. })
  1953. }, option: {
  1954. nodeListClass: "",
  1955. activeClass: "",
  1956. openListenPlayStatus: !1,
  1957. openListenPlayTime: !1,
  1958. _init: async l => {
  1959. let n = setInterval(async () => {
  1960. if (ElementObj.$handleSpeedUp.style.display = "none", ElementObj.$parentNodes = document.querySelectorAll("#courseResouse ul li>div"), ElementObj.$parentNodes.length) {
  1961. clearInterval(n);
  1962. for (var e of ElementObj.$parentNodes) if ("100.00%" != e.querySelector(".learned-section-num").innerText) {
  1963. MyTool.setValue("homeUrl", location.href), e.querySelector("button").click();
  1964. break
  1965. }
  1966. }
  1967. var t = document.querySelector(".coursePanelRight");
  1968. "/course/studycourseware.do" === location.pathname && t && (clearInterval(n), t.style.position = "relative", await l.changeHtml(t), await l._o1(l))
  1969. }, 500)
  1970. },
  1971. async playFn(e) {
  1972. let t = 0;
  1973. var l, n = /COURSEWAREID=(.+)&FILENAME/.exec(location.href)[1],
  1974. a = /TCID=(.+)/.exec(location.href)[1],
  1975. i = `ID=${n}&studyTime=60&TIMEPOINT=${t}&jsp=true&LENGTH=1&CHAPTER=1&STUDYSTATUS=incomplete&task=continuestudy&TCID=` + a;
  1976. for (l of new Array(1e3)) {
  1977. t += 60;
  1978. var o = await _i1.qf01.apis.appendHours(i);
  1979. if (e.addInfo(`\u5df2\u6210\u529f\u5b66\u4e6060\u79d2\u5f53\u524d\u4efb\u52a1\u5df2\u5b8c\u6210${o.msg}%`), 100 <= parseInt(o.msg)) {
  1980. e.addInfo("🎉🎉🎉\u5f53\u524d\u89c6\u9891\u5b66\u4e60\u5b8c\u6210🎉🎉🎉"), await MyTool.sleep(1e3), e.playNext();
  1981. break
  1982. }
  1983. await MyTool.sleep(1e3)
  1984. }
  1985. },
  1986. async playNext() {
  1987. location.href = MyTool.getValue("homeUrl")
  1988. }
  1989. }
  1990. },
  1991. sf93: {
  1992. mainClass: "CTXCommon", apis: {
  1993. reportCourseStudyProgress: e => new Promise(t => {
  1994. fetch("http://media.lllnet.cn/media/reportCourseStudyProgress", {
  1995. headers: {
  1996. accept: "*/*",
  1997. "accept-language": "zh-CN,zh;q=0.9",
  1998. "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
  1999. "x-requested-with": "XMLHttpRequest"
  2000. },
  2001. referrer: "http://media.lllnet.cn/media/accessCourseInfo",
  2002. referrerPolicy: "strict-origin-when-cross-origin",
  2003. body: e,
  2004. method: "POST",
  2005. mode: "cors",
  2006. credentials: "include"
  2007. }).then(e => e.json()).then(e => t(e))
  2008. })
  2009. }, option: {
  2010. nodeListClass: "", activeClass: "", openListenPlayStatus: !1, openListenPlayTime: !1, async _init(t) {
  2011. let e = setInterval(async () => {
  2012. if (ElementObj.$handleSpeedUp.style.display = "none", ElementObj.$allTask = document.querySelectorAll("#contents_list a"), ElementObj.$allTask.length) {
  2013. window.alert = () => {
  2014. }, clearInterval(e);
  2015. for (let e = 0; e < ElementObj.$allTask.length; e++) if (ElementObj.$allTask[e].classList.contains("current")) {
  2016. t.currentIndex = e, await t._o1(t);
  2017. break
  2018. }
  2019. }
  2020. }, 500)
  2021. }, async playFn(e) {
  2022. await e.getVideoDom();
  2023. var t = ElementObj.$video.parentElement;
  2024. await e.changeHtml(t), ElementObj.$video.pause(), e.addInfo("\u521d\u59cb\u5316\u5df2\u5b8c\u6210,5\u79d2\u540e \u5373\u5c06\u5f00\u59cb\u5b66\u4e60"), await MyTool.sleep(5e3);
  2025. let l = 0;
  2026. var n, a = ElementObj.$video.duration;
  2027. for (n of new Array(1e3)) {
  2028. (l += 6) >= a && (l = a);
  2029. var i = `courseId=${courseId}&gradeId=${gradeId}&userId=${userId}&coursewareId=${coursewareId}&unameSN=${unameSN}&orgName=gclc-gzdk&position=${l}&sessionTime=6`;
  2030. if (200 == (await _i1.sf93.apis.reportCourseStudyProgress(i)).code ? e.addInfo(`\u672c\u6b21\u4fdd\u5b586\u79d2, \u7d2f\u8ba1\u5df2\u5b8c\u6210${l / 60}\u5206\u949f,\u9700\u7d2f\u8ba1\u5b8c\u6210${a}\u79d2`) : (e.addInfo("\u672c\u6b21\u672a\u80fd\u6210\u529f\u4fdd\u5b58,\u5c06\u81ea\u52a8\u518d\u6b21\u4fdd\u5b58"), l -= 6), l >= a) {
  2031. e.addInfo("🎉🎉🎉\u5f53\u524d\u89c6\u9891\u5b66\u4e60\u5b8c\u6210🎉🎉🎉"), await MyTool.sleep(1e3), e.playNext();
  2032. break
  2033. }
  2034. await MyTool.sleep(3e3)
  2035. }
  2036. }
  2037. }
  2038. },
  2039. tskf: {
  2040. mainClass: "CTXCommon", option: {
  2041. nodeListClass: ".course_li",
  2042. activeClass: "videoListCur",
  2043. openListenPlayStatus: !1,
  2044. openListenPlayTime: !1,
  2045. nextClass: "a",
  2046. async _init(l) {
  2047. let e = setInterval(async () => {
  2048. if (ElementObj.$allTask = document.querySelectorAll(".course_li"), ElementObj.$allTask.length) if (clearInterval(e), ElementObj.$handleSpeedUp.style.display = "none", -1 == location.href.indexOf("coursewareid")) ElementObj.$allTask[0].querySelector("a").click(); else for (let e = 0; e < ElementObj.$allTask.length; e++) {
  2049. var t = ElementObj.$allTask[e];
  2050. if (!t.querySelector(".study")) {
  2051. if (l.currentIndex = e, !t.classList.contains("videoListCur")) {
  2052. t.querySelector("a").click();
  2053. break
  2054. }
  2055. await l._o1(l);
  2056. break
  2057. }
  2058. }
  2059. }, 500)
  2060. },
  2061. async playFn(t) {
  2062. var l = await t.getVideoDom();
  2063. if (await t.changeHtml(ElementObj.$video.parentElement), 1 == l) {
  2064. var n, l = Math.trunc(ElementObj.$video.duration),
  2065. a = (t.addInfo("🔊🔊🔊\u6b63\u5728\u83b7\u53d6\u53c2\u6570"), /courseID=(.+)&coursewareid/.exec(location.href)[1]),
  2066. i = /coursewareid=(.+)&MyView/.exec(location.href)[1];
  2067. let e;
  2068. e = -1 != document.cookie.split(",")[0].indexOf("student_id") ? /student_id=([0-9]+)/.exec(document.cookie.split(",")[0])[1] : /[0-9]+/.exec(document.cookie.split(",")[1].split(";")[3].split("&")[0])[0], t.addInfo("🔊🔊🔊\u6b63\u5728\u8bf7\u6c42\u6570\u636e"), await fetch(location.origin + "/VideoPlay/StudySurvey", {
  2069. headers: {
  2070. accept: "*/*",
  2071. "content-type": "application/x-www-form-urlencoded; charset=UTF-8"
  2072. },
  2073. referrerPolicy: "strict-origin-when-cross-origin",
  2074. body: `course_id=${a}&courseware_id=${i}&start=0&end=${l}&student_id=${e}&project_id=&course_type=1`,
  2075. method: "POST",
  2076. mode: "cors",
  2077. credentials: "include"
  2078. }), t.addInfo("✅✅✅StudySurvey\u8bf7\u6c42\u5b8c\u6210"), t.addInfo("🔊🔊🔊\u6b63\u5728\u7b49\u5f85\u54cd\u5e94");
  2079. for (n of new Array(26)) await MyTool.sleep(1e3), t.addInfo("⚠⚠⚠\u6b63\u5728\u7b49\u5f85\u7cfb\u7edf\u8bf7\u6c42updateStudyStatue2,\u8bf7\u52ff\u5173\u95ed\u6b64\u9875\u9762, \u9884\u8ba125\u79d2")
  2080. }
  2081. t.playNext()
  2082. }
  2083. }
  2084. },
  2085. hgs01: {
  2086. mainClass: "CTXCommon", option: {
  2087. nodeListClass: "", activeClass: "", async _init(n) {
  2088. let e = setInterval(async () => {
  2089. if (ElementObj.$allTask = document.querySelectorAll("ul li"), ElementObj.$allTask.length && "/admin/lock/Study" == location.pathname) {
  2090. clearInterval(e), ElementObj.$handleSpeedUp.style.display = "none";
  2091. for (let e = 0; e < ElementObj.$allTask.length; e++) {
  2092. var t = ElementObj.$allTask[e];
  2093. if (!t.querySelector(".layui-icon-ok-circle")) {
  2094. n.currentIndex = e, t.classList.contains("list") || (t.click(), await sleep(2e3));
  2095. break
  2096. }
  2097. }
  2098. await sleep(1e3), document.querySelector(".layui-layer-btn0")?.click(), n._o1(n)
  2099. }
  2100. if (ElementObj.$parentNodes = document.querySelectorAll(".learnTree_second li"), ElementObj.$parentNodes.length && "/online/learn" == location.pathname) {
  2101. clearInterval(e), ElementObj.$handleSpeedUp.style.display = "none";
  2102. for (let e = 0; e < ElementObj.$parentNodes.length; e++) {
  2103. var l = ElementObj.$parentNodes[e];
  2104. if (!l.querySelector("p").classList.contains("complete")) {
  2105. l.classList.contains("secondActive") || (l.click(), await sleep(2e3)), setTimeout(() => {
  2106. window.close()
  2107. }, 1e4), MyTool.setValue("homeUrl", location.href), document.querySelector(".toStudy").click();
  2108. break
  2109. }
  2110. }
  2111. }
  2112. }, 500)
  2113. }, async listenRebortFn(e) {
  2114. document.querySelector(".layui-layer-btn0")?.click();
  2115. -1 != (document.querySelector(".time")?.innerText)?.indexOf("\u5df2\u8fbe\u5230\u6700\u4f4e\u5b8c\u6210\u65f6\u95f4") && (location.href = MyTool.getValue("homeUrl"));
  2116. var t = document.querySelector(".layui-layer-content input");
  2117. t && (t.value = t.getAttribute("data-num3"), await sleep(500), document.querySelector(".layui-layer-btn0")?.click())
  2118. }, beforePlayNext(e) {
  2119. -1 != (document.querySelector(".time")?.innerText)?.indexOf("\u5df2\u8fbe\u5230\u6700\u4f4e\u5b8c\u6210\u65f6\u95f4") && (location.href = MyTool.getValue("homeUrl"))
  2120. }
  2121. }
  2122. },
  2123. hgs02: {
  2124. mainClass: "CTXCommon", option: {
  2125. nodeListClass: "", activeClass: "", async _init(t) {
  2126. let e = setInterval(async () => {
  2127. if (ElementObj.$parentNodes = document.querySelectorAll(".mozs_list>li"), ElementObj.$parentNodes.length) {
  2128. clearInterval(e), ElementObj.$handleSpeedUp.style.display = "none";
  2129. for (let e = 0; e < ElementObj.$parentNodes.length; e++) if (100 != ElementObj.$parentNodes[e].querySelector(".jdt_bar").innerText.match(/[0-9]+/)[0]) {
  2130. MyTool.setValue("homeUrl", location.href), document.querySelector(".qd_but").click();
  2131. break
  2132. }
  2133. }
  2134. if (ElementObj.$allTask = document.querySelectorAll(".lcml_djj_list>li"), ElementObj.$allTask.length && "/p/classroom/simple" == location.pathname) {
  2135. clearInterval(e), ElementObj.$handleSpeedUp.style.display = "none";
  2136. for (let e = 0; e < ElementObj.$allTask.length; e++) ElementObj.$allTask[e].classList.contains("on") && (t.currentIndex = e, t._o1(t))
  2137. }
  2138. })
  2139. }, videoEle: () => new Promise(t => {
  2140. let l = 0, n = setInterval(async () => {
  2141. l += 1;
  2142. var e = document.querySelector(".xgplayer-start");
  2143. e ? (clearInterval(n), document.querySelectorAll(".xgplayer-icon")[2].click(), e.click(), await sleep(3e3), ElementObj.$video = document.querySelector("video"), t(1)) : 7 <= l && (clearInterval(n), t(2))
  2144. }, 1e3)
  2145. }), beforePlayNext(e) {
  2146. e.currentIndex == ElementObj.$allTask.length - 1 && (location.href = MyTool.getValue("homeUrl"))
  2147. }
  2148. }
  2149. },
  2150. uasf: {
  2151. mainClass: "CTXCommon", option: {
  2152. nodeListClass: "", activeClass: "", async _init(e) {
  2153. let t = setInterval(async () => {
  2154. try {
  2155. ElementObj.$nextBtn = document.querySelectorAll("iframe")[1].contentDocument.querySelector("frame").contentDocument.querySelector("#btnNext"), ElementObj.$nextBtn && (clearInterval(t), ElementObj.$handleSpeedUp.style.display = "none", e._o1(e))
  2156. } catch (e) {
  2157. }
  2158. }, 500)
  2159. }, async playFn(t) {
  2160. let l = document.querySelectorAll("iframe")[1].contentDocument.querySelectorAll("frame")[1].contentDocument;
  2161. var e = l.querySelector("tbody");
  2162. await t.changeHtml(e, l);
  2163. let n = setInterval(async () => {
  2164. try {
  2165. var e = l.querySelector("td[id]").innerText;
  2166. t.addInfo(e, 1, l), e && -1 != e.indexOf("\u5df2\u7ecf\u5b66\u4e60\u5b8c\u6bd5") && (clearInterval(n), setTimeout(() => {
  2167. t._o1(t)
  2168. }, 2e3), ElementObj.$nextBtn.click())
  2169. } catch (e) {
  2170. }
  2171. }, 1e3)
  2172. }
  2173. }
  2174. },
  2175. uiw01: {
  2176. mainClass: "CTXCommon", option: {
  2177. nodeListClass: "", activeClass: "", async _init(a) {
  2178. let i = setInterval(async () => {
  2179. if ("/IndexMain.aspx" == location.pathname) {
  2180. var e = document.querySelectorAll("iframe")[1].contentDocument,
  2181. t = e?.querySelector("#AspNetPager1>div");
  2182. if (t && e) {
  2183. clearInterval(i), ElementObj.$handleSpeedUp.style.display = "none";
  2184. e:for (var l of t.children) {
  2185. ElementObj.$allTask = e.querySelectorAll(".table_all");
  2186. for (let e = 0; e < ElementObj.$allTask.length; e++) if (0 !== e) {
  2187. var n = ElementObj.$allTask[e];
  2188. if (-1 == n.querySelector('td[width="232"]').innerText.indexOf("\u5df2\u5b8c\u6210")) {
  2189. MyTool.setValue("homeUrl", location.href), n.querySelector(".xx_ben>a").click();
  2190. break e
  2191. }
  2192. }
  2193. l.click(), await sleep(2e3)
  2194. }
  2195. }
  2196. }
  2197. "/Student/CoursePlay.aspx" == location.pathname && (clearInterval(i), a._o1(a))
  2198. }, 500)
  2199. }, listenRebortFn(e) {
  2200. }, beforePlayNext(e) {
  2201. location.href = MyTool.getValue("homeUrl")
  2202. }
  2203. }
  2204. },
  2205. ho0132: {
  2206. mainClass: "CTXCommon", apis: {
  2207. getP_h5_u() {
  2208. return document.cookie.split("; ").find(e => e.startsWith("p_h5_u="))?.replace(/p_h5_u=(.*?)/, "") || ""
  2209. }
  2210. }, option: {
  2211. nodeListClass: ".stu-ui-li-span>li", activeClass: "activeLi", async _init(n) {
  2212. let a = setInterval(async () => {
  2213. try {
  2214. var e, t;
  2215. if ("/hsyd_stu/a/toStuspace/index" == location.pathname && (e = _i1.ho0132.apis.getP_h5_u()) && (clearInterval(a), MyTool.axfedata({
  2216. url: `${_b}/order/checkUseAccount?toolkey=${MyTool.getValue("mytoolkey")}&account=${e}&type=2`,
  2217. method: "GET"
  2218. }).then(e => {
  2219. 200 === e.code ? showTip("✅✅✅\u7ed1\u5b9a\u6210\u529f,\u8bf7\u70b9\u51fb\u8981\u5b66\u4e60\u7684\u8bfe\u7a0b", 5e3) : alert(e.message)
  2220. })), "/hsyd_stu/a/toStuspace/courseIndex" == location.pathname && (t = document.querySelectorAll(".eva-nav-item")[7]) && !t.classList.contains("active") && (clearInterval(a), a = setInterval(() => {
  2221. var e = document.querySelector("iframe").contentDocument.querySelector("span.eva-tag[type='danger']");
  2222. e && (clearInterval(a), e.dispatchEvent(new Event("click")))
  2223. }, 1500), MyTool.setValue("homeUrl", location.href), t.querySelector("a")?.click()), "/hsyd_stu/a/toStuspace/coursestudent1" == location.pathname && (ElementObj.$allTask = document.querySelectorAll(".stu-ui-li-span>li"), ElementObj.$allTask.length)) {
  2224. clearInterval(a);
  2225. for (let e = 0; e < ElementObj.$allTask.length; e++) if (ElementObj.$allTask[e].classList.contains("activeLi")) {
  2226. n.currentIndex = e;
  2227. var l = _i1.ho0132.apis.getP_h5_u();
  2228. MyTool.axfedata({
  2229. url: `${_b}/order/checkUseAccount?toolkey=${MyTool.getValue("mytoolkey")}&account=${l}&type=2`,
  2230. method: "GET"
  2231. }).then(e => {
  2232. 200 === e.code ? n._o1(n) : alert(e.message)
  2233. });
  2234. break
  2235. }
  2236. }
  2237. } catch (e) {
  2238. }
  2239. }, 500)
  2240. }, videoEle() {
  2241. return new Promise(e => {
  2242. let t = 0, l = setInterval(() => {
  2243. t += 1, ElementObj.$video = document.querySelector("iframe").contentDocument.querySelector("video"), ElementObj.$video && (ElementObj.$video.src || ElementObj.$video.querySelector("source")) ? (clearInterval(l), e(1)) : 6 <= t && (clearInterval(l), e(2))
  2244. }, 1e3)
  2245. })
  2246. }, async playFn(t) {
  2247. var e = await t.getVideoDom();
  2248. if (await t.changeHtml(document.querySelector("#sources")), 1 == e) if (1 == toolOption.accelerator) ElementObj.$video.volume = 0, ElementObj.$video.play(), ElementObj.$video.addEventListener("pause", () => {
  2249. ElementObj.$video.volume = 0, ElementObj.$video.play()
  2250. }), ElementObj.$video.addEventListener("ended", () => {
  2251. showTip("✅✅✅\u5f53\u524d\u89c6\u9891\u5df2\u64ad\u653e\u5b8c,5\u79d2\u540e\u64ad\u653e\u4e0b\u4e00\u4e2a", 4500), t.playNext(t)
  2252. }); else {
  2253. ElementObj.$video.pause();
  2254. var l = Math.floor(ElementObj.$video.duration), n = location.href.match(/sourceId=(.+)/)[1],
  2255. a = location.href.match(/id=(.+)&c/)[1],
  2256. i = await fetch(location.origin + "/hsyd_stu/a/toStuspace/studyDetail", {
  2257. headers: {"content-type": "application/x-www-form-urlencoded; charset=UTF-8"},
  2258. body: `id=${n}&courseId=` + a,
  2259. method: "POST",
  2260. mode: "cors",
  2261. credentials: "include"
  2262. }).then(e => e.json());
  2263. l && i.d_id || location.reload();
  2264. let e = 0;
  2265. var o,
  2266. r = document.querySelectorAll(".stu-ui-li-span>li.activeLi")[0].innerText.replace(/\s/g, "");
  2267. for (o of new Array(1e3)) {
  2268. if (e >= l) {
  2269. e = l, t.addInfo("✅✅✅\u672c\u7ae0\u8282\u5b66\u4e60\u5b8c\u6210,\u5373\u5c06\u81ea\u52a8\u8fdb\u884c\u4e0b\u4e00\u8282\u4efb\u52a1"), t.playNext();
  2270. break
  2271. }
  2272. e += 60, t.addInfo(`🔊🔊🔊【${r}】\u6b63\u5728\u9ad8\u901f\u5b66\u4e60\u4e2d\u5f53\u524d\u5df2\u5b8c\u6210${e}\u79d2\u4efb\u52a1\u603b\u65f6\u95f4${l}\u79d2`), fetch(location.origin + "/hsyd_stu/a/toStuspace/studyDetail_jsq", {
  2273. headers: {
  2274. accept: "application/json, text/javascript, */*; q=0.01",
  2275. "content-type": "application/x-www-form-urlencoded; charset=UTF-8"
  2276. },
  2277. body: `id=${n}&courseId=${a}&duartion=${e}&d_id=` + i.d_id,
  2278. method: "POST",
  2279. mode: "cors",
  2280. credentials: "include"
  2281. }), await MyTool.sleep(1e3)
  2282. }
  2283. }
  2284. }, async playNext(e) {
  2285. location.href = MyTool.getValue("homeUrl")
  2286. }
  2287. }
  2288. },
  2289. hus85: {mainClass: "CTXCommon", option: {nodeListClass: ".chsTitle>a", activeClass: "one_p_a"}},
  2290. iiasda: {
  2291. mainClass: "CTXCommon", option: {
  2292. nodeListClass: "", activeClass: "", async _init(n) {
  2293. let a = setInterval(async () => {
  2294. var e = document.querySelectorAll(".ui-bxkc li");
  2295. if (e.length) {
  2296. clearInterval(a);
  2297. for (var t of e) if (!t.querySelector(".lanbg")) {
  2298. MyTool.setValue("homeUrl", location.href), t.querySelector("a")?.click();
  2299. break
  2300. }
  2301. }
  2302. if (ElementObj.$allTask = document.querySelectorAll("#cc li a"), ElementObj.$allTask.length) {
  2303. clearInterval(a);
  2304. for (let e = 0; e < ElementObj.$allTask.length; e++) {
  2305. var l = ElementObj.$allTask[e];
  2306. if (!l.querySelector(".layui-icon-ok")) {
  2307. n.currentIndex = e, l.classList.contains("current") || (l.click(), await MyTool.sleep(1500));
  2308. break
  2309. }
  2310. }
  2311. -1 == n.currentIndex && ("100%" !== document.querySelector("#jd_txt").innerText.trim() ? n._o1(n) : location.href = MyTool.getValue("homeUrl"))
  2312. }
  2313. }, 500)
  2314. }
  2315. }
  2316. },
  2317. isdf1: {
  2318. mainClass: "CTXCommon", option: {
  2319. nodeListClass: "", activeClass: "", async _init(l) {
  2320. l.registerBtn("\u5b66\u4e602024", "z", () => {
  2321. MyTool.setValue("tab", 1)
  2322. }), l.registerBtn("\u5b66\u4e602025", "x", () => {
  2323. MyTool.setValue("tab", 0)
  2324. });
  2325. let n = setInterval(async () => {
  2326. try {
  2327. var e;
  2328. if ("/mineCourse" === location.pathname && (e = document.querySelectorAll(".training_box")[0].querySelectorAll(".years>div")).length && (clearInterval(n), e[MyTool.getValue("tab") || 0].classList.contains("active") || (e[1].click(), MyTool.setValue("homeUrl", location.href), await MyTool.sleep(1500), setTimeout(() => {
  2329. location.reload()
  2330. }, 1e3), document.querySelector(".basic-list-item-tool button")?.click())), ElementObj.$allTask = document.querySelectorAll(".playlist li"), ElementObj.$allTask.length) {
  2331. clearInterval(n), ElementObj.$handleSpeedUp.style.display = "none";
  2332. for (let e = 0; e < ElementObj.$allTask.length; e++) {
  2333. var t = ElementObj.$allTask[e];
  2334. if ("100%" !== t.querySelector(".progress").innerText.trim()) {
  2335. t.classList.contains("playlist_li_active") || (t.click(), await MyTool.sleep(1500)), l.currentIndex = e, l._o1(l);
  2336. break
  2337. }
  2338. }
  2339. -1 == l.currentIndex && (location.href = MyTool.getValue("homeUrl"))
  2340. }
  2341. } catch (e) {
  2342. }
  2343. }, 500)
  2344. }, beforePlayNext(e) {
  2345. location.reload()
  2346. }
  2347. }
  2348. },
  2349. sfgd: {
  2350. mainClass: "CTXCommon",
  2351. option: {
  2352. nodeListClass: ".chapterList>li", activeClass: "active", listenRebortFn(e) {
  2353. document.querySelector(".pauseBg")?.click()
  2354. }
  2355. }
  2356. },
  2357. ojisa: {
  2358. mainClass: "CTXCommon", option: {
  2359. nodeListClass: "", activeClass: "", nextClass: "span", async _init(l) {
  2360. let e = setInterval(async () => {
  2361. if (ElementObj.$allTask = document.querySelectorAll(".courseMenuList>li"), ElementObj.$allTask.length) {
  2362. clearInterval(e);
  2363. for (let e = 0; e < ElementObj.$allTask.length; e++) {
  2364. var t = ElementObj.$allTask[e];
  2365. if ("100%" !== t.querySelector(".f-right").innerText.trim()) {
  2366. l.currentIndex = e, t.classList.contains("active") || (t.querySelector("span")?.click(), await MyTool.sleep(1e3)), showTip("✅✅✅\u521d\u59cb\u5316\u5b8c\u6210,\u8bf7\u624b\u52a8\u70b9\u51fb\u4e00\u6b21\u52a0\u901f", 3e3);
  2367. break
  2368. }
  2369. }
  2370. }
  2371. }, 500)
  2372. }, listenRebortFn(e) {
  2373. document.querySelector(".el-message-box__wrapper .el-button--danger")?.click()
  2374. }
  2375. }
  2376. },
  2377. hxrc11: {
  2378. mainClass: "CTXCommon", option: {
  2379. nodeListClass: "ul li li", activeClass: "active", beforePlayNext(e) {
  2380. "100%" !== document.querySelectorAll(".progress span")[1].innerText && e.currentIndex == ElementObj.$allTask.length - 1 && location.reload()
  2381. }, beforePlayVideo() {
  2382. ElementObj.$video.currentTime = 0
  2383. }, listenRebortFn(that) {
  2384. try {
  2385. let spandom = document.querySelector(".el-dialog__body span");
  2386. if (spandom) {
  2387. let result = eval(spandom.innerText.replace(/\s/g, "")),
  2388. elInput = document.querySelector(".el-dialog__body .el-input__inner"),
  2389. event = (elInput.value = result, new Event("input"));
  2390. Object.defineProperty(event, "target", {
  2391. writable: !1,
  2392. value: elInput
  2393. }), Object.defineProperty(event, "currentTarget", {
  2394. writable: !1,
  2395. value: elInput
  2396. }), elInput.dispatchEvent(event), document.querySelector(".el-dialog[aria-label='\u968f\u673a\u8bd5\u5377'] button").click()
  2397. }
  2398. } catch (e) {
  2399. }
  2400. }
  2401. }
  2402. }
  2403. }, speedArr = [1, 2, 3, 5, 10, 16], toolOption = {accelerator: 1, CtxMain: null, SchoolType: -1};
  2404. const version = "6.1.0.2";
  2405. let _bt = "https://www.gaozhiwang.top", _b = "http://47.115.205.88:7001";
  2406. MyTool.registerMenuCommand("📥\u66f4\u65b0\u7248\u672c", "u", () => {
  2407. window.open("http://public.gaozhiwang.top/public/index.user.js")
  2408. });
  2409. class Main {
  2410. constructor() {
  2411. this.studentType = 1, this.speedStatus = 0, this.isAdaptive = 1, this.listenVidoeStatusTimer = null, this.fingerprint = null, this.toolkey = null, this.init()
  2412. }
  2413. init() {
  2414. setTimeout(async () => {
  2415. try {
  2416. this.toolkey = localStorage.getItem("mytoolkey") || MyTool.getValue("mytoolkey"), this._rn()
  2417. } catch (e) {
  2418. }
  2419. }, 2500)
  2420. }
  2421. updateSpeedElement(e) {
  2422. 0 != this.speedStatus && (ElementObj.$video.playbackRate = e)
  2423. }
  2424. async _o1(e, t = 0) {
  2425. var l = localStorage.getItem("mytoolkey") || MyTool.getValue("mytoolkey"),
  2426. l = (l || (alert("\u8bf7\u5148\u8d2d\u4e70key"), window.open(_bt)), toolOption.CtxMain || location.reload(), await axfedata({
  2427. method: "GET",
  2428. url: _b + (`/speedup?toolkey=${l}&t=2&canuse=${toolOption.SchoolType}&h=${location.host}&fingerprint=${this.fingerprint}&v=` + version)
  2429. }));
  2430. 200 == l.code ? (this.speedStatus = 1, this.isAdaptive = 1, await toolOption.CtxMain.play()) : (this.isAdaptive = 0, showTip("🔉🔉🔉" + l.message, 5e3, !0))
  2431. }
  2432. handleRemoveKey() {
  2433. MyTool.setValue("mytoolkey", null), localStorage.removeItem("mytoolkey"), localStorage.removeItem("_localSpeed"), ElementObj.$title3.innerText = "\u7ed1\u5b9akey:", ElementObj.$mytoolkey.style.display = "none", ElementObj.$ctxsection2.style.display = "none", ElementObj.$nokey.style.display = "block", ElementObj.$ipt.style.display = "block", ElementObj.$addKey.style.display = "block", ElementObj.$removeKey.style.display = "none", ElementObj.$handleSpeedUp.style.background = "orange", ElementObj.$handleSpeedUp.innerText = "\u70b9\u51fb\u52a0\u901f", this.updateSpeedElement(1)
  2434. }
  2435. stopSpeedUp() {
  2436. this.speedStatus = 0, toolOption.CtxMain.updateSpeedElement(1), ElementObj.$handleSpeedUp.style.background = "orange", ElementObj.$handleSpeedUp.innerText = "\u70b9\u51fb\u52a0\u901f", showTip("🔉\u505c\u6b62\u52a0\u901f\u6210\u529f")
  2437. }
  2438. handleChangeCtxSpeed(e) {
  2439. var t, l = localStorage.getItem("mytoolkey") || MyTool.getValue("mytoolkey");
  2440. l ? 0 == this.isAdaptive ? alert("Key\u4e0d\u9002\u914d") : (l = speedArr, t = Number(e), e && l.includes(t) && (toolOption.accelerator = t, localStorage.setItem("_localSpeed", t.toString()), MyTool.setValue("_localSpeed", t), ElementObj.$video) && (ElementObj.$video.playbackRate = t)) : (alert("\u8bf7\u5148\u8d2d\u4e70key"), window.open(_bt))
  2441. }
  2442. _rn() {
  2443. setInterval(() => {
  2444. ElementObj.$video && MyTool.axfedata({
  2445. method: "GET",
  2446. url: _b + ("/ck/v1?ty=" + this.toolkey)
  2447. }).then(e => {
  2448. 202 == e.code && erf(e.data)
  2449. })
  2450. }, 1e4)
  2451. }
  2452. listenVidoeStatus(t, l) {
  2453. if (t) {
  2454. let e = 0;
  2455. this.listenVidoeStatusTimer = setInterval(() => {
  2456. t.readyState < 4 && 20 <= (e += 1) && location.reload(), t.paused && (e += 1, "function" == typeof l) && (20 <= e ? location.reload() : l())
  2457. }, 5e3)
  2458. }
  2459. }
  2460. async changeHtml(e, t = document) {
  2461. var l;
  2462. ElementObj.$ctxstatsbox = t.querySelector(".ctxstatsbox"), ElementObj.$ctxstatsbox || ((l = document.createElement("div")).setAttribute("class", "ctxstatsbox"), l.setAttribute("style", `
  2463. width: 100%;
  2464. height: 100%;
  2465. background: #eae9e9;
  2466. position: absolute;
  2467. z-index: 999;
  2468. overflow: scroll;
  2469. top: 0;
  2470. padding-left: 10px;
  2471. z-index: 9999;
  2472. `), e.appendChild(l), await sleep(300), ElementObj.$ctxstatsbox = t.querySelector(".ctxstatsbox")), this.addInfo("🔉\u521d\u59cb\u5316\u5df2\u5b8c\u6210,\u6b63\u5728\u64ad\u653e")
  2473. }
  2474. addInfo(e, t, l) {
  2475. l = l || globalThis.document;
  2476. 15 <= document.querySelectorAll(".ctxstatsbox_li").length && (ElementObj.$ctxstatsbox.innerHTML = "");
  2477. l = `<li class="ctxstatsbox_li" style="color: ${0 == t ? "#f01414" : "#000"};line-height: 30px;font-size: 16px;list-style: none;">${e}</li>`;
  2478. ElementObj.$ctxstatsbox.innerHTML += l
  2479. }
  2480. listenPageHide() {
  2481. let t;
  2482. document.addEventListener("visibilitychange", () => {
  2483. if (document.hidden) {
  2484. let e = 0;
  2485. t = setInterval(() => {
  2486. 5 <= (e += 1) && this.addInfo("⚠️⚠️⚠️\u8bf7\u52ff\u957f\u65f6\u95f4\u9690\u85cf\u8be5\u5b66\u4e60\u9875\u9762", 0)
  2487. }, 5e3)
  2488. } else clearInterval(t)
  2489. })
  2490. }
  2491. pdPlayFn(e) {
  2492. var t = MyTool.getValue("spanClassName") || [];
  2493. -1 == t.indexOf(e) && (t.push(e), MyTool.setValue("spanClassName", t)), this._o1()
  2494. }
  2495. getVideoDom() {
  2496. return new Promise(e => {
  2497. let t = 0, l = setInterval(() => {
  2498. t += 1, ElementObj.$video = document.querySelectorAll("video")[0], ElementObj.$video ? (clearInterval(l), e(1)) : 7 <= t && (clearInterval(l), e(2))
  2499. }, 1e3)
  2500. })
  2501. }
  2502. }
  2503. class CTXCommon extends Main {
  2504. constructor(e) {
  2505. super(), this.taskLength = 0, this.currentIndex = -1, this.nodeListClass = e.nodeListClass, this.activeClass = e.activeClass || "", this.nextClass = e.nextClass || "", this.openListenPlayStatus = "boolean" != typeof e.openListenPlayStatus || e.openListenPlayStatus, this.openListenPlayTime = "boolean" == typeof e.openListenPlayTime && e.openListenPlayTime, this.afterPlayEnd = e.afterPlayEnd, this.getCurrentIndexByOption = e.getCurrentIndexByOption, this.playNext = e.playNext || this.playNext, this.listenRebortFn = e.listenRebortFn, this.getVideoDom = "function" == typeof e.videoEle ? e.videoEle : this.getVideoDom, this.playFn = e.playFn, this.beforePlayVideo = e.beforePlayVideo, this.beforePlayNext = e.beforePlayNext, this.getCurrentIndex = e.getCurrentIndex ? e.getCurrentIndex.bind(this, this) : this.getCurrentIndex, e._init ? e._init(this) : this._init()
  2506. }
  2507. async _init() {
  2508. let e = setInterval(async () => {
  2509. try {
  2510. ElementObj.$allTask = document.querySelectorAll(this.nodeListClass), ElementObj.$allTask.length && (ElementObj.$handleSpeedUp.style.display = "none", clearInterval(e), this.getCurrentIndex())
  2511. } catch (e) {
  2512. }
  2513. }, 1e3)
  2514. }
  2515. async getCurrentIndex() {
  2516. if (this.getCurrentIndexByOption) this.currentIndex = await this.getCurrentIndexByOption(); else for (var e = 0; e <= ElementObj.$allTask.length - 1; e++) if (ElementObj.$allTask[e].classList.contains(this.activeClass)) {
  2517. this.currentIndex = e;
  2518. break
  2519. }
  2520. -1 == this.currentIndex ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (showTip("✅✅✅\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 3e3), setTimeout(() => {
  2521. this._o1()
  2522. }, 2e3))
  2523. }
  2524. getVideoDom() {
  2525. return new Promise(e => {
  2526. let t = 0, l = setInterval(() => {
  2527. t += 1, ElementObj.$video = document.querySelectorAll("video")[0], ElementObj.$video && (ElementObj.$video.src || ElementObj.$video.querySelector("source")) ? (clearInterval(l), e(1)) : 6 <= t && (clearInterval(l), e(2))
  2528. }, 1e3)
  2529. })
  2530. }
  2531. async play() {
  2532. clearInterval(this.timer), clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime);
  2533. var e = await this.getVideoDom();
  2534. this.playFn ? await this.playFn(this) : (1 == e && (this.beforePlayVideo && "function" == typeof this.beforePlayVideo && this.beforePlayVideo(), ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
  2535. ElementObj.$video.playbackRate = toolOption.accelerator
  2536. }, 3e3), this.openListenPlayStatus && this.listenVidoeStatus(ElementObj.$video, () => {
  2537. ElementObj.$video.volume = 0, ElementObj.$video.play()
  2538. }), this.openListenPlayTime && (await this.changeHtml(ElementObj.$video.parentElement), this.listenPlayTime()), this.listenRebort(), ElementObj.$video.addEventListener("ended", async () => {
  2539. showTip("✅✅✅\u5f53\u524d\u89c6\u9891\u5df2\u64ad\u653e\u5b8c,5\u79d2\u540e\u64ad\u653e\u4e0b\u4e00\u4e2a", 4500), this.playNext(this)
  2540. }), ElementObj.$video.addEventListener("pause", () => {
  2541. setTimeout(() => {
  2542. ElementObj.$video.volume = 0, ElementObj.$video.play()
  2543. }, 1500)
  2544. })), 2 == e && (showTip("✅✅✅\u8be5\u7ae0\u8282\u4e3a\u6587\u6863,\u5373\u5c06\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a", 3e3), await sleep(3e3), this.playNext(this)))
  2545. }
  2546. listenRebort() {
  2547. this.listenRebortTime = setInterval(() => {
  2548. this.listenRebortFn && "function" == typeof this.listenRebortFn && this.listenRebortFn(this)
  2549. }, 1e4)
  2550. }
  2551. async playNext() {
  2552. if (this.beforePlayNext && "function" == typeof this.beforePlayNext && await this.beforePlayNext(this), !(this.currentIndex >= ElementObj.$allTask.length - 1)) {
  2553. await sleep(2500), this.currentIndex += 1;
  2554. let e = ElementObj.$allTask[this.currentIndex];
  2555. (e = this.nextClass ? ElementObj.$allTask[this.currentIndex].querySelector(this.nextClass) : e)?.click(), this.afterPlayEnd && await this.afterPlayEnd(), setTimeout(() => {
  2556. this._o1()
  2557. }, 5e3)
  2558. }
  2559. }
  2560. listenPlayTime() {
  2561. let l = 0;
  2562. this.timer = setInterval(async () => {
  2563. l += 1;
  2564. var e = (ElementObj.$video?.currentTime / 60).toFixed(2), t = ElementObj.$video?.duration;
  2565. this.addInfo(`\u540e\u53f0\u5b66\u4e60${l}\u6b21\u5f53\u524d\u72b6\u6001\u6b63\u5728\u5b66\u4e60\u5df2\u64ad\u653e${e}\u5206\u949f\u89c6\u9891\u603b\u65f6\u957f\u4e3a${t / 60}\u5206\u949f`)
  2566. }, 5e3)
  2567. }
  2568. registerBtn(e, t, l) {
  2569. MyTool.registerMenuCommand(e, t, l)
  2570. }
  2571. }
  2572. function _ex(e) {
  2573. for (var t = "", l = 0; l < e.length; l += 2) {
  2574. var n = e.substr(l, 2), n = parseInt(n, 16);
  2575. t += String.fromCharCode(n)
  2576. }
  2577. return t
  2578. }
  2579. class fujianshifan extends Main {
  2580. constructor() {
  2581. super(), this.taskLength = 0, this.currentIndex = 0, this.currentMidiaType = "video", this._init()
  2582. }
  2583. _init() {
  2584. let n = document.querySelectorAll(".section");
  2585. new Promise(l => {
  2586. n.forEach((e, t) => {
  2587. e.childNodes[0].click(), sleep(20), t == n.length - 1 && l(!0)
  2588. })
  2589. }).then(e => {
  2590. setTimeout(() => {
  2591. ElementObj.$allStudyTask = document.querySelectorAll(".section li"), this.getCurrentIndex()
  2592. }, 2e3)
  2593. })
  2594. }
  2595. getCurrentIndex() {
  2596. let l = document.querySelector(".active").id;
  2597. ElementObj.$allStudyTask.forEach((e, t) => {
  2598. e.id == l && (this.currentIndex = t)
  2599. })
  2600. }
  2601. play() {
  2602. ElementObj.$allStudyTask[this.currentIndex].click(), setTimeout(() => {
  2603. ElementObj.$video = document.querySelector("video"), ElementObj.$video ? (this.currentMidiaType = "video", this.handlePlayVideo()) : (this.currentMidiaType = "doc", this.handlePlayDoc())
  2604. }, 2e3)
  2605. }
  2606. nextPlay() {
  2607. sleep(1e3), this.currentIndex += 1, this._o1()
  2608. }
  2609. handlePlayVideo() {
  2610. this.updateSpeedElement(toolOption.accelerator), ElementObj.$video.play(), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "\u52a0\u901f\u6210\u529f", ElementObj.$video.addEventListener("ended", () => {
  2611. this.nextPlay()
  2612. }, !1)
  2613. }
  2614. handlePlayDoc() {
  2615. ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "\u52a0\u901f\u6210\u529f";
  2616. var e = document.querySelector("#lg-counter-all")?.innerHTML;
  2617. let t = document.querySelector(".lg-actions>.lg-next"), l = Number(e), n = setInterval(() => {
  2618. l <= 0 || !t ? (clearInterval(n), this.nextPlay()) : (t.click(), --l)
  2619. }, 1e3)
  2620. }
  2621. }
  2622. class gxcic extends Main {
  2623. constructor() {
  2624. super(), this.parentIndex = 0, this.currentIndex = 0, this.currentTaskEle = null, this.taskLength = 0, this.timer = null, this._init()
  2625. }
  2626. _init() {
  2627. let e = setInterval(async () => {
  2628. ElementObj.$allTaskParentNodes = document?.querySelectorAll(".ant-collapse-item"), ElementObj.$allTask = document?.querySelectorAll(".course-detail-content-section-info-text"), ElementObj.$allTask.length && ElementObj.$allTaskParentNodes.length && (clearInterval(e), this.getCurrentIndex())
  2629. }, 1e3)
  2630. }
  2631. async getCurrentIndex() {
  2632. ElementObj.$allTaskParentNodes.forEach((e, t) => {
  2633. e.className.includes("ant-collapse-item-active") && (this.parentIndex = t)
  2634. }), ElementObj.$allTask.forEach((e, t) => {
  2635. e.className.includes("course-detail-current") && (this.currentIndex = t, this.currentTaskEle = e)
  2636. }), this.currentTaskEle && showTip("\u521d\u59cb\u5316\u5b8c\u6210,\u53ef\u70b9\u51fb\u52a0\u901f")
  2637. }
  2638. getVideoDom() {
  2639. return new Promise(e => {
  2640. let t = setInterval(() => {
  2641. ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0))
  2642. }, 1e3)
  2643. })
  2644. }
  2645. async play() {
  2646. clearInterval(this.timer), await this.getVideoDom(), ElementObj.$video.play(), this.updateSpeedElement(toolOption.accelerator), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "\u52a0\u901f\u6210\u529f", this.lisRebort(), ElementObj.$video.addEventListener("ended", async () => {
  2647. var e = this.currentTaskEle.parentElement.parentElement.nextSibling;
  2648. e ? (this.currentIndex += 1, this.currentTaskEle = e) : (this.parentIndex += 1, this.currentIndex += 1, ElementObj.$allTaskParentNodes[this.parentIndex].lastChild.firstChild.firstChild.click(), await sleep(1500), ElementObj.$allTask = document?.querySelectorAll(".course-detail-content-section-info-text"), this.currentTaskEle = ElementObj.$allTask[this.currentIndex]), this.currentTaskEle.click(), await sleep(5e3), this._o1()
  2649. }, !1), ElementObj.$video.addEventListener("pause", () => {
  2650. setTimeout(() => {
  2651. ElementObj.$video.volume = 0, ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.play()
  2652. }, 1500)
  2653. })
  2654. }
  2655. lisRebort() {
  2656. this.timer = setInterval(() => {
  2657. document.querySelector(".sdk-ia-message-confirm")?.click();
  2658. var e = document.querySelector(".sdk-ia-number-verify-image");
  2659. e && (document.querySelector(".sdk-ia-number-input input").value = e.innerText, document.querySelector(".sdk-ia-number-button").click())
  2660. }, 5e3)
  2661. }
  2662. }
  2663. class fjsf2 extends Main {
  2664. constructor() {
  2665. super(), this.taskLength = 0, this.parentIndex = 0, this.currentIndex = 0, this.currentMidiaType = "video", this._init()
  2666. }
  2667. _init() {
  2668. ElementObj.$allTaskParentNodes = document?.querySelectorAll(".section");
  2669. document.querySelectorAll(".section");
  2670. this.getCurrentIndex()
  2671. }
  2672. getCurrentIndex() {
  2673. ElementObj.$allTaskParentNodes.forEach((e, l) => {
  2674. let n = e.querySelectorAll("li");
  2675. n?.forEach((e, t) => {
  2676. e.className.includes("active") && (this.parentIndex = l, this.currentIndex = t, ElementObj.$allTask = n)
  2677. })
  2678. })
  2679. }
  2680. async play() {
  2681. ElementObj.$allTask[this.currentIndex].click(), await sleep(2e3), document.querySelector(".lg-close") ? (this.currentMidiaType = "doc", this.handlePlayDoc()) : (this.currentMidiaType = "video", this.handlePlayVideo())
  2682. }
  2683. async nextPlay() {
  2684. if (await sleep(1e3), this.currentIndex >= ElementObj.$allTask.length - 1) {
  2685. if (this.parentIndex += 1, this.currentIndex = 0, this.parentIndex >= ElementObj.$allTaskParentNodes.length) return void alert("\u5df2\u5168\u90e8\u64ad\u653e\u5b8c");
  2686. var e = ElementObj.$allTaskParentNodes[this.parentIndex].querySelectorAll("li");
  2687. e.length ? ElementObj.$allTask = e : (ElementObj.$allTaskParentNodes[this.parentIndex].childNodes[0].click(), await sleep(300), ElementObj.$allTask = ElementObj.$allTaskParentNodes[this.parentIndex].querySelectorAll("li"))
  2688. } else this.currentIndex += 1;
  2689. this._o1()
  2690. }
  2691. handlePlayVideo() {
  2692. ElementObj.$video = document.querySelector("video"), this.updateSpeedElement(toolOption.accelerator), ElementObj.$video.play(), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "\u52a0\u901f\u6210\u529f", ElementObj.$video.addEventListener("ended", () => {
  2693. this.nextPlay()
  2694. }, !1)
  2695. }
  2696. async handlePlayDoc() {
  2697. ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "\u52a0\u901f\u6210\u529f", await sleep(1500);
  2698. var e = document.querySelector(".lg-toggle-thumb");
  2699. e && (e.click(), document.querySelectorAll(".lg-thumb-item").length), await sleep(2e3), document.querySelector(".lg-close").click(), this.nextPlay()
  2700. }
  2701. }
  2702. class zjzx extends Main {
  2703. constructor() {
  2704. super(), this.taskLength = 0, this.currentIndex = 0, this._init()
  2705. }
  2706. _init() {
  2707. ElementObj.$allTask = document.querySelectorAll(".nLi"), this.getCurrentIndex()
  2708. }
  2709. getCurrentIndex() {
  2710. ElementObj.$allTask.forEach((e, t) => {
  2711. e.querySelector("li").classList.contains("active") && (this.currentIndex = t)
  2712. })
  2713. }
  2714. async play() {
  2715. ElementObj.$video = document.querySelector("video"), ElementObj.$video.playbackRate = toolOption.accelerator, ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "\u52a0\u901f\u6210\u529f", ElementObj.$video.addEventListener("ended", () => {
  2716. setTimeout(() => {
  2717. this._o1()
  2718. }, 5e3)
  2719. })
  2720. }
  2721. }
  2722. class zxpxmr extends Main {
  2723. constructor() {
  2724. super(), this.taskLength = 0, this.currentIndex = 0, this._init()
  2725. }
  2726. _init() {
  2727. window.alert = function () {
  2728. return !1
  2729. };
  2730. let e = setInterval(() => {
  2731. ElementObj.$allTask = document.querySelectorAll(".kecheng_play_mian_list_item"), ElementObj.$allTask.length && (showTip("🔉\u521d\u59cb\u5316\u5b8c\u6210,\u53ef\u70b9\u51fb\u52a0\u901f", 3e3), clearInterval(e), this.getCurrentIndex())
  2732. }, 1e3)
  2733. }
  2734. getCurrentIndex() {
  2735. ElementObj.$allTask.forEach((e, t) => {
  2736. e.classList.contains("kecheng_play_mian_list_item_progress_playing") && (this.currentIndex = t)
  2737. })
  2738. }
  2739. async play() {
  2740. ElementObj.$video = document.querySelector("video"), ElementObj.$video.playbackRate = toolOption.accelerator, ElementObj.$video.play(), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "\u52a0\u901f\u6210\u529f", this.simulationClick(), ElementObj.$video.addEventListener("ended", async () => {
  2741. var e;
  2742. clearInterval(this.timer), this.currentIndex >= ElementObj.$allTask.length - 1 ? alert("\u8bfe\u7a0b\u5df2\u5168\u90e8\u90e8\u5206\u5b8c") : (this.currentIndex += 1, e = document.querySelector("#btn-sure"), await sleep(2e3), e?.click(), setTimeout(() => {
  2743. this._o1()
  2744. }, 5e3))
  2745. }), ElementObj.$video.addEventListener("pause", () => {
  2746. setTimeout(() => {
  2747. ElementObj.$video.play()
  2748. }, 1e3)
  2749. })
  2750. }
  2751. simulationClick() {
  2752. var e = new KeyboardEvent("keydown", {keyCode: 8, which: 8});
  2753. this.timer = setInterval(() => {
  2754. try {
  2755. document.dispatchEvent(e)
  2756. } catch (e) {
  2757. }
  2758. }, 3e3)
  2759. }
  2760. }
  2761. class ggfw extends Main {
  2762. constructor() {
  2763. super(), this.taskLength = 0, this.currentIndex = 0, this._init()
  2764. }
  2765. _init() {
  2766. ElementObj.$parentNodes = document.querySelectorAll(".learnList"), ElementObj.$parentNodes.length && this.selectOneClass(), new Promise(e => {
  2767. let t = setInterval(() => {
  2768. ElementObj.$allTask = document.querySelectorAll(".courseItem"), ElementObj.$allTask.length && (clearInterval(t), this.getCurrentIndex(), e(!0))
  2769. }, 1e3)
  2770. }).then(e => {
  2771. ElementObj.$handleSpeedUp.style.display = "none";
  2772. let t = setInterval(async () => {
  2773. ElementObj.$video = document.querySelector("video"), ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.setAttribute("autoplay", "autoplay");
  2774. var e = document.querySelector(".volume-icon");
  2775. e.click(), await sleep(500), e.click(), ElementObj.$video && (clearInterval(t), showTip("🔉\u521d\u59cb\u5316\u5b8c\u6210,\u5373\u5c06\u81ea\u52a8\u64ad\u653e", 3e3), await sleep(300), document.querySelector(".prism-big-play-btn").click(), await this._o1())
  2776. }, 1e3)
  2777. })
  2778. }
  2779. getCurrentIndex() {
  2780. ElementObj.$allTask.forEach((e, t) => {
  2781. e.classList.contains("active") && (this.currentIndex = t)
  2782. })
  2783. }
  2784. async play() {
  2785. await sleep(3e3), localStorage.setItem("ctx-status", ""), ElementObj.$video.play(), setTimeout(() => {
  2786. ElementObj.$video.playbackRate = toolOption.accelerator, ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "\u52a0\u901f\u6210\u529f"
  2787. }, 1500), this.listenVidoeStatus(ElementObj.$video, () => {
  2788. ElementObj.$video.volume = 0, ElementObj.$video.play()
  2789. }), ElementObj.$video.addEventListener("ended", async () => {
  2790. clearInterval(this.timer), ElementObj.$allTask = document.querySelectorAll(".courseItem"), await sleep(300), this.currentIndex >= ElementObj.$allTask.length - 1 ? (localStorage.setItem("ctx-status", "done"), document.querySelector(".sc-box").click(), await sleep(1500), document.querySelectorAll(".menu-box ul li")[3].click(), await sleep(2e3), window.location.reload()) : (this.currentIndex += 1, this._o1(), await sleep(2500), ElementObj.$allTask[this.currentIndex].click())
  2791. }), ElementObj.$video.addEventListener("pause", () => {
  2792. setTimeout(() => {
  2793. ElementObj.$video.play()
  2794. }, 1e3)
  2795. })
  2796. }
  2797. selectOneClass() {
  2798. let e = setTimeout(async () => {
  2799. clearInterval(e), document.querySelector("#tab-second").click(), await sleep(2500), ElementObj.$parentNodes = document.querySelectorAll(".course_item"), await sleep(200), ElementObj.$parentNodes[0].click()
  2800. }, 3e3)
  2801. }
  2802. }
  2803. class mingshiclass extends Main {
  2804. constructor() {
  2805. super(), this.taskLength = 0, this.currentIndex = 0, this.parentIndex = -1, this._init()
  2806. }
  2807. _init() {
  2808. document.querySelector(".title-box .setMealName") ? this.selectOneClass() : this.initPlayPage()
  2809. }
  2810. initPlayPage() {
  2811. new Promise(e => {
  2812. let t = setInterval(() => {
  2813. ElementObj.$allTask = document.querySelectorAll(".course-list .course-item"), ElementObj.$allTask.length && (clearInterval(t), this.getCurrentIndex(), e(!0))
  2814. }, 1e3)
  2815. }).then(e => new Promise(async e => {
  2816. ElementObj.$video = document.querySelector("video"), await sleep(3e3), ElementObj.$video && (showTip("🔉\u521d\u59cb\u5316\u5b8c\u6210,\u64ad\u653e\u5f00\u59cb", 3e3), e(!0))
  2817. })).then(e => {
  2818. this._o1()
  2819. })
  2820. }
  2821. getCurrentIndex() {
  2822. ElementObj.$allTask.forEach((e, t) => {
  2823. e.querySelector(".course-name").classList.contains("play-status") && (this.currentIndex = t)
  2824. })
  2825. }
  2826. async play() {
  2827. ElementObj.$video = document.querySelector("video"), ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.setAttribute("autoplay", "autoplay"), ElementObj.$video.volume = 0, await sleep(3500), document.querySelector(".play_btn").click(), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "\u52a0\u901f\u6210\u529f", ElementObj.$video.addEventListener("ended", async () => {
  2828. var e;
  2829. this.currentIndex >= ElementObj.$allTask.length - 1 ? (e = document.querySelector(".back-img"), sleep(200), e.click(), setTimeout(() => {
  2830. location.reload()
  2831. }, 3e3)) : (this.currentIndex += 1, e = ElementObj.$allTask[this.currentIndex], await sleep(5e3), e?.click(), setTimeout(() => {
  2832. this._o1()
  2833. }, 2e3))
  2834. }), ElementObj.$video.addEventListener("pause", () => {
  2835. setTimeout(() => {
  2836. ElementObj.$video.play()
  2837. }, 3e3)
  2838. })
  2839. }
  2840. selectOneClass() {
  2841. let e = setTimeout(async () => {
  2842. clearInterval(e), ElementObj.$parentNodes = document.querySelectorAll(".content-box>.course-list>div"), await sleep(200), ElementObj.$parentNodes.forEach((e, t) => {
  2843. if ("\u672a\u5b8c\u6210" == e.querySelector(".course_item_brief").lastChild.innerText && -1 == this.parentIndex) return this.parentIndex = t, !0
  2844. }), await sleep(200), ElementObj.$parentNodes[this.parentIndex].click(), setTimeout(() => {
  2845. this.initPlayPage()
  2846. }, 2500)
  2847. }, 1e3)
  2848. }
  2849. }
  2850. mingshiclass.ctxid = 17;
  2851. class qiangshi extends Main {
  2852. constructor() {
  2853. super(), this.taskLength = 0, this.currentIndex = -1, this.listenRebortTime = null, this._init()
  2854. }
  2855. _init() {
  2856. try {
  2857. var e = document.querySelectorAll("iframe")[2].contentWindow.document.querySelectorAll("iframe")[0].contentWindow;
  2858. this._document = e.document
  2859. } catch (e) {
  2860. }
  2861. let t = setInterval(() => {
  2862. try {
  2863. var e = document.querySelector(".contentIframe").contentWindow;
  2864. ElementObj.$allTask = e.document.querySelectorAll(".s_point"), ElementObj.$allTask.length && (clearInterval(t), this.getCurrentIndex())
  2865. } catch (e) {
  2866. }
  2867. }, 1e3)
  2868. }
  2869. getCurrentIndex() {
  2870. ElementObj.$allTask.forEach((e, t) => {
  2871. e.querySelector(".item_done_icon").classList.contains("done_icon_show") || -1 != this.currentIndex || (this.currentIndex = t)
  2872. }), -1 == this.currentIndex ? alert("\u5f53\u524d\u7ae0\u8282\u8bfe\u7a0b\u5df2\u5168\u90e8\u5b66\u5b8c") : (showTip("⚠️⚠️⚠️\u521d\u59cb\u5316\u5b8c\u6210,\u5373\u5c06\u5f00\u59cb\u64ad\u653e", 3e3), setTimeout(() => {
  2873. this._o1()
  2874. }, 4500), ElementObj.$handleSpeedUp.style.display = "none")
  2875. }
  2876. getVideoDom() {
  2877. return new Promise(t => {
  2878. let l = setInterval(() => {
  2879. try {
  2880. var e = document.querySelectorAll("iframe")[2].contentDocument.querySelectorAll("iframe")[0].contentDocument;
  2881. ElementObj.$video = e?.querySelector("video"), ElementObj.$video && (clearInterval(l), t(!0))
  2882. } catch (e) {
  2883. }
  2884. }, 1e3)
  2885. })
  2886. }
  2887. async play() {
  2888. clearInterval(this.listenRebortTime), ElementObj.$allTask[this.currentIndex].click(), await this.getVideoDom(), ElementObj.$video.volume = 0, this._document.querySelector("#player_pause")?.click(), ElementObj.$video.play(), this.listenRebort(), setTimeout(() => {
  2889. ElementObj.$video.playbackRate = localStorage.getItem("_localSpeed") || toolOption.accelerator
  2890. }, 3e3), ElementObj.$video.addEventListener("ended", async () => {
  2891. this.currentIndex >= ElementObj.$allTask.length - 1 ? alert("\u8bfe\u7a0b\u5df2\u5168\u90e8\u90e8\u5206\u5b8c") : (this.currentIndex += 1, showTip("⚠️⚠️⚠️\u6b63\u5728\u5207\u6362\u8bfe\u7a0b", 3500), setTimeout(() => {
  2892. this._o1()
  2893. }, 4e3))
  2894. }), ElementObj.$video.addEventListener("pause", () => {
  2895. setTimeout(() => {
  2896. ElementObj.$video.volume = 0, ElementObj.$video.play(), ElementObj.$video.playbackRate = localStorage.getItem("_localSpeed") || toolOption.accelerator
  2897. }, 1500)
  2898. })
  2899. }
  2900. listenRebort() {
  2901. this.listenRebortTime = setInterval(() => {
  2902. let e = document.querySelector(".layui-layer-btn0");
  2903. e && setTimeout(() => {
  2904. e.click(), ElementObj.$video.play()
  2905. }, 3e3)
  2906. }, 1e4)
  2907. }
  2908. }
  2909. qiangshi.ctxid = 18;
  2910. class lanzhgoulgjs extends Main {
  2911. constructor() {
  2912. super(), this.taskLength = 0, this.currentIndex = -1, this._init()
  2913. }
  2914. _init() {
  2915. let l = setInterval(async () => {
  2916. var e = document.querySelectorAll(".chapterlist .drop p"),
  2917. t = document.querySelectorAll(".chapterlist .videoList p");
  2918. (e.length || t.length) && (clearInterval(l), ElementObj.$allTask = e.length ? e : t, this.getCurrentIndex())
  2919. }, 1e3)
  2920. }
  2921. async getCurrentIndex() {
  2922. let l = [];
  2923. ElementObj.$allTask.forEach((e, t) => {
  2924. var e = e.querySelector(".class_percent");
  2925. e ? (e = e.innerText, l.push(parseInt(e))) : l.push(0)
  2926. }), l.reverse();
  2927. for (var e = 0; e <= l.length - 1; e++) if (l[e] < 98) {
  2928. this.currentIndex = l.length - e - 1;
  2929. break
  2930. }
  2931. if (0 == this.currentIndex) {
  2932. ElementObj.$allTask[1].querySelector("a").click(), await sleep(4e3), ElementObj.$allTask = document.querySelectorAll(".chapterlist .drop p"), await sleep(200);
  2933. var t = ElementObj.$allTask[0].querySelector(".class_percent").innerText;
  2934. if (!(parseInt(t) < 98)) return void alert("\u5f53\u524d\u79d1\u76ee\u8bfe\u7a0b\u5df2\u5168\u90e8\u64ad\u653e\u5b8c");
  2935. this.currentIndex = 0
  2936. }
  2937. -1 == this.currentIndex ? alert("\u5f53\u524d\u79d1\u76ee\u8bfe\u7a0b\u5df2\u5168\u90e8\u64ad\u653e\u5b8c") : (ElementObj.$handleSpeedUp.style.display = "none", showTip("🔉🔉🔉\u521d\u59cb\u5316\u5b8c\u6210,5s\u540e\u5f00\u59cb\u64ad\u653e", 3e3), this.pdPlayFn(location.href))
  2938. }
  2939. getVideoDom() {
  2940. return new Promise(l => {
  2941. let n = setInterval(() => {
  2942. ElementObj.$video = document.querySelector("video");
  2943. var e = ElementObj.$video.src, t = document.querySelector("iframe");
  2944. e && (clearInterval(n), l(1)), t && (clearInterval(n), l(2))
  2945. }, 1e3)
  2946. })
  2947. }
  2948. async play() {
  2949. var e, t = ElementObj.$allTask[this.currentIndex].querySelector("a"),
  2950. t = (await sleep(300), t.click(), await sleep(3e3), await this.getVideoDom());
  2951. 1 == t && (clearInterval(this.listenVidoeStatusTimer), ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.volume = 0, await sleep(200), ElementObj.$video.play(), ElementObj.$video.playbackRate = toolOption.accelerator, ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "\u52a0\u901f\u6210\u529f", this.listenVidoeStatus(ElementObj.$video, () => {
  2952. ElementObj.$video.volume = 0, ElementObj.$video.play()
  2953. }), e = document.querySelector(".ckplayer-ckplayer"), this.changeHtml(e), this.reloadPage(), this.listenPageHide(), this.listenAbnormal(1), ElementObj.$video.addEventListener("ended", async () => {
  2954. location.reload()
  2955. })), 2 == t && (e = document.querySelector("#thirdplayer"), this.changeHtml(e), this.reloadPage(), this.listenPageHide(), this.listenAbnormal(0))
  2956. }
  2957. async reloadPage() {
  2958. let e = 180, t = setInterval(() => {
  2959. e <= 0 && (clearInterval(t), location.reload()), --e
  2960. }, 1e3)
  2961. }
  2962. listenAbnormal(t) {
  2963. showTip("🔉\u8bfe\u4ef6\u6b63\u5728\u5b66\u4e60,\u8bf7\u52a1\u70b9\u51fb\u6216\u957f\u65f6\u95f4\u9690\u85cf");
  2964. let l = 0;
  2965. setInterval(() => {
  2966. l += 1, 0 == t ? this.addInfo(`\u540e\u53f0\u5b66\u4e60${l}\u6b21\u5f53\u524d\u72b6\u6001\u6b63\u5728\u5b66\u4e60`) : (e = (ElementObj.$video.currentTime / 60).toFixed(2), this.addInfo(`\u540e\u53f0\u5b66\u4e60${l}\u6b21\u5f53\u524d\u72b6\u6001\u6b63\u5728\u5b66\u4e60\u5df2\u64ad\u653e${e}\u5206\u949f`));
  2967. var e = document.querySelector(".layui-layer-btn0");
  2968. e && location.reload()
  2969. }, 5e3)
  2970. }
  2971. async changeHtml(e) {
  2972. var t = document.createElement("div");
  2973. t.setAttribute("class", "ctxstatsbox"), t.setAttribute("style", `
  2974. width: 796px;
  2975. height: 545px;
  2976. background: #eae9e9;
  2977. position: absolute;
  2978. z-index: 10;
  2979. overflow: scroll;
  2980. top: 0;
  2981. padding-left: 10px;
  2982. `), e.appendChild(t), await sleep(300), ElementObj.$ctxstatsbox = document.querySelector(".ctxstatsbox"), this.addInfo("🔉\u521d\u59cb\u5316\u5df2\u5b8c\u6210,\u6b63\u5728\u64ad\u653e"), this.addInfo("⚠️⚠️⚠️\u8bfe\u7a0b\u91c7\u7528\u5012\u7740\u64ad\u653e,\u8bf7\u52ff\u624b\u52a8\u66f4\u6362\u8bfe\u7a0b", 0)
  2983. }
  2984. addInfo(e, t) {
  2985. 15 <= document.querySelectorAll(".ctxstatsbox_li").length && (ElementObj.$ctxstatsbox.innerHTML = "");
  2986. t = `<li class="ctxstatsbox_li" style="color: ${0 == t ? "#f01414" : "#000"};line-height: 30px;font-size: 16px;">${e}</li>`;
  2987. ElementObj.$ctxstatsbox.innerHTML += t
  2988. }
  2989. listenPageHide() {
  2990. let t;
  2991. document.addEventListener("visibilitychange", () => {
  2992. if (document.hidden) {
  2993. let e = 0;
  2994. t = setInterval(() => {
  2995. 5 <= (e += 1) && this.addInfo("⚠️⚠️⚠️\u8bf7\u52ff\u957f\u65f6\u95f4\u9690\u85cf\u8be5\u5b66\u4e60\u9875\u9762", 0)
  2996. }, 5e3)
  2997. } else clearInterval(t)
  2998. })
  2999. }
  3000. }
  3001. class beijingjiaoshi extends Main {
  3002. constructor() {
  3003. super(), this.taskLength = 0, this.topIndex = 0, this.parentIndex = -1, this.currentIndex = -1, this.videoplaying = -1, this.timer = null, this._init()
  3004. }
  3005. async _init() {
  3006. var e = document.querySelector(".item_btn");
  3007. if (ElementObj.$topNode = document.querySelectorAll(".el-collapse-item__header"), e) await sleep(2e3), e.click(), setTimeout(() => {
  3008. window.close()
  3009. }, 2e3); else if (ElementObj.$topNode.length) {
  3010. var t, e = await this.getDoing();
  3011. ElementObj.statusEles[e].click(), await sleep(1e3), this.getParentIndex();
  3012. e:for (var l of ElementObj.$topNode) {
  3013. l.classList.contains("is-active") || (l.click(), await sleep(1500));
  3014. for (t of l.parentElement.nextSibling.querySelectorAll("tr.el-table__row")) if ("100%" != t.querySelector(".el-progress-bar__inner").style.width) {
  3015. MyTool.setValue("homeUrl", location.href), t.querySelector(".btn.to-study").click();
  3016. break e
  3017. }
  3018. }
  3019. } else {
  3020. let e = setInterval(async () => {
  3021. ElementObj.$allTask = document.querySelectorAll(".course-info .video-title"), ElementObj.$allTask.length && (clearInterval(e), ElementObj.$handleSpeedUp.style.display = "none", this.getCurrentIndex())
  3022. }, 1e3)
  3023. }
  3024. }
  3025. async getParentIndex() {
  3026. ElementObj.$topNode = document.querySelectorAll(".el-collapse-item"), await sleep(200);
  3027. let t = ElementObj.$topNode.length, l = setInterval(async () => {
  3028. this.topIndex >= t - 1 && clearInterval(l), await sleep(2e3);
  3029. var e = ElementObj.$topNode[this.topIndex];
  3030. 0 != this.topIndex && e.querySelector(".item-title-col").click(), await sleep(300), ElementObj.$parentNodes = e.querySelectorAll(".el-table__row"), await sleep(300), ElementObj.$parentNodes.forEach(async (e, t) => {
  3031. "\u8bfe\u7a0b:100%" != e.querySelector(".course_num").innerText && -1 == this.parentIndex && (clearInterval(l), this.parentIndex = t, t = e.querySelector(".to-study"), await sleep(200), t.click(), setTimeout(() => {
  3032. window.close()
  3033. }, 1500))
  3034. }), this.topIndex += 1
  3035. }, 3e3)
  3036. }
  3037. getDoing() {
  3038. return new Promise(l => {
  3039. let n = !1;
  3040. ElementObj.statusEles = document.querySelectorAll(".li-item .el-progress-bar__inner"), ElementObj.statusEles.forEach((e, t) => {
  3041. e = e.style.width;
  3042. parseInt(e) <= 98 && 0 == n && (n = !0, l(t))
  3043. }), n || l(0)
  3044. })
  3045. }
  3046. async getCurrentIndex() {
  3047. ElementObj.$allTask.forEach((e, t) => {
  3048. "100%" != e.querySelector(".four").innerText && -1 == this.currentIndex && (this.currentIndex = t)
  3049. }), ElementObj.$handleSpeedUp.style.display = "none", showTip("🔉\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 3e3);
  3050. var e = ElementObj.$allTask[this.currentIndex];
  3051. await sleep(200), e.click(), setTimeout(() => {
  3052. this._o1()
  3053. }, 4500)
  3054. }
  3055. getVideoDom() {
  3056. return new Promise(e => {
  3057. let t = setInterval(() => {
  3058. ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0))
  3059. }, 1e3)
  3060. })
  3061. }
  3062. async play() {
  3063. clearInterval(this.timer), await this.getVideoDom(), ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.volume = 0;
  3064. var e = document.querySelector(".xgplayer-start");
  3065. await sleep(200), e.click(), ElementObj.$video.playbackRate = toolOption.accelerator, this.punchCard(), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "\u52a0\u901f\u6210\u529f", this.listenVidoeStatus(), ElementObj.$video.addEventListener("ended", async () => {
  3066. var e;
  3067. this.currentIndex >= ElementObj.$allTask.length - 1 ? (setTimeout(() => {
  3068. window.close()
  3069. }, 1500), e = MyTool.getValue("homeUrl"), location.replace(e)) : (this.currentIndex += 1, e = ElementObj.$allTask[this.currentIndex], await sleep(300), e.click(), setTimeout(() => {
  3070. this._o1()
  3071. }, 4500))
  3072. }), ElementObj.$video.addEventListener("pause", () => {
  3073. }), ElementObj.$video.addEventListener("playing", () => {
  3074. }), ElementObj.$video.addEventListener("waiting", () => {
  3075. })
  3076. }
  3077. listenVidoeStatus() {
  3078. this.timer = setInterval(() => {
  3079. ElementObj.$video = document.querySelector("video"), ElementObj.$video && ElementObj.$video.paused && (ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.volume = 0, ElementObj.$video.play())
  3080. }, 3e3)
  3081. }
  3082. punchCard() {
  3083. setInterval(() => {
  3084. var e = document.querySelector("#comfirmClock");
  3085. e && e.click()
  3086. }, 5e3)
  3087. }
  3088. }
  3089. class qingyangzgzjzj extends Main {
  3090. constructor() {
  3091. super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this._init()
  3092. }
  3093. _init() {
  3094. let e = setInterval(() => {
  3095. ElementObj.$parentNodes = document.querySelectorAll(".swiper-slide"), ElementObj.$parentNodes.length && (clearInterval(e), this.getParentIndex())
  3096. }, 1e3)
  3097. }
  3098. async getParentIndex() {
  3099. showTip("\u6b63\u5728\u521d\u59cb\u5316", 1500), ElementObj.$parentNodes.forEach((e, t) => {
  3100. e = e.querySelector(".progresstext").innerText;
  3101. parseInt(e) < 97 && -1 == this.parentIndex && (this.parentIndex = t, ElementObj.$parentNodes[this.parentIndex].querySelector(".left-img").click())
  3102. }), -1 == this.parentIndex ? alert("\u8bfe\u7a0b\u5df2\u5168\u90e8\u64ad\u653e\u5b8c") : this.getCurrentIndex()
  3103. }
  3104. _getParentIndex() {
  3105. let e = 0;
  3106. for (var t = 0; t <= ElementObj.$parentNodes.length - 1; t++) {
  3107. var l = ElementObj.$parentNodes[t].querySelector(".progresstext").innerText;
  3108. if (parseInt(l) < 95) {
  3109. e = t;
  3110. break
  3111. }
  3112. }
  3113. return e
  3114. }
  3115. async getCurrentIndex() {
  3116. ElementObj.$allTask = document.querySelectorAll(".class-catlog ul li ul li"), await sleep(2e3), ElementObj.$allTask[0].click(), this.currentIndex = 0, ElementObj.$handleSpeedUp.style.display = "none", showTip("🔉\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u81ea\u52a8\u5f00\u59cb\u64ad\u653e", 3e3), setTimeout(() => {
  3117. this._o1()
  3118. }, 3e3)
  3119. }
  3120. async play() {
  3121. clearInterval(this.timer), clearInterval(this.timer2), await this.getVideoDom(), ElementObj.$video = document.querySelector("video"), ElementObj.$video.volume = 0, ElementObj.$video.currentTime = 0, ElementObj.$video.playbackRate = toolOption.accelerator, ElementObj.$video.play(), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "\u52a0\u901f\u6210\u529f", this.listenVidoeStatus(), this.listenRebort(), ElementObj.$video.addEventListener("ended", async () => {
  3122. this.playNext()
  3123. })
  3124. }
  3125. getVideoDom() {
  3126. return new Promise(e => {
  3127. let t = setInterval(() => {
  3128. ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0))
  3129. }, 1e3)
  3130. })
  3131. }
  3132. listenVidoeStatus() {
  3133. this.timer = setInterval(() => {
  3134. ElementObj.$video = document.querySelector("video"), ElementObj.$video && ElementObj.$video.paused && (ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.volume = 0, ElementObj.$video.play())
  3135. }, 3e3)
  3136. }
  3137. listenRebort() {
  3138. this.timer2 = setInterval(() => {
  3139. "100%" == document.querySelector(".progress")?.querySelectorAll("span")[1].innerText.trim() && location.reload()
  3140. }, 3e3)
  3141. }
  3142. async playNext() {
  3143. ElementObj.$allTask = document.querySelectorAll(".class-catlog ul li ul li"), await sleep(1500), this.currentIndex >= ElementObj.$allTask.length - 1 && location.reload()
  3144. }
  3145. }
  3146. class lanzhouwenli extends Main {
  3147. constructor() {
  3148. super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this._init()
  3149. }
  3150. _init() {
  3151. let e = setInterval(() => {
  3152. ElementObj.$allTask = document.querySelectorAll(".video"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex())
  3153. }, 1e3)
  3154. }
  3155. async getParentIndex() {
  3156. }
  3157. async getCurrentIndex() {
  3158. ElementObj.$allTask.forEach((e, t) => {
  3159. e = e.querySelector(".el-progress__text").innerText;
  3160. parseInt(e) < 96 && -1 == this.currentIndex && (this.currentIndex = t)
  3161. }), -1 == this.currentIndex ? alert("\u5f53\u524d\u7ae0\u8282\u8bfe\u7a0b\u5df2\u5168\u90e8\u64ad\u653e\u5b8c") : (showTip("🔉🔉🔉\u521d\u59cb\u5316\u5b8c\u6210,\u5373\u5c06\u5f00\u59cb\u64ad\u653e", 3e3), await sleep(2e3), ElementObj.$allTask[this.currentIndex].click(), await sleep(2500), this._o1())
  3162. }
  3163. async play() {
  3164. await this.getVideoDom(), document.querySelector(".volume-icon").classList.add("mute"), ElementObj.$video.volume = 0, await sleep(200), ElementObj.$video.playbackRate = toolOption.accelerator, ElementObj.$video.play(), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "\u52a0\u901f\u6210\u529f", ElementObj.$video.addEventListener("ended", async () => {
  3165. var e;
  3166. await sleep(1500), this.currentIndex >= ElementObj.$allTask.length - 1 && (this.parentIndex += 1, await sleep(200), ElementObj.$parentNodes[this.parentIndex].querySelector(".left-img").click(), this.parentIndex >= ElementObj.$parentNodes.length - 1) ? alert("\u8bfe\u7a0b\u5df2\u5168\u90e8\u64ad\u653e\u5b8c\u4e86") : (e = document.querySelector(".videoleft img"), await sleep(200), e.click(), showTip("\u6b63\u5728\u5207\u6362\u8bfe\u7a0b", 3e3), setTimeout(async () => {
  3167. this.currentIndex += 1;
  3168. var e = ElementObj.$allTask[this.currentIndex];
  3169. await sleep(2e3), e?.click(), setTimeout(() => {
  3170. this._o1()
  3171. }, 5e3)
  3172. }, 5500))
  3173. }), ElementObj.$video.addEventListener("pause", () => {
  3174. setTimeout(() => {
  3175. ElementObj.$video.play()
  3176. }, 4e3)
  3177. })
  3178. }
  3179. getVideoDom() {
  3180. return new Promise(e => {
  3181. let t = setInterval(() => {
  3182. ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0))
  3183. }, 1e3)
  3184. })
  3185. }
  3186. }
  3187. class guojiazhihuijiaoyu extends Main {
  3188. constructor() {
  3189. super(), this.taskLength = 0, this.currentIndex = -1, this._init()
  3190. }
  3191. _init() {
  3192. let t = setInterval(async () => {
  3193. var e = document.querySelectorAll(".video-title .four");
  3194. e.length && (clearInterval(t), ElementObj.$handleSpeedUp.style.display = "none", ElementObj.$allTask = e, this.getCurrentIndex())
  3195. }, 1e3)
  3196. }
  3197. getCurrentIndex() {
  3198. ElementObj.$allTask.forEach((e, t) => {
  3199. "100%" != e.innerText && -1 == this.currentIndex && (this.currentIndex = t)
  3200. }), -1 == this.currentIndex && (this.currentIndex = 0), showTip("🔉🔉🔉\u521d\u59cb\u5316\u5b8c\u6210,\u5373\u5c06\u5f00\u59cb\u81ea\u52a8\u64ad\u653e", 3e3), this._o1()
  3201. }
  3202. async play() {
  3203. var e = ElementObj.$allTask[this.currentIndex];
  3204. await sleep(300), e.click(), await sleep(3e3), document.querySelector("video").volume = 0;
  3205. document.querySelector(".xgplayer-icon-play").click(), await this.getVideoDom(), ElementObj.$video.play(), ElementObj.$video.playbackRate = toolOption.accelerator, this.listenVidoeStatus();
  3206. e = document.querySelector(".layui-layer-btn0");
  3207. e && e.click(), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "\u52a0\u901f\u6210\u529f", this.listenTopic(), ElementObj.$video.addEventListener("pause", () => {
  3208. setTimeout(() => {
  3209. ElementObj.$video.volume = 0, ElementObj.$video.play()
  3210. }, 1500)
  3211. }), ElementObj.$video.addEventListener("ended", async () => {
  3212. var e = document.querySelector(".layui-layer-btn0");
  3213. await sleep(3e3), e && e.click(), this.currentIndex += 1, setTimeout(() => {
  3214. this._o1()
  3215. }, 5e3)
  3216. })
  3217. }
  3218. listenTopic() {
  3219. setInterval(() => {
  3220. try {
  3221. document.querySelector("#submit") && this.answerTopic()
  3222. } catch (e) {
  3223. }
  3224. }, 5e3)
  3225. }
  3226. async answerTopic() {
  3227. var e = document.querySelectorAll(".choice li")[0];
  3228. await sleep(200), e.click();
  3229. let t = document.querySelector("#submit");
  3230. await sleep(1e3), t.click(), await sleep(2e3), t = document.querySelector("#submit"), await sleep(200), t.click(), await sleep(4500);
  3231. e = document.querySelector(".layui-layer-btn0");
  3232. await sleep(200), e.click()
  3233. }
  3234. listenVidoeStatus() {
  3235. this.timer = setInterval(() => {
  3236. ElementObj.$video = document.querySelector("video"), ElementObj.$video && ElementObj.$video.paused && (ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.volume = 0, ElementObj.$video.play())
  3237. }, 1e4)
  3238. }
  3239. }
  3240. class lanzhouchengren extends Main {
  3241. constructor() {
  3242. super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this.videoplaying = 3, this.loadedCount = 0, this.type = 1, this._init()
  3243. }
  3244. _init() {
  3245. let e = setInterval(() => {
  3246. "/courseVideo/index" == location.pathname ? ElementObj.$allTask = document.querySelectorAll(".ant-tree-node-content-wrapper-normal .chapter-tree-level2") : ElementObj.$allTask = document.querySelectorAll(".activity li"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex())
  3247. }, 1e3)
  3248. }
  3249. async getCurrentIndex() {
  3250. if ("/courseVideo/index" == location.pathname) {
  3251. for (var e = 0; e <= ElementObj.$allTask.length - 1; e++) {
  3252. var t = ElementObj.$allTask[e].querySelector(".right");
  3253. if (!t) {
  3254. this.currentIndex = e;
  3255. break
  3256. }
  3257. if ("\u5df2\u5b8c\u6210" != t.querySelector(".percent-text").innerText) {
  3258. this.currentIndex = e;
  3259. break
  3260. }
  3261. }
  3262. if (-1 == this.currentIndex) return void alert("\u6240\u6709\u8bfe\u7a0b\u5df2\u64ad\u653e\u5b8c");
  3263. ElementObj.$allTask[e].click()
  3264. } else ElementObj.$allTask.forEach((e, t) => {
  3265. e.classList.contains("cur") && (this.currentIndex = t)
  3266. }), -1 == this.currentIndex && (this.currentIndex = 0);
  3267. ElementObj.$handleSpeedUp.style.display = "none", showTip("🔉\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 3e3), await sleep(3e3), this._o1()
  3268. }
  3269. async play() {
  3270. clearInterval(this.listenVidoeStatusTimer);
  3271. var e = await this.getVideoDom();
  3272. await sleep(200), 1 == e && setTimeout(async () => {
  3273. this.currentIndex += 1;
  3274. var e = ElementObj.$allTask[this.currentIndex]?.querySelector("h3");
  3275. await sleep(2e3), e?.click()
  3276. }, 3e3), 2 == e && (ElementObj.$video.volume = 0, ElementObj.$video.playbackRate = toolOption.accelerator, ElementObj.$video.play(), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "\u52a0\u901f\u6210\u529f", "/venus/study/activity/video/study.do" == location.pathname && (this.listenVidoeStatus(ElementObj.$video, () => {
  3277. (ElementObj.$allTask[this.currentIndex]?.querySelector("h3"))?.click()
  3278. }), this.reloadPage()), ElementObj.$video.addEventListener("ended", async () => {
  3279. this.playNext()
  3280. }), ElementObj.$video.addEventListener("pause", () => {
  3281. this.videoplaying = 1, setTimeout(() => {
  3282. ElementObj.$video.volume = 0, ElementObj.$video.play()
  3283. }, 1e3)
  3284. }), ElementObj.$video.addEventListener("playing", () => {
  3285. this.videoplaying = 2
  3286. }))
  3287. }
  3288. async playNext() {
  3289. if (this.videoplaying = 3, await sleep(1500), this.currentIndex >= ElementObj.$allTask.length - 1) alert("\u5f53\u524d\u7ae0\u8282\u8bfe\u7a0b\u5df2\u5168\u90e8\u64ad\u653e\u5b8c\u4e86"); else {
  3290. this.currentIndex += 1;
  3291. var t = ElementObj.$allTask[this.currentIndex];
  3292. let e;
  3293. "/courseVideo/index" == location.pathname ? ((e = t)?.click(), setTimeout(() => {
  3294. this._o1()
  3295. }, 3e3)) : (e = t?.querySelector("h3"), await sleep(2e3), e?.click())
  3296. }
  3297. }
  3298. getVideoDom() {
  3299. return new Promise(e => {
  3300. let t = setInterval(() => {
  3301. ElementObj.$video = document.querySelector("video"), ElementObj.$myFrame = document.querySelector("#myFrame"), ElementObj.$video && (clearInterval(t), this.type = 2, e(2)), ElementObj.$myFrame && (clearInterval(t), this.type = 1, e(1))
  3302. }, 1e3)
  3303. })
  3304. }
  3305. async reloadPage() {
  3306. let e = 600, t = 0, l = setInterval(() => {
  3307. (t += 1) % 15 == 0 && console.clear(), t, e <= 0 && (clearInterval(l), location.reload()), --e
  3308. }, 1e3)
  3309. }
  3310. }
  3311. class tsbtchinamde extends Main {
  3312. constructor() {
  3313. super(), this.taskLength = 0, this.studyType = 1, this.currentIndex = -1, this._init()
  3314. }
  3315. _init() {
  3316. let l = setInterval(async () => {
  3317. var e = document.querySelectorAll(".chapterlist .item p"),
  3318. t = document.querySelectorAll(".chapterlist .chapter-li .drop p");
  3319. (e.length || t.length) && (clearInterval(l), ElementObj.$allTask = t.length ? t : e, this.getCurrentIndex(), ElementObj.$handleSpeedUp.style.display = "none")
  3320. }, 1e3)
  3321. }
  3322. async getCurrentIndex() {
  3323. let l = [];
  3324. ElementObj.$allTask.forEach((e, t) => {
  3325. var e = e.querySelector(".class_percent");
  3326. e ? (e = e.innerText, l.push(parseInt(e))) : l.push(0)
  3327. }), l.reverse();
  3328. for (var e = 0; e <= l.length - 1; e++) if (l[e] < 98) {
  3329. this.currentIndex = l.length - e - 1;
  3330. break
  3331. }
  3332. if (0 == this.currentIndex) {
  3333. ElementObj.$allTask[1].querySelector("a").click(), await sleep(4e3), ElementObj.$allTask = document.querySelectorAll(".chapterlist .drop p"), await sleep(200);
  3334. var t = ElementObj.$allTask[0].querySelector(".class_percent").innerText;
  3335. if (!(parseInt(t) < 98)) return void alert("\u5f53\u524d\u79d1\u76ee\u8bfe\u7a0b\u5df2\u5168\u90e8\u64ad\u653e\u5b8c");
  3336. this.currentIndex = 0
  3337. }
  3338. -1 == this.currentIndex ? alert("\u5f53\u524d\u79d1\u76ee\u8bfe\u7a0b\u5df2\u5168\u90e8\u64ad\u653e\u5b8c") : (ElementObj.$handleSpeedUp.style.display = "none", showTip("🔉🔉🔉\u521d\u59cb\u5316\u5b8c\u6210,5s\u540e\u5f00\u59cb\u64ad\u653e", 3e3), this._o1())
  3339. }
  3340. getVideoDom() {
  3341. return new Promise(e => {
  3342. let t = setInterval(() => {
  3343. ElementObj.$video = document.querySelector("video"), ElementObj.$video.src ? (clearInterval(t), e(1)) : (clearInterval(t), e(2))
  3344. }, 1e3)
  3345. })
  3346. }
  3347. async play() {
  3348. clearInterval(this.timer);
  3349. var e = ElementObj.$allTask[this.currentIndex].querySelector("a"),
  3350. e = (await sleep(300), e.click(), this.studyType = await this.getVideoDom(), 1 == this.studyType && (ElementObj.$video.volume = 0, ElementObj.$video.setAttribute("muted", "muted"), await sleep(200), ElementObj.$video.play(), ElementObj.$video.playbackRate = toolOption.accelerator, ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "\u52a0\u901f\u6210\u529f", this.listenVidoeStatus(ElementObj.$video, () => {
  3351. ElementObj.$video.volume = 0, ElementObj.$video.play()
  3352. })), 1 == this.studyType ? $el("#player") : $el("#thirdplayer"));
  3353. this.changeHtml(e), this.reloadPage(), this.listenPageHide(), 1 == this.studyType ? this.listenAbnormal(1) : this.listenAbnormal(0), setTimeout(() => {
  3354. this.addInfo("⚠️⚠️⚠️\u8bfe\u7a0b\u91c7\u7528\u5012\u7740\u64ad\u653e,\u8bf7\u52ff\u624b\u52a8\u66f4\u6362\u8bfe\u7a0b", 0)
  3355. }, 1e3), ElementObj.$video.addEventListener("ended", async () => {
  3356. location.reload()
  3357. })
  3358. }
  3359. async reloadPage() {
  3360. let e = 360, t = setInterval(() => {
  3361. e <= 0 && (clearInterval(t), location.reload()), --e
  3362. }, 1e3)
  3363. }
  3364. listenAbnormal(t) {
  3365. showTip("🔉\u8bfe\u4ef6\u6b63\u5728\u5b66\u4e60,\u8bf7\u52a1\u70b9\u51fb\u6216\u957f\u65f6\u95f4\u9690\u85cf");
  3366. let l = 0;
  3367. setInterval(() => {
  3368. l += 1, 0 == t && this.addInfo(`\u540e\u53f0\u5b66\u4e60${l}\u6b21\u5f53\u524d\u72b6\u6001\u6b63\u5728\u5b66\u4e60`), 1 == t && (e = (ElementObj.$video.currentTime / 60).toFixed(2), this.addInfo(`\u540e\u53f0\u5b66\u4e60${l}\u6b21\u5f53\u524d\u72b6\u6001\u6b63\u5728\u5b66\u4e60\u5df2\u64ad\u653e${e}\u5206\u949f`));
  3369. var e = document.querySelector(".layui-layer-btn0");
  3370. e && location.reload()
  3371. }, 5e3)
  3372. }
  3373. }
  3374. tsbtchinamde.ctxid = 26;
  3375. class zjzjsrc extends Main {
  3376. constructor() {
  3377. super(), this.taskLength = 0, this.currentIndex = -1, this.wrapParentIndex = 0, this._init()
  3378. }
  3379. async _init() {
  3380. let t = setInterval(async () => {
  3381. var e;
  3382. "/member/project_toMyCourseList.page" == location.pathname && (clearInterval(t), document.querySelectorAll("td .btn-xs")[this.wrapParentIndex].click(), await sleep(2e3), e = await this.getParentIndex(), document.querySelectorAll(".panel-body")[0].querySelectorAll("tbody tr")[e].querySelector(".btn-xs[name='btn1']")?.click(), await sleep(2e3), ElementObj.$allTask = document.querySelectorAll(".btn-xs[name='btn1']"), this.step2()), ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), ElementObj.$handleSpeedUp.style.display = "none", this._o1())
  3383. }, 1e3)
  3384. }
  3385. async getParentIndex() {
  3386. let e = -1;
  3387. for (var t = document.querySelectorAll(".panel-body")[0].querySelectorAll("tbody tr"), l = 0; l <= t.length - 1; l++) {
  3388. var n = "2j.zjjsrc.cn" === location.host ? 4 : 6;
  3389. if ("\u672a\u5f00\u59cb\u5b66\u4e60" == t[l].querySelectorAll("td")[n].innerText) {
  3390. e = l;
  3391. break
  3392. }
  3393. }
  3394. if (-1 == e) {
  3395. var a = document.querySelector("#option1").lastChild,
  3396. i = document.querySelector("#option1")?.querySelector("a[title='Go to next page']");
  3397. if (a.classList.contains("active")) return e;
  3398. i.click(), await sleep(2e3), e = await this.getParentIndex()
  3399. }
  3400. return e
  3401. }
  3402. getCurrentIndex() {
  3403. showTip("\u6b63\u5728\u521d\u59cb\u5316"), ElementObj.$handleSpeedUp.style.display = "none";
  3404. var e = document.querySelectorAll(".progress-bar");
  3405. let t = -1;
  3406. for (var l = 0; l <= e.length - 1; l++) {
  3407. var n = e[l].style.width;
  3408. if (100 != parseInt(n)) {
  3409. t = l;
  3410. break
  3411. }
  3412. }
  3413. return t
  3414. }
  3415. async step2() {
  3416. let t = 0, l = document.querySelector("#myModal .panel-body")?.querySelectorAll("tbody tr"),
  3417. n = setInterval(async () => {
  3418. l[t].querySelector(".btn-xs[name='btn2']")?.click(), await sleep(500);
  3419. var e = this.getCurrentIndex();
  3420. -1 != e && (clearInterval(n), e = document.querySelectorAll("#myModal1 tbody tr")[e].querySelector("a"), GM_openInTab(e.href, {active: !0}), localStorage.setItem("learnStatus", "-1"), "2j.zjjsrc.cn" === location.host && window.addEventListener("storage", e => {
  3421. "learnStatus" === e.key && "done" === e.newValue && location.reload()
  3422. }), "2j.zjjsrc.cn" !== location.host) && setTimeout(() => {
  3423. window.close()
  3424. }, 15e3), t++
  3425. }, 2e3)
  3426. }
  3427. getVideoDom() {
  3428. return new Promise(e => {
  3429. let t = setInterval(() => {
  3430. ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0))
  3431. }, 1e3)
  3432. })
  3433. }
  3434. async play() {
  3435. clearInterval(this.timer), await this.getVideoDom(), ElementObj.$video.volume = 0, ElementObj.$video.setAttribute("muted", "muted"), await sleep(200), ElementObj.$video.play(), ElementObj.$video.playbackRate = toolOption.accelerator, this.changeHtml($el("#example_video_1")), this.listenPlayTime(), this.listenPageHide(), ElementObj.$video.addEventListener("ended", async () => {
  3436. this.videoplaying = -1, "2j.zjjsrc.cn" === location.host ? localStorage.setItem("learnStatus", "done") : GM_openInTab("https://zj.zjjsrc.cn/member/project_toMyCourseList.page", {active: !0}), setTimeout(() => {
  3437. window.close()
  3438. }, 15e3)
  3439. }), ElementObj.$video.addEventListener("pause", () => {
  3440. clearInterval(void 0), setTimeout(() => {
  3441. document.querySelector(".vjs-play-control").click()
  3442. }, 100)
  3443. })
  3444. }
  3445. listenPlayTime() {
  3446. let l = 0;
  3447. this.timer = setInterval(async () => {
  3448. l += 1;
  3449. var e = (ElementObj.$video?.currentTime / 60).toFixed(2), t = ElementObj.$video?.duration;
  3450. this.addInfo(`\u540e\u53f0\u5b66\u4e60${l}\u6b21\u5f53\u524d\u72b6\u6001\u6b63\u5728\u5b66\u4e60\u5df2\u64ad\u653e${e}\u5206\u949f\u89c6\u9891\u603b\u65f6\u957f\u4e3a${t / 60}\u5206\u949f`)
  3451. }, 5e3)
  3452. }
  3453. }
  3454. zjzjsrc.ctxid = 26;
  3455. class lzrejxjy extends Main {
  3456. constructor() {
  3457. super(), this.taskLength = 0, this.currentIndex = -1, this._init()
  3458. }
  3459. async _init() {
  3460. let t = setInterval(async () => {
  3461. try {
  3462. ElementObj.$handleSpeedUp.style.display = "none";
  3463. var e = document.querySelectorAll(".my-center2RM .pull-left a.trans")[1];
  3464. e ? (clearInterval(t), GM_setValue("homeUrl", location.href), e?.click(), showTip("🔉\u6b63\u5728\u521d\u59cb\u5316"), await sleep(2e3), ElementObj.$parentNodes = document.querySelectorAll(".class2Li"), this.findParentIndex()) : document.querySelectorAll(".learn-menu-cell").length && (clearInterval(t), this.getCurrentIndex())
  3465. } catch (e) {
  3466. }
  3467. }, 1e3)
  3468. }
  3469. async getCurrentIndex() {
  3470. "zjdx-kfkc.webtrn.cn" != location.host && ((e = document.querySelectorAll(".learn-menu-cell")[1]).classList.contains("learn-menu-cur") || e.querySelector("a").click(), await sleep(3e3));
  3471. for (var e = document.querySelector(".contentIframe"), t = (ElementObj._document = e.contentWindow.document, ElementObj.$allTask = ElementObj._document.querySelectorAll(".s_point"), showTip("\u6b63\u5728\u521d\u59cb\u5316"), ElementObj.$handleSpeedUp.style.display = "none", 0); t <= ElementObj.$allTask.length - 1; t++) if (!ElementObj.$allTask[t].querySelector(".item_done_icon").classList.contains("done_icon_show")) {
  3472. this.currentIndex = t;
  3473. break
  3474. }
  3475. -1 == this.currentIndex ? (e = GM_getValue("homeUrl", null), GM_openInTab(e, {active: !0}), setTimeout(() => {
  3476. window.close()
  3477. }, 1500)) : (ElementObj.$allTask[this.currentIndex]?.click(), showTip("\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e"), this._o1())
  3478. }
  3479. async findParentIndex() {
  3480. ElementObj.$handleSpeedUp.style.display = "none";
  3481. let n;
  3482. ElementObj.$parentNodes.forEach((e, t) => {
  3483. var l = e.querySelector(".color-theme").innerText;
  3484. parseInt(l) <= 98 && -1 == this.currentIndex && (this.currentIndex = t, n = e.querySelector("a.btn-theme"))
  3485. }), -1 == this.currentIndex ? alert("\u5168\u90e8\u8bfe\u7a0b\u5df2\u5b66\u5b8c") : (n.click(), setTimeout(() => {
  3486. window.close()
  3487. }, 1500))
  3488. }
  3489. getVideoDom() {
  3490. return new Promise(t => {
  3491. let l = 0, n = setInterval(() => {
  3492. 7 < l && (clearInterval(n), t(2));
  3493. var e = ElementObj._document.querySelector("#mainFrame")?.contentWindow.document;
  3494. ElementObj.$video = e?.querySelector("video"), ElementObj.$video && (clearInterval(n), t(1)), l += 1
  3495. }, 1e3)
  3496. })
  3497. }
  3498. async play() {
  3499. clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime);
  3500. var e = await this.getVideoDom();
  3501. 2 == e && this.playNext(), 1 == e && (ElementObj.$video.volume = 0, ElementObj.$video.setAttribute("muted", "muted"), await sleep(200), ElementObj.$video.play(), ElementObj.$video.playbackRate = toolOption.accelerator, this.listenRebort(), this.listenVidoeStatus(ElementObj.$video, () => {
  3502. ElementObj.$video.volume = 0, ElementObj.$video.play()
  3503. }), ElementObj.$video.addEventListener("ended", async () => {
  3504. this.playNext()
  3505. }), ElementObj.$video.addEventListener("pause", () => {
  3506. ElementObj.$video.volume = 0, ElementObj.$video.play()
  3507. }))
  3508. }
  3509. updateSpeedElement(e) {
  3510. localStorage.setItem("_localSpeed", e.toString()), ElementObj.$video.playbackRate = e
  3511. }
  3512. listenRebort() {
  3513. this.listenRebortTime = setInterval(() => {
  3514. let e = document.querySelector(".layui-layer-btn0");
  3515. e && setTimeout(() => {
  3516. e.click(), ElementObj.$video.play()
  3517. }, 3e3)
  3518. }, 1e4)
  3519. }
  3520. playNext() {
  3521. var e;
  3522. this.currentIndex >= ElementObj.$allTask.length - 1 ? (e = GM_getValue("homeUrl", null), GM_openInTab(e, {active: !0}), setTimeout(() => {
  3523. window.close()
  3524. }, 1500)) : (this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].click(), showTip("🔉\u6b63\u5728\u5207\u6362\u8bfe\u7a0b"), setTimeout(() => {
  3525. this._o1()
  3526. }, 5e3))
  3527. }
  3528. }
  3529. lzrejxjy.ctxid = 29;
  3530. class xuzhouyikedaxue extends Main {
  3531. constructor() {
  3532. super(), this.taskLength = 0, this.currentIndex = -1, this.parentIndex = -1, this._init()
  3533. }
  3534. async _init() {
  3535. let t = setInterval(async () => {
  3536. try {
  3537. var e = document.querySelector("#courseware_main_menu").querySelector("a");
  3538. e && (clearInterval(t), e.click(), this.findParentIndex())
  3539. } catch (e) {
  3540. }
  3541. }, 1e3)
  3542. }
  3543. async findParentIndex() {
  3544. showTip("🔉\u6b63\u5728\u521d\u59cb\u5316", 2500), await sleep(4500), ElementObj.$handleSpeedUp.style.display = "none";
  3545. var e = document.querySelector(".contentIframe").contentWindow.document;
  3546. ElementObj.$parentNodes = e.querySelectorAll(".vcon li"), ElementObj.$parentNodes.forEach((e, t) => {
  3547. e = e.querySelector("span");
  3548. (e.classList.contains("undo") || e.classList.contains("doing")) && -1 == this.parentIndex && (this.parentIndex = t)
  3549. }), -1 == this.parentIndex ? alert("\u5f53\u524d\u8bfe\u7a0b\u5df2\u5168\u90e8\u64ad\u53d1\u5b8c") : (ElementObj.$parentNodes[this.parentIndex].querySelector("a").click(), this.getCurrentIndex())
  3550. }
  3551. async getCurrentIndex() {
  3552. showTip("\u6b63\u5728\u521d\u59cb\u5316", 2500), await sleep(4500);
  3553. var e = document.querySelector(".contentIframe");
  3554. ElementObj._document = e.contentWindow.document, ElementObj.$allTask = ElementObj._document.querySelectorAll(".menub"), this.currentIndex = 0, ElementObj.$allTask[this.currentIndex]?.click(), showTip("\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e"), this._o1()
  3555. }
  3556. getVideoDom() {
  3557. return new Promise(t => {
  3558. let l = setInterval(() => {
  3559. var e = document.querySelector(".contentIframe"),
  3560. e = (ElementObj._document = e.contentWindow.document, ElementObj._document.querySelector("#mainFrame").contentDocument);
  3561. ElementObj.$video = e.querySelector("video"), ElementObj.$video ? (clearInterval(l), t(1)) : (e.querySelector("#content_frame"), clearInterval(l), t(2))
  3562. }, 1e3)
  3563. })
  3564. }
  3565. async play() {
  3566. clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime), clearInterval(this.timer2), unsafeWindow.alert = () => {
  3567. };
  3568. var e = await this.getVideoDom();
  3569. this.listenRebort(), 1 == e && (ElementObj.$video.volume = 0, await sleep(200), ElementObj.$video.play(), setTimeout(() => {
  3570. ElementObj.$video.playbackRate = toolOption.accelerator
  3571. }, 3e3), this.listenVidoeStatus(ElementObj.$video, () => {
  3572. ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
  3573. ElementObj.$video.playbackRate = toolOption.accelerator
  3574. }, 3e3)
  3575. }), ElementObj.$video.addEventListener("ended", async () => {
  3576. await sleep(3e3), this.playNext()
  3577. })), 2 == e && (this.timer2 = setTimeout(() => {
  3578. this.playNext()
  3579. }, 7e3))
  3580. }
  3581. listenRebort() {
  3582. this.listenRebortTime = setInterval(() => {
  3583. var e = document.querySelector(".layui-layer-btn a");
  3584. e && (e.click(), ElementObj.$video.play(), setTimeout(() => {
  3585. ElementObj.$video.playbackRate = toolOption.accelerator
  3586. }, 3e3))
  3587. }, 1e4)
  3588. }
  3589. async playNext() {
  3590. showTip("✅✅✅\u64ad\u653e\u5b8c\u6210,\u6b63\u5728\u5207\u6362\u8bfe\u7a0b", 3500), this.currentIndex >= ElementObj.$allTask.length - 1 ? (this.parentIndex += 1, ElementObj.$parentNodes[this.parentIndex].querySelector("a").click(), setTimeout(() => {
  3591. this.getCurrentIndex()
  3592. }, 4500)) : (this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].click(), setTimeout(() => {
  3593. this._o1()
  3594. }, 4e3))
  3595. }
  3596. }
  3597. xuzhouyikedaxue.ctxid = 26;
  3598. class xibeisfzyjy extends Main {
  3599. constructor() {
  3600. super(), this.studyType = 2, this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this.swiperIndex = -1, this._init()
  3601. }
  3602. async _init() {
  3603. let n = setInterval(async () => {
  3604. try {
  3605. var e = document.querySelectorAll(".el-tree-node"),
  3606. t = document.querySelectorAll(".m-chapterList .section"),
  3607. l = ((e.length || t.length) && (this.studyType = e.length ? 2 : 1, ElementObj.$allTask = e.length ? e : t, clearInterval(n), this.getCurrentIndex()), ElementObj.$parentNodes = document.querySelectorAll(".project-courseBottom"), ElementObj.$parentNodes.length && (clearInterval(n), this.getParentIndex()), location.host);
  3608. "preview.dccloud.com.cn" == l && (clearInterval(n), await sleep(1500), window.close())
  3609. } catch (e) {
  3610. }
  3611. }, 1e3)
  3612. }
  3613. getParentIndex() {
  3614. for (var e = 0; e <= ElementObj.$parentNodes.length - 1; e++) if ("\u5df2\u5b66\u4e60" != ElementObj.$parentNodes[e].querySelector("span")) {
  3615. this.parentIndex = e;
  3616. break
  3617. }
  3618. -1 == this.parentIndex && alert("\u8bfe\u7a0b\u5df2\u5168\u90e8\u5b66\u5b8c"), ElementObj.$parentNodes[e].querySelector(".project-courseButton").click()
  3619. }
  3620. async getSwiperIndex() {
  3621. if (ElementObj.$video = document.querySelector("video"), await sleep(200), ElementObj.$video) if (ElementObj.$swiperItem = document.querySelectorAll(".public-articleSlideList"), ElementObj.$swiperItem.length) {
  3622. for (var e, t = 0; t <= ElementObj.$swiperItem.length - 1; t++) if ("\u5df2\u5b66\u4e60" != ElementObj.$swiperItem[t].querySelector(".video-status").innerText) {
  3623. this.swiperIndex = t;
  3624. break
  3625. }
  3626. -1 == this.swiperIndex ? this.playNext() : 0 == this.swiperIndex ? this._o1() : (ElementObj.$swiperItem[this.swiperIndex].querySelector(".el-icon-video-play").click(), showTip("⚠️⚠️⚠️\u6b63\u5728\u521d\u59cb\u5316", 3500), e = document.querySelector(".el-message-box__btns")?.lastChild, await sleep(2e3), e.click(), setTimeout(() => {
  3627. this._o1()
  3628. }, 5e3))
  3629. } else this._o1(); else ElementObj.$docs = document.querySelectorAll(".abcd"), ElementObj.$docs.length && this.playDoc()
  3630. }
  3631. async getCurrentIndex() {
  3632. ElementObj.$handleSpeedUp.style.display = "none", showTip("\u6b63\u5728\u521d\u59cb\u5316", 2500), await sleep(3500);
  3633. let l = 1 == this.studyType ? "section-cur" : "study";
  3634. ElementObj.$allTask.forEach((e, t) => {
  3635. 1 == this.studyType && e.classList.contains(l) && (this.currentIndex = t), 2 == this.studyType && "\u5df2\u5b66\u4e60" != e.querySelector("i").title && -1 == this.currentIndex && (this.currentIndex = t)
  3636. }), -1 == this.currentIndex ? alert("\u5f53\u524d\u8bfe\u7a0b\u7ae0\u8282\u5df2\u5168\u90e8\u64ad\u653e\u5b8c") : (2 == this.studyType && -1 != this.currentIndex && this.playNext(this.currentIndex - 1), showTip("⚠️⚠️⚠️\u521d\u59cb\u5316,\u8bf7\u7a0d\u540e", 3e3), 1 == this.studyType && this._o1(), 2 == this.studyType && this.getSwiperIndex())
  3637. }
  3638. getVideoDom() {
  3639. return new Promise(e => {
  3640. let t = setInterval(() => {
  3641. ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0))
  3642. }, 1e3)
  3643. })
  3644. }
  3645. async play() {
  3646. if (clearInterval(this.listenVidoeStatusTimer), clearInterval(this.timer), await this.getVideoDom(), ElementObj.$video.volume = 0, ElementObj.$video.setAttribute("muted", "muted"), await sleep(200), ElementObj.$video.play(), setTimeout(() => {
  3647. ElementObj.$video.playbackRate = toolOption.accelerator
  3648. }, 3e3), 2 == this.studyType) {
  3649. let e = await this.getDocIndex();
  3650. setTimeout(() => {
  3651. this.eachPlayDoc(e)
  3652. }, 3e3), this.changeHtml($el("#video")), this.listenPageHide(), this.listenPlayTime(), this.reloadPage()
  3653. }
  3654. this.listenVidoeStatus(ElementObj.$video, () => {
  3655. ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
  3656. ElementObj.$video.playbackRate = toolOption.accelerator
  3657. }, 3e3)
  3658. }), ElementObj.$video.addEventListener("ended", async () => {
  3659. var e;
  3660. showTip("🔉\u6b63\u5728\u5207\u6362\u8bfe\u7a0b", 2500), 2 == this.studyType && (this.swiperIndex >= ElementObj.$swiperItem.length - 1 ? location.reload() : (this.swiperIndex += 1, ElementObj.$swiperItem[this.swiperIndex].querySelector(".el-icon-video-play").click(), showTip("⚠️⚠️⚠️\u6b63\u5728\u5207\u6362\u89c6\u9891", 5e3), e = document.querySelector(".el-message-box__btns")?.lastChild, await sleep(2e3), e.click(), setTimeout(() => {
  3661. this._o1()
  3662. }, 5e3))), 1 == this.studyType && (this.currentIndex >= ElementObj.$allTask.length - 1 ? alert("\u5f53\u524d\u7ae0\u8282\u8bfe\u7a0b\u5df2\u5b66\u5b8c") : (this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].querySelector("a")?.click()))
  3663. })
  3664. }
  3665. async getDocIndex() {
  3666. ElementObj.$docs = document.querySelectorAll(".abcd .file-box"), await sleep(200);
  3667. let e = -1;
  3668. for (var t = 0; t <= ElementObj.$docs.length - 1; t++) if ("( \u5df2\u5b8c\u6210 )" != ElementObj.$docs[t].querySelector(".fs12").innerText) {
  3669. e = t;
  3670. break
  3671. }
  3672. return e
  3673. }
  3674. async playDoc(e) {
  3675. var t = await this.getDocIndex();
  3676. -1 == t ? this.playNext() : this.eachPlayDoc(t, () => {
  3677. setTimeout(async () => {
  3678. this.playNext()
  3679. }, 2e3)
  3680. })
  3681. }
  3682. eachPlayDoc(t = 0, l) {
  3683. if (-1 != t) {
  3684. let e = setInterval(() => {
  3685. t >= ElementObj.$docs.length - 1 && (clearInterval(e), "function" == typeof l) && l(), ElementObj.$docs[t].querySelector("button").click(), t += 1
  3686. }, 2e3)
  3687. }
  3688. }
  3689. async playNext(e) {
  3690. null != e && (this.currentIndex = e), this.currentIndex >= ElementObj.$allTask.length - 1 ? alert("\u5f53\u524d\u7ae0\u8282\u8bfe\u7a0b\u5df2\u5b66\u5b8c") : (this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].querySelectorAll("span")[1]?.click(), await sleep(2e3), (e = document.querySelector(".el-message-box__btns")?.lastChild) && e.click(), showTip("⚠️⚠️⚠️\u6b63\u5728\u5207\u6362\u4e0b\u4e00\u8282", 4e3), setTimeout(() => {
  3691. this.getSwiperIndex()
  3692. }, 4500))
  3693. }
  3694. listenPlayTime() {
  3695. showTip("🔉\u8bfe\u4ef6\u6b63\u5728\u5b66\u4e60,\u8bf7\u52a1\u70b9\u51fb\u6216\u957f\u65f6\u95f4\u9690\u85cf");
  3696. let t = 0;
  3697. this.timer = setInterval(() => {
  3698. t += 1;
  3699. var e = (ElementObj.$video.currentTime / 60).toFixed(2);
  3700. this.addInfo(`\u540e\u53f0\u5b66\u4e60${t}\u6b21\u5f53\u524d\u72b6\u6001\u6b63\u5728\u5b66\u4e60\u5df2\u64ad\u653e${e}\u5206\u949f`)
  3701. }, 5e3)
  3702. }
  3703. async reloadPage() {
  3704. let e = 360, t = setInterval(() => {
  3705. e <= 0 && (clearInterval(t), location.reload()), --e
  3706. }, 1e3)
  3707. }
  3708. }
  3709. xibeisfzyjy.ctxid = 26;
  3710. class henangongshe extends Main {
  3711. constructor() {
  3712. super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this.videoplaying = -1, this.timer = null, this._init()
  3713. }
  3714. async _init() {
  3715. let t = setInterval(async () => {
  3716. var e = document.querySelectorAll("#bxkBtudyDiv a");
  3717. e.length && (clearInterval(t), this.getParentIndex(e)), ElementObj.$allTask = document.querySelectorAll(".course-info .video-title"), ElementObj.$allTask.length && (clearInterval(t), this.getCurrentIndex()), ElementObj.$handleSpeedUp.style.display = "none"
  3718. }, 1e3)
  3719. }
  3720. async getParentIndex(e) {
  3721. e[0].click(), showTip("⚠️⚠️⚠️\u6b63\u5728\u521d\u59cb\u5316", 3e3), await sleep(3e3), ElementObj.$parentNodes = document.querySelectorAll("tbody tr");
  3722. for (var t = 0; t <= ElementObj.$parentNodes.length - 1; t++) {
  3723. var l = ElementObj.$parentNodes[t].querySelector("span").innerText;
  3724. if (parseInt(l) <= 98) {
  3725. this.parentIndex = t;
  3726. break
  3727. }
  3728. }
  3729. if (-1 == this.parentIndex) {
  3730. e[1].click(), await sleep(3e3), ElementObj.$parentNodes = document.querySelectorAll("tbody tr");
  3731. for (t = 0; t <= ElementObj.$parentNodes.length - 1; t++) {
  3732. var n = ElementObj.$parentNodes[t].querySelector("span").innerText;
  3733. if (parseInt(n) <= 98) {
  3734. this.parentIndex = t;
  3735. break
  3736. }
  3737. }
  3738. }
  3739. -1 == this.parentIndex ? alert("\u5168\u90e8\u8bfe\u7a0b\u5df2\u5b66\u5b8c") : (GM_setValue("homeUrl", location.href), ElementObj.$parentNodes[this.parentIndex].querySelector("button").click(), setTimeout(() => {
  3740. window.close()
  3741. }, 5500))
  3742. }
  3743. async getCurrentIndex() {
  3744. showTip("⚠️⚠️⚠️\u6b63\u5728\u521d\u59cb\u5316", 3500), ElementObj.$allTask.forEach((e, t) => {
  3745. "100%" != e.querySelector(".four").innerText && -1 == this.currentIndex && (this.currentIndex = t)
  3746. }), ElementObj.$handleSpeedUp.style.display = "none", showTip("🔉\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 3e3);
  3747. var e = ElementObj.$allTask[this.currentIndex];
  3748. await sleep(200), e.click(), setTimeout(() => {
  3749. this._o1()
  3750. }, 4500)
  3751. }
  3752. getVideoDom() {
  3753. return new Promise(e => {
  3754. let t = setInterval(() => {
  3755. ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0))
  3756. }, 1e3)
  3757. })
  3758. }
  3759. async play() {
  3760. clearInterval(this.listenVidoeStatusTimer), await this.getVideoDom(), ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.volume = 0;
  3761. var e = document.querySelector(".xgplayer-start");
  3762. await sleep(200), e.click(), ElementObj.$video.playbackRate = toolOption.accelerator, ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "\u52a0\u901f\u6210\u529f", this.punchCard(), this.listenVidoeStatus(ElementObj.$video, () => {
  3763. ElementObj.$video.volume = 0, ElementObj.$video.play()
  3764. }), ElementObj.$video.addEventListener("ended", async () => {
  3765. var e;
  3766. this.currentIndex >= ElementObj.$allTask.length - 1 ? (setTimeout(() => {
  3767. window.close()
  3768. }, 1500), e = GM_getValue("homeUrl", null), GM_openInTab(e, {active: !0})) : (this.currentIndex += 1, e = ElementObj.$allTask[this.currentIndex], await sleep(300), e.click(), setTimeout(() => {
  3769. this._o1()
  3770. }, 4500))
  3771. })
  3772. }
  3773. punchCard() {
  3774. setInterval(() => {
  3775. var e = document.querySelector("#comfirmClock");
  3776. e && e.click()
  3777. }, 5e3)
  3778. }
  3779. updateSpeedElement(e) {
  3780. localStorage.setItem("_localSpeed", e.toString()), ElementObj.$video.playbackRate = e
  3781. }
  3782. }
  3783. class henandikuang extends Main {
  3784. constructor() {
  3785. super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this.videoplaying = -1, this.timer = null, this._init()
  3786. }
  3787. async _init() {
  3788. let e = setInterval(async () => {
  3789. ElementObj.$parentNodes = document.querySelectorAll(".state-l"), ElementObj.$parentNodes.length ? (clearInterval(e), ElementObj.$parentNodes[0].querySelector(".btn span").click()) : (ElementObj.$parentNodes = document.querySelectorAll(".course-card-item"), ElementObj.$parentNodes.length && (clearInterval(e), this.getParentIndex()), ElementObj.$allTask = document.querySelectorAll(".pt5 li"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex()), ElementObj.$handleSpeedUp.style.display = "none")
  3790. }, 1e3)
  3791. }
  3792. async getParentIndex() {
  3793. let e = -1;
  3794. for (var t = 0; t < ElementObj.$parentNodes.length - 1; t++) {
  3795. var l = ElementObj.$parentNodes[t].querySelector(".progress-bar").style.width;
  3796. if (parseInt(l) < 98) {
  3797. e = t;
  3798. break
  3799. }
  3800. }
  3801. -1 == e ? alert("\u5f53\u524d\u8bfe\u7a0b\u5df2\u5168\u90e8\u5b66\u5b8c,\u8bf7\u66f4\u6362\u5176\u5b83\u8bfe\u7a0b") : ElementObj.$parentNodes[t].querySelector("a").click()
  3802. }
  3803. async getCurrentIndex() {
  3804. showTip("⚠️⚠️⚠️\u6b63\u5728\u521d\u59cb\u5316", 1500), ElementObj.$allTask.forEach((e, t) => {
  3805. e = e.querySelector(".badge").innerText;
  3806. 100 != parseInt(e) && -1 == this.currentIndex && (this.currentIndex = t)
  3807. }), showTip("⚠️⚠\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 3e3);
  3808. var e = ElementObj.$allTask[this.currentIndex];
  3809. await sleep(200), e.click(), setTimeout(() => {
  3810. this._o1()
  3811. }, 4500)
  3812. }
  3813. getVideoDom() {
  3814. return new Promise(e => {
  3815. let t = setInterval(() => {
  3816. ElementObj.$video = document.querySelectorAll("video")[1], ElementObj.$video && (clearInterval(t), e(!0))
  3817. }, 1e3)
  3818. })
  3819. }
  3820. async play() {
  3821. clearInterval(this.listenVidoeStatusTimer), await this.getVideoDom(), ElementObj.$video.volume = 0, ElementObj.$video.play(), ElementObj.$video.playbackRate = toolOption.accelerator, ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "\u52a0\u901f\u6210\u529f", ElementObj.$video.addEventListener("ended", async () => {
  3822. var e;
  3823. this.currentIndex >= ElementObj.$allTask.length - 1 ? (e = document.querySelector("a.back"), await sleep(200), e.click()) : (this.currentIndex += 1, e = ElementObj.$allTask[this.currentIndex], await sleep(300), e.click(), setTimeout(() => {
  3824. this._o1()
  3825. }, 4500))
  3826. })
  3827. }
  3828. }
  3829. class zhejiangtjj extends Main {
  3830. constructor() {
  3831. super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this.videoplaying = -1, this.timer = null, this._init()
  3832. }
  3833. async _init() {
  3834. let n = setInterval(async () => {
  3835. try {
  3836. var e, t = document.querySelectorAll(".course_2"),
  3837. l = document.querySelectorAll("tbody tr.el-table__row");
  3838. (t.length || l.length) && (clearInterval(n), ElementObj.$parentNodes = t.length ? t : l, e = t.length ? 1 : 2, this.getParentIndex(e)), ElementObj.$allTask = document.querySelectorAll(".page-name"), ElementObj.$allTask.length && (clearInterval(n), this.getCurrentIndex()), ElementObj.$handleSpeedUp.style.display = "none"
  3839. } catch (e) {
  3840. }
  3841. }, 1e3)
  3842. }
  3843. async getParentIndex(e) {
  3844. showTip("⚠️⚠️⚠️\u6b63\u5728\u521d\u59cb\u5316", 1500);
  3845. let l = 1 == e ? 0 : -1;
  3846. ElementObj.$parentNodes.forEach((e, t) => {
  3847. t > l && (e = e.querySelector(".el-progress__text").innerText, 100 != parseInt(e)) && -1 == this.currentIndex && (this.currentIndex = t)
  3848. }), -1 == this.currentIndex && 2 == e ? (GM_openInTab("https://edu.tjj.zj.gov.cn/#/personal?componentId=ClassList&type=classlist", {active: !0}), setTimeout(() => {
  3849. window.close()
  3850. }, 3500)) : (showTip("⚠️⚠\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 3e3), e = ElementObj.$parentNodes[this.currentIndex].querySelector("button"), await sleep(200), e.click(), setTimeout(() => {
  3851. location.reload()
  3852. }, 3e3))
  3853. }
  3854. async getCurrentIndex() {
  3855. showTip("⚠️⚠️⚠️\u6b63\u5728\u521d\u59cb\u5316", 3500), ElementObj.$allTask.forEach((e, t) => {
  3856. e.classList.contains("complete") || -1 != this.currentIndex || (this.currentIndex = t)
  3857. }), ElementObj.$handleSpeedUp.style.display = "none", showTip("🔉\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 3e3);
  3858. var e = ElementObj.$allTask[this.currentIndex];
  3859. await sleep(200), e.click(), setTimeout(() => {
  3860. this._o1()
  3861. }, 4500)
  3862. }
  3863. getVideoDom() {
  3864. return new Promise(t => {
  3865. let l = setInterval(() => {
  3866. var e = document.querySelector("#playerFrame")?.contentDocument;
  3867. ElementObj.$video = e.querySelector("video"), ElementObj.$video && (clearInterval(l), t(!0))
  3868. }, 1e3)
  3869. })
  3870. }
  3871. async play() {
  3872. clearInterval(this.listenVidoeStatusTimer), await this.getVideoDom(), ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.volume = 0;
  3873. var e = document.querySelector(".mejs__overlay-button");
  3874. await sleep(200), e.click(), ElementObj.$video.playbackRate = toolOption.accelerator, ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "\u52a0\u901f\u6210\u529f", this.punchCard(), this.listenVidoeStatus(ElementObj.$video, () => {
  3875. ElementObj.$video.volume = 0, ElementObj.$video.play()
  3876. }), ElementObj.$video.addEventListener("ended", async () => {
  3877. var e;
  3878. this.currentIndex >= ElementObj.$allTask.length - 1 ? (setTimeout(() => {
  3879. window.close()
  3880. }, 3500), e = document.querySelector(".back-btn"), await sleep(200), e.click()) : (this.currentIndex += 1, e = ElementObj.$allTask[this.currentIndex], await sleep(300), e.click(), setTimeout(() => {
  3881. this._o1()
  3882. }, 4500))
  3883. })
  3884. }
  3885. punchCard() {
  3886. setInterval(() => {
  3887. var e = document.querySelector(".btn-submit");
  3888. e && e.click()
  3889. }, 5e3)
  3890. }
  3891. }
  3892. class jiangxizhipeizaixian extends Main {
  3893. constructor() {
  3894. super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this.timer = null, this._init()
  3895. }
  3896. async _init() {
  3897. let e = setInterval(async () => {
  3898. try {
  3899. ElementObj.$allTask = document.querySelectorAll(".units_wrap_box___1ncip"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex()), ElementObj.$handleSpeedUp.style.display = "none"
  3900. } catch (e) {
  3901. }
  3902. }, 1e3)
  3903. }
  3904. async getCurrentIndex() {
  3905. showTip("⚠️⚠️⚠️\u6b63\u5728\u521d\u59cb\u5316", 1500), ElementObj.$allTask.forEach((e, t) => {
  3906. var l = e.querySelector(".progress_get_on___3TDga"), e = e.querySelector(".not_start___3dAwS");
  3907. (l || e) && -1 == this.currentIndex && (this.currentIndex = t)
  3908. }), -1 == this.currentIndex && (this.currentIndex = 0), showTip("⚠️⚠\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 3e3), ElementObj.$allTask[this.currentIndex].click(), showTip("⚠️⚠\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 3e3), setTimeout(() => {
  3909. this._o1()
  3910. }, 4500)
  3911. }
  3912. getVideoDom() {
  3913. return new Promise(e => {
  3914. let t = setInterval(() => {
  3915. ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0))
  3916. }, 1e3)
  3917. })
  3918. }
  3919. async play() {
  3920. clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime), await this.getVideoDom(), ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
  3921. ElementObj.$video.playbackRate = toolOption.accelerator
  3922. }, 3500), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "\u52a0\u901f\u6210\u529f", this.listenVidoeStatus(ElementObj.$video, () => {
  3923. ElementObj.$video.volume = 0, ElementObj.$video.play()
  3924. }), this.listenRebort(), ElementObj.$video.addEventListener("ended", async () => {
  3925. var e;
  3926. this.currentIndex >= ElementObj.$allTask.length - 1 ? alert("\u5f53\u524d\u8bfe\u7a0b\u89c6\u9891\u5df2\u5168\u90e8\u64ad\u653e\u5b8c") : (this.currentIndex += 1, e = ElementObj.$allTask[this.currentIndex], await sleep(300), e.click(), setTimeout(() => {
  3927. this._o1()
  3928. }, 4500))
  3929. }), ElementObj.$video.addEventListener("pause", () => {
  3930. setTimeout(() => {
  3931. ElementObj.$video.volume = 0, ElementObj.$video.play()
  3932. }, 1500)
  3933. })
  3934. }
  3935. listenRebort() {
  3936. this.listenRebortTime = setInterval(() => {
  3937. }, 1e4)
  3938. }
  3939. }
  3940. class anhuijixujyzx extends Main {
  3941. constructor() {
  3942. super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this.timer = null, this._init()
  3943. }
  3944. async _init() {
  3945. let t = setInterval(async () => {
  3946. try {
  3947. ElementObj.$btn_dropdown = document.querySelector(".btn_dropdown"), ElementObj.$btn_dropdown?.click();
  3948. var e = document.querySelector(".btn.btn-green");
  3949. e && (clearInterval(t), await sleep(300), e.click()), ElementObj.$allTask = document.querySelectorAll(".list-order ul li a:not(.toggle_lesson)"), ElementObj.$allTask.length && (clearInterval(t), this.getCurrentIndex()), ElementObj.$handleSpeedUp.style.display = "none"
  3950. } catch (e) {
  3951. }
  3952. }, 1e3)
  3953. }
  3954. async getCurrentIndex() {
  3955. showTip("⚠️⚠️⚠️\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 1500), await sleep(1500), "none" != $el("#sectionlist").style.display && ElementObj.$btn_dropdown?.click(), setTimeout(() => {
  3956. this._o1()
  3957. }, 4500)
  3958. }
  3959. getIndex() {
  3960. let e = 0;
  3961. for (var t = 0; t <= ElementObj.$allTask.length - 1; t++) if (ElementObj.$allTask[t].parentElement.classList.contains("current")) {
  3962. e = t;
  3963. break
  3964. }
  3965. return e
  3966. }
  3967. getVideoDom() {
  3968. return new Promise(e => {
  3969. let t = setInterval(() => {
  3970. ElementObj.$video = document.querySelectorAll("video"), 1 < ElementObj.$video.length ? ElementObj.$video = document.querySelectorAll("video")[1] : ElementObj.$video = document.querySelectorAll("video")[0], ElementObj.$video ? (clearInterval(t), e(1)) : (clearInterval(t), e(2))
  3971. }, 3e3)
  3972. })
  3973. }
  3974. async play() {
  3975. clearInterval(this.listenVidoeStatusTimer), clearInterval(this.timer);
  3976. var e = await this.getVideoDom();
  3977. 1 == e && (ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
  3978. ElementObj.$video.playbackRate = toolOption.accelerator
  3979. }, 3500), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "\u52a0\u901f\u6210\u529f", this.listenPlayTime(), this.listenVidoeStatus(ElementObj.$video, () => {
  3980. ElementObj.$video.volume = 0, ElementObj.$video.play()
  3981. }), ElementObj.$video.addEventListener("ended", async () => {
  3982. }), ElementObj.$video.addEventListener("pause", () => {
  3983. setTimeout(() => {
  3984. ElementObj.$video.volume = 0, ElementObj.$video.play()
  3985. }, 1500)
  3986. })), 2 == e && (showTip("🔉\u68c0\u6d4b\u5230\u6ca1\u6709\u89c6\u9891,3\u79d2\u540e\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a", 3e3), await sleep(3e3), e = this.getIndex(), (document.querySelector(".preNext.next") || (e = ElementObj.$allTask[e + 1], await sleep(200), e)).click())
  3987. }
  3988. async playNext() {
  3989. }
  3990. listenPlayTime() {
  3991. showTip("🔉\u8bfe\u4ef6\u6b63\u5728\u5b66\u4e60,\u8bf7\u52a1\u70b9\u51fb\u6216\u957f\u65f6\u95f4\u9690\u85cf");
  3992. let t = 0;
  3993. this.timer = setInterval(() => {
  3994. t += 1;
  3995. let e = document.querySelector(".btn.btn-green");
  3996. e && (clearInterval(this.timer), showTip("🔉\u68c0\u6d4b\u5230\u89c6\u9891\u5df2\u5b66\u5b8c,3\u79d2\u540e\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a"), setTimeout(() => {
  3997. e.click()
  3998. }, 3e3))
  3999. }, 3e3)
  4000. }
  4001. }
  4002. class lanzhoudxgs extends Main {
  4003. constructor() {
  4004. super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this.timer = null, this.listenVidoeStatusTimer = null, this._init()
  4005. }
  4006. async _init() {
  4007. let e = setInterval(async () => {
  4008. try {
  4009. ElementObj.$btn_dropdown = document.querySelector("#catalogA"), ElementObj.$btn_dropdown?.click(), ElementObj.$allTask = document.querySelectorAll("li.activity-node"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex()), ElementObj.$handleSpeedUp.style.display = "none"
  4010. } catch (e) {
  4011. }
  4012. }, 1e3)
  4013. }
  4014. async getCurrentIndex() {
  4015. showTip("⚠️⚠️⚠️\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 1500), await sleep(1500), "none" != $el("#toolsContentDiv").style.display && ElementObj.$btn_dropdown?.click();
  4016. let l = [];
  4017. ElementObj.$allTask.forEach((e, t) => {
  4018. e.querySelector(".cedu-file-video") && l.push(e)
  4019. }), ElementObj.$allTask = l, this.currentIndex = 0, setTimeout(() => {
  4020. this._o1()
  4021. }, 4500)
  4022. }
  4023. getVideoDom() {
  4024. return new Promise(t => {
  4025. let l = setInterval(() => {
  4026. var e = document.querySelector(".vjs-big-play-button");
  4027. ElementObj.$video = document.querySelector("video"), ElementObj.$video && e && (clearInterval(l), t(!0))
  4028. }, 1e3)
  4029. })
  4030. }
  4031. async play() {
  4032. clearInterval(this.listenVidoeStatusTimer), await this.getVideoDom(), ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.volume = 0;
  4033. var e = document.querySelector(".vjs-big-play-button");
  4034. await sleep(200), e?.click(), await sleep(2500), ElementObj.$video.pause(), setTimeout(() => {
  4035. ElementObj.$video.currentTime -= 30, ElementObj.$video.play()
  4036. }, 2500), setTimeout(() => {
  4037. ElementObj.$video.playbackRate = toolOption.accelerator
  4038. }, 3500), this.changeHtml($el("#video_div")), this.listenPlayTime(), this.listenPageHide(), this.listenVidoeStatus(ElementObj.$video, () => {
  4039. ElementObj.$video.volume = 0, ElementObj.$video.play()
  4040. }), ElementObj.$video.addEventListener("ended", async () => {
  4041. this.playNext()
  4042. }), ElementObj.$video.addEventListener("pause", () => {
  4043. setTimeout(() => {
  4044. ElementObj.$video.volume = 0, ElementObj.$video.play()
  4045. }, 1500)
  4046. })
  4047. }
  4048. listenPlayTime() {
  4049. showTip("🔉\u8bfe\u4ef6\u6b63\u5728\u5b66\u4e60,\u8bf7\u52a1\u70b9\u51fb\u6216\u957f\u65f6\u95f4\u9690\u85cf");
  4050. let t = 0;
  4051. this.timer = setInterval(() => {
  4052. t += 1;
  4053. var e = (ElementObj.$video.currentTime / 60).toFixed(2);
  4054. this.addInfo(`\u540e\u53f0\u5b66\u4e60${t}\u6b21\u5f53\u524d\u72b6\u6001\u6b63\u5728\u5b66\u4e60\u5df2\u64ad\u653e${e}\u5206\u949f`), ElementObj.$video.currentTime >= ElementObj.$video.duration - 4 && this.playNext()
  4055. }, 5e3)
  4056. }
  4057. listenVidoeStatus(t, l) {
  4058. if (t) {
  4059. let e = 0;
  4060. this.timer2 = setInterval(() => {
  4061. t.readyState < 4 && (this.addInfo(`\u68c0\u6d4b\u5230${e}\u6b21\u89c6\u9891\u6b63\u5728\u52a0\u8f7d`, 0), 20 <= (e += 1)) && location.reload(), t.paused && (e += 1, "function" == typeof l) && (20 <= e ? location.reload() : l())
  4062. }, 3e3)
  4063. }
  4064. }
  4065. async playNext() {
  4066. showTip("⚠️⚠️⚠️\u68c0\u6d4b\u5230\u89c6\u9891\u5df2\u64ad\u653e\u5b8c,5\u79d2\u540e\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a\u89c6\u9891", 4500), await sleep(5e3), this.currentIndex += 1;
  4067. var e = ElementObj.$allTask[this.currentIndex], t = (await sleep(300), e.querySelector(".cedu-file-video"));
  4068. t ? e.click() : alert("\u5f53\u524d\u8bfe\u7a0b\u89c6\u9891\u5df2\u5168\u90e8\u64ad\u653e\u5b8c")
  4069. }
  4070. }
  4071. class jidianshejijiaoyu extends Main {
  4072. constructor() {
  4073. super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this.swiperIndex = -1, this.timer = null, this.listenVidoeStatusTimer = null, this._init()
  4074. }
  4075. async _init() {
  4076. let e = setInterval(async () => {
  4077. try {
  4078. document.querySelector(".layui-layer-btn0") ? (clearInterval(e), this.playNext()) : (ElementObj.$allTask = document.querySelectorAll(".course_chapter_item"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex()), ElementObj.$handleSpeedUp.style.display = "none")
  4079. } catch (e) {
  4080. }
  4081. }, 1e3)
  4082. }
  4083. async getCurrentIndex() {
  4084. showTip("⚠️⚠️⚠️\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 1500), await sleep(1500), ElementObj.$allTask.forEach((e, t) => {
  4085. e.querySelector("i.fa-circle") || -1 != this.currentIndex || (this.currentIndex = t)
  4086. }), -1 == this.currentIndex ? alert("\u5f53\u524d\u8bfe\u7a0b\u5df2\u5168\u90e8\u64ad\u653e\u5b8c") : (ElementObj.$allTask[this.currentIndex].querySelector(".section_title").click(), showTip("⚠️⚠️⚠️\u6b63\u5728\u521d\u59cb\u5316", 3500), setTimeout(() => {
  4087. this.getSwiperIndex()
  4088. }, 4500))
  4089. }
  4090. getSwiperIndex() {
  4091. ElementObj.$swiperItem = document.querySelectorAll("#menu_tarr_content .courseware_menu_item"), this.swiperIndex = -1;
  4092. for (var e = 0; e <= ElementObj.$swiperItem.length - 1; e++) {
  4093. var t = ElementObj.$swiperItem[e];
  4094. if (t.querySelector(".icon-note-video-learning")) {
  4095. this.swiperIndex = e, t.click(), setTimeout(() => {
  4096. this._o1()
  4097. }, 3500);
  4098. break
  4099. }
  4100. }
  4101. -1 == this.swiperIndex && location.reload()
  4102. }
  4103. getVideoDom() {
  4104. return new Promise(t => {
  4105. let l = setInterval(() => {
  4106. var e = document.querySelector(".vjs-big-play-button");
  4107. ElementObj.$video = document.querySelector("video"), ElementObj.$video && e && (clearInterval(l), t(!0))
  4108. }, 1e3)
  4109. })
  4110. }
  4111. async play() {
  4112. clearInterval(this.listenVidoeStatusTimer), await this.getVideoDom(), ElementObj.$video.setAttribute("muted", "muted"), ElementObj.$video.volume = 0, await sleep(2500), ElementObj.$video.play(), this.changeHtml($el(".video-play")), this.listenPlayTime(), this.listenPageHide(), this.listenVidoeStatus(ElementObj.$video, () => {
  4113. ElementObj.$video.volume = 0, ElementObj.$video.play()
  4114. }), ElementObj.$video.addEventListener("ended", async () => {
  4115. this.playNext()
  4116. }), ElementObj.$video.addEventListener("pause", () => {
  4117. setTimeout(() => {
  4118. ElementObj.$video.volume = 0, ElementObj.$video.play()
  4119. }, 1500)
  4120. })
  4121. }
  4122. listenPlayTime() {
  4123. showTip("🔉\u8bfe\u4ef6\u6b63\u5728\u5b66\u4e60,\u8bf7\u52a1\u70b9\u51fb\u6216\u957f\u65f6\u95f4\u9690\u85cf");
  4124. let t = 0;
  4125. this.timer = setInterval(() => {
  4126. t += 1;
  4127. var e = (ElementObj.$video.currentTime / 60).toFixed(2),
  4128. e = (this.addInfo(`\u540e\u53f0\u5b66\u4e60${t}\u6b21\u5f53\u524d\u72b6\u6001\u6b63\u5728\u5b66\u4e60\u5df2\u64ad\u653e${e}\u5206\u949f`), document.querySelector(".complete"));
  4129. e && (this.addInfo("✅✅✅,\u5f53\u524d\u89c6\u9891\u64ad\u653e\u5b8c\u6210,5\u79d2\u540e\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a\u89c6\u9891"), this.swiperIndex >= ElementObj.$swiperItem.length - 1 ? location.reload() : (this.swiperIndex += 1, $el("#right_tarr").click(), setTimeout(() => {
  4130. this._o1()
  4131. }, 3500))), ElementObj.$video.currentTime >= ElementObj.$video.duration - 4 && this.playNext()
  4132. }, 5e3)
  4133. }
  4134. listenVidoeStatus(t, l) {
  4135. if (t) {
  4136. let e = 0;
  4137. this.timer2 = setInterval(() => {
  4138. t.readyState < 4 && (this.addInfo(`\u68c0\u6d4b\u5230${e}\u6b21\u89c6\u9891\u6b63\u5728\u52a0\u8f7d`, 0), 20 <= (e += 1)) && location.reload(), t.paused && (e += 1, "function" == typeof l) && (20 <= e ? location.reload() : l())
  4139. }, 3e3)
  4140. }
  4141. }
  4142. async playNext() {
  4143. showTip("⚠️⚠️⚠️\u68c0\u6d4b\u5230\u89c6\u9891\u5df2\u64ad\u653e\u5b8c,5\u79d2\u540e\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a\u89c6\u9891", 4500), await sleep(5e3);
  4144. var e = document.querySelector(".layui-layer-btn0");
  4145. e && (e.click(), await sleep(2e3), location.reload())
  4146. }
  4147. }
  4148. class ycjyluteducn extends Main {
  4149. constructor() {
  4150. super(), this.taskLength = 0, this.currentIndex = -1, this.parentIndex = -1, this._init()
  4151. }
  4152. async _init() {
  4153. window.alert = function () {
  4154. };
  4155. let t = setInterval(async () => {
  4156. var e;
  4157. ["/learnspace/learn/homework/blue/student/homework_complete.action", "/learnspace/course/test/coursewareTest_intoTestPage.action", "/learnspace/learn/learn/blue/content_video.action"].includes(location.pathname) ? (clearInterval(t), window.close()) : (e = document.querySelector("#courseware_main_menu").querySelector("a")) && (clearInterval(t), e.click(), await this.findParentIndex())
  4158. }, 500)
  4159. }
  4160. async findParentIndex() {
  4161. showTip("🔉\u6b63\u5728\u521d\u59cb\u5316", 2500), await sleep(4500), unsafeWindow.alert = () => {
  4162. }, ElementObj.$handleSpeedUp.style.display = "none";
  4163. var e = document.querySelector(".contentIframe"), t = e.contentWindow.document;
  4164. e.contentWindow.alert = () => {
  4165. }, ElementObj.$parentNodes = t.querySelectorAll(".vcon li");
  4166. for (let e = 0; e < ElementObj.$parentNodes.length; e++) {
  4167. var l = ElementObj.$parentNodes[e], n = l.querySelector("span"),
  4168. a = l.innerText.indexOf("\u7ec3\u4e60"), l = l.innerText.indexOf("\u8bfe\u7a0b\u4f5c\u4e1a");
  4169. if ((n.classList.contains("undo") || n.classList.contains("doing")) && -1 == this.parentIndex && -1 == a && -1 == l) {
  4170. this.parentIndex = e, ElementObj.$parentNodes[e].querySelector("a").click();
  4171. break
  4172. }
  4173. }
  4174. -1 == this.parentIndex ? alert("\u5f53\u524d\u8bfe\u7a0b\u5df2\u5168\u90e8\u64ad\u53d1\u5b8c") : await this.getCurrentIndex()
  4175. }
  4176. async getCurrentIndex() {
  4177. showTip("\u6b63\u5728\u521d\u59cb\u5316", 2500);
  4178. let t = setInterval(() => {
  4179. var e = document.querySelector(".contentIframe");
  4180. ElementObj._document = e.contentWindow.document, ElementObj.$allTask = ElementObj._document.querySelectorAll(".menub"), ElementObj.$allTask.length && (clearInterval(t), this.currentIndex = 0, ElementObj.$allTask[this.currentIndex]?.click(), showTip("\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e"), this._o1())
  4181. }, 1e3)
  4182. }
  4183. getVideoDom() {
  4184. return new Promise(t => {
  4185. let l = setInterval(() => {
  4186. var e = ElementObj._document.querySelector("#mainFrame").contentDocument;
  4187. ElementObj.$video = e.querySelector("video"), ElementObj.$video ? (clearInterval(l), t(1)) : (e.querySelector("#content_frame"), clearInterval(l), t(2))
  4188. }, 1e3)
  4189. })
  4190. }
  4191. async play() {
  4192. clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime), clearInterval(this.timer2), unsafeWindow.alert = () => {
  4193. };
  4194. var e = await this.getVideoDom();
  4195. this.listenRebort(), 1 == e && (ElementObj.$video.volume = 0, await sleep(200), ElementObj.$video.play(), setTimeout(() => {
  4196. ElementObj.$video.playbackRate = toolOption.accelerator
  4197. }, 3e3), this.listenVidoeStatus(ElementObj.$video, () => {
  4198. ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
  4199. ElementObj.$video.playbackRate = toolOption.accelerator
  4200. }, 3e3)
  4201. }), ElementObj.$video.addEventListener("ended", async () => {
  4202. await sleep(3e3), this.playNext()
  4203. })), 2 == e && (this.timer2 = setTimeout(() => {
  4204. this.playNext()
  4205. }, 7e3))
  4206. }
  4207. listenRebort() {
  4208. this.listenRebortTime = setInterval(() => {
  4209. unsafeWindow.alert = function () {
  4210. };
  4211. var e = document.querySelector(".layui-layer-btn a");
  4212. e && (e.click(), ElementObj.$video.play(), setTimeout(() => {
  4213. ElementObj.$video.playbackRate = toolOption.accelerator
  4214. }, 3e3))
  4215. }, 1e4)
  4216. }
  4217. async playNext() {
  4218. unsafeWindow.alert = () => {
  4219. }, showTip("✅✅✅\u64ad\u653e\u5b8c\u6210,\u6b63\u5728\u5207\u6362\u8bfe\u7a0b", 3500), this.currentIndex >= ElementObj.$allTask.length - 1 ? (this.parentIndex += 1, -1 != ElementObj.$parentNodes[this.parentIndex].innerText.indexOf("\u7ec3\u4e60") && (this.parentIndex += 1), ElementObj.$parentNodes[this.parentIndex].querySelector("a").click(), setTimeout(() => {
  4220. this.getCurrentIndex()
  4221. }, 4500)) : (this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].click(), await sleep(5e3), this._o1())
  4222. }
  4223. }
  4224. ycjyluteducn.ctxid = 26;
  4225. class gdrcjxjyw extends Main {
  4226. constructor() {
  4227. super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this.timer = null, this._init()
  4228. }
  4229. async _init() {
  4230. let t = setInterval(async () => {
  4231. try {
  4232. var e;
  4233. ElementObj.$parentNodes = document.querySelectorAll(".m-list .item"), ElementObj.$parentNodes.length ? (clearInterval(t), this.getParentIndex()) : (ElementObj.$video = document.querySelector("video"), ElementObj.$video && "www.rcjxjy.com" == location.host ? (clearInterval(t), this._o1()) : (e = document.querySelectorAll(".player-table")[2], ElementObj.$allTask = e.querySelectorAll("td"), ElementObj.$allTask.length && (clearInterval(t), this.getCurrentIndex()), ElementObj.$handleSpeedUp.style.display = "none"))
  4234. } catch (e) {
  4235. }
  4236. }, 1e3)
  4237. }
  4238. async getParentIndex() {
  4239. showTip("✅✅✅\u6b63\u5728\u521d\u59cb\u5316,\u8bf7\u52ff\u70b9\u51fb", 3e3);
  4240. let t = 0, l = setInterval(async () => {
  4241. ElementObj.$parentNodes[t].querySelector(".btn-continue-study").click(), await sleep(500), ElementObj.$allTask = document.querySelectorAll(".video-item .f-cb");
  4242. for (var e = 0; e <= ElementObj.$allTask.length - 1; e++) if ("\u64ad\u653e\u5b8c\u6210" != ElementObj.$allTask[e].querySelector(".videoName").innerText) {
  4243. clearInterval(l), showTip("✅✅✅\u521d\u59cb\u5316\u5b8c\u6210"), ElementObj.$allTask[e].querySelector("a.u-btn").click();
  4244. break
  4245. }
  4246. t += 1
  4247. }, 3e3)
  4248. }
  4249. async getCurrentIndex() {
  4250. let n = -1;
  4251. ElementObj.$allTask.forEach((e, t) => {
  4252. var l = e.querySelector(".playLine").innerText;
  4253. 100 != parseInt(l) && -1 == this.currentIndex && (this.currentIndex = t), e.classList.contains("couBg") && (n = t)
  4254. }), -1 == this.currentIndex ? alert("\u5f53\u524d\u8bfe\u7a0b\u89c6\u9891\u5df2\u5168\u90e8\u64ad\u653e\u5b8c") : (this.currentIndex != n && ElementObj.$allTask[this.currentIndex].querySelector("a").click(), showTip("⚠️⚠️⚠️\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 3500), setTimeout(() => {
  4255. this._o1()
  4256. }, 4500))
  4257. }
  4258. getVideoDom() {
  4259. return ElementObj.$handleSpeedUp.style.display = "none", new Promise(t => {
  4260. let l = setInterval(() => {
  4261. var e;
  4262. ElementObj.$video = document.querySelector("video"), (ElementObj.$video || (e = document.querySelector("#c_frame").contentDocument, ElementObj.$video = e.querySelector("video"), ElementObj.$video)) && (clearInterval(l), t(!0))
  4263. }, 1e3)
  4264. })
  4265. }
  4266. async play() {
  4267. clearInterval(this.listenVidoeStatusTimer), await this.getVideoDom(), ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
  4268. ElementObj.$video.playbackRate = toolOption.accelerator
  4269. }, 3500), this.listenVidoeStatus(ElementObj.$video, () => {
  4270. ElementObj.$video.volume = 0, ElementObj.$video.play()
  4271. }), ElementObj.$video.addEventListener("ended", async () => {
  4272. showTip("⚠️⚠️⚠️\u68c0\u6d4b\u5230\u89c6\u9891\u5df2\u64ad\u653e\u5b8c,5\u79d2\u540e\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a\u89c6\u9891", 4500), await sleep(3e3), "www.rcjxjy.com" == location.host ? document.querySelector("a.u-btn.normal").click() : location.reload()
  4273. }), ElementObj.$video.addEventListener("pause", () => {
  4274. setTimeout(() => {
  4275. ElementObj.$video.volume = 0, ElementObj.$video.play(), ElementObj.$video.playbackRate = toolOption.accelerator
  4276. }, 1500)
  4277. })
  4278. }
  4279. }
  4280. class shixuetong extends Main {
  4281. constructor() {
  4282. super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this.timer = null, this._init()
  4283. }
  4284. async _init() {
  4285. let e = setInterval(async () => {
  4286. try {
  4287. ElementObj.$handleSpeedUp.style.display = "none", ElementObj.$allTask = document.querySelectorAll(".Nvideo-item li"), ElementObj.$allTask.length && (clearInterval(e), $el(".Nvideo-playbox").style.position = "relative", this.getCurrentIndex())
  4288. } catch (e) {
  4289. }
  4290. }, 1e3)
  4291. }
  4292. async getCurrentIndex() {
  4293. this.currentIndex = 0, showTip("⚠️⚠️⚠️\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 3500), setTimeout(() => {
  4294. this._o1()
  4295. }, 4500)
  4296. }
  4297. getVideoDom() {
  4298. return new Promise(e => {
  4299. let t = 0, l = setInterval(() => {
  4300. t += 1, ElementObj.$video = document.querySelector("video"), ElementObj.$video && ElementObj.$video.src && (clearInterval(l), e(1)), 10 < t && (clearInterval(l), e(2))
  4301. }, 1e3)
  4302. })
  4303. }
  4304. async play() {
  4305. clearInterval(this.listenVidoeStatusTimer), clearInterval(this.timer), clearInterval(this.timer2);
  4306. var e = await this.getVideoDom();
  4307. 1 == e && (ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
  4308. ElementObj.$video.playbackRate = toolOption.accelerator
  4309. }, 3500), this.changeHtml($el(".video")), this.listenPageHide(), this.listenPlayTime(), this.listenRebort(), this.listenVidoeStatus(ElementObj.$video, () => {
  4310. ElementObj.$video.volume = 0, ElementObj.$video.play()
  4311. }), ElementObj.$video.addEventListener("ended", async () => {
  4312. showTip("⚠️⚠️⚠️\u68c0\u6d4b\u5230\u89c6\u9891\u5df2\u64ad\u653e\u5b8c,5\u79d2\u540e\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a\u89c6\u9891", 4500), this.playNext()
  4313. }), ElementObj.$video.addEventListener("pause", () => {
  4314. setTimeout(() => {
  4315. ElementObj.$video.volume = 0, ElementObj.$video.play(), ElementObj.$video.playbackRate = toolOption.accelerator
  4316. }, 1500)
  4317. })), 2 == e && (showTip("⚠️⚠️⚠️\u68c0\u6d4b\u5230\u5f53\u524d\u4e0d\u662f\u89c6\u9891,5\u79d2\u540e\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a\u89c6\u9891", 4500), this.playNext())
  4318. }
  4319. async playNext() {
  4320. var e, t;
  4321. await sleep(2e3), this.currentIndex >= ElementObj.$allTask.length - 1 ? (e = document.querySelector("#courseStudyBestMinutesNumber").innerText, t = document.querySelector("#courseStudyMinutesNumber").innerText, parseFloat(e) > parseFloat(t) && location.reload()) : (this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].click(), setTimeout(() => {
  4322. document.querySelector(".layui-layer-btn- a")?.click(), this._o1()
  4323. }, 4500))
  4324. }
  4325. listenPlayTime() {
  4326. showTip("⚠️⚠️⚠️\u8bfe\u4ef6\u6b63\u5728\u5b66\u4e60,\u8bf7\u52a1\u70b9\u51fb\u6216\u957f\u65f6\u95f4\u9690\u85cf");
  4327. let l = 0;
  4328. this.timer = setInterval(async () => {
  4329. l += 1;
  4330. var e, t = (ElementObj.$video.currentTime / 60).toFixed(2);
  4331. this.addInfo(`\u540e\u53f0\u5b66\u4e60${l}\u6b21\u5f53\u524d\u72b6\u6001\u6b63\u5728\u5b66\u4e60\u5df2\u64ad\u653e${t}\u5206\u949f`), l % 30 == 0 && (t = $el("#courseStudyBestMinutesNumber").innerText, document.querySelector(".studyCourseTimeRefresh")?.click(), await sleep(2e3), e = $el("#courseStudyMinutesNumber").innerText, this.addInfo(`✅✅✅\u672c\u8bfe\u7a0b\u6700\u957f\u53ef\u7d2f\u8ba1\u65f6\u95f4${t}\u5206\u949f\u60a8\u5df2\u6210\u529f\u5b66\u4e60${e}\u5206\u949f`, 0))
  4332. }, 5e3)
  4333. }
  4334. listenRebort() {
  4335. this.timer2 = setInterval(() => {
  4336. var e, t = document.querySelector("#codespan");
  4337. t && (clearInterval(this.timer2), e = document.querySelector("#code"), t = t.innerText, e.value = t, document.querySelector(".layui-layer-btn0").click(), this.listenRebort())
  4338. }, 8e3)
  4339. }
  4340. }
  4341. class shandongenhualvyou extends Main {
  4342. constructor() {
  4343. super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this.timer = null, this._init()
  4344. }
  4345. async _init() {
  4346. document.querySelector("#dashboard-toolbar-nav li")?.click();
  4347. let e = setInterval(async () => {
  4348. try {
  4349. ElementObj.$allTask = document.querySelectorAll("li.task-item"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex()), ElementObj.$handleSpeedUp.style.display = "none"
  4350. } catch (e) {
  4351. }
  4352. }, 1e3)
  4353. }
  4354. async getCurrentIndex() {
  4355. for (let e = 0; e < ElementObj.$allTask.length; e++) if (!ElementObj.$allTask[e].querySelector(".es-icon-iccheckcircleblack24px")) {
  4356. this.currentIndex = e;
  4357. break
  4358. }
  4359. showTip("⚠️⚠️⚠️\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 3500), setTimeout(() => {
  4360. this._o1()
  4361. }, 4500)
  4362. }
  4363. getVideoDom() {
  4364. return new Promise(t => {
  4365. let l = setInterval(() => {
  4366. var e = document.querySelector("#task-content-iframe");
  4367. e.contentDocument;
  4368. ElementObj.$video = e.querySelector("video"), ElementObj.$video && (clearInterval(l), t(!0))
  4369. }, 1e3)
  4370. })
  4371. }
  4372. async play() {
  4373. clearInterval(this.listenVidoeStatusTimer), clearInterval(this.timer), await this.getVideoDom(), ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
  4374. ElementObj.$video.playbackRate = toolOption.accelerator
  4375. }, 3500), ElementObj.$ctxstatsbox || this.changeHtml($el(".video")), this.listenPageHide(), this.listenPlayTime(), this.listenVidoeStatus(ElementObj.$video, () => {
  4376. ElementObj.$video.volume = 0, ElementObj.$video.play()
  4377. }), ElementObj.$video.addEventListener("ended", async () => {
  4378. showTip("⚠️⚠️⚠️\u68c0\u6d4b\u5230\u89c6\u9891\u5df2\u64ad\u653e\u5b8c,5\u79d2\u540e\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a\u89c6\u9891", 4500), await sleep(3e3), this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].click(), setTimeout(() => {
  4379. this._o1()
  4380. }, 4500)
  4381. }), ElementObj.$video.addEventListener("pause", () => {
  4382. setTimeout(() => {
  4383. ElementObj.$video.volume = 0, ElementObj.$video.play(), ElementObj.$video.playbackRate = toolOption.accelerator
  4384. }, 1500)
  4385. })
  4386. }
  4387. listenPlayTime() {
  4388. showTip("⚠️⚠️⚠️\u8bfe\u4ef6\u6b63\u5728\u5b66\u4e60,\u8bf7\u52a1\u70b9\u51fb\u6216\u957f\u65f6\u95f4\u9690\u85cf");
  4389. let l = 0;
  4390. this.timer = setInterval(async () => {
  4391. l += 1;
  4392. var e = (ElementObj.$video.currentTime / 60).toFixed(2),
  4393. t = (ElementObj.$video.duration / 60).toFixed(2);
  4394. this.addInfo(`\u540e\u53f0\u5b66\u4e60${l}\u6b21\u5f53\u524d\u72b6\u6001\u6b63\u5728\u5b66\u4e60\u5df2\u64ad\u653e${e}\u5206\u949f\u89c6\u9891\u603b\u65f6\u957f\u4e3a` + t)
  4395. }, 5e3)
  4396. }
  4397. }
  4398. class gansugongwuyuan extends Main {
  4399. constructor() {
  4400. super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this.timer = null, this._init()
  4401. }
  4402. async _init() {
  4403. let n = setInterval(async () => {
  4404. try {
  4405. var e, t, l = $el(".min_le_1 a");
  4406. l ? (clearInterval(n), e = localStorage.getItem("mytoolkey"), MyTool.setValue("mytoolkey", e), l.click(), await sleep(2e3), $el(".xuxi_1").click(), await sleep(2e3), this.getParentIndex()) : (ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(n), t = MyTool.getValue("mytoolkey"), this.deleteDom(), this.handleClickSpeedUp2(t)), ElementObj.$handleSpeedUp.style.display = "none")
  4407. } catch (e) {
  4408. }
  4409. }, 1e3)
  4410. }
  4411. async getParentIndex() {
  4412. $el("a.my").click(), await sleep(2e3);
  4413. let e = Number($el("#pagenumtext").value);
  4414. for (var t, l = [], n = e; 0 < n; n--) l.push(n);
  4415. let a = !1;
  4416. for (t of l) {
  4417. if (a) break;
  4418. await sleep(1500), ElementObj.$allTask = document.querySelectorAll(".main_r_dd2");
  4419. for (var i = 0; i <= ElementObj.$allTask.length - 1; i++) {
  4420. var o = ElementObj.$allTask[i].querySelector(".hqjd_btn"),
  4421. o = (o && (o.click(), await sleep(2500)), ElementObj.$allTask[i].querySelector(".jindu div"));
  4422. if (parseInt(o.style.width) < 100) {
  4423. a = !0, MyTool.setValue("pageNum", t), MyTool.setValue("homeUrl", location.href), ElementObj.$allTask[i].querySelector("#playVideo")?.click(), setTimeout(() => {
  4424. window.close()
  4425. }, 1e4);
  4426. break
  4427. }
  4428. --e, $el(".syy")?.click()
  4429. }
  4430. }
  4431. }
  4432. async getCurrentIndex() {
  4433. }
  4434. getVideoDom() {
  4435. return new Promise(e => {
  4436. let t = setInterval(() => {
  4437. ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0))
  4438. }, 1e3)
  4439. })
  4440. }
  4441. async play() {
  4442. clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime), clearInterval(this.timer), await this.getVideoDom(), ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
  4443. ElementObj.$video.playbackRate = MyTool.getValue("accelerator")
  4444. }, 3500), this.listenRebort(), ElementObj.$video.addEventListener("ended", async () => {
  4445. var e = MyTool.getValue("homeUrl");
  4446. MyTool.openInTab(e), setTimeout(() => {
  4447. window.close()
  4448. }, 1e4)
  4449. }), ElementObj.$video.addEventListener("pause", () => {
  4450. setTimeout(async () => {
  4451. document.querySelector("#dvMsgBtns input")?.click(), await sleep(2e3), ElementObj.$video.play(), ElementObj.$video.playbackRate = toolOption.accelerator
  4452. }, 2500)
  4453. })
  4454. }
  4455. listenRebort() {
  4456. this.listenRebortTime = setInterval(() => {
  4457. document.querySelector("#dvMsgBtns input") && (this.deleteDom(), setTimeout(() => {
  4458. ElementObj.$video.volume = 0, ElementObj.$video.play()
  4459. }, 1500))
  4460. }, 3e3)
  4461. }
  4462. deleteDom() {
  4463. var e = document.querySelector("body"), t = document.getElementById("dvMsgBox"),
  4464. l = document.getElementById("ShowBolightBox"), n = document.createElement("div");
  4465. n.innerHTML = "<div></div>", e.replaceChild(n, t), e.replaceChild(n, l)
  4466. }
  4467. async handleClickSpeedUp2(e, t) {
  4468. e ? (this.speedStatus = 1, 200 == (e = await axfedata({
  4469. method: "GET",
  4470. url: _b + (`/speedup?toolkey=${e}&t=2&canuse=${toolOption.SchoolType}&h=${location.host}&fingerprint=${this.fingerprint}&v=` + version)
  4471. })).code ? (this.speedStatus = 1, toolOption.CtxMain.play()) : showTip("🔉🔉🔉" + e.message, 5e3, !0)) : (alert("\u8bf7\u5148\u8d2d\u4e70key"), window.open(_bt))
  4472. }
  4473. handleChangeCtxSpeed(e) {
  4474. var t = speedArr, l = Number(e);
  4475. e && t.includes(l) && (toolOption.accelerator = l, MyTool.setValue("accelerator", l.toString()), ElementObj.$video) && (ElementObj.$video.playbackRate = l)
  4476. }
  4477. }
  4478. class wlmqcol extends Main {
  4479. constructor() {
  4480. super(), this.taskLength = 0, this.parentIndex = -1, this.currentIndex = -1, this.timer = null, this._init()
  4481. }
  4482. async _init() {
  4483. let t = setInterval(async () => {
  4484. try {
  4485. ElementObj.$handleSpeedUp.style.display = "none";
  4486. var e = document.querySelector("#tab-second");
  4487. e ? (clearInterval(t), e.click(), this.getCurrentIndex()) : document.querySelector("video") && (clearInterval(t), this.pdPlayFn(location.href))
  4488. } catch (e) {
  4489. }
  4490. }, 1e3)
  4491. }
  4492. async getCurrentIndex() {
  4493. await sleep(1e3), ElementObj.$allTask = document.querySelectorAll(".task-list");
  4494. for (var e = 0; e <= ElementObj.$allTask.length - 1; e++) if (!ElementObj.$allTask[e].querySelector(".icon-yiwancheng")) {
  4495. this.currentIndex = e;
  4496. break
  4497. }
  4498. -1 == this.currentIndex ? alert("\u5f53\u524d\u8bfe\u7a0b\u5df2\u5168\u90e8\u64ad\u653e\u5b8c") : (document.querySelectorAll(".task-list")[this.currentIndex].querySelector("span")?.click(), setTimeout(() => {
  4499. this._o1()
  4500. }, 3e3))
  4501. }
  4502. async play() {
  4503. clearInterval(this.listenVidoeStatusTimer), clearInterval(this.timer), await this.getVideoDom(), ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
  4504. ElementObj.$video.playbackRate = toolOption.accelerator
  4505. }, 3500), ElementObj.$video.addEventListener("ended", async () => {
  4506. this.playNext()
  4507. }), ElementObj.$video.addEventListener("pause", () => {
  4508. setTimeout(async () => {
  4509. ElementObj.$video.volume = 0, ElementObj.$video.play(), ElementObj.$video.playbackRate = toolOption.accelerator
  4510. }, 2500)
  4511. })
  4512. }
  4513. async playNext() {
  4514. document.querySelectorAll(".el-breadcrumb__inner.is-link")[1]?.click(), setTimeout(() => {
  4515. location.reload()
  4516. }, 3500)
  4517. }
  4518. }
  4519. class shandongzhuanyejisu extends Main {
  4520. constructor() {
  4521. super(), this.taskLength = 0, this.currentIndex = -1, this._init()
  4522. }
  4523. async _init() {
  4524. let e = setInterval(async () => {
  4525. try {
  4526. document.querySelectorAll(".learn-menu-cell").length && (clearInterval(e), this.getCurrentIndex())
  4527. } catch (e) {
  4528. }
  4529. }, 1e3)
  4530. }
  4531. async getCurrentIndex() {
  4532. showTip("\u6b63\u5728\u521d\u59cb\u5316");
  4533. for (var e = document.querySelector(".contentIframe"), t = (ElementObj._document = e.contentWindow.document, "/learnspace/learn/learn/templateeight/index.action" == location.pathname ? ElementObj.$allTask = ElementObj._document.querySelectorAll(".s_sectionwrap .s_pointwrap .s_point") : ElementObj.$allTask = ElementObj._document.querySelectorAll(".s_pointwrap .s_point"), ElementObj.$handleSpeedUp.style.display = "none", 0); t <= ElementObj.$allTask.length - 1; t++) if (!ElementObj.$allTask[t].querySelector(".item_done_icon").classList.contains("done_icon_show")) {
  4534. this.currentIndex = t;
  4535. break
  4536. }
  4537. -1 == this.currentIndex ? alert("\u5f53\u524d\u8bfe\u7a0b\u5df2\u5168\u90e8\u5b66\u5b8c") : (ElementObj.$allTask[this.currentIndex]?.click(), showTip("\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e"), this._o1())
  4538. }
  4539. getVideoDom() {
  4540. return new Promise(t => {
  4541. let l = 0, n = setInterval(() => {
  4542. var e = ElementObj._document.querySelector("#mainFrame").contentWindow.document;
  4543. ElementObj.$video = e.querySelector("video"), ElementObj.$video && (clearInterval(n), t(1)), 10 <= l && (clearInterval(n), t(2)), l++
  4544. }, 1e3)
  4545. })
  4546. }
  4547. async play() {
  4548. clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime);
  4549. var e = await this.getVideoDom();
  4550. 1 == e && (ElementObj.$video.volume = 0, await sleep(200), ElementObj.$video.play(), setTimeout(() => {
  4551. ElementObj.$video.playbackRate = toolOption.accelerator
  4552. }, 3e3), this.listenRebort(), this.listenVidoeStatus(ElementObj.$video, () => {
  4553. ElementObj.$video.volume = 0, ElementObj.$video.play()
  4554. }), ElementObj.$video.addEventListener("ended", async () => {
  4555. this.playNext()
  4556. }), ElementObj.$video.addEventListener("pause", () => {
  4557. ElementObj.$video.volume = 0, ElementObj.$video.play()
  4558. })), 2 == e && (showTip("✅✅✅\u68c0\u6d4b\u5230\u8be5\u7ae0\u8282\u4e0d\u662f\u89c6\u9891,\u5373\u5c06\u5207\u6362\u4e0b\u4e00\u8282", 2e3), await sleep(2e3), this.playNext())
  4559. }
  4560. updateSpeedElement(e) {
  4561. localStorage.setItem("_localSpeed", e.toString()), ElementObj.$video.playbackRate = e
  4562. }
  4563. listenRebort() {
  4564. this.listenRebortTime = setInterval(() => {
  4565. let e = document.querySelector(".layui-layer-btn0");
  4566. e && setTimeout(() => {
  4567. e.click(), ElementObj.$video.play()
  4568. }, 3e3)
  4569. }, 1e4)
  4570. }
  4571. playNext() {
  4572. this.currentIndex >= ElementObj.$allTask.length - 1 ? alert("\u5f53\u524d\u8bfe\u7a0b\u5df2\u5168\u90e8\u5b66\u5b8c") : (this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].click(), showTip("🔉\u6b63\u5728\u5207\u6362\u8bfe\u7a0b"), setTimeout(() => {
  4573. this._o1()
  4574. }, 5e3))
  4575. }
  4576. }
  4577. shandongzhuanyejisu.ctxid = 26;
  4578. class zhijiaoyun2 extends Main {
  4579. constructor() {
  4580. super(), this.taskLength = 0, this.topIndex = 0, this.parentIndex = -1, this.currentIndex = -1, this.videoplaying = -1, this.authorization = null, this.classList = [], this.selectData = [], this.timer = null, this._init()
  4581. }
  4582. async _init() {
  4583. let e = setInterval(async () => {
  4584. document.querySelector(".r.rFu");
  4585. "/study/coursePreview/spoccourseIndex/courseware" == location.pathname && (clearInterval(e), ElementObj.$handleSpeedUp.style.display = "none", this._o1()), "/study/coursePreview/spoccourseIndex" == location.pathname && (clearInterval(e), ElementObj.$handleSpeedUp.style.display = "none", await this.getCurrentIndex())
  4586. }, 1e3)
  4587. }
  4588. async getCurrentIndex() {
  4589. let n = setInterval(async () => {
  4590. if (ElementObj.$allTask = document.querySelectorAll(".listItem"), ElementObj.$allTask.length) {
  4591. clearInterval(n);
  4592. let t = !1;
  4593. for (var l of ElementObj.$allTask) {
  4594. var e = l.querySelector(".el-progress-bar__inner").style.width;
  4595. if (parseInt(e) < 99) {
  4596. t = !0, l.click(), await sleep(3e3), l.querySelector(".items.iChild").click(), await sleep(3e3), setTimeout(() => {
  4597. location.reload()
  4598. }, 2e3);
  4599. let e = l.querySelector(".fItem");
  4600. (e = e || l.querySelector(".fIteml")).click();
  4601. break
  4602. }
  4603. }
  4604. t || (location.href = "https://zjy2.icve.com.cn/study/course")
  4605. }
  4606. }, 2e3)
  4607. }
  4608. getVideoDom() {
  4609. return new Promise(e => {
  4610. let t = 7, l = setInterval(() => {
  4611. t < 0 && (clearInterval(l), e(2)), ElementObj.$video = document.querySelector("video"), ElementObj.$video ? (clearInterval(l), e(1)) : document.querySelectorAll(".el-carousel__item").length ? (clearInterval(l), e(2)) : --t
  4612. }, 1e3)
  4613. })
  4614. }
  4615. async play() {
  4616. clearInterval(this.timer);
  4617. var e = await this.getVideoDom();
  4618. if (document.querySelector(".el-message-box__btns button")?.click(), await this.changeHtml(document.querySelector(".video")), 1 == e && (ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
  4619. ElementObj.$video.playbackRate = toolOption.accelerator
  4620. }, 2500), this.listenVidoeStatus(), ElementObj.$video.addEventListener("ended", async () => {
  4621. await this.playNext()
  4622. }), ElementObj.$video.addEventListener("pause", () => {
  4623. setTimeout(() => {
  4624. ElementObj.$video.volume = 0, ElementObj.$video.play()
  4625. }, 3e3)
  4626. })), 2 == e) {
  4627. this.addInfo("🔊🔊🔊\u5373\u5c06\u5f00\u59cb\u64ad\u653e\u6587\u6863");
  4628. var t, e = document.querySelectorAll(".el-carousel__item"), l = document.querySelector(".page>.next");
  4629. for (t of e) l.click(), await sleep(500);
  4630. this.addInfo("🎉🎉🎉🎉🎉🎉\u6587\u6863\u64ad\u653e\u5b8c\u6210🎉🎉🎉🎉🎉🎉"), await this.playNext()
  4631. }
  4632. }
  4633. async playNext() {
  4634. var e = document.querySelector(".next>a");
  4635. "\u6682\u65e0" == e?.innerText ? (setTimeout(() => {
  4636. location.reload()
  4637. }, 2e3), document.querySelector(".location .r").click()) : (await sleep(300), e?.click(), setTimeout(() => {
  4638. this._o1()
  4639. }, 2500))
  4640. }
  4641. listenVidoeStatus() {
  4642. let e = 0;
  4643. this.timer = setInterval(() => {
  4644. ElementObj.$video = document.querySelector("video"), ElementObj.$video && (this.addInfo(`🔉🔉🔉\u5df2\u6210\u529f\u76d1\u6d4b${e}\u6b21\u7a0b\u5e8f\u540e\u53f0\u4ee5${toolOption.accelerator}\u500d\u901f\u6b63\u5e38\u5b66\u4e60\u4e2d`), e += 1)
  4645. }, 3e3)
  4646. }
  4647. render(t) {
  4648. var l = 1 == t ? this.classList : this.selectData;
  4649. let n = "";
  4650. for (let e = 0; e < l.length; e++) {
  4651. var a = l[e];
  4652. n += `
  4653. <div class="item">
  4654. <div class="content">
  4655. <div class="name1">${a.courseInfoName}</div>
  4656. <div class="name2">\u73ed\u7ea7${a.className}</div>
  4657. <div class="name2">\u5b66\u671f${a.termName}</div>
  4658. <div class="name2">\u5b8c\u6210\u8fdb\u5ea6${a.studySpeed}%</div>
  4659. </div>
  4660. <div class="item-controls">
  4661. <button style='background: ${1 == t ? "#409eff" : "red"}'>${1 == t ? "\u9009\u62e9" : "\u79fb\u9664"}</button>
  4662. </div>
  4663. </div>
  4664. `
  4665. }
  4666. var i = 1 == t ? document.querySelector(".leftPannel") : document.querySelector(".rightPannel");
  4667. i.innerHTML = n;
  4668. for (let e = 0; e < i.children.length; e++) i.children[e].querySelector("button").onclick = () => {
  4669. 1 == t ? this.moveDataToSelectData(e) : this.moveDataToClassList(e)
  4670. }
  4671. }
  4672. moveDataToSelectData(e) {
  4673. this.selectData.push(this.classList[e]), this.classList.splice(e, 1), this.handleTemplekeyData(), this.render(1), this.render(2)
  4674. }
  4675. moveDataToClassList(e) {
  4676. this.classList.push(this.selectData[e]), this.selectData.splice(e, 1), this.handleTemplekeyData(), this.render(1), this.render(2)
  4677. }
  4678. handleTemplekeyData() {
  4679. MyTool.setValue("selectData", this.selectData)
  4680. }
  4681. }
  4682. class chongqingzhuanye extends Main {
  4683. constructor() {
  4684. super(), this.taskLength = 0, this.currentIndex = -1, this._init()
  4685. }
  4686. async _init() {
  4687. let a = setInterval(async () => {
  4688. try {
  4689. var e, t, l, n;
  4690. ElementObj.$parentNodes = document.querySelectorAll(".course__list--content .course__item"), ElementObj.$parentNodes.length ? (clearInterval(a), this.getParentIndex()) : document.querySelector(".btn-next") && "/nms-frontend/index.html" == location.pathname ? (clearInterval(a), MyTool.setValue("homeUrl", location.href), this.getParentIndex2()) : (ElementObj.$allTask = document.querySelectorAll("ul li ul li .posCatalog_select"), ElementObj.$allTask.length && (clearInterval(a), this.getCurrentIndex()), (e = document.querySelector("#iframe_aliplayer")) ? (clearInterval(a), ElementObj.$video = e?.contentDocument?.querySelector("video"), this.handleClickSpeedUp2()) : (t = document.querySelector("#aliPlayerFrame")) && (ElementObj.$allTask = t.contentDocument?.querySelectorAll(".section .section-item"), ElementObj.$allTask.length) ? (clearInterval(a), this.getCurrentIndex2()) : (l = document.querySelectorAll(".complete-status .btn-item")[2]) && (clearInterval(a), l.click(), await sleep(1500), 0 === (n = document.querySelectorAll("#pane-MUST .text-item")).length ? alert("\u5168\u90e8\u516c\u9700\u8bfe\u5df2\u5b66\u5b8c") : (MyTool.setValue("homeUrl", location.href), n[0].click(), setTimeout(() => {
  4691. window.close()
  4692. }, 2e4))))
  4693. } catch (e) {
  4694. }
  4695. }, 1e3)
  4696. }
  4697. getParentIndex() {
  4698. ElementObj.$parentNodes.forEach(e => {
  4699. var t = e.querySelector("span.num");
  4700. t && parseInt(t.innerText) <= 95 && (e.querySelector(".enter-btn").click(), setTimeout(() => {
  4701. location.reload()
  4702. }, 3e3))
  4703. })
  4704. }
  4705. async getParentIndex2() {
  4706. document.querySelectorAll(".btn-box .btn-item")[2].click(), await sleep(3500), document.querySelectorAll("#pane-MUST .text-item")[0].click()
  4707. }
  4708. async getCurrentIndex() {
  4709. showTip("✅✅✅\u6b63\u5728\u521d\u59cb\u5316"), ElementObj.$handleSpeedUp.style.display = "none";
  4710. for (var e = 0; e <= ElementObj.$allTask.length - 1; e++) if (!ElementObj.$allTask[e].querySelector(".icon_Completed")) {
  4711. this.currentIndex = e;
  4712. break
  4713. }
  4714. -1 == this.currentIndex ? alert("\u5f53\u524d\u8bfe\u7a0b\u5df2\u5168\u90e8\u5b66\u5b8c") : (ElementObj.$allTask[this.currentIndex].querySelector(".posCatalog_name").click(), showTip("\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e"), this._o1())
  4715. }
  4716. async getCurrentIndex2() {
  4717. showTip("✅✅✅\u6b63\u5728\u521d\u59cb\u5316"), ElementObj.$handleSpeedUp.style.display = "none";
  4718. for (var e = 0; e <= ElementObj.$allTask.length - 1; e++) if (!ElementObj.$allTask[e].classList.contains("finish")) {
  4719. this.currentIndex = e;
  4720. break
  4721. }
  4722. -1 == this.currentIndex && (location.href = MyTool.getValue("homeUrl")), ElementObj.$allTask[e].click(), showTip("✅✅✅\u5b8c\u6210\u521d\u59cb\u5316,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e"), setTimeout(() => {
  4723. this.handleClickSpeedUp2(() => {
  4724. }, 3)
  4725. }, 4500)
  4726. }
  4727. getVideoDom(e) {
  4728. return new Promise(n => {
  4729. if (e) {
  4730. let t = 0, l = setInterval(() => {
  4731. var e = document.querySelector("#aliPlayerFrame").contentDocument;
  4732. ElementObj.$video = e.querySelector("video"), t += 1, ElementObj.$video && (clearInterval(l), n(!0)), 10 < t && (clearInterval(l), n(!1))
  4733. }, 1e3)
  4734. } else {
  4735. let t = 0, l = setInterval(() => {
  4736. var e = document.querySelector("#iframe").contentDocument?.querySelector("iframe")?.contentDocument;
  4737. ElementObj.$video = e.querySelector("video"), t += 1, ElementObj.$video && (clearInterval(l), n(!0)), 10 < t && (clearInterval(l), n(!1))
  4738. }, 1e3)
  4739. }
  4740. })
  4741. }
  4742. async play() {
  4743. clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime), clearInterval(this.timer);
  4744. var e, t = await this.getVideoDom();
  4745. t && (ElementObj.$video.volume = 0, await sleep(200), ElementObj.$video.play(), setTimeout(() => {
  4746. ElementObj.$video.playbackRate = toolOption.accelerator
  4747. }, 3e3), e = $el("#iframe").contentDocument.querySelector("iframe")?.contentDocument.querySelector("#reader"), this.changeHtml(e), this.listenPageHide(), this.listenPlayTime(), this.listenVidoeStatus(ElementObj.$video, () => {
  4748. ElementObj.$video.volume = 0, ElementObj.$video.play()
  4749. }), ElementObj.$video.addEventListener("ended", async () => {
  4750. this.playNext()
  4751. }), ElementObj.$video.addEventListener("pause", () => {
  4752. ElementObj.$video.volume = 0, ElementObj.$video.play()
  4753. })), t || (showTip("⚠️⚠️⚠️\u672a\u68c0\u6d4b\u5230\u89c6\u9891,5\u79d2\u540e\u5207\u6362\u4e0b\u4e00\u8282", 4500), setTimeout(() => {
  4754. this.playNext()
  4755. }, 3e3))
  4756. }
  4757. async play2() {
  4758. ElementObj.$video ? (ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
  4759. ElementObj.$video.playbackRate = toolOption.accelerator
  4760. }, 3e3), ElementObj.$video.addEventListener("ended", async () => {
  4761. var e = MyTool.getValue("homeUrl");
  4762. await sleep(2500), MyTool.openInTab(e), setTimeout(() => {
  4763. window.close()
  4764. }, 5e3)
  4765. })) : location.reload()
  4766. }
  4767. async play3() {
  4768. clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime), clearInterval(this.timer);
  4769. await this.getVideoDom("#aliPlayerFrame");
  4770. ElementObj.$video.volume = 0, await sleep(200), ElementObj.$video.play(), setTimeout(() => {
  4771. ElementObj.$video.playbackRate = toolOption.accelerator
  4772. }, 3e3), ElementObj.$video.addEventListener("ended", async () => {
  4773. var e;
  4774. this.currentIndex >= ElementObj.$allTask.length - 1 ? (e = MyTool.getValue("homeUrl"), await sleep(2500), MyTool.openInTab(e), setTimeout(() => {
  4775. window.close()
  4776. }, 15e3)) : (this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].click(), showTip("⚠️⚠️⚠️\u6b63\u5728\u5207\u6362\u8bfe\u7a0b", 4500), setTimeout(() => {
  4777. this.handleClickSpeedUp2(() => {
  4778. }, 3)
  4779. }, 4500))
  4780. }), ElementObj.$video.addEventListener("pause", () => {
  4781. ElementObj.$video.volume = 0, ElementObj.$video.play()
  4782. }), this.listenRebortTime = setInterval(() => {
  4783. var e = document.querySelector("iframe")?.contentDocument?.querySelector(".next-button");
  4784. e && e.click()
  4785. }, 13e3)
  4786. }
  4787. async playNext() {
  4788. await sleep(3e3), this.currentIndex >= ElementObj.$allTask.length - 1 ? location.href = MyTool.getValue("homeUrl") : (this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].querySelector(".posCatalog_name").click(), showTip("⚠️⚠️⚠️\u6b63\u5728\u5207\u6362\u8bfe\u7a0b", 4500), setTimeout(() => {
  4789. this._o1()
  4790. }, 5e3))
  4791. }
  4792. listenPlayTime() {
  4793. showTip("🔉\u8bfe\u4ef6\u6b63\u5728\u5b66\u4e60,\u8bf7\u52a1\u70b9\u51fb\u6216\u957f\u65f6\u95f4\u9690\u85cf");
  4794. let l = 0;
  4795. this.timer = setInterval(() => {
  4796. l += 1;
  4797. var e = (ElementObj.$video.currentTime / 60).toFixed(2),
  4798. t = (ElementObj.$video.duration / 60).toFixed(2);
  4799. this.addInfo(`\u540e\u53f0\u5b66\u4e60${l}\u6b21\u5f53\u524d\u72b6\u6001\u6b63\u5728\u5b66\u4e60\u5df2\u64ad\u653e${e}\u5206\u949f\u89c6\u9891\u603b\u65f6\u957f\u4e3a${t}\u5206\u949f`), "\u4efb\u52a1\u70b9\u5df2\u5b8c\u6210" == (document.querySelector("#iframe").contentDocument?.querySelector(".ans-job-icon"))?.getAttribute("aria-label") && (clearInterval(this.timer), this.addInfo("✅✅✅\u76d1\u6d4b\u5230\u5f53\u524d\u4efb\u52a1\u5df2\u5b8c\u6210,5\u79d2\u540e\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u8282", 1), setTimeout(() => {
  4800. this.playNext()
  4801. }, 3e3))
  4802. }, 3e3)
  4803. }
  4804. addInfo(e, t) {
  4805. ElementObj.$ctxstatsbox = $el("#iframe").contentDocument.querySelector("iframe")?.contentDocument.querySelector(".ctxstatsbox");
  4806. 15 <= ($el("#iframe").contentDocument.querySelector("iframe")?.contentDocument.querySelectorAll(".ctxstatsbox_li")).length && (ElementObj.$ctxstatsbox.innerHTML = "");
  4807. t = `<li class="ctxstatsbox_li" style="color: ${0 == t ? "#f01414" : "#000"};line-height: 30px;font-size: 16px;list-style: none;">${e}</li>`;
  4808. ElementObj.$ctxstatsbox.innerHTML += t
  4809. }
  4810. async handleClickSpeedUp2(e, t) {
  4811. var l = localStorage.getItem("mytoolkey");
  4812. l ? (this.speedStatus = 1, 200 == (l = await axfedata({
  4813. method: "GET",
  4814. url: _b + (`/speedup?toolkey=${l}&t=2&canuse=${toolOption.SchoolType}&h=${location.host}&fingerprint=${this.fingerprint}&v=` + version)
  4815. })).code ? (this.speedStatus = 1, 3 == t ? this.play3() : this.play2()) : showTip("🔉🔉🔉" + l.message, 5e3, !0)) : (alert("\u8bf7\u5148\u8d2d\u4e70key"), window.open(_bt))
  4816. }
  4817. }
  4818. chongqingzhuanye.ctxid = 26;
  4819. class jiaoyuganbuwang extends Main {
  4820. constructor() {
  4821. super(), this.taskLength = 0, this.currentIndex = -1, this._init()
  4822. }
  4823. async _init() {
  4824. let t = setInterval(async () => {
  4825. try {
  4826. var e = document.querySelectorAll(".customcur-tabs-wrapper li")[1];
  4827. e ? (clearInterval(t), e.click(), this.getParentIndex()) : (ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), this.getCurrentIndex()))
  4828. } catch (e) {
  4829. }
  4830. }, 1e3)
  4831. }
  4832. async getParentIndex() {
  4833. showTip("✅✅✅\u6b63\u5728\u521d\u59cb\u5316", 3e3), ElementObj.$handleSpeedUp.style.display = "none", await sleep(3e3), GM_setValue("homeUrl", location.href), showTip("\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e"), await sleep(3e3), document.querySelectorAll("tr")[2].lastChild.querySelector("a")?.click(), this._o1(), setTimeout(() => {
  4834. window.close()
  4835. }, 5e3)
  4836. }
  4837. async getCurrentIndex() {
  4838. ElementObj.$allTask = document.querySelectorAll(".cvtb-MCK-course-content"), await sleep(100);
  4839. for (var e = 0; e <= ElementObj.$allTask.length - 1; e++) {
  4840. var t = ElementObj.$allTask[e].querySelector(".cvtb-MCK-CsCt-studyProgress");
  4841. if (100 != parseInt(t.innerText)) {
  4842. this.currentIndex = e;
  4843. break
  4844. }
  4845. }
  4846. ElementObj.$allTask[this.currentIndex].click(), setTimeout(() => {
  4847. this._o1()
  4848. }, 3e3)
  4849. }
  4850. async play() {
  4851. ElementObj.$handleSpeedUp.style.display = "none", clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime), clearInterval(this.timer);
  4852. await this.getVideoDom();
  4853. ElementObj.$video.volume = 0, await sleep(200), ElementObj.$video.play(), setTimeout(() => {
  4854. ElementObj.$video.playbackRate = toolOption.accelerator
  4855. }, 3e3), this.listenRebort(), this.listenVidoeStatus(ElementObj.$video, () => {
  4856. ElementObj.$video.volume = 0, ElementObj.$video.play()
  4857. }), ElementObj.$video.addEventListener("ended", async () => {
  4858. this.playNext()
  4859. }), ElementObj.$video.addEventListener("pause", () => {
  4860. ElementObj.$video.volume = 0, ElementObj.$video.play()
  4861. })
  4862. }
  4863. async playNext() {
  4864. var e;
  4865. await sleep(2e3), this.currentIndex >= ElementObj.$allTask.length - 1 ? (e = GM_getValue("homeUrl", null), GM_openInTab(e, {active: !0}), setTimeout(() => {
  4866. window.close()
  4867. }, 3e3)) : (this.currentIndex += 1, setTimeout(() => {
  4868. this._o1()
  4869. }, 5e3))
  4870. }
  4871. listenPlayTime() {
  4872. showTip("🔉\u8bfe\u4ef6\u6b63\u5728\u5b66\u4e60,\u8bf7\u52a1\u70b9\u51fb\u6216\u957f\u65f6\u95f4\u9690\u85cf");
  4873. let l = 0;
  4874. this.timer = setInterval(() => {
  4875. l += 1;
  4876. var e = ElementObj.$allTask[this.currentIndex].querySelector(".cvtb-MCK-CsCt-studyProgress"),
  4877. e = parseInt(e.innerText), t = (ElementObj.$video.duration / 60).toFixed(2);
  4878. this.addInfo(`\u540e\u53f0\u5b66\u4e60${l}\u6b21\u5f53\u524d\u72b6\u6001\u6b63\u5728\u5b66\u4e60\u5f53\u524d\u64ad\u653e\u8fdb\u5ea6\u4e3a${e}%,\u89c6\u9891\u603b\u65f6\u957f\u4e3a${t}\u5206\u949f`), 100 == e && (clearInterval(this.timer), this.addInfo("✅✅✅\u76d1\u6d4b\u5230\u5f53\u524d\u4efb\u52a1\u5df2\u5b8c\u6210,5\u79d2\u540e\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u8282", 1), setTimeout(() => {
  4879. this.playNext()
  4880. }, 3e3))
  4881. }, 3e3)
  4882. }
  4883. listenRebort() {
  4884. this.listenRebortTime = setInterval(() => {
  4885. var e = document.querySelector(".dialog-button-container button");
  4886. e && e.click()
  4887. }, 1e4)
  4888. }
  4889. }
  4890. jiaoyuganbuwang.ctxid = 26;
  4891. class zaixianxuexi extends Main {
  4892. constructor() {
  4893. super(), this.taskLength = 0, this.currentIndex = -1, this._init()
  4894. }
  4895. async _init() {
  4896. let t = setInterval(async () => {
  4897. try {
  4898. var e = document.querySelector("#jAlertButton2");
  4899. e ? (clearInterval(t), e.click(), await sleep(2e3), ElementObj.$handleSpeedUp.style.display = "none", this._o1()) : (ElementObj.$allTask = document.querySelectorAll(".videoList li"), ElementObj.$allTask.length && (clearInterval(t), this.getCurrentIndex()))
  4900. } catch (e) {
  4901. }
  4902. }, 1e3)
  4903. }
  4904. async getCurrentIndex() {
  4905. showTip("\u6b63\u5728\u521d\u59cb\u5316"), ElementObj.$handleSpeedUp.style.display = "none";
  4906. for (var e = 0; e <= ElementObj.$allTask.length - 1; e++) if ("【\u5df2\u5b8c\u6210】" != ElementObj.$allTask[e].querySelector(".overTitle").innerText) {
  4907. this.currentIndex = e;
  4908. break
  4909. }
  4910. -1 == this.currentIndex ? alert("\u5f53\u524d\u8bfe\u7a0b\u5df2\u5168\u90e8\u5b66\u5b8c") : (ElementObj.$allTask[this.currentIndex]?.click(), showTip("\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e"), this._o1())
  4911. }
  4912. getVideoDom() {
  4913. return new Promise(e => {
  4914. let t = setInterval(() => {
  4915. ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), e(!0))
  4916. }, 1e3)
  4917. })
  4918. }
  4919. async play() {
  4920. clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime), await this.getVideoDom(), ElementObj.$video.volume = 0, await sleep(200), ElementObj.$video.play(), setTimeout(() => {
  4921. ElementObj.$video.playbackRate = toolOption.accelerator
  4922. }, 3e3), this.listenVidoeStatus(ElementObj.$video, () => {
  4923. ElementObj.$video.volume = 0, ElementObj.$video.play()
  4924. }), ElementObj.$video.addEventListener("ended", async () => {
  4925. this.getCurrentIndex()
  4926. }), ElementObj.$video.addEventListener("pause", () => {
  4927. ElementObj.$video.volume = 0, ElementObj.$video.play()
  4928. })
  4929. }
  4930. listenRebort() {
  4931. this.listenRebortTime = setInterval(() => {
  4932. }, 1e4)
  4933. }
  4934. }
  4935. zaixianxuexi.ctxid = 26;
  4936. class guojiakaifangdaxue extends Main {
  4937. constructor() {
  4938. super(), this.taskLength = 0, this.currentIndex = -1, this._init()
  4939. }
  4940. async _init() {
  4941. let e = setInterval(async () => {
  4942. try {
  4943. ElementObj.$allTask = document.querySelectorAll("li[id]"), "xczxzdbf.moodle.qwbx.ouchn.cn" == location.host && ElementObj.$allTask.length ? (clearInterval(e), ElementObj.$handleSpeedUp.style.display = "none", this.getCurrentIndex()) : (document.querySelector("button.next-btn") || document.querySelector(".newgk-prenext.newgk-next")) && (ElementObj.$handleSpeedUp.style.display = "none", clearInterval(e), showTip("♥♥♥\u521d\u59cb\u5316\u5b8c\u6210"), this.pdPlayFn(location.href))
  4944. } catch (e) {
  4945. }
  4946. }, 1e3)
  4947. }
  4948. async getCurrentIndex() {
  4949. for (var e = 0; e <= ElementObj.$allTask.length - 1; e++) if (ElementObj.$allTask[e].classList.contains("current")) {
  4950. this.currentIndex = e;
  4951. break
  4952. }
  4953. showTip("♥♥♥\u521d\u59cb\u5316\u5b8c\u6210"), this.pdPlayFn(location.href)
  4954. }
  4955. getVideoDom() {
  4956. return new Promise(t => {
  4957. let l = 0, n = setInterval(() => {
  4958. var e;
  4959. l += 1, ElementObj.$video = document.querySelector("video"), ElementObj.$video || (e = document.querySelector("#previewContentInIframe"), ElementObj.$video = e?.contentDocument?.querySelector("video"), ElementObj.$video) ? (clearInterval(n), t(1)) : document.querySelector(".forum-toolbar-search button") ? t(3) : 7 <= l && (clearInterval(n), t(2))
  4960. }, 1e3)
  4961. })
  4962. }
  4963. async play() {
  4964. clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime);
  4965. var e, t = await this.getVideoDom();
  4966. 1 == t && (ElementObj.$video.volume = 0, await sleep(200), (e = document.querySelector(".mvp-toggle-play")) ? e.click() : ElementObj.$video.play(), setTimeout(() => {
  4967. ElementObj.$video.playbackRate = toolOption.accelerator
  4968. }, 3e3), ElementObj.$video.addEventListener("ended", async () => {
  4969. showTip("\u5f53\u524d\u89c6\u9891\u5df2\u64ad\u653e\u5b8c,5\u79d2\u540e\u64ad\u653e\u4e0b\u4e00\u4e2a", 4500), await sleep(4500), this.playNext()
  4970. }), ElementObj.$video.addEventListener("pause", () => {
  4971. setTimeout(() => {
  4972. var e = document.querySelector(".mvp-toggle-play");
  4973. ElementObj.$video.volume = 0, e?.click(), ElementObj.$video.play()
  4974. }, 1500)
  4975. })), 2 == t && (showTip("✅✅✅\u8be5\u7ae0\u8282\u4e3a\u6587\u6863,\u5373\u5c06\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a", 3e3), document.querySelector("a.ng-scope")?.click(), await sleep(1e3), document.querySelector("#file-previewer .header a.right.close")?.click(), await sleep(2e3), this.playNext()), 3 == t && (showTip("\u6b63\u5728\u65b0\u95fb\u8ba8\u8bba\u533a\u7684Id"), showTip(`✅✅✅\u8ba8\u8bba\u533aid\u83b7\u53d6\u6210\u529f,<span style="color: #f01414;">${(e = await this.getTopicID(location.hash.replace("#/", ""))).topic_category.id}</span>`), showTip("🔉🔉🔉\u6b63\u5728\u53d1\u5e16\u4e2d,\u9884\u8ba12-9\u79d2\u5b8c\u6210"), t = {
  4976. category_id: e.topic_category.id,
  4977. content: `<p>\u6536\u83b7\u5f88\u5927\u7ee7\u7eed\u5b66\u4e60\u671f\u5f85\u540e\u9762\u7684\u8bfe\u7a0b,+${Math.trunc(10 * Math.random())}</p>`,
  4978. title: "\u603b\u7ed3",
  4979. uploads: []
  4980. }, await this.sendTopic(t), showTip("✅✅✅\u5e16\u5b50\u53d1\u5e03\u6210\u529f,\u5373\u5c06\u81ea\u52a8\u64ad\u653e\u4e0b\u4e00\u4e2a"), await MyTool.sleep(2e3), this.playNext())
  4981. }
  4982. listenRebort() {
  4983. this.listenRebortTime = setInterval(() => {
  4984. }, 1e4)
  4985. }
  4986. playNext() {
  4987. this.currentIndex += 1;
  4988. let e = document.querySelector("button.next-btn");
  4989. "xczxzdbf.moodle.qwbx.ouchn.cn" == location.host ? (e = ElementObj.$allTask[this.currentIndex].querySelector(".aalink"), this.currentIndex >= ElementObj.$allTask.length - 1 ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (e?.click(), setTimeout(() => {
  4990. this.pdPlayFn(location.href)
  4991. }, 5e3))) : "moodle.syxy.ouchn.cn" == location.host ? (e = document.querySelector(".newgk-prenext.newgk-next")) && (e.click(), setTimeout(() => {
  4992. this.pdPlayFn(location.href)
  4993. }, 5e3)) : (e = document.querySelector("button.next-btn")) && (e.click(), setTimeout(() => {
  4994. this.pdPlayFn(location.href)
  4995. }, 5e3))
  4996. }
  4997. getTopicID(t) {
  4998. return new Promise(async e => {
  4999. e(await MyTool.axfedata({
  5000. url: location.origin + `/api/forum/${t}/category?fields=id,title,activity(id,sort,module_id,syllabus_id,start_time,end_time,is_started,is_closed,data,can_show_score,score_percentage,title,prerequisites,submit_by_group,group_set_id,group_set_name,imported_from,parent_id),referrer_type`,
  5001. method: "GET"
  5002. }))
  5003. })
  5004. }
  5005. sendTopic(e) {
  5006. return new Promise(async t => {
  5007. fetch(location.origin + "/api/topics", {
  5008. headers: {
  5009. accept: "application/json, text/plain, */*",
  5010. "accept-language": "zh-CN,zh;q=0.9",
  5011. "content-type": "application/json;charset=UTF-8",
  5012. "sec-ch-ua": '"Chromium";v="118", "Google Chrome";v="118", "Not=A?Brand";v="99"',
  5013. "sec-ch-ua-mobile": "?0",
  5014. "sec-ch-ua-platform": '"Windows"',
  5015. "sec-fetch-dest": "empty",
  5016. "sec-fetch-mode": "cors",
  5017. "sec-fetch-site": "same-origin"
  5018. },
  5019. referrer: `${location.origin}/${e.category_id}/learning-activity/full-screen`,
  5020. referrerPolicy: "strict-origin-when-cross-origin",
  5021. body: JSON.stringify(e),
  5022. method: "POST",
  5023. mode: "cors",
  5024. credentials: "include"
  5025. }).then(e => e.json()).then(e => {
  5026. t(e)
  5027. })
  5028. })
  5029. }
  5030. }
  5031. guojiakaifangdaxue.ctxid = 26;
  5032. class jjjxjy extends Main {
  5033. constructor() {
  5034. super(), this.taskLength = 0, this.currentIndex = -1, this._init()
  5035. }
  5036. async _init() {
  5037. if ("hunau.web2.superchutou.com" == location.host) {
  5038. let t = setInterval(() => {
  5039. var e;
  5040. ElementObj.$handleSpeedUp.style.display = "none", "https://hunau.web2.superchutou.com/#/" == location.href && (clearInterval(t), setTimeout(() => {
  5041. this._init()
  5042. }, 5e3), location.href = MyTool.getValue("homeUrl")), -1 != location.href.indexOf("/#/onlineclass/curriculum") && (e = document.querySelector(".ant-row.catalog_child_line")) && (clearInterval(t), MyTool.setValue("homeUrl", location.href), setTimeout(() => {
  5043. this._init()
  5044. }, 5e3), e.click()), ElementObj.$allTask = document.querySelectorAll(".ant-list-items div a"), ElementObj.$allTask.length && (ElementObj.$handleSpeedUp.style.display = "none", clearInterval(t), this.getCurrentIndex())
  5045. }, 1e3)
  5046. } else {
  5047. window.addEventListener("urlchange", e => {
  5048. setTimeout(() => {
  5049. ElementObj.$allTask = document.querySelectorAll(".ant-list-items div a"), ElementObj.$allTask.length && (ElementObj.$handleSpeedUp.style.display = "none", clearInterval(t), this.getCurrentIndex());
  5050. var e = document.querySelector(".ant-row.catalog_child_line");
  5051. e && (clearInterval(t), e?.click()), "https://jjxy.web2.superchutou.com/#/" == location.href && (ElementObj.$handleSpeedUp.style.display = "none", clearInterval(t), this.getParentIndex())
  5052. }, 5e3)
  5053. });
  5054. let t = setInterval(async () => {
  5055. try {
  5056. ElementObj.$allTask = document.querySelectorAll(".ant-list-items div a"), ElementObj.$allTask.length && (ElementObj.$handleSpeedUp.style.display = "none", clearInterval(t), this.getCurrentIndex());
  5057. var e = document.querySelector(".ant-row.catalog_child_line");
  5058. e && (clearInterval(t), setTimeout(() => {
  5059. this._init()
  5060. }, 5e3), e?.click()), "https://jjxy.web2.superchutou.com/#/" == location.href && (ElementObj.$handleSpeedUp.style.display = "none", clearInterval(t), this.getParentIndex())
  5061. } catch (e) {
  5062. }
  5063. }, 1e3)
  5064. }
  5065. }
  5066. getParentIndex() {
  5067. for (var e = $el(".ant-table-tbody").querySelectorAll(".ant-table-tbody tr"), t = 0; t <= e.length - 1; t++) {
  5068. var l = e[t].querySelector(".ant-progress-bg");
  5069. if (parseInt(l.style.width) < 99) {
  5070. setTimeout(() => {
  5071. this._init()
  5072. }, 5e3), e[t].querySelector(".anticon-play-circle").click();
  5073. break
  5074. }
  5075. }
  5076. }
  5077. async getCurrentIndex() {
  5078. let e = -1;
  5079. for (var t = 0; t <= ElementObj.$allTask.length - 1; t++) if (ElementObj.$allTask[t].classList.contains("catalog_playing___3PDRN")) {
  5080. e = t;
  5081. break
  5082. }
  5083. for (t = 0; t <= ElementObj.$allTask.length - 1; t++) if (!ElementObj.$allTask[t].querySelector("i.anticon-check-circle")) {
  5084. this.currentIndex = t;
  5085. break
  5086. }
  5087. -1 == this.currentIndex ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (e != this.currentIndex && ElementObj.$allTask[this.currentIndex].click(), showTip("✅✅✅\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 3e3), setTimeout(() => {
  5088. this.pdPlayFn(location.href)
  5089. }, 4e3))
  5090. }
  5091. getVideoDom() {
  5092. return new Promise(e => {
  5093. let t = 0, l = setInterval(() => {
  5094. t += 1, ElementObj.$video = document.querySelector("video"), ElementObj.$video ? (clearInterval(l), e(1)) : 7 <= t && (clearInterval(l), e(2))
  5095. }, 1e3)
  5096. })
  5097. }
  5098. async play() {
  5099. clearInterval(this.timer2), clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime);
  5100. var e, t = await this.getVideoDom();
  5101. 1 == t && (ElementObj.$video.volume = 0, await sleep(200), (e = document.querySelector(".mvp-toggle-play")) ? e.click() : ElementObj.$video.play(), setTimeout(() => {
  5102. ElementObj.$video.playbackRate = toolOption.accelerator
  5103. }, 3e3), this.listenRebort(), ElementObj.$video.addEventListener("ended", async () => {
  5104. showTip("\u5f53\u524d\u89c6\u9891\u5df2\u64ad\u653e\u5b8c,5\u79d2\u540e\u64ad\u653e\u4e0b\u4e00\u4e2a", 4500), this.playNext()
  5105. }), ElementObj.$video.addEventListener("pause", () => {
  5106. setTimeout(() => {
  5107. ElementObj.$video.volume = 0, ElementObj.$video.play()
  5108. }, 1500)
  5109. })), 2 == t && (showTip("✅✅✅\u8be5\u7ae0\u8282\u4e3a\u6587\u6863,\u5373\u5c06\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a", 3e3), await sleep(3e3), this.playNext())
  5110. }
  5111. listenRebort() {
  5112. this.listenRebortTime = setInterval(() => {
  5113. var e = document.querySelector(".ant-modal-body button"),
  5114. t = document.querySelector(".ant-btn.ant-btn-primary");
  5115. e?.click(), t?.click()
  5116. }, 1e3)
  5117. }
  5118. async playNext() {
  5119. var e;
  5120. this.currentIndex >= ElementObj.$allTask.length - 1 ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (await sleep(4500), this.currentIndex += 1, (e = ElementObj.$allTask[this.currentIndex]) && (e.click(), setTimeout(() => {
  5121. this._o1()
  5122. }, 4e3)))
  5123. }
  5124. }
  5125. jjjxjy.ctxid = 26;
  5126. class hebeiganbu extends Main {
  5127. constructor() {
  5128. super(), this.taskLength = 0, this.currentIndex = -1, this._init()
  5129. }
  5130. async _init() {
  5131. let a = setInterval(async () => {
  5132. try {
  5133. if (ElementObj.$parentNodes = document.querySelectorAll(".hoz_course_row"), ElementObj.$parentNodes.length) {
  5134. clearInterval(a);
  5135. for (var e of ElementObj.$parentNodes) {
  5136. var t = e.querySelector(".h_pro_percent")?.innerText;
  5137. if (parseFloat(t) < 100) {
  5138. setTimeout(() => {
  5139. window.close()
  5140. }, 45e3), MyTool.setValue("homeUrl", location.href), e.querySelector("input").click();
  5141. break
  5142. }
  5143. }
  5144. }
  5145. var l, n = document.querySelector(".user_choise");
  5146. n && n.click(), "/student/class_detail_course.do" == location.pathname && (l = document.querySelector(".hoz_course_row input")) && (clearInterval(a), setTimeout(() => {
  5147. window.close()
  5148. }, 45e3), MyTool.setValue("homeUrl", location.href), l.click()), "/portal/study_play.do" == location.pathname && (ElementObj.$video = document.querySelector("video"), ElementObj.$video) && (clearInterval(a), this._o1())
  5149. } catch (e) {
  5150. }
  5151. }, 1e3)
  5152. }
  5153. async getCurrentIndex() {
  5154. }
  5155. async play() {
  5156. clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime);
  5157. var e = await this.getVideoDom();
  5158. 1 == e && (setTimeout(() => {
  5159. ElementObj.$video = document.querySelector("video"), ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
  5160. ElementObj.$video.playbackRate = toolOption.accelerator
  5161. }, 3e3), ElementObj.$handleSpeedUp.style.background = "#f01414", ElementObj.$handleSpeedUp.innerText = "\u52a0\u901f\u6210\u529f", ElementObj.$video.addEventListener("ended", async () => {
  5162. this.playNext()
  5163. }), ElementObj.$video.addEventListener("pause", () => {
  5164. setTimeout(() => {
  5165. ElementObj.$video.volume = 0, ElementObj.$video.play()
  5166. }, 1500)
  5167. })
  5168. }, 4500), document.querySelector(".user_choise")?.click()), 2 == e && (showTip("✅✅✅\u8be5\u7ae0\u8282\u4e3a\u6587\u6863,\u5373\u5c06\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a", 3e3), await sleep(3e3), this.playNext())
  5169. }
  5170. async playNext() {
  5171. await sleep(2500), location.href = MyTool.getValue("homeUrl")
  5172. }
  5173. }
  5174. class zhuzhouteacher extends Main {
  5175. constructor() {
  5176. super(), this.taskLength = 0, this.currentIndex = -1, this._init()
  5177. }
  5178. async _init() {
  5179. let t = setInterval(async () => {
  5180. try {
  5181. var e = document.querySelectorAll(".antd-pro-pages-my-center-my-center-menuItem")[2];
  5182. e ? (ElementObj.$handleSpeedUp.style.display = "none", clearInterval(t), e.click(), await sleep(1e3), this.getCurrentIndex()) : (ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(t), ElementObj.$handleSpeedUp.style.display = "none", this._o1()))
  5183. } catch (e) {
  5184. }
  5185. }, 1e3)
  5186. }
  5187. async getCurrentIndex() {
  5188. await sleep(2500), ElementObj.$allTask = document.querySelectorAll(".antd-pro-pages-my-center-course-learning-courseWrap>.ant-row");
  5189. for (var e, t = 0; t <= ElementObj.$allTask.length - 1; t++) {
  5190. var l = ElementObj.$allTask[t].querySelector(".ant-progress-text").innerHTML;
  5191. if (parseInt(l) < 99) {
  5192. this.currentIndex = t;
  5193. break
  5194. }
  5195. }
  5196. -1 != this.currentIndex ? (ElementObj.$allTask[this.currentIndex].querySelector(".ant-btn.ant-btn-primary").click(), setTimeout(() => {
  5197. }, 15e3)) : (e = document.querySelector(".ant-pagination-next")).classList.contains("ant-pagination-disabled") ? alert("\u5168\u90e8\u8bfe\u7a0b\u5df2\u5b66\u5b8c") : (e.click(), this.getCurrentIndex())
  5198. }
  5199. async play() {
  5200. clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime);
  5201. var e = await this.getVideoDom();
  5202. 1 == e && (ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
  5203. ElementObj.$video.playbackRate = toolOption.accelerator
  5204. }, 3e3), this.listenVidoeStatus(ElementObj.$video, () => {
  5205. ElementObj.$video.volume = 0, ElementObj.$video.play()
  5206. }), ElementObj.$video.addEventListener("ended", async () => {
  5207. showTip("✅✅✅\u5f53\u524d\u89c6\u9891\u5df2\u64ad\u653e\u5b8c,5\u79d2\u540e\u64ad\u653e\u4e0b\u4e00\u4e2a", 4500), this.playNext()
  5208. }), ElementObj.$video.addEventListener("pause", () => {
  5209. setTimeout(() => {
  5210. ElementObj.$video.volume = 0, ElementObj.$video.play()
  5211. }, 1500)
  5212. })), 2 == e && (showTip("✅✅✅\u8be5\u7ae0\u8282\u4e3a\u6587\u6863,\u5373\u5c06\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a", 3e3), await sleep(3e3), this.playNext())
  5213. }
  5214. async playNext() {
  5215. MyTool.openInTab("http://www.zhuzhouteacher.com/teacheredu/main/mycenter/course-learning"), setTimeout(() => {
  5216. window.close()
  5217. }, 5e3)
  5218. }
  5219. }
  5220. zhuzhouteacher.ctxid = 60;
  5221. class yinghuaxuetang extends Main {
  5222. constructor() {
  5223. super(), this.taskLength = 0, this.currentIndex = -1, this._init()
  5224. }
  5225. async _init() {
  5226. let e = setInterval(async () => {
  5227. try {
  5228. ElementObj.$allTask = document.querySelectorAll(".detmain .list .item a "), ElementObj.$allTask.length && (ElementObj.$handleSpeedUp.style.display = "none", clearInterval(e), this.getCurrentIndex())
  5229. } catch (e) {
  5230. }
  5231. }, 1e3)
  5232. }
  5233. async getCurrentIndex() {
  5234. for (var e = 0; e <= ElementObj.$allTask.length - 1; e++) if (ElementObj.$allTask[e].classList.contains("on")) {
  5235. this.currentIndex = e;
  5236. break
  5237. }
  5238. -1 == this.currentIndex ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (showTip("✅✅✅\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 3e3), setTimeout(() => {
  5239. this._o1()
  5240. }, 4e3))
  5241. }
  5242. async play() {
  5243. clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime);
  5244. var e, t, l = await this.getVideoDom();
  5245. 1 == l && (e = document.querySelector(".promptchmqylqsxtfb"), t = document.querySelector(".mutechtkfjgkqelf"), e && e.click(), t && t.click(), ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
  5246. ElementObj.$video.playbackRate = toolOption.accelerator
  5247. }, 3e3), this.listenVidoeStatus(ElementObj.$video, () => {
  5248. ElementObj.$video.volume = 0, ElementObj.$video.play()
  5249. }), ElementObj.$video.addEventListener("ended", async () => {
  5250. showTip("✅✅✅\u5f53\u524d\u89c6\u9891\u5df2\u64ad\u653e\u5b8c,5\u79d2\u540e\u64ad\u653e\u4e0b\u4e00\u4e2a", 4500), this.playNext()
  5251. }), ElementObj.$video.addEventListener("pause", () => {
  5252. setTimeout(() => {
  5253. ElementObj.$video.volume = 0, ElementObj.$video.play()
  5254. }, 1500)
  5255. })), 2 == l && (showTip("✅✅✅\u8be5\u7ae0\u8282\u4e3a\u6587\u6863,\u5373\u5c06\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a", 3e3), await sleep(3e3), this.playNext())
  5256. }
  5257. async playNext() {
  5258. this.currentIndex >= ElementObj.$allTask.length - 1 ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (await sleep(2500), this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].click(), setTimeout(() => {
  5259. this._o1()
  5260. }, 4e3))
  5261. }
  5262. }
  5263. yinghuaxuetang.ctxid = 60;
  5264. class shanghaikaifangdx extends Main {
  5265. constructor() {
  5266. super(), this.taskLength = 0, this.currentIndex = -1, this._init()
  5267. }
  5268. async _init() {
  5269. let e = setInterval(async () => {
  5270. try {
  5271. ElementObj.$allTask = document.querySelectorAll(".cell_info1 a"), ElementObj.$allTask.length && (ElementObj.$handleSpeedUp.style.display = "none", clearInterval(e), this.getCurrentIndex())
  5272. } catch (e) {
  5273. }
  5274. }, 1e3)
  5275. }
  5276. async getCurrentIndex() {
  5277. for (var e = 0; e <= ElementObj.$allTask.length - 1; e++) if (ElementObj.$allTask[e].classList.contains("active")) {
  5278. this.currentIndex = e;
  5279. break
  5280. }
  5281. -1 == this.currentIndex ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (showTip("✅✅✅\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 3e3), setTimeout(() => {
  5282. this._o1()
  5283. }, 4e3))
  5284. }
  5285. getVideoDom() {
  5286. return new Promise(e => {
  5287. let t = 0, l = setInterval(() => {
  5288. t += 1, ElementObj.$video = document.querySelector("video"), ElementObj.$video ? (clearInterval(l), e(1)) : 7 <= t && (clearInterval(l), e(2))
  5289. }, 1e3)
  5290. })
  5291. }
  5292. async play() {
  5293. clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime);
  5294. var e = await this.getVideoDom();
  5295. 1 == e && (ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
  5296. ElementObj.$video.playbackRate = toolOption.accelerator
  5297. }, 3e3), this.listenVidoeStatus(ElementObj.$video, () => {
  5298. ElementObj.$video.volume = 0, ElementObj.$video.play()
  5299. }), ElementObj.$video.addEventListener("ended", async () => {
  5300. showTip("✅✅✅\u5f53\u524d\u89c6\u9891\u5df2\u64ad\u653e\u5b8c,5\u79d2\u540e\u64ad\u653e\u4e0b\u4e00\u4e2a", 4500), this.playNext()
  5301. }), ElementObj.$video.addEventListener("pause", () => {
  5302. setTimeout(() => {
  5303. ElementObj.$video.volume = 0, ElementObj.$video.play()
  5304. }, 1500)
  5305. })), 2 == e && (showTip("✅✅✅\u8be5\u7ae0\u8282\u4e3a\u6587\u6863,\u5373\u5c06\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a", 3e3), await sleep(3e3), this.playNext())
  5306. }
  5307. listenRebort() {
  5308. this.listenRebortTime = setInterval(() => {
  5309. }, 1e4)
  5310. }
  5311. async playNext() {
  5312. this.currentIndex >= ElementObj.$allTask.length - 1 ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (await sleep(2500), this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].click(), setTimeout(() => {
  5313. this._o1()
  5314. }, 4e3))
  5315. }
  5316. }
  5317. shanghaikaifangdx.ctxid = 60;
  5318. class gzgbjy extends Main {
  5319. constructor() {
  5320. super(), this.taskLength = 0, this.currentIndex = -1, this._init()
  5321. }
  5322. async _init() {
  5323. let e = setInterval(async () => {
  5324. try {
  5325. ElementObj.$allTask = document.querySelectorAll(".tab-content-desc"), ElementObj.$allTask.length && (ElementObj.$handleSpeedUp.style.display = "none", clearInterval(e), this.getCurrentIndex())
  5326. } catch (e) {
  5327. }
  5328. }, 1e3)
  5329. }
  5330. async getCurrentIndex() {
  5331. for (var e = 0; e <= ElementObj.$allTask.length - 1; e++) if (ElementObj.$allTask[e].classList.contains("desc-item-sel")) {
  5332. this.currentIndex = e;
  5333. break
  5334. }
  5335. -1 == this.currentIndex ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (showTip("✅✅✅\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 3e3), setTimeout(() => {
  5336. this._o1()
  5337. }, 4e3))
  5338. }
  5339. getVideoDom() {
  5340. return new Promise(e => {
  5341. let t = 0, l = setInterval(() => {
  5342. t += 1, ElementObj.$video = document.querySelector("video"), ElementObj.$video ? (clearInterval(l), e(1)) : 7 <= t && (clearInterval(l), e(2))
  5343. }, 1e3)
  5344. })
  5345. }
  5346. async play() {
  5347. clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime);
  5348. var e = await this.getVideoDom();
  5349. 1 == e && (ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
  5350. ElementObj.$video.playbackRate = toolOption.accelerator
  5351. }, 3e3), this.listenVidoeStatus(ElementObj.$video, () => {
  5352. ElementObj.$video.volume = 0, ElementObj.$video.play()
  5353. }), ElementObj.$video.addEventListener("ended", async () => {
  5354. showTip("✅✅✅\u5f53\u524d\u89c6\u9891\u5df2\u64ad\u653e\u5b8c,5\u79d2\u540e\u64ad\u653e\u4e0b\u4e00\u4e2a", 4500), this.playNext()
  5355. }), ElementObj.$video.addEventListener("pause", () => {
  5356. setTimeout(() => {
  5357. ElementObj.$video.volume = 0, ElementObj.$video.play()
  5358. }, 1500)
  5359. })), 2 == e && (showTip("✅✅✅\u8be5\u7ae0\u8282\u4e3a\u6587\u6863,\u5373\u5c06\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a", 3e3), await sleep(3e3), this.playNext())
  5360. }
  5361. listenRebort() {
  5362. this.listenRebortTime = setInterval(() => {
  5363. }, 1e4)
  5364. }
  5365. async playNext() {
  5366. this.currentIndex >= ElementObj.$allTask.length - 1 ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (await sleep(2500), this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].click(), setTimeout(() => {
  5367. this._o1()
  5368. }, 4e3))
  5369. }
  5370. }
  5371. gzgbjy.ctxid = 60;
  5372. class guizhoujianshezyjs extends Main {
  5373. constructor() {
  5374. super(), this.taskLength = 0, this.currentIndex = -1, this._init()
  5375. }
  5376. async _init() {
  5377. let e = setInterval(async () => {
  5378. try {
  5379. ElementObj.$allTask = document.querySelectorAll(".catalog div>a"), ElementObj.$allTask.length && (ElementObj.$handleSpeedUp.style.display = "none", clearInterval(e), this.getCurrentIndex())
  5380. } catch (e) {
  5381. }
  5382. }, 1e3)
  5383. }
  5384. async getCurrentIndex() {
  5385. for (var e = 0; e <= ElementObj.$allTask.length - 1; e++) if (ElementObj.$allTask[e].classList.contains("cur")) {
  5386. this.currentIndex = e;
  5387. break
  5388. }
  5389. -1 == this.currentIndex ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (showTip("✅✅✅\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 3e3), setTimeout(() => {
  5390. this._o1()
  5391. }, 4e3))
  5392. }
  5393. getVideoDom() {
  5394. return new Promise(e => {
  5395. let t = 0, l = setInterval(() => {
  5396. t += 1, ElementObj.$video = document.querySelector("video"), ElementObj.$video ? (clearInterval(l), e(1)) : 7 <= t && (clearInterval(l), e(2))
  5397. }, 1e3)
  5398. })
  5399. }
  5400. async play() {
  5401. clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime);
  5402. var e, t = await this.getVideoDom();
  5403. 1 == t && (ElementObj.$video.volume = 0, (e = document.querySelector(".vplay")).classList.contains("vmPause") || e.click(), ElementObj.$video.play(), setTimeout(() => {
  5404. ElementObj.$video.playbackRate = toolOption.accelerator
  5405. }, 3e3), this.listenVidoeStatus(ElementObj.$video, () => {
  5406. ElementObj.$video.volume = 0, ElementObj.$video.play()
  5407. }), ElementObj.$video.addEventListener("ended", async () => {
  5408. showTip("✅✅✅\u5f53\u524d\u89c6\u9891\u5df2\u64ad\u653e\u5b8c,5\u79d2\u540e\u64ad\u653e\u4e0b\u4e00\u4e2a", 4500), this.playNext()
  5409. }), ElementObj.$video.addEventListener("pause", () => {
  5410. setTimeout(() => {
  5411. ElementObj.$video.volume = 0, ElementObj.$video.play()
  5412. }, 1500)
  5413. })), 2 == t && (showTip("✅✅✅\u8be5\u7ae0\u8282\u4e3a\u6587\u6863,\u5373\u5c06\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a", 3e3), await sleep(3e3), this.playNext())
  5414. }
  5415. listenRebort() {
  5416. this.listenRebortTime = setInterval(() => {
  5417. }, 1e4)
  5418. }
  5419. async playNext() {
  5420. this.currentIndex >= ElementObj.$allTask.length - 1 ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (await sleep(2500), this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].click(), setTimeout(() => {
  5421. this._o1()
  5422. }, 4e3))
  5423. }
  5424. }
  5425. guizhoujianshezyjs.ctxid = 60;
  5426. class jixujiaoyuzaixian extends Main {
  5427. constructor() {
  5428. super(), this.taskLength = 0, this.currentIndex = -1, this._init()
  5429. }
  5430. async _init() {
  5431. let e = setInterval(async () => {
  5432. try {
  5433. ElementObj.$allTask = document.querySelectorAll(".video-list-item-span"), ElementObj.$allTask.length && (ElementObj.$handleSpeedUp.style.display = "none", clearInterval(e), this.getCurrentIndex())
  5434. } catch (e) {
  5435. }
  5436. }, 1e3)
  5437. }
  5438. async getCurrentIndex() {
  5439. for (var e = 0; e <= ElementObj.$allTask.length - 1; e++) if (-1 == ElementObj.$allTask[e].innerText.indexOf("\u5df2\u5b66\u5b8c")) {
  5440. this.currentIndex = e;
  5441. break
  5442. }
  5443. -1 == this.currentIndex ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (showTip("✅✅✅\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 3e3), ElementObj.$allTask[this.currentIndex].click(), setTimeout(() => {
  5444. this._o1()
  5445. }, 4e3))
  5446. }
  5447. getVideoDom() {
  5448. return new Promise(e => {
  5449. let t = 0, l = setInterval(() => {
  5450. t += 1, ElementObj.$video = document.querySelector("video"), ElementObj.$video ? (clearInterval(l), e(1)) : 7 <= t && (clearInterval(l), e(2))
  5451. }, 1e3)
  5452. })
  5453. }
  5454. async play() {
  5455. clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime);
  5456. var e = await this.getVideoDom();
  5457. 1 == e && (ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
  5458. ElementObj.$video.playbackRate = toolOption.accelerator
  5459. }, 3e3), this.listenVidoeStatus(ElementObj.$video, () => {
  5460. ElementObj.$video.volume = 0, ElementObj.$video.play()
  5461. }), this.listenRebort(), ElementObj.$video.addEventListener("ended", async () => {
  5462. showTip("✅✅✅\u5f53\u524d\u89c6\u9891\u5df2\u64ad\u653e\u5b8c,5\u79d2\u540e\u64ad\u653e\u4e0b\u4e00\u4e2a", 4500), this.playNext()
  5463. }), ElementObj.$video.addEventListener("pause", () => {
  5464. setTimeout(() => {
  5465. ElementObj.$video.volume = 0, ElementObj.$video.play()
  5466. }, 1500)
  5467. })), 2 == e && (showTip("✅✅✅\u8be5\u7ae0\u8282\u4e3a\u6587\u6863,\u5373\u5c06\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a", 3e3), await sleep(3e3), this.playNext())
  5468. }
  5469. listenRebort() {
  5470. this.listenRebortTime = setInterval(() => {
  5471. document.querySelector(".el-message-box__btns .el-button--primary")?.click()
  5472. }, 1e4)
  5473. }
  5474. async playNext() {
  5475. this.currentIndex >= ElementObj.$allTask.length - 1 ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (await sleep(2500), this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].click(), setTimeout(() => {
  5476. this._o1()
  5477. }, 4e3))
  5478. }
  5479. }
  5480. jixujiaoyuzaixian.ctxid = 60;
  5481. class gzteacher extends Main {
  5482. constructor() {
  5483. super(), this.taskLength = 0, this.currentIndex = -1, this._init()
  5484. }
  5485. async _init() {
  5486. let l = setInterval(async () => {
  5487. try {
  5488. var e = document.querySelectorAll(".collapseactivityName2"),
  5489. t = document.querySelectorAll(".resource-list .res-item");
  5490. ElementObj.$allTask = e.length ? e : t, ElementObj.$allTask.length && (ElementObj.$handleSpeedUp.style.display = "none", clearInterval(l), this.getCurrentIndex())
  5491. } catch (e) {
  5492. }
  5493. }, 1e3)
  5494. }
  5495. async getCurrentIndex() {
  5496. for (var e = 0; e <= ElementObj.$allTask.length - 1; e++) {
  5497. var t = ElementObj.$allTask[e];
  5498. if (t.classList.contains("isActive") || t.classList.contains("active")) {
  5499. this.currentIndex = e;
  5500. break
  5501. }
  5502. }
  5503. -1 == this.currentIndex ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (showTip("✅✅✅\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 3e3), setTimeout(() => {
  5504. this._o1()
  5505. }, 4e3))
  5506. }
  5507. async play() {
  5508. clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime);
  5509. var e = await this.getVideoDom();
  5510. 1 == e && (ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
  5511. ElementObj.$video.playbackRate = toolOption.accelerator
  5512. }, 3e3), this.listenVidoeStatus(ElementObj.$video, () => {
  5513. ElementObj.$video.volume = 0, ElementObj.$video.play()
  5514. }), this.listenRebort(), ElementObj.$video.addEventListener("ended", async () => {
  5515. showTip("✅✅✅\u5f53\u524d\u89c6\u9891\u5df2\u64ad\u653e\u5b8c,5\u79d2\u540e\u64ad\u653e\u4e0b\u4e00\u4e2a", 4500), this.playNext()
  5516. }), ElementObj.$video.addEventListener("pause", () => {
  5517. setTimeout(() => {
  5518. ElementObj.$video.volume = 0, ElementObj.$video.play()
  5519. }, 1500)
  5520. })), 2 == e && (showTip("✅✅✅\u8be5\u7ae0\u8282\u4e3a\u6587\u6863,\u5373\u5c06\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a", 3e3), await sleep(3e3), this.playNext())
  5521. }
  5522. listenRebort() {
  5523. this.listenRebortTime = setInterval(() => {
  5524. var e = document.querySelector(".ant-modal-root");
  5525. e && e.parentNode?.removeChild(e)
  5526. }, 1e4)
  5527. }
  5528. async playNext() {
  5529. if (this.currentIndex += 1, "gdipx.yanxiu.com" == location.host) {
  5530. await sleep(3e3);
  5531. var e = document.querySelector(".btns .next");
  5532. if (!e) return void alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c");
  5533. e.click()
  5534. } else {
  5535. if (this.currentIndex >= ElementObj.$allTask.length - 1) return void alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c");
  5536. await sleep(2500), document.querySelectorAll(".ant-modal-body button")[2]?.click(), document.querySelectorAll(".studycontentBottom button")[2]?.click()
  5537. }
  5538. setTimeout(() => {
  5539. this._o1()
  5540. }, 4e3)
  5541. }
  5542. }
  5543. gzteacher.ctxid = 60;
  5544. class moocxinyingzao extends Main {
  5545. constructor() {
  5546. super(), this.taskLength = 0, this.currentIndex = -1, this._init()
  5547. }
  5548. async _init() {
  5549. let e = setInterval(async () => {
  5550. try {
  5551. ElementObj.$allTask = document.querySelectorAll("#pane-category .resource-list-item"), ElementObj.$allTask.length && (ElementObj.$handleSpeedUp.style.display = "none", clearInterval(e), this.getCurrentIndex())
  5552. } catch (e) {
  5553. }
  5554. }, 1e3)
  5555. }
  5556. async getCurrentIndex() {
  5557. for (var e = 0; e <= ElementObj.$allTask.length - 1; e++) {
  5558. var t = ElementObj.$allTask[e].querySelector(".resource-action span").innerText;
  5559. if (!["\u5df2\u5b8c\u6210", "\u6b63\u5728\u5b66"].includes(t)) {
  5560. this.currentIndex = e;
  5561. break
  5562. }
  5563. }
  5564. -1 == this.currentIndex ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (ElementObj.$allTask[this.currentIndex].click(), showTip("✅✅✅\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 3e3), setTimeout(() => {
  5565. this._o1()
  5566. }, 4e3))
  5567. }
  5568. getVideoDom() {
  5569. return new Promise(e => {
  5570. let t = 0, l = setInterval(() => {
  5571. t += 1, document.querySelector("iframe") ? (clearInterval(l), e(2)) : (ElementObj.$video = document.querySelectorAll("video")[0], ElementObj.$video ? (clearInterval(l), e(1)) : 7 <= t && (clearInterval(l), e(2)))
  5572. }, 1e3)
  5573. })
  5574. }
  5575. async play() {
  5576. clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime);
  5577. var e = await this.getVideoDom();
  5578. 1 == e && (ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
  5579. ElementObj.$video.playbackRate = toolOption.accelerator
  5580. }, 3e3), this.listenVidoeStatus(ElementObj.$video, () => {
  5581. ElementObj.$video.volume = 0, ElementObj.$video.play()
  5582. }), this.listenRebort(), ElementObj.$video.addEventListener("ended", async () => {
  5583. showTip("✅✅✅\u5f53\u524d\u89c6\u9891\u5df2\u64ad\u653e\u5b8c,5\u79d2\u540e\u64ad\u653e\u4e0b\u4e00\u4e2a", 4500), this.playNext()
  5584. }), ElementObj.$video.addEventListener("pause", () => {
  5585. setTimeout(() => {
  5586. ElementObj.$video.volume = 0, ElementObj.$video.play()
  5587. }, 1500)
  5588. })), 2 == e && (showTip("✅✅✅\u8be5\u7ae0\u8282\u4e3a\u6587\u6863,\u5373\u5c06\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a", 3e3), await sleep(3e3), this.playNext())
  5589. }
  5590. listenRebort() {
  5591. this.listenRebortTime = setInterval(() => {
  5592. var e = document.querySelector(".ant-modal-root");
  5593. e && e.parentNode?.removeChild(e)
  5594. }, 1e4)
  5595. }
  5596. async playNext() {
  5597. this.getCurrentIndex()
  5598. }
  5599. }
  5600. moocxinyingzao.ctxid = 60;
  5601. class zhejiangzjelib extends Main {
  5602. constructor() {
  5603. super(), this.taskLength = 0, this.currentIndex = -1, this._init()
  5604. }
  5605. async _init() {
  5606. }
  5607. async getCurrentIndex() {
  5608. ElementObj.$handleSpeedUp.style.display = "none", ElementObj.$allTask = document.querySelector("#iframepage").contentDocument.querySelectorAll(".ncells");
  5609. for (var e = 0; e <= ElementObj.$allTask.length - 1; e++) if (!ElementObj.$allTask[e].querySelector(".roundpointStudent.blue")) {
  5610. this.currentIndex = e;
  5611. break
  5612. }
  5613. -1 == this.currentIndex ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (ElementObj.$allTask[this.currentIndex].querySelector("a").click(), showTip("✅✅✅\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 3e3), setTimeout(() => {
  5614. this.spanKeyCount()
  5615. }, 4e3))
  5616. }
  5617. getVideoDom() {
  5618. return new Promise(e => {
  5619. let t = 0, l = setInterval(() => {
  5620. t += 1, ElementObj.$video = document.querySelector("#iframepage").contentDocument.querySelector("#iframe").contentDocument.querySelector("iframe").contentDocument.querySelector("video"), ElementObj.$video ? (clearInterval(l), e(1)) : 7 <= t && (clearInterval(l), e(2))
  5621. }, 1e3)
  5622. })
  5623. }
  5624. async _o1(e) {
  5625. this.getCurrentIndex()
  5626. }
  5627. async spanKeyCount() {
  5628. var e = localStorage.getItem("mytoolkey");
  5629. e ? 200 == (e = await axfedata({
  5630. method: "GET",
  5631. url: _b + (`/speedup?toolkey=${e}&t=2&canuse=${toolOption.SchoolType}&h=${location.host}&fingerprint=${this.fingerprint}&v=` + version)
  5632. })).code ? this.play() : showTip("🔉🔉🔉" + e.message, 5e3, !0) : (alert("\u8bf7\u5148\u8d2d\u4e70key"), window.open(_bt))
  5633. }
  5634. async play() {
  5635. clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime);
  5636. var e = await this.getVideoDom();
  5637. 1 == e && (ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
  5638. ElementObj.$video.playbackRate = toolOption.accelerator
  5639. }, 3e3), this.listenVidoeStatus(ElementObj.$video, () => {
  5640. ElementObj.$video.volume = 0, ElementObj.$video.play()
  5641. }), this.listenRebort(), ElementObj.$video.addEventListener("ended", async () => {
  5642. showTip("✅✅✅\u5f53\u524d\u89c6\u9891\u5df2\u64ad\u653e\u5b8c,5\u79d2\u540e\u64ad\u653e\u4e0b\u4e00\u4e2a", 4500), this.playNext()
  5643. }), ElementObj.$video.addEventListener("pause", () => {
  5644. setTimeout(() => {
  5645. ElementObj.$video.volume = 0, ElementObj.$video.play()
  5646. }, 1500)
  5647. })), 2 == e && (showTip("✅✅✅\u8be5\u7ae0\u8282\u4e3a\u6587\u6863,\u5373\u5c06\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a", 3e3), await sleep(3e3), this.playNext())
  5648. }
  5649. listenRebort() {
  5650. this.listenRebortTime = setInterval(() => {
  5651. document.querySelector("#iframepage").contentDocument.querySelector(".ncells .currents").querySelector(".roundpointStudent.blue") && this.playNext()
  5652. }, 1e4)
  5653. }
  5654. async playNext() {
  5655. var e;
  5656. this.currentIndex >= ElementObj.$allTask.length - 1 ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (this.currentIndex += 1, document.querySelector("#iframepage").contentDocument.querySelector(".orientationright ")?.click(), e = document.querySelector("#iframepage").contentDocument, await sleep(2e3), e.querySelector(".wconter a")?.click(), setTimeout(() => {
  5657. this.spanKeyCount()
  5658. }, 4e3))
  5659. }
  5660. }
  5661. zhejiangzjelib.ctxid = 60;
  5662. class dongbeishifandaxue extends Main {
  5663. constructor() {
  5664. super(), this.taskLength = 0, this.currentIndex = -1, this._init()
  5665. }
  5666. async _init() {
  5667. let e = setInterval(async () => {
  5668. try {
  5669. ElementObj.$allTask = document.querySelectorAll(".course-list-con .ovd"), ElementObj.$allTask.length && (ElementObj.$handleSpeedUp.style.display = "none", clearInterval(e), this.getCurrentIndex())
  5670. } catch (e) {
  5671. }
  5672. }, 1e3)
  5673. }
  5674. async getCurrentIndex() {
  5675. for (var e = 0; e <= ElementObj.$allTask.length - 1; e++) if (ElementObj.$allTask[e].classList.contains("cur")) {
  5676. this.currentIndex = e;
  5677. break
  5678. }
  5679. -1 == this.currentIndex ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (showTip("✅✅✅\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 3e3), setTimeout(() => {
  5680. this._o1()
  5681. }, 4e3))
  5682. }
  5683. async play() {
  5684. clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime);
  5685. var e = await this.getVideoDom();
  5686. 1 == e && (ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
  5687. ElementObj.$video.playbackRate = toolOption.accelerator
  5688. }, 3e3), this.listenVidoeStatus(ElementObj.$video, () => {
  5689. ElementObj.$video.volume = 0, ElementObj.$video.play()
  5690. }), this.listenRebort(), ElementObj.$video.addEventListener("ended", async () => {
  5691. showTip("✅✅✅\u5f53\u524d\u89c6\u9891\u5df2\u64ad\u653e\u5b8c,5\u79d2\u540e\u64ad\u653e\u4e0b\u4e00\u4e2a", 4500), this.playNext()
  5692. }), ElementObj.$video.addEventListener("pause", () => {
  5693. setTimeout(() => {
  5694. ElementObj.$video.volume = 0, ElementObj.$video.play()
  5695. }, 1500)
  5696. })), 2 == e && (showTip("✅✅✅\u8be5\u7ae0\u8282\u4e3a\u6587\u6863,\u5373\u5c06\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a", 3e3), await sleep(3e3), this.playNext())
  5697. }
  5698. listenRebort() {
  5699. this.listenRebortTime = setInterval(() => {
  5700. var e = document.querySelector(".ant-modal-root");
  5701. e && e.parentNode?.removeChild(e)
  5702. }, 1e4)
  5703. }
  5704. async playNext() {
  5705. this.currentIndex >= ElementObj.$allTask.length - 1 ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (await sleep(2500), this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].querySelector("a")?.click(), setTimeout(() => {
  5706. this._o1()
  5707. }, 6e3))
  5708. }
  5709. }
  5710. dongbeishifandaxue.ctxid = 60;
  5711. class qzjystudy extends Main {
  5712. constructor() {
  5713. super(), this.taskLength = 0, this.currentIndex = -1, this._init()
  5714. }
  5715. async _init() {
  5716. let t = setInterval(async () => {
  5717. try {
  5718. var e;
  5719. ElementObj.$allTask = document.querySelectorAll(".videoList .item"), ElementObj.$allTask.length ? (ElementObj.$handleSpeedUp.style.display = "none", clearInterval(t), this.getCurrentIndex()) : (e = document.querySelector("iframe")) ? (ElementObj.$handleSpeedUp.style.display = "none", clearInterval(t), location.href = e.src) : (ElementObj.$allTask = document.querySelectorAll(".videoList .item"), ElementObj.$allTask.length && (ElementObj.$handleSpeedUp.style.display = "none", clearInterval(t), this.getCurrentIndex()))
  5720. } catch (e) {
  5721. }
  5722. }, 1e3)
  5723. }
  5724. async getCurrentIndex() {
  5725. for (var t = 0; t <= ElementObj.$allTask.length - 1; t++) {
  5726. var l = ElementObj.$allTask[t];
  5727. let e;
  5728. if (e = ["jnrcpx.qzjystudy.com", "jnzjstu.qzjystudy.com"].includes(location.host) ? (e = (l.querySelector(".text")?.nextSibling).innerText).match(/\((.+)\)/)[1] : l.querySelectorAll("span")[1].innerText, parseInt(e) < 99) {
  5729. this.currentIndex = t;
  5730. break
  5731. }
  5732. }
  5733. -1 == this.currentIndex ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (ElementObj.$allTask[this.currentIndex].click(), showTip("✅✅✅\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 3e3), setTimeout(() => {
  5734. this._o1()
  5735. }, 4e3))
  5736. }
  5737. async play() {
  5738. clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime);
  5739. var e = await this.getVideoDom();
  5740. 1 == e && (ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
  5741. ElementObj.$video.playbackRate = toolOption.accelerator
  5742. }, 3e3), this.listenVidoeStatus(ElementObj.$video, () => {
  5743. ElementObj.$video.volume = 0, ElementObj.$video.play()
  5744. }), this.listenRebort(), ElementObj.$video.addEventListener("ended", async () => {
  5745. showTip("✅✅✅\u5f53\u524d\u89c6\u9891\u5df2\u64ad\u653e\u5b8c,5\u79d2\u540e\u64ad\u653e\u4e0b\u4e00\u4e2a", 4500), this.playNext()
  5746. }), ElementObj.$video.addEventListener("pause", () => {
  5747. setTimeout(() => {
  5748. ElementObj.$video.volume = 0, ElementObj.$video.play()
  5749. }, 1500)
  5750. })), 2 == e && (showTip("✅✅✅\u8be5\u7ae0\u8282\u4e3a\u6587\u6863,\u5373\u5c06\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a", 3e3), await sleep(3e3), this.playNext())
  5751. }
  5752. listenRebort() {
  5753. this.listenRebortTime = setInterval(() => {
  5754. var e = document.querySelector(".ant-modal-root");
  5755. e && e.parentNode?.removeChild(e)
  5756. }, 1e4)
  5757. }
  5758. async playNext() {
  5759. this.currentIndex >= ElementObj.$allTask.length - 1 ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (await sleep(2500), this.currentIndex += 1, ElementObj.$allTask[this.currentIndex]?.click(), setTimeout(() => {
  5760. this._o1()
  5761. }, 6e3))
  5762. }
  5763. }
  5764. qzjystudy.ctxid = 60;
  5765. class GlivePro extends Main {
  5766. constructor() {
  5767. super(), this.taskLength = 0, this.currentIndex = -1, this._init()
  5768. }
  5769. async _init() {
  5770. let l = setInterval(async () => {
  5771. try {
  5772. var e = document.querySelectorAll(".animated .syllabus-tree-node-title"),
  5773. t = document.querySelectorAll(".aside-node-child-inner .aside-node-child-inner li");
  5774. (e.length || t.length) && (ElementObj.$handleSpeedUp.style.display = "none", ElementObj.$allTask = e.length ? e : t, clearInterval(l), this.getCurrentIndex())
  5775. } catch (e) {
  5776. }
  5777. }, 1e3)
  5778. }
  5779. async getCurrentIndex() {
  5780. for (var e = 0; e <= ElementObj.$allTask.length - 1; e++) {
  5781. var t = ElementObj.$allTask[e];
  5782. if ("cloud.gaodun.com" == location.host) {
  5783. if (!t.querySelector("i").classList.contains("aside-resource-progress2")) {
  5784. this.currentIndex = e;
  5785. break
  5786. }
  5787. } else if (t.classList.contains("is-active")) {
  5788. this.currentIndex = e;
  5789. break
  5790. }
  5791. }
  5792. -1 == this.currentIndex ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : ("cloud.gaodun.com" == location.host && ElementObj.$allTask[this.currentIndex]?.click(), showTip("✅✅✅\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 3e3), setTimeout(() => {
  5793. this._o1()
  5794. }, 4e3))
  5795. }
  5796. async play() {
  5797. clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime);
  5798. var e = await this.getVideoDom();
  5799. 1 == e && (ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
  5800. ElementObj.$video.playbackRate = toolOption.accelerator
  5801. }, 3e3), this.listenVidoeStatus(ElementObj.$video, () => {
  5802. ElementObj.$video.volume = 0, ElementObj.$video.play()
  5803. }), this.listenRebort(), ElementObj.$video.addEventListener("pause", () => {
  5804. setTimeout(() => {
  5805. ElementObj.$video.volume = 0, ElementObj.$video.play()
  5806. }, 1500)
  5807. })), 2 == e && (showTip("✅✅✅\u8be5\u7ae0\u8282\u4e3a\u6587\u6863,\u5373\u5c06\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a", 3e3), await sleep(3e3), this.playNext())
  5808. }
  5809. listenRebort() {
  5810. this.listenRebortTime = setInterval(() => {
  5811. parseInt(ElementObj.$video.duration) <= Math.ceil(ElementObj.$video.currentTime) && (showTip("✅✅✅\u5f53\u524d\u89c6\u9891\u5df2\u64ad\u653e\u5b8c,5\u79d2\u540e\u64ad\u653e\u4e0b\u4e00\u4e2a", 4500), this.playNext())
  5812. }, 3e3)
  5813. }
  5814. async playNext() {
  5815. this.currentIndex >= ElementObj.$allTask.length - 1 ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (await sleep(2500), "cloud.gaodun.com" == location.host ? location.reload() : (this.currentIndex += 1, ElementObj.$allTask[this.currentIndex]?.click(), setTimeout(() => {
  5816. this._o1()
  5817. }, 4500)))
  5818. }
  5819. }
  5820. GlivePro.ctxid = 60;
  5821. class gaodengxueli extends Main {
  5822. constructor() {
  5823. super(), this.taskLength = 0, this.currentIndex = -1, this._init()
  5824. }
  5825. async _init() {
  5826. let e = setInterval(async () => {
  5827. try {
  5828. ElementObj.$allTask = document.querySelectorAll(".course-list-txt dd i"), ElementObj.$allTask.length && (ElementObj.$handleSpeedUp.style.display = "none", clearInterval(e), this.getCurrentIndex())
  5829. } catch (e) {
  5830. }
  5831. }, 1e3)
  5832. }
  5833. async getCurrentIndex() {
  5834. for (var e = 0; e <= ElementObj.$allTask.length - 1; e++) if (ElementObj.$allTask[e].classList.contains("fa-youtube-play")) {
  5835. this.currentIndex = e;
  5836. break
  5837. }
  5838. -1 == this.currentIndex ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (ElementObj.$allTask[this.currentIndex].parentElement.click(), showTip("✅✅✅\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 3e3), setTimeout(() => {
  5839. this._o1()
  5840. }, 4e3))
  5841. }
  5842. async play() {
  5843. clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime);
  5844. var e = await this.getVideoDom();
  5845. 1 == e && (ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
  5846. ElementObj.$video.playbackRate = toolOption.accelerator
  5847. }, 3e3), this.listenVidoeStatus(ElementObj.$video, () => {
  5848. ElementObj.$video.volume = 0, ElementObj.$video.play()
  5849. }), this.listenRebort(), ElementObj.$video.addEventListener("ended", async () => {
  5850. showTip("✅✅✅\u5f53\u524d\u89c6\u9891\u5df2\u64ad\u653e\u5b8c,5\u79d2\u540e\u64ad\u653e\u4e0b\u4e00\u4e2a", 4500), this.playNext()
  5851. }), ElementObj.$video.addEventListener("pause", () => {
  5852. setTimeout(() => {
  5853. ElementObj.$video.volume = 0, ElementObj.$video.play()
  5854. }, 1500)
  5855. })), 2 == e && (showTip("✅✅✅\u8be5\u7ae0\u8282\u4e3a\u6587\u6863,\u5373\u5c06\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a", 3e3), await sleep(3e3), this.playNext())
  5856. }
  5857. listenRebort() {
  5858. this.listenRebortTime = setInterval(() => {
  5859. var e = document.querySelector(".ant-modal-root");
  5860. e && e.parentNode?.removeChild(e)
  5861. }, 1e4)
  5862. }
  5863. async playNext() {
  5864. this.currentIndex >= ElementObj.$allTask.length - 1 ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (await sleep(2500), this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].parentElement?.click(), setTimeout(() => {
  5865. this._o1()
  5866. }, 6e3))
  5867. }
  5868. }
  5869. gaodengxueli.ctxid = 60;
  5870. class henanzhuanjizaixian extends Main {
  5871. constructor() {
  5872. super(), this.taskLength = 0, this.currentIndex = -1, this.timer = null, this._init()
  5873. }
  5874. async _init() {
  5875. let e = setInterval(async () => {
  5876. try {
  5877. ElementObj.$allTask = document.querySelectorAll(".videoLi"), ElementObj.$allTask.length && (clearInterval(e), this.getCurrentIndex())
  5878. } catch (e) {
  5879. }
  5880. }, 1e3)
  5881. }
  5882. async getCurrentIndex() {
  5883. for (var e = 0; e <= ElementObj.$allTask.length - 1; e++) if (ElementObj.$allTask[e].classList.contains("active")) {
  5884. this.currentIndex = e;
  5885. break
  5886. }
  5887. -1 == this.currentIndex ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (showTip("✅✅✅\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 5e3), setTimeout(() => {
  5888. this._o1()
  5889. }, 5500))
  5890. }
  5891. getVideoDom() {
  5892. return new Promise(e => {
  5893. let t = 0, l = setInterval(() => {
  5894. t += 1, ElementObj.$video = document.querySelector("video.pv-video"), ElementObj.$video ? (clearInterval(l), e(1)) : (ElementObj.$canvas = document.querySelector("#bplayer-ffplayer"), ElementObj.$canvas ? (clearInterval(l), e(3)) : 7 <= t && (clearInterval(l), e(2)))
  5895. }, 1e3)
  5896. })
  5897. }
  5898. async play() {
  5899. clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime), clearInterval(this.timer), ElementObj.$allTask[this.currentIndex].click();
  5900. var e, t = await this.getVideoDom();
  5901. 1 == t && (ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
  5902. ElementObj.$video.playbackRate = toolOption.accelerator
  5903. }, 3e3), this.listenRebort(), this.listenPlayTime(1)), 3 == t && ("0" == (e = document.querySelector(".bplayer-volume-control")).getAttribute("data-show") && e.querySelector(".icon").click(), await sleep(3e3), "stop" != (e = document.querySelector(".pv-iconfont") || document.querySelector(".bplayer-play-btn")).querySelector("svg").id && e.click(), this.listenPlayTime(3)), 1 != t && 3 != t || (e = document.querySelector(".live.left"), this.changeHtml(e)), 2 == t && (showTip("✅✅✅\u8be5\u7ae0\u8282\u4e3a\u6587\u6863,\u5373\u5c06\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a", 3e3), await sleep(3e3), this.playNext())
  5904. }
  5905. async play2() {
  5906. clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime), clearInterval(this.timer);
  5907. await this.getVideoDom();
  5908. var e = document.querySelector("button.pv-volumebtn");
  5909. e.classList.contains("pv-icon-volumenone") || e.click(), await sleep(500), document.querySelector(".pv-iconfont").click(), setTimeout(() => {
  5910. ElementObj.$video.playbackRate = toolOption.accelerator
  5911. }, 3e3), this.listenRebort(), ElementObj.$video.addEventListener("ended", async () => {
  5912. showTip("✅✅✅\u5f53\u524d\u89c6\u9891\u5df2\u64ad\u653e\u5b8c,5\u79d2\u540e\u64ad\u653e\u4e0b\u4e00\u4e2a", 4500), this.playNext()
  5913. })
  5914. }
  5915. listenRebort() {
  5916. this.listenRebortTime = setInterval(() => {
  5917. }, 1e4)
  5918. }
  5919. listenPlayTime(n) {
  5920. this.timer = setInterval(() => {
  5921. var l = ElementObj.$allTask[this.currentIndex].querySelector(".progress-bar").style.width;
  5922. if (99 <= parseInt(l)) showTip("✅✅✅\u5f53\u524d\u89c6\u9891\u5df2\u64ad\u653e\u5b8c,5\u79d2\u540e\u64ad\u653e\u4e0b\u4e00\u4e2a", 4500), this.playNext(); else {
  5923. let e, t;
  5924. if (1 == n && (e = document.querySelector(".pv-time-current").innerText, t = document.querySelector(".pv-time-duration").innerText), 3 == n) {
  5925. l = document.querySelector(".played-time");
  5926. if (!l) return void this.play2();
  5927. e = l.innerText, t = document.querySelector(".total-time").innerText
  5928. }
  5929. this.addInfo(`🔊🔊🔊\u76d1\u6d4b\u5230\u89c6\u9891\u6b63\u5728\u5b66\u4e60\u4e2d\u5df2\u6210\u529f\u5b66\u4e60${e},\u9700\u5b66\u4e60` + t), t == e && (showTip("✅✅✅\u5f53\u524d\u89c6\u9891\u5df2\u64ad\u653e\u5b8c,5\u79d2\u540e\u64ad\u653e\u4e0b\u4e00\u4e2a", 4500), this.playNext())
  5930. }
  5931. }, 1e4)
  5932. }
  5933. async playNext() {
  5934. this.currentIndex >= ElementObj.$allTask.length - 1 ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (await sleep(2500), setTimeout(() => {
  5935. location.reload()
  5936. }, 3e3), this.currentIndex += 1, ElementObj.$allTask[this.currentIndex]?.click())
  5937. }
  5938. }
  5939. henanzhuanjizaixian.ctxid = 60;
  5940. class hunannmdxs extends Main {
  5941. constructor() {
  5942. super(), this.taskLength = 0, this.currentIndex = -1, this._init()
  5943. }
  5944. async _init() {
  5945. let e = setInterval(async () => {
  5946. try {
  5947. document.querySelector(".pull-right>a") && (ElementObj.$handleSpeedUp.style.display = "none", clearInterval(e), this._o1())
  5948. } catch (e) {
  5949. }
  5950. }, 1e3)
  5951. }
  5952. async getCurrentIndex() {
  5953. for (var e = 0; e <= ElementObj.$allTask.length - 1; e++) if (ElementObj.$allTask[e].classList.contains("fa-youtube-play")) {
  5954. this.currentIndex = e;
  5955. break
  5956. }
  5957. -1 == this.currentIndex ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (ElementObj.$allTask[this.currentIndex].parentElement.click(), showTip("✅✅✅\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 3e3), setTimeout(() => {
  5958. this._o1()
  5959. }, 4e3))
  5960. }
  5961. getVideoDom() {
  5962. return new Promise(e => {
  5963. let t = 0, l = setInterval(() => {
  5964. t += 1, ElementObj.$sigleBtn = document.querySelector(".forumaddnew form button.btn.btn-secondary"), ElementObj.$sigleBtn ? (clearInterval(l), e(3)) : (ElementObj.$video = document.querySelectorAll("video")[0], ElementObj.$video ? (clearInterval(l), e(1)) : 7 <= t && (clearInterval(l), e(2)))
  5965. }, 1e3)
  5966. })
  5967. }
  5968. async play() {
  5969. clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime);
  5970. var e = await this.getVideoDom();
  5971. 1 == e && (ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
  5972. ElementObj.$video.playbackRate = toolOption.accelerator
  5973. }, 3e3), this.listenVidoeStatus(ElementObj.$video, () => {
  5974. ElementObj.$video.volume = 0, ElementObj.$video.play()
  5975. }), this.listenRebort(), ElementObj.$video.addEventListener("ended", async () => {
  5976. showTip("✅✅✅\u5f53\u524d\u89c6\u9891\u5df2\u64ad\u653e\u5b8c,5\u79d2\u540e\u64ad\u653e\u4e0b\u4e00\u4e2a", 4500), this.playNext()
  5977. }), ElementObj.$video.addEventListener("pause", () => {
  5978. setTimeout(() => {
  5979. ElementObj.$video.volume = 0, ElementObj.$video.play()
  5980. }, 1500)
  5981. })), 3 == e && (showTip("✅✅✅\u8be5\u7ae0\u8282\u4e3a\u6587\u6863,\u5373\u5c06\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a", 3e3), await sleep(3e3), this.playNext()), 2 == e && (showTip("✅✅✅\u8be5\u7ae0\u8282\u4e3a\u6587\u6863,\u5373\u5c06\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a", 3e3), await sleep(3e3), this.playNext())
  5982. }
  5983. listenRebort() {
  5984. this.listenRebortTime = setInterval(() => {
  5985. var e = document.querySelector(".ant-modal-root");
  5986. e && e.parentNode?.removeChild(e)
  5987. }, 1e4)
  5988. }
  5989. async playNext() {
  5990. var e = document.querySelector(".pull-right>a");
  5991. e ? (await sleep(2500), e?.click(), setTimeout(() => {
  5992. this._o1()
  5993. }, 5e3)) : alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c")
  5994. }
  5995. }
  5996. hunannmdxs.ctxid = 60;
  5997. class bainianshuren extends Main {
  5998. constructor() {
  5999. super(), this.taskLength = 0, this.currentIndex = -1, this.swiperIndex = 0, this._init()
  6000. }
  6001. async _init() {
  6002. let e = setInterval(async () => {
  6003. try {
  6004. ElementObj.$parentNodes = document.querySelectorAll(".project-course li"), ElementObj.$parentNodes.length ? (clearInterval(e), ElementObj.$handleSpeedUp.style.display = "none", this.getParentIndex()) : (ElementObj.$allTask = document.querySelectorAll(".el-tree-node"), ElementObj.$allTask.length && (clearInterval(e), ElementObj.$handleSpeedUp.style.display = "none", this.getCurrentIndex()))
  6005. } catch (e) {
  6006. }
  6007. }, 1e3)
  6008. }
  6009. async getParentIndex() {
  6010. for (var e = 0; e <= ElementObj.$parentNodes.length - 1; e++) {
  6011. var t = ElementObj.$parentNodes[e], l = t.querySelector(".project-courseTitle span").innerText;
  6012. if ("\u5b66\u4e60\u4e2d" == l || "\u672a\u5b66\u4e60" == l) {
  6013. MyTool.setValue("homeUrl", location.href), t.querySelector("span.project-courseButton").click();
  6014. break
  6015. }
  6016. }
  6017. }
  6018. async getCurrentIndex() {
  6019. await sleep(2500);
  6020. for (var e = 0; e <= ElementObj.$allTask.length - 1; e++) if ("\u5df2\u5b66\u4e60" != ElementObj.$allTask[e].querySelector("i").title.trim()) {
  6021. this.currentIndex = e;
  6022. break
  6023. }
  6024. -1 == this.currentIndex ? (location.href = "https://v3.dconline.net.cn/student.html#/project/index?project_id=13844", setTimeout(() => {
  6025. location.reload()
  6026. }, 3e3)) : (ElementObj.$allTask[e].querySelector(".nav_menu").click(), await sleep(2500), 1 == await this.getSwiperItem() ? this.getSwiperIndex() : this._o1(), showTip("✅✅✅\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 3e3))
  6027. }
  6028. async getSwiperIndex() {
  6029. for (var e = 0; e <= ElementObj.$swiperItem.length - 1; e++) if ("\u5df2\u5b66\u4e60" != ElementObj.$swiperItem[e].querySelector(".video-status").innerText.trim()) {
  6030. this.swiperIndex = e;
  6031. break
  6032. }
  6033. ElementObj.$swiperItem[this.swiperIndex].querySelector("i.el-icon-video-play").click(), await sleep(2500), document.querySelector(".el-message-box__btns .el-button--primary")?.click(), setTimeout(() => {
  6034. this._o1()
  6035. }, 4e3)
  6036. }
  6037. async getSwiperItem() {
  6038. return new Promise(e => {
  6039. let t = 0, l = setInterval(() => {
  6040. t += 1, ElementObj.$swiperItem = document.querySelectorAll(".public-articleSlideList"), ElementObj.$swiperItem.length ? (clearInterval(l), e(1)) : 3 <= t && (clearInterval(l), e(2))
  6041. }, 1e3)
  6042. })
  6043. }
  6044. getVideoDom() {
  6045. return new Promise(e => {
  6046. let t = 0, l = setInterval(() => {
  6047. t += 1, ElementObj.$video = document.querySelector("video"), ElementObj.$video ? (clearInterval(l), e(1)) : 7 <= t && (clearInterval(l), e(2))
  6048. }, 1e3)
  6049. })
  6050. }
  6051. async play() {
  6052. clearInterval(this.timer), clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime);
  6053. var e, t = await this.getVideoDom();
  6054. 1 == t && (ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
  6055. ElementObj.$video.playbackRate = 1
  6056. }, 3e3), e = document.querySelector("#video"), this.changeHtml(e), this.listenPlayTime(), this.listenRebort(), this.listenVidoeStatus(ElementObj.$video, () => {
  6057. ElementObj.$video.volume = 0, ElementObj.$video.play()
  6058. }), ElementObj.$video.addEventListener("ended", async () => {
  6059. this.playNext()
  6060. }), ElementObj.$video.addEventListener("pause", () => {
  6061. setTimeout(() => {
  6062. ElementObj.$video.volume = 0, ElementObj.$video.play()
  6063. }, 1500)
  6064. })), 2 == t && (showTip("✅✅✅\u8be5\u7ae0\u8282\u4e3a\u6587\u6863,\u5373\u5c06\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a", 3e3), await sleep(3e3), this.playNext())
  6065. }
  6066. async playNext() {
  6067. var e;
  6068. this.currentIndex >= ElementObj.$allTask.length - 1 ? (e = MyTool.getValue("homeUrl"), location.href = e, setTimeout(() => {
  6069. location.reload()
  6070. }, 3e3)) : (setTimeout(() => {
  6071. location.reload()
  6072. }, 3e3), setTimeout(() => {
  6073. this._o1()
  6074. }, 4e3))
  6075. }
  6076. listenRebort() {
  6077. this.listenRebortTime = setInterval(() => {
  6078. var e = document.querySelector(".el-dialog__body");
  6079. e && (e.style.display = "none")
  6080. }, 3e3)
  6081. }
  6082. listenPlayTime() {
  6083. showTip("🔉\u8bfe\u4ef6\u6b63\u5728\u5b66\u4e60,\u8bf7\u52a1\u70b9\u51fb\u6216\u957f\u65f6\u95f4\u9690\u85cf");
  6084. let l = 0;
  6085. this.timer = setInterval(() => {
  6086. l += 1;
  6087. var e = (ElementObj.$video.currentTime / 60).toFixed(2),
  6088. t = (ElementObj.$video.duration / 60).toFixed(2);
  6089. this.addInfo(`\u540e\u53f0\u5b66\u4e60${l}\u6b21\u5f53\u524d\u72b6\u6001\u6b63\u5728\u5b66\u4e60\u5df2\u64ad\u653e${e}\u5206\u949f\u89c6\u9891\u603b\u65f6\u957f\u4e3a${t}\u5206\u949f`)
  6090. }, 3e3)
  6091. }
  6092. }
  6093. bainianshuren.ctxid = 60;
  6094. class dyyxlearning extends Main {
  6095. constructor() {
  6096. super(), this.taskLength = 0, this.currentIndex = -1, this._init()
  6097. }
  6098. async _init() {
  6099. let e = setInterval(async () => {
  6100. try {
  6101. ElementObj.$allTask = document.querySelectorAll(".course-list ul ul .videoLi"), ElementObj.$allTask.length && (ElementObj.$handleSpeedUp.style.display = "none", clearInterval(e), this.getCurrentIndex())
  6102. } catch (e) {
  6103. }
  6104. }, 1e3)
  6105. }
  6106. async getCurrentIndex() {
  6107. for (var e = 0; e <= ElementObj.$allTask.length - 1; e++) if (ElementObj.$allTask[e].classList.contains("active")) {
  6108. this.currentIndex = e;
  6109. break
  6110. }
  6111. -1 == this.currentIndex ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (showTip("✅✅✅\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 3e3), setTimeout(() => {
  6112. this._o1()
  6113. }, 4e3))
  6114. }
  6115. getVideoDom() {
  6116. return new Promise(e => {
  6117. let t = 0, l = setInterval(() => {
  6118. t += 1, ElementObj.$video = document.querySelectorAll("video")[1], ElementObj.$video ? (clearInterval(l), e(1)) : 7 <= t && (clearInterval(l), e(2))
  6119. }, 1e3)
  6120. })
  6121. }
  6122. async play() {
  6123. clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime);
  6124. var e = await this.getVideoDom(), t = location.href.match("myClassId=(.+)")[1],
  6125. l = (await this.getClassList(t)).attribute.data.myClassCourseRPList[0].videoRPs[this.currentIndex],
  6126. l = `videoId=${l.videoId}&isUse=1&startSecond=&myClassCourseVideoId=` + l.myClassCourseVideoId,
  6127. t = await this.getVideoTopic(t, l);
  6128. 1 == e && (ElementObj.$video.volume = 0, (l = document.querySelector(".ccToggleBtn")).classList.contains("ccH5TogglePause") || l.click(), setTimeout(() => {
  6129. ElementObj.$video.playbackRate = toolOption.accelerator
  6130. }, 3e3), this.listenRebort(t.attribute.data), ElementObj.$video.addEventListener("ended", async () => {
  6131. showTip("✅✅✅\u5f53\u524d\u89c6\u9891\u5df2\u64ad\u653e\u5b8c,5\u79d2\u540e\u64ad\u653e\u4e0b\u4e00\u4e2a", 4500), this.playNext()
  6132. }), ElementObj.$video.addEventListener("pause", () => {
  6133. setTimeout(() => {
  6134. ElementObj.$video.volume = 0;
  6135. var e = document.querySelector(".ccToggleBtn");
  6136. e.classList.contains("ccH5TogglePause") || e.click()
  6137. }, 3500)
  6138. })), 2 == e && (showTip("✅✅✅\u8be5\u7ae0\u8282\u4e3a\u6587\u6863,\u5373\u5c06\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a", 3e3), await sleep(3e3), this.playNext())
  6139. }
  6140. listenRebort(i) {
  6141. this.listenRebortTime = setInterval(async () => {
  6142. var e = document.querySelector("#ccJumpOver"), t = document.querySelector(".pv-ask-modal-wrap");
  6143. if (e || t) {
  6144. let t = document.querySelector(".ccProblem .text").innerText;
  6145. var n = i.find(e => e.videoQuestionEntitySet[0].questionName == t);
  6146. let l = -1;
  6147. for (let e = 0; e <= n.videoQuestionEntitySet[0].videoAnswerEntitySet.length - 1; e++) {
  6148. var a = n.videoQuestionEntitySet[0].videoAnswerEntitySet[e];
  6149. -1 != n.videoQuestionEntitySet[0].standardId.indexOf(a.videoAnswerId) && (l = e)
  6150. }
  6151. -1 == l && location.reload(), document.querySelectorAll(".ccQuestionList li")[l]?.click(), document.querySelector("#ccQuestionSubmit").click(), setTimeout(() => {
  6152. document.querySelector("#rightBtn").click()
  6153. }, 2e3)
  6154. }
  6155. }, 1e4)
  6156. }
  6157. async playNext() {
  6158. this.currentIndex >= ElementObj.$allTask.length - 1 ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (await sleep(2500), this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].click(), setTimeout(() => {
  6159. this._o1()
  6160. }, 4e3))
  6161. }
  6162. async getVideoTopic(e, l) {
  6163. return new Promise(t => {
  6164. fetch("https://sddy.zyk.yxlearning.com/train/cms/study/query-video-random-popup-list.gson?" + l, {
  6165. headers: {
  6166. accept: "*/*",
  6167. "accept-language": "zh-CN,zh;q=0.9",
  6168. accountid: "33f3dd30-1e79-420b-9fe6-bf298fa1d550",
  6169. "sec-ch-ua": '"Not)A;Brand";v="99", "Google Chrome";v="127", "Chromium";v="127"',
  6170. "sec-ch-ua-mobile": "?0",
  6171. "sec-ch-ua-platform": '"Windows"',
  6172. "sec-fetch-dest": "empty",
  6173. "sec-fetch-mode": "cors",
  6174. "sec-fetch-site": "same-origin",
  6175. "x-requested-with": "XMLHttpRequest"
  6176. },
  6177. referrer: "https://sddy.zyk.yxlearning.com/learning/index?myClassId=" + e,
  6178. referrerPolicy: "strict-origin-when-cross-origin",
  6179. body: null,
  6180. method: "GET",
  6181. mode: "cors",
  6182. credentials: "include"
  6183. }).then(e => e.json()).then(e => t(e))
  6184. })
  6185. }
  6186. async getClassList(e) {
  6187. return new Promise(t => {
  6188. fetch("https://sddy.zyk.yxlearning.com/train/class/my-class.gson?myClassId=" + e, {
  6189. headers: {
  6190. accept: "*/*",
  6191. "accept-language": "zh-CN,zh;q=0.9",
  6192. "sec-ch-ua": '"Not)A;Brand";v="99", "Google Chrome";v="127", "Chromium";v="127"',
  6193. "sec-ch-ua-mobile": "?0",
  6194. "sec-ch-ua-platform": '"Windows"',
  6195. "sec-fetch-dest": "empty",
  6196. "sec-fetch-mode": "cors",
  6197. "sec-fetch-site": "same-origin",
  6198. "x-requested-with": "XMLHttpRequest"
  6199. },
  6200. referrer: "https://sddy.zyk.yxlearning.com/learning/index?myClassId=" + e,
  6201. referrerPolicy: "strict-origin-when-cross-origin",
  6202. body: null,
  6203. method: "GET",
  6204. mode: "cors",
  6205. credentials: "include"
  6206. }).then(e => e.json()).then(e => t(e))
  6207. })
  6208. }
  6209. }
  6210. class hebeijiaoshijiaoyuwang extends Main {
  6211. constructor() {
  6212. super(), this.taskLength = 0, this.currentIndex = -1, this._init()
  6213. }
  6214. async _init() {
  6215. let a = setInterval(async () => {
  6216. try {
  6217. if ("/MyCourse/MyEventList" == location.pathname && (ElementObj.$parentNodes = document.querySelectorAll("#mainList dd ul li"), 0 < ElementObj.$parentNodes.length)) {
  6218. clearInterval(a), ElementObj.$handleSpeedUp.style.display = "none";
  6219. for (var e of ElementObj.$parentNodes) if ("[\u5df2\u5b8c\u6210]" != e.querySelector("i").innerText) {
  6220. MyTool.setValue("homeUrl", location.href), e.querySelector("a").click();
  6221. break
  6222. }
  6223. }
  6224. if ("/Event/MyjoinEvent" == location.pathname && (ElementObj.$parentNodes = document.querySelectorAll("tr[class]"), 0 < ElementObj.$parentNodes.length) && (clearInterval(a), ElementObj.$handleSpeedUp.style.display = "none", 0 < ElementObj.$parentNodes.length)) for (var t of ElementObj.$parentNodes) {
  6225. var l = t.querySelectorAll("td")[2].querySelector("span").innerText.trim();
  6226. if ("\u5df2\u5b66\u5b8c" != l && "\u5df2\u5b8c\u6210" != l) {
  6227. t.querySelector("a").click();
  6228. break
  6229. }
  6230. }
  6231. if ("/Event/CourseWare" == location.pathname && (ElementObj.$parentNodes = document.querySelectorAll("tr[class]"), 0 < ElementObj.$parentNodes.length) && (clearInterval(a), ElementObj.$handleSpeedUp.style.display = "none", 0 < ElementObj.$parentNodes.length)) for (var n of ElementObj.$parentNodes) if ("\u5df2\u5b66\u5b8c" != n.querySelectorAll("td")[2].querySelector("span").innerText.trim()) {
  6232. n.querySelector("a").click();
  6233. break
  6234. }
  6235. ElementObj.$video = document.querySelector("iframe")?.contentDocument?.querySelector("video"), ElementObj.$video && (ElementObj.$handleSpeedUp.style.display = "none", clearInterval(a), this._o1())
  6236. } catch (e) {
  6237. }
  6238. }, 1e3)
  6239. }
  6240. async getCurrentIndex() {
  6241. for (var e = 0; e <= ElementObj.$allTask.length - 1; e++) if (ElementObj.$allTask[e].classList.contains("active")) {
  6242. this.currentIndex = e;
  6243. break
  6244. }
  6245. -1 == this.currentIndex ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (showTip("✅✅✅\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 3e3), setTimeout(() => {
  6246. this.pdPlayFn(location.href)
  6247. }, 4e3))
  6248. }
  6249. getVideoDom() {
  6250. return new Promise(e => {
  6251. let t = 0, l = setInterval(() => {
  6252. t += 1, ElementObj.$video = document.querySelector("iframe")?.contentDocument?.querySelector("video"), ElementObj.$video ? (clearInterval(l), e(1)) : 7 <= t && (clearInterval(l), e(2))
  6253. }, 1e3)
  6254. })
  6255. }
  6256. async play() {
  6257. clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime), clearInterval(this.timer);
  6258. var e, t = await this.getVideoDom();
  6259. 1 == t && (ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
  6260. ElementObj.$video.playbackRate = toolOption.accelerator
  6261. }, 3e3), (e = document.querySelector("#mian")).style.position = "relative", await this.changeHtml(e), this.listenPlayTime(), this.listenRebort(), ElementObj.$video.addEventListener("ended", async () => {
  6262. showTip("✅✅✅\u5f53\u524d\u89c6\u9891\u5df2\u64ad\u653e\u5b8c,5\u79d2\u540e\u64ad\u653e\u4e0b\u4e00\u4e2a", 4500), this.playNext()
  6263. }), ElementObj.$video.addEventListener("pause", () => {
  6264. setTimeout(() => {
  6265. ElementObj.$video.volume = 0, ElementObj.$video.play()
  6266. }, 3500)
  6267. })), 2 == t && (showTip("✅✅✅\u8be5\u7ae0\u8282\u4e3a\u6587\u6863,\u5373\u5c06\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a", 3e3), await sleep(3e3), this.playNext())
  6268. }
  6269. listenRebort() {
  6270. this.listenRebortTime = setInterval(() => {
  6271. var e = document.querySelector(".school-sate button");
  6272. e && e.click()
  6273. }, 1e4)
  6274. }
  6275. listenPlayTime() {
  6276. showTip("🔉\u8bfe\u4ef6\u6b63\u5728\u5b66\u4e60,\u8bf7\u52a1\u70b9\u51fb\u6216\u957f\u65f6\u95f4\u9690\u85cf");
  6277. let l = 0;
  6278. this.timer = setInterval(() => {
  6279. l += 1;
  6280. var e = (ElementObj.$video.currentTime / 60).toFixed(2),
  6281. t = (ElementObj.$video.duration / 60).toFixed(2);
  6282. this.addInfo(`\u540e\u53f0\u5b66\u4e60${l}\u6b21\u5f53\u524d\u72b6\u6001\u6b63\u5728\u5b66\u4e60\u5df2\u64ad\u653e${e}\u5206\u949f\u89c6\u9891\u603b\u65f6\u957f\u4e3a${t}\u5206\u949f`)
  6283. }, 3e3)
  6284. }
  6285. async playNext() {
  6286. var e = document.querySelectorAll(".tishivalhui")[2], t = document.querySelectorAll(".tishivalhui")[1];
  6287. "\u4e0b\u4e00\u7bc7:\u6ca1\u6709\u4e86;" == (e || t).innerText ? location.href = MyTool.getValue("homeUrl") : (await sleep(2500), (1 < (e = document.querySelectorAll(".tishivalju")).length ? e[1] : e[0]).click())
  6288. }
  6289. }
  6290. class shangdongganbu extends Main {
  6291. constructor() {
  6292. super(), this.taskLength = 0, this.currentIndex = -1, this._init()
  6293. }
  6294. async _init() {
  6295. let e = setInterval(async () => {
  6296. try {
  6297. ElementObj.$allTask = document.querySelectorAll(".class"), -1 != location.href.indexOf("/content#/personalCenter") && ElementObj.$allTask.length ? (clearInterval(e), ElementObj.$handleSpeedUp.style.display = "none", this.getCurrentIndex()) : -1 != location.href.indexOf("/content#/commend/coursedetail/?courseId=") && (clearInterval(e), ElementObj.$handleSpeedUp.style.display = "none", this._o1())
  6298. } catch (e) {
  6299. }
  6300. }, 1e3)
  6301. }
  6302. async getCurrentIndex() {
  6303. for (var e = 0; e <= ElementObj.$allTask.length - 1; e++) {
  6304. var t = ElementObj.$allTask[e].querySelectorAll(".pro-t>div")[1].innerText;
  6305. if (100 != parseInt(t)) {
  6306. this.currentIndex = e;
  6307. break
  6308. }
  6309. }
  6310. -1 == this.currentIndex ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (showTip("✅✅✅\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 3e3), ElementObj.$allTask[this.currentIndex].querySelector(".class-img>img").click(), setTimeout(() => {
  6311. window.close()
  6312. }, 12e4))
  6313. }
  6314. async play() {
  6315. clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime), clearInterval(this.timer);
  6316. var e = await this.getVideoDom();
  6317. if (1 == e) {
  6318. var t = document.querySelector(".video-player-box"),
  6319. t = (t.style.position = "relative", await this.changeHtml(t), {courseId: "", idCardHash: ""});
  6320. if (t.courseId = /courseId=(.*)/.exec(location.href)[1], t.idCardHash = JSON.parse(sessionStorage.getItem("userInfo")).data.idCardHash, !t.idCardHash) return void alert("\u767b\u5f55\u8fc7\u671f\u4e86,\u8bf7\u91cd\u65b0\u767b\u5f55");
  6321. await this.fetchStart(t);
  6322. this.listenPlayTime(t), this.listenRebort()
  6323. }
  6324. 2 == e && (showTip("✅✅✅\u8be5\u7ae0\u8282\u4e3a\u6587\u6863,\u5373\u5c06\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a", 3e3), await sleep(3e3), this.playNext())
  6325. }
  6326. listenRebort() {
  6327. this.listenRebortTime = setInterval(() => {
  6328. var e = document.querySelector(".school-sate button");
  6329. e && e.click()
  6330. }, 1e4)
  6331. }
  6332. async listenPlayTime(t) {
  6333. this.addInfo("✅✅✅✅✅✅✅✅\u521d\u59cb\u5316\u5b8c\u6210,\u5373\u5c06\u5f00\u59cb\u64ad\u653e✅✅✅✅✅✅✅✅✅"), await sleep(3e3), showTip("🔉\u8bfe\u4ef6\u6b63\u5728\u5b66\u4e60,\u8bf7\u52a1\u70b9\u51fb\u6216\u957f\u65f6\u95f4\u9690\u85cf");
  6334. var l = Math.ceil(ElementObj.$video.duration);
  6335. if (l) {
  6336. let e = 0;
  6337. for (var n of new Array(1e3)) {
  6338. if (e >= l) {
  6339. await this.saveProgress(t), await this.saveProgress(t), await this.saveEnd(t), this.addInfo("🎉🎉🎉🎉🎉🎉🎉🎉\u5df2\u6210\u529f\u5b66\u5b8c🎉🎉🎉🎉🎉🎉🎉🎉");
  6340. break
  6341. }
  6342. e += +toolOption.accelerator > l ? l : +toolOption.accelerator, t.studyTimes = e;
  6343. await this.saveProgress(t);
  6344. this.addInfo(`🔊\u5f53\u524d\u72b6\u6001\u6b63\u5728\u4ee5${toolOption.accelerator}\u500d\u901f\u5b66\u4e60\u4e2d\u5df2\u5b66\u4e60${e}\u79d2\u89c6\u9891\u603b\u65f6\u957f\u4e3a${l / 60}\u5206\u949f`), await sleep(1e3)
  6345. }
  6346. this.playNext()
  6347. } else alert("\u89c6\u9891\u65f6\u95f4\u9519\u8bef,\u8bf7\u5237\u65b0\u9875\u9762\u91cd\u8bd5")
  6348. }
  6349. async playNext() {
  6350. await sleep(2500), setTimeout(() => {
  6351. location.reload()
  6352. }, 3e3), location.href = "https://gbwlxy.dtdjzx.gov.cn/content#/personalCenter"
  6353. }
  6354. fetchStart(t) {
  6355. return new Promise(async e => {
  6356. e(await fetch("https://gbwlxy.dtdjzx.gov.cn/__api/api/study/start", {
  6357. headers: {
  6358. accept: "application/json, text/plain, */*",
  6359. "accept-language": "zh-CN,zh;q=0.9",
  6360. "content-type": "application/json;",
  6361. "sec-ch-ua": '"Not A(Brand";v="99", "Google Chrome";v="121", "Chromium";v="121"',
  6362. "sec-ch-ua-mobile": "?0",
  6363. "sec-ch-ua-platform": '"Windows"',
  6364. "sec-fetch-dest": "empty",
  6365. "sec-fetch-mode": "cors",
  6366. "sec-fetch-site": "same-origin",
  6367. "x-requested-with": "XMLHttpRequest"
  6368. },
  6369. referrer: "https://gbwlxy.dtdjzx.gov.cn/content",
  6370. referrerPolicy: "strict-origin-when-cross-origin",
  6371. body: `{"courseId":"${t.courseId}","idCardHash":"${t.idCardHash}","studyType":"VIDEO"}`,
  6372. method: "POST",
  6373. mode: "cors",
  6374. credentials: "include"
  6375. }))
  6376. })
  6377. }
  6378. saveProgress(e) {
  6379. return new Promise(async t => {
  6380. fetch(location.origin + "/__api/api/study/progress", {
  6381. headers: {
  6382. accept: "application/json, text/plain, */*",
  6383. "accept-language": "zh-CN,zh;q=0.9",
  6384. "content-type": "application/json;",
  6385. "sec-ch-ua": '"Not A(Brand";v="99", "Google Chrome";v="121", "Chromium";v="121"',
  6386. "sec-ch-ua-mobile": "?0",
  6387. "sec-ch-ua-platform": '"Windows"',
  6388. "sec-fetch-dest": "empty",
  6389. "sec-fetch-mode": "cors",
  6390. "sec-fetch-site": "same-origin",
  6391. "x-requested-with": "XMLHttpRequest"
  6392. },
  6393. referrer: location.origin + "/content",
  6394. referrerPolicy: "strict-origin-when-cross-origin",
  6395. body: `{"courseId":"${e.courseId}","idCardHash":"${e.idCardHash}","studyTimes":${e.studyTimes}}`,
  6396. method: "POST",
  6397. mode: "cors",
  6398. credentials: "include"
  6399. }).then(e => e.json()).then(e => t(e))
  6400. })
  6401. }
  6402. saveProgress2(t) {
  6403. return new Promise(async e => {
  6404. e(await fetch(location.origin + "/apiStudy/gwapi/us/api/study/progress2", {
  6405. headers: {
  6406. accept: "application/json, text/plain, */*",
  6407. "accept-language": "zh-CN,zh;q=0.9",
  6408. "content-type": "application/json;",
  6409. "sec-ch-ua": '"Not A(Brand";v="99", "Google Chrome";v="121", "Chromium";v="121"',
  6410. "sec-ch-ua-mobile": "?0",
  6411. "sec-ch-ua-platform": '"Windows"',
  6412. "sec-fetch-dest": "empty",
  6413. "sec-fetch-mode": "cors",
  6414. "sec-fetch-site": "same-origin",
  6415. "x-ca-key": "ac620187e5b8d7af",
  6416. "x-ca-nonce": "e12f60e3-df8f-349f-55d0-626d597f5eaf",
  6417. "x-ca-signature": "V16026136F33B05F06F275BE6CECF4A2F1",
  6418. "x-ca-timestamp": "1706683430971",
  6419. "x-requested-with": "XMLHttpRequest"
  6420. },
  6421. referrer: location.origin + "/content",
  6422. referrerPolicy: "strict-origin-when-cross-origin",
  6423. body: `{"userId":"${t.idCardHash}","courseCode":"${t.courseId}","studyTimes":${t.studyTimes}}`,
  6424. method: "POST",
  6425. mode: "cors",
  6426. credentials: "include"
  6427. }))
  6428. })
  6429. }
  6430. saveEnd(t) {
  6431. return new Promise(async e => {
  6432. e(await fetch(location.origin + "/__api/api/study/v2/end", {
  6433. headers: {
  6434. accept: "application/json, text/plain, */*",
  6435. "accept-language": "zh-CN,zh;q=0.9",
  6436. "content-type": "application/json;",
  6437. "sec-ch-ua": '"Not A(Brand";v="99", "Google Chrome";v="121", "Chromium";v="121"',
  6438. "sec-ch-ua-mobile": "?0",
  6439. "sec-ch-ua-platform": '"Windows"',
  6440. "sec-fetch-dest": "empty",
  6441. "sec-fetch-mode": "cors",
  6442. "sec-fetch-site": "same-origin",
  6443. "x-requested-with": "XMLHttpRequest"
  6444. },
  6445. referrer: location.origin + "/content",
  6446. referrerPolicy: "strict-origin-when-cross-origin",
  6447. body: `{"courseId":"${t.courseId}","idCardHash":"${t.idCardHash}"}`,
  6448. method: "POST",
  6449. mode: "cors",
  6450. credentials: "include"
  6451. }))
  6452. })
  6453. }
  6454. }
  6455. class yunketang extends Main {
  6456. constructor() {
  6457. super(), this.taskLength = 0, this.currentIndex = -1, this._init()
  6458. }
  6459. async _init() {
  6460. let e = setInterval(async () => {
  6461. try {
  6462. ElementObj.$allTask = document.querySelectorAll(".el-collapse-item__content div.file-item"), ElementObj.$allTask.length && (clearInterval(e), ElementObj.$handleSpeedUp.style.display = "none", this.getCurrentIndex())
  6463. } catch (e) {
  6464. }
  6465. }, 1e3)
  6466. }
  6467. async getCurrentIndex() {
  6468. for (var e = 0; e <= ElementObj.$allTask.length - 1; e++) if (ElementObj.$allTask[e].classList.contains("file-item-active")) {
  6469. this.currentIndex = e;
  6470. break
  6471. }
  6472. if (-1 == this.currentIndex) alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c"); else {
  6473. showTip("✅✅✅\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 3e3);
  6474. let t = ElementObj.$allTask[this.currentIndex];
  6475. setTimeout(() => {
  6476. var e = t.querySelector("div").innerHTML.replace(/ <.+>/, "");
  6477. this.pdPlayFn(e)
  6478. }, 3e3)
  6479. }
  6480. }
  6481. getVideoDom() {
  6482. return new Promise(t => {
  6483. let l = 0, n = setInterval(() => {
  6484. l += 1, ElementObj.$video = document.querySelector("video");
  6485. var e = document.querySelector(".vjs-big-play-button");
  6486. ElementObj.$video && e ? (clearInterval(n), e.click(), t(1)) : 7 <= l && (clearInterval(n), t(2))
  6487. }, 1e3)
  6488. })
  6489. }
  6490. async play() {
  6491. clearInterval(this.listenRebortTime);
  6492. var e = await this.getVideoDom();
  6493. 1 == e && (this.changeHtml($el("#vjs_video_3")), this.listenPlayTime(), ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
  6494. ElementObj.$video.playbackRate = toolOption.accelerator
  6495. }, 3e3), this.listenVidoeStatus(ElementObj.$video, () => {
  6496. ElementObj.$video.volume = 0, ElementObj.$video.play()
  6497. }), ElementObj.$video.addEventListener("ended", async () => {
  6498. showTip("✅✅✅\u5f53\u524d\u89c6\u9891\u5df2\u64ad\u653e\u5b8c,5\u79d2\u540e\u64ad\u653e\u4e0b\u4e00\u4e2a", 4500), this.playNext()
  6499. }), ElementObj.$video.addEventListener("pause", () => {
  6500. setTimeout(() => {
  6501. document.querySelector(".vjs-big-play-button")?.click(), ElementObj.$video.volume = 0, ElementObj.$video.play()
  6502. }, 3500)
  6503. })), 2 == e && (showTip("✅✅✅\u8be5\u7ae0\u8282\u4e3a\u6587\u6863,\u5373\u5c06\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a", 3e3), await sleep(3e3), this.playNext())
  6504. }
  6505. listenPlayTime() {
  6506. let t = 0;
  6507. setInterval(() => {
  6508. t += 1;
  6509. var e = ElementObj.$allTask[this.currentIndex].querySelector(".el-progress__text").innerText;
  6510. "100%" == e && location.reload(), this.addInfo(`\u5df2\u6210\u529f\u76d1\u6d4b${t}\u6b21\u89c6\u9891\u6b63\u5728\u64ad\u653e\u4e2d\u5f53\u524d\u8fdb\u5ea6\u5b8c\u6210` + e)
  6511. }, 3e3)
  6512. }
  6513. async playNext() {
  6514. location.reload()
  6515. }
  6516. pdPlayFn(e) {
  6517. var t = MyTool.getValue("spanClassName") || [];
  6518. -1 != t.indexOf(e) ? this.play() : (t.push(e), MyTool.setValue("spanClassName", t), this._o1())
  6519. }
  6520. }
  6521. class huaxiajiaoshiyanpei extends Main {
  6522. constructor() {
  6523. super(), this.taskLength = 0, this.currentIndex = -1, this._init()
  6524. }
  6525. async _init() {
  6526. let e = setInterval(async () => {
  6527. try {
  6528. ElementObj.$allTask = document.querySelectorAll(".cou1-title>li"), ElementObj.$allTask.length && (clearInterval(e), ElementObj.$handleSpeedUp.style.display = "none", this.getCurrentIndex())
  6529. } catch (e) {
  6530. }
  6531. }, 1e3)
  6532. }
  6533. async getCurrentIndex() {
  6534. for (var e = 0; e <= ElementObj.$allTask.length - 1; e++) if (ElementObj.$allTask[e].classList.contains("list_active")) {
  6535. this.currentIndex = e, showTip("✅✅✅\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 3e3), setTimeout(() => {
  6536. this._o1()
  6537. }, 3e3);
  6538. break
  6539. }
  6540. -1 == this.currentIndex && alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c")
  6541. }
  6542. async play() {
  6543. clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime), clearInterval(this.timer);
  6544. var e = await this.getVideoDom();
  6545. if (this.listenRebort(), 1 == e) {
  6546. await this.changeHtml($el("video").parentElement);
  6547. let e = null;
  6548. e = (-1 < location.href.indexOf("/sort/") ? /\/id\/(.+)\/sort/ : /\/id\/(.+)/).exec(location.href)[1];
  6549. var t = unsafeWindow.goods_id, l = unsafeWindow.user_id || $("#uid").val();
  6550. await this.listenPlayTime({
  6551. user_id: l,
  6552. goods_id: t,
  6553. video_id: Number(e),
  6554. status: 1,
  6555. times: 0,
  6556. play_time: 0
  6557. })
  6558. }
  6559. 2 == e && (showTip("✅✅✅\u8be5\u7ae0\u8282\u4e3a\u6587\u6863,\u5373\u5c06\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a", 3e3), await sleep(3e3), this.playNext())
  6560. }
  6561. async listenPlayTime(t) {
  6562. this.addInfo("✅✅✅✅✅✅✅✅\u521d\u59cb\u5316\u5b8c\u6210,\u5373\u5c06\u5f00\u59cb\u64ad\u653e✅✅✅✅✅✅✅✅✅"), await sleep(3e3), showTip("🔉\u8bfe\u4ef6\u6b63\u5728\u5b66\u4e60,\u8bf7\u52a1\u70b9\u51fb\u6216\u957f\u65f6\u95f4\u9690\u85cf");
  6563. var l = Math.ceil(ElementObj.$video.duration);
  6564. if (l) {
  6565. if (!t.user_id || !t.goods_id || !t.video_id) return alert("\u53c2\u6570\u4e0d\u6b63\u786e");
  6566. let e = 0;
  6567. for (var n of new Array(1e4)) {
  6568. if (e >= l) {
  6569. t.status = 2, await this.saveProgress(t), this.addInfo("🎉🎉🎉🎉🎉🎉🎉🎉\u5df2\u6210\u529f\u5b66\u5b8c🎉🎉🎉🎉🎉🎉🎉🎉"), this.playNext();
  6570. break
  6571. }
  6572. e += +toolOption.accelerator > l ? l : +toolOption.accelerator, t.times = e, t.play_time = e;
  6573. await this.saveProgress(t);
  6574. this.addInfo(`🔊\u5f53\u524d\u72b6\u6001\u6b63\u5728\u4ee5${toolOption.accelerator}\u500d\u901f\u5b66\u4e60\u4e2d\u5df2\u5b66\u4e60${e}\u79d2\u89c6\u9891\u603b\u65f6\u957f\u4e3a${l / 60}\u5206\u949f`), await sleep(850)
  6575. }
  6576. } else location.reload()
  6577. }
  6578. listenRebort() {
  6579. this.listenRebortTime = setInterval(() => {
  6580. document.querySelector(".layui-layer-btn0")?.click()
  6581. }, 2e3)
  6582. }
  6583. async playNext() {
  6584. let e = 3, t = (this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].querySelector("a")),
  6585. l = setInterval(() => {
  6586. this.addInfo("🐱‍🚀🐱‍🚀🐱‍🚀\u8bf7\u7a0d\u540e,\u6b63\u5728\u4fdd\u5b58\u6570\u636e......"), e <= 0 && (clearInterval(l), t.click()), --e
  6587. }, 1e3)
  6588. }
  6589. saveProgress(t) {
  6590. return new Promise(async e => {
  6591. e(await fetch(location.origin + "/portal/lesson/update_study", {
  6592. headers: {
  6593. accept: "application/json, text/javascript, */*; q=0.01",
  6594. "accept-language": "zh-CN,zh;q=0.9",
  6595. "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
  6596. "x-requested-with": "XMLHttpRequest"
  6597. },
  6598. referrerPolicy: "strict-origin-when-cross-origin",
  6599. body: `user_id=${t.user_id}&goods_id=${t.goods_id}&video_id=${t.video_id}&status=${t.status}&times=${t.times}&play_time=` + t.play_time,
  6600. method: "POST",
  6601. mode: "cors",
  6602. credentials: "include"
  6603. }))
  6604. })
  6605. }
  6606. }
  6607. class zhelixuexi extends Main {
  6608. constructor() {
  6609. super(), this.taskLength = 0, this.currentIndex = -1, this._init()
  6610. }
  6611. async _init() {
  6612. let n = setInterval(async () => {
  6613. try {
  6614. if (ElementObj.$parentNodes = document.querySelectorAll(".vi-item"), ElementObj.$parentNodes.length) {
  6615. ElementObj.$handleSpeedUp.style.display = "none", clearInterval(n);
  6616. for (var e = 0; e <= ElementObj.$parentNodes.length - 1; e++) {
  6617. var t = ElementObj.$parentNodes[e],
  6618. l = t.querySelector(".v-prosss").innerText.replace("\u5df2\u5b66\u4e60", "");
  6619. if (parseInt(l) < 99) {
  6620. this.currentIndex = e, MyTool.setValue("homeUrl", location.href), t.click();
  6621. break
  6622. }
  6623. }
  6624. } else ElementObj.$allTask = document.querySelectorAll(".set-content"), ElementObj.$allTask.length ? (ElementObj.$handleSpeedUp.style.display = "none", clearInterval(n), this.getCurrentIndex()) : (ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(n), ElementObj.$handleSpeedUp.style.display = "none", this._o1()))
  6625. } catch (e) {
  6626. }
  6627. }, 1e3)
  6628. }
  6629. async getCurrentIndex() {
  6630. for (var e = 0; e <= ElementObj.$allTask.length - 1; e++) if (ElementObj.$allTask[e].classList.contains("active")) {
  6631. this.currentIndex = e;
  6632. break
  6633. }
  6634. -1 == this.currentIndex ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (showTip("✅✅✅\u521d\u59cb\u5316\u5b8c\u6210,5\u79d2\u540e\u5f00\u59cb\u64ad\u653e", 3e3), setTimeout(() => {
  6635. this._o1()
  6636. }, 4e3))
  6637. }
  6638. async play() {
  6639. clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime);
  6640. var e = await this.getVideoDom();
  6641. 1 == e && (ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
  6642. ElementObj.$video.playbackRate = toolOption.accelerator
  6643. }, 3e3), this.listenRebort(), ElementObj.$video.addEventListener("ended", async () => {
  6644. showTip("✅✅✅\u5f53\u524d\u89c6\u9891\u5df2\u64ad\u653e\u5b8c,5\u79d2\u540e\u64ad\u653e\u4e0b\u4e00\u4e2a", 4500), this.playNext()
  6645. }), ElementObj.$video.addEventListener("pause", () => {
  6646. setTimeout(() => {
  6647. ElementObj.$video.volume = 0, ElementObj.$video.play()
  6648. }, 3500)
  6649. })), 2 == e && (showTip("✅✅✅\u8be5\u7ae0\u8282\u4e3a\u6587\u6863,\u5373\u5c06\u81ea\u52a8\u5207\u6362\u4e0b\u4e00\u4e2a", 3e3), await sleep(3e3), this.playNext())
  6650. }
  6651. listenRebort() {
  6652. this.listenRebortTime = setInterval(() => {
  6653. }, 1e4)
  6654. }
  6655. async playNext() {
  6656. if (this.currentIndex >= ElementObj.$allTask.length - 1) {
  6657. let e = MyTool.getValue("homeUrl");
  6658. void setTimeout(() => {
  6659. location.href = e
  6660. }, 3e3)
  6661. } else await sleep(2e3), this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].click(), setTimeout(() => {
  6662. this._o1()
  6663. }, 3e3)
  6664. }
  6665. }
  6666. class fhswifer extends Main {
  6667. constructor() {
  6668. super(), this.taskLength = 0, this.currentIndex = -1, this._init()
  6669. }
  6670. async _init() {
  6671. let e = setInterval(async () => {
  6672. try {
  6673. ElementObj.$parentNodes = document.querySelectorAll(".c-directory-item"), ElementObj.$parentNodes.length && (clearInterval(e), ElementObj.$handleSpeedUp.style.display = "none", showTip("\u6b63\u5728\u5bfb\u627e\u5168\u90e8\u8bfe\u7a0b,\u9884\u8ba110-20\u79d2,\u8bf7\u7a0d\u7b49..."), this.getParentIndex())
  6674. } catch (e) {
  6675. }
  6676. }, 1e3)
  6677. }
  6678. async getParentIndex() {
  6679. for (var e of ElementObj.$parentNodes) e.click(), await sleep(500);
  6680. this.getCurrentIndex()
  6681. }
  6682. async getCurrentIndex() {
  6683. ElementObj.$allTask = document.querySelectorAll(".c-directory-box .cc-directory-item");
  6684. for (var e = 0; e <= ElementObj.$allTask.length - 1; e++) if (!ElementObj.$allTask[e].querySelector(".cc-audition")) {
  6685. this.currentIndex = e;
  6686. break
  6687. }
  6688. -1 == this.currentIndex ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (ElementObj.$allTask[this.currentIndex].click(), showTip("\u521d\u59cb\u5316\u5b8c\u6210,\u7b2c\u4e00\u6b21\u8bf7\u624b\u52a8\u64ad\u653e\u89c6\u9891", 1e4), this.play())
  6689. }
  6690. getVideoDom() {
  6691. return new Promise(t => {
  6692. let l = 0, n = setInterval(() => {
  6693. l += 1;
  6694. var e = document.querySelector(".icon.bplayer-play-btn");
  6695. e ? (clearInterval(n), t(e)) : 7 <= l && (clearInterval(n), t(2))
  6696. }, 1e3)
  6697. })
  6698. }
  6699. async play() {
  6700. clearInterval(this.timer), clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime), (await this.getVideoDom()).click(), this.listenPlayTime(), this.listenRebort()
  6701. }
  6702. listenPlayTime() {
  6703. let l = 0;
  6704. this.timer = setInterval(async () => {
  6705. l += 1;
  6706. var e = document.querySelector(".played-time").innerText,
  6707. t = document.querySelector(".total-time").innerText;
  6708. e.trim() >= t.trim() && (clearInterval(this.timer), this.playNext())
  6709. }, 5e3)
  6710. }
  6711. listenRebort() {
  6712. this.listenRebortTime = setInterval(() => {
  6713. document.querySelector(".bplayer-wrap").classList.contains("bplayer-playing") || document.querySelector(".icon.bplayer-play-btn").click()
  6714. }, 1e3)
  6715. }
  6716. async playNext() {
  6717. this.currentIndex >= ElementObj.$allTask.length - 1 ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (await sleep(2500), this.currentIndex += 1, ElementObj.$allTask[this.currentIndex].click(), setTimeout(() => {
  6718. this._o1(() => {
  6719. }, !1)
  6720. }, 3e3))
  6721. }
  6722. }
  6723. class rrhisdgf283y7jvdf extends Main {
  6724. constructor() {
  6725. super(), this.taskLength = 0, this.currentIndex = -1, this._init()
  6726. }
  6727. async _init() {
  6728. let t = setInterval(async () => {
  6729. try {
  6730. ElementObj.$allTask = document.querySelectorAll("ul.cb.oh li"), ElementObj.$allTask.length && (clearInterval(t), ElementObj.$handleSpeedUp.style.display = "none", this.getCurrentIndex(1)), ElementObj.$allTask = document.querySelectorAll(".section-item"), ElementObj.$allTask.length && (clearInterval(t), ElementObj.$handleSpeedUp.style.display = "none", this.getCurrentIndex(2));
  6731. var e = document.querySelector("iframe");
  6732. -1 == location.href.indexOf("v_video?platformId=") && -1 == location.href.indexOf("/play_video/") || !e || (clearInterval(t), location.href = e.src), -1 != ["/videoPlay/play", "/videoPlay/playEncrypt"].indexOf(location.pathname) && (clearInterval(t), ElementObj.$handleSpeedUp.style.display = "none", this._o1())
  6733. } catch (e) {
  6734. }
  6735. }, 1e3)
  6736. }
  6737. async getCurrentIndex(e) {
  6738. for (var t = 0; t <= ElementObj.$allTask.length - 1; t++) {
  6739. var l = ElementObj.$allTask[t];
  6740. if (1 == e) if (-1 == l.querySelector(".button.titlecolor").innerText.indexOf("\u5df2\u5b66\u5b8c")) {
  6741. this.currentIndex = t;
  6742. break
  6743. }
  6744. if (2 == e) if ("\u5df2\u5b66\u5b8c" != l.querySelectorAll(".n-text.__text-q8o5bu-d")[2].innerText.trim()) {
  6745. this.currentIndex = t;
  6746. break
  6747. }
  6748. }
  6749. -1 == this.currentIndex ? alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c") : (setTimeout(() => {
  6750. }, 12e4), MyTool.setValue("homeUrl", location.href), 1 == e && ElementObj.$allTask[this.currentIndex].querySelector(".button.titlecolor").click(), 2 == e && ElementObj.$allTask[this.currentIndex].click())
  6751. }
  6752. async play() {
  6753. clearInterval(this.timer), clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime);
  6754. await this.getVideoDom();
  6755. ElementObj.$video.volume = 0, ElementObj.$video.play(), setTimeout(() => {
  6756. ElementObj.$video.playbackRate = toolOption.accelerator
  6757. }, 3e3), ElementObj.$video.addEventListener("ended", async () => {
  6758. showTip("✅✅✅\u5f53\u524d\u89c6\u9891\u5df2\u64ad\u653e\u5b8c,5\u79d2\u540e\u64ad\u653e\u4e0b\u4e00\u4e2a", 4500), this.playNext()
  6759. }), ElementObj.$video.addEventListener("pause", () => {
  6760. setTimeout(() => {
  6761. ElementObj.$video.volume = 0, ElementObj.$video.play()
  6762. }, 3500)
  6763. })
  6764. }
  6765. async listenPlayTime() {
  6766. this.addInfo("✅✅✅✅✅✅✅✅\u521d\u59cb\u5316\u5b8c\u6210,\u5373\u5c06\u5f00\u59cb\u64ad\u653e✅✅✅✅✅✅✅✅✅"), await sleep(1e3), showTip("🔉\u8bfe\u4ef6\u6b63\u5728\u5b66\u4e60,\u8bf7\u52a1\u70b9\u51fb\u6216\u957f\u65f6\u95f4\u9690\u85cf");
  6767. var t = Math.ceil(ElementObj.$video.duration);
  6768. if (t) {
  6769. let e = 0;
  6770. for (var l of new Array(1e3)) {
  6771. if (e >= t) {
  6772. ElementObj.$video.currentTime = ElementObj.$video.duration - 10, await sleep(1e3), ElementObj.$video.currentTime = ElementObj.$video.duration, this.addInfo("🎉🎉🎉🎉🎉🎉🎉🎉\u5df2\u6210\u529f\u5b66\u5b8c🎉🎉🎉🎉🎉🎉🎉🎉"), this.playNext();
  6773. break
  6774. }
  6775. e += +toolOption.accelerator > t ? t : +toolOption.accelerator, this.addInfo(`🔊\u5f53\u524d\u72b6\u6001\u6b63\u5728\u4ee5${toolOption.accelerator}\u500d\u901f\u5b66\u4e60\u4e2d\u5df2\u5b66\u4e60${e}\u79d2\u89c6\u9891\u603b\u65f6\u957f\u4e3a${t / 60}\u5206\u949f`), await sleep(1e3)
  6776. }
  6777. this.playNext()
  6778. } else alert("\u89c6\u9891\u65f6\u95f4\u9519\u8bef,\u8bf7\u5237\u65b0\u9875\u9762\u91cd\u8bd5")
  6779. }
  6780. async playNext() {
  6781. let e = MyTool.getValue("homeUrl");
  6782. e ? setTimeout(() => {
  6783. location.href = e
  6784. }, 1e4) : (showTip("\u5b98\u7f51\u8be5\u5e73\u53f0\u5e95\u90e8\u6709\u6ce8\u610f\u4e8b\u9879,\u8bf7\u6309\u7167\u8be5\u6307\u793a\u9875\u9762\u6267\u884c\u7a0b\u5e8f,\u5426\u5219\u65e0\u6cd5\u81ea\u52a8\u8fde\u64ad", 1e4), alert("\u5b98\u7f51\u8be5\u5e73\u53f0\u5e95\u90e8\u6709\u6ce8\u610f\u4e8b\u9879,\u8bf7\u6309\u7167\u8be5\u6307\u793a\u9875\u9762\u6267\u884c\u7a0b\u5e8f,\u5426\u5219\u65e0\u6cd5\u81ea\u52a8\u8fde\u64ad"))
  6785. }
  6786. }
  6787. class f6872 extends Main {
  6788. constructor() {
  6789. super(), this.taskLength = 0, this.currentIndex = -1, this._init()
  6790. }
  6791. async _init() {
  6792. let e = setInterval(async () => {
  6793. try {
  6794. ElementObj.$parentNodes = document.querySelectorAll(".ant-table-tbody")[0].querySelectorAll("tr"), ElementObj.$parentNodes.length && (clearInterval(e), ElementObj.$handleSpeedUp.style.display = "none", this.getParentIndex()), ElementObj.$video = document.querySelector("video"), ElementObj.$video && (clearInterval(e), ElementObj.$handleSpeedUp.style.display = "none", this._o1())
  6795. } catch (e) {
  6796. }
  6797. }, 1e3)
  6798. }
  6799. async getParentIndex() {
  6800. for (var e of ElementObj.$parentNodes) {
  6801. var t = e.querySelector(".ant-progress-text").innerText;
  6802. if (parseInt(t) < 97) {
  6803. e.click(), await sleep(2e3), this.getCurrentIndex();
  6804. break
  6805. }
  6806. }
  6807. }
  6808. async getCurrentIndex() {
  6809. e:for (var e of document.querySelectorAll(".ant-pagination")[1].querySelectorAll("li.ant-pagination-item")) {
  6810. ElementObj.$allTask = document.querySelectorAll(".ant-table-tbody")[1].querySelectorAll("tr");
  6811. for (let e = 0; e <= ElementObj.$allTask.length - 1; e++) {
  6812. var t = ElementObj.$allTask[e];
  6813. if (!t.querySelector("i")) {
  6814. this.currentIndex = e, t.querySelectorAll(".ant-table-row-cell-break-word a")[1].click(), await sleep(2e3), this._o1();
  6815. break e
  6816. }
  6817. }
  6818. e.click(), await sleep(2e3)
  6819. }
  6820. -1 == this.currentIndex && alert("\u5f53\u524d\u8bfe\u7a0b\u6240\u6709\u89c6\u9891\u5df2\u64ad\u653e\u5b8c")
  6821. }
  6822. async play() {
  6823. clearInterval(this.timer), clearInterval(this.listenVidoeStatusTimer), clearInterval(this.listenRebortTime);
  6824. await this.getVideoDom();
  6825. await this.changeHtml($el(".input_video")), this.listenPlayTime()
  6826. }
  6827. async listenPlayTime() {
  6828. this.addInfo("✅✅✅✅✅✅✅✅\u521d\u59cb\u5316\u5b8c\u6210,\u5373\u5c06\u5f00\u59cb\u64ad\u653e✅✅✅✅✅✅✅✅✅"), await sleep(1e3), showTip("🔉\u8bfe\u4ef6\u6b63\u5728\u5b66\u4e60,\u8bf7\u52a1\u70b9\u51fb\u6216\u957f\u65f6\u95f4\u9690\u85cf");
  6829. var t = Math.ceil(ElementObj.$video.duration);
  6830. if (t) {
  6831. let e = 0;
  6832. for (var l of new Array(1e3)) {
  6833. if (e >= t) {
  6834. ElementObj.$video.currentTime = ElementObj.$video.duration, await sleep(1e3), ElementObj.$video.currentTime = ElementObj.$video.duration, this.addInfo("🎉🎉🎉🎉🎉🎉🎉🎉\u5df2\u6210\u529f\u5b66\u5b8c🎉🎉🎉🎉🎉🎉🎉🎉"), this.playNext();
  6835. break
  6836. }
  6837. e += +toolOption.accelerator > t ? t : +toolOption.accelerator, this.addInfo(`🔊\u5f53\u524d\u72b6\u6001\u6b63\u5728\u4ee5${toolOption.accelerator}\u500d\u901f\u5b66\u4e60\u4e2d\u5df2\u5b66\u4e60${e}\u79d2\u89c6\u9891\u603b\u65f6\u957f\u4e3a${t / 60}\u5206\u949f`), await sleep(3e3)
  6838. }
  6839. this.playNext()
  6840. } else alert("\u89c6\u9891\u65f6\u95f4\u9519\u8bef,\u8bf7\u5237\u65b0\u9875\u9762\u91cd\u8bd5")
  6841. }
  6842. async playNext() {
  6843. setTimeout(() => {
  6844. location.reload()
  6845. }, 1e3)
  6846. }
  6847. }
  6848. class Addpanel {
  6849. constructor() {
  6850. this.$panelWrap = document.createElement("div"), this.$panelStyle = document.createElement("style"), this._init()
  6851. }
  6852. async _init() {
  6853. this.$panelWrap.innerHTML = this.getCTXHTML(), this.$panelStyle.innerHTML = panelcss, document.querySelector("head")?.appendChild(this.$panelStyle), (3 == toolOption.SchoolType ? document.querySelector("#bigContainer") : 7 == toolOption.SchoolType ? document.querySelector(".layout-content") : 11 == toolOption.SchoolType ? document.querySelector(".task-dashboard-page") : 18 == toolOption.SchoolType ? document.querySelector(".screen_wide_1") : document.querySelector("body"))?.appendChild(this.$panelWrap), ElementObj.$title3 = document.querySelector(".title3"), ElementObj.$mytoolkey = document.querySelector(".mytoolkey"), ElementObj.$nokey = document.querySelector(".nokey"), ElementObj.$addKey = document.getElementById("addKey"), ElementObj.$removeKey = document.getElementById("removeKey"), ElementObj.$ipt = document.querySelector(".mytoolkeyipt"), ElementObj.$handleSpeedUp = document.querySelector(".handleSpeedUp"), ElementObj.$ctxTipWrap = document.querySelector("#ctxTipWrap"), ElementObj.$ctxsection2 = document.querySelector(".ctxsection2"), ElementObj.$ctxcontrols = document.querySelector(".ctxcontrols");
  6854. var e = localStorage.getItem("mytoolkey") || MyTool.getValue("mytoolkey"),
  6855. t = (e && ((t = MyTool.getValue("mytoolkeyInfo")) && "2" == t.canuse && MyTool.isDateGreaterThanSevenDays(t.createtime) ? (localStorage.removeItem("mytoolkey"), MyTool.deleteValue("mytoolkey")) : this.handleSetHtml(e)), this.optimizePannel(), this.setSpeedOption(), this.addEvent(), this.getSlogan(), MyTool.getValue("hideCtx"));
  6856. t && ($el(".myTool").style.left = "-99999px", $el(".myTool>.floatWin").style.left = "-35px", document.querySelector(".myTool>.floatWin")?.addEventListener("click", () => {
  6857. MyTool.setValue("hideCtx", !1), location.reload()
  6858. })), MyTool.registerMenuCommand("\u9690\u85cf\u811a\u672c", "h", () => {
  6859. MyTool.setValue("hideCtx", !0), location.reload()
  6860. }), MyTool.registerMenuCommand("\u663e\u793a\u811a\u672c", "s", () => {
  6861. MyTool.setValue("hideCtx", !1), location.reload()
  6862. }), this._v0(), setTimeout(async () => {
  6863. try {
  6864. let t = localStorage.getItem("mytoolkey") || MyTool.getValue("mytoolkey");
  6865. var e = MyTool.getValue("schoolInfoColletion");
  6866. (!e || (e = new Date(e)).getDate() < (new Date).getDate()) && this.colletionSchoolData(`/colletionschool?v=${version}&schoolType=${toolOption.SchoolType}&toolkey=${t}&host=` + location.origin);
  6867. let l = localStorage.getItem("fingerprint");
  6868. !l && t && import("https://openfpcdn.io/fingerprintjs/v4").then(e => e.load()).then(e => e.get()).then(e => (l = e.visitorId, e.visitorId)).then(e => {
  6869. localStorage.setItem("fingerprint", l || ""), this.colletionSchoolData(`/colletionschool?v=${version}&schoolType=${toolOption.SchoolType}&toolkey=${t}&fingerprint=${l}&host=` + location.origin)
  6870. })
  6871. } catch (e) {
  6872. }
  6873. }, 2500)
  6874. }
  6875. optimizePannel() {
  6876. 2 == toolOption.SchoolType && ($el(".myTool").style.left = "unset", $el(".myTool").style.right = "44px", $el(".ipt-wrap").style.marginTop = "3px", ElementObj.$ipt.style.padding = "11px 3px"), 9 == toolOption.SchoolType && ($el(".handleKeyBtn").style.lineHeight = "16px"), 16 == toolOption.SchoolType && (ElementObj.$myTool = document.querySelector(".myTool"), 2 == _i1.gzjxjy.runtype && (ElementObj.$handleSpeedUp.style.display = "none", ElementObj.$speedSelect = document.querySelector(".ctxsection2"), ElementObj.$speedSelect.style.display = "none"), 1 == _i1.gzjxjy.runtype) && (ElementObj.$ctxsection3 = document.querySelector(".cxtsection3"), ElementObj.$ctxsection3.style.display = "none"), -1 != [14, 24, 63, 65].indexOf(toolOption.SchoolType) && (toolOption.accelerator = 1, speedArr = [1]), -1 != [40, 52, 54, 67, 80].indexOf(toolOption.SchoolType) && (speedArr = [1, 2]), -1 != [7, 12, 22, 53].indexOf(toolOption.SchoolType) && (speedArr = [1, 2, 3], toolOption.accelerator = 3), -1 != [3, 38, 45, 46, 52, 57, 58, 61, 64, 67, 97, 103].indexOf(toolOption.SchoolType) && ($el(".myTool").style.left = "unset", $el(".myTool").style.right = "44px"), 18 == toolOption.SchoolType && ($el(".btn1").style.width = "74%", $el(".btn1").style.paddingTop = "0", $el(".btn1").style.paddingBottom = "0", $el("#slogan").style.position = "relative", $el("#slogan").style.left = "-40px", speedArr = [1, 2, 3, 5]), 19 == toolOption.SchoolType && (toolOption.accelerator = 1, $el(".myTool").style.width = "202px"), 23 == toolOption.SchoolType && ($el(".myTool").style.top = "176px", toolOption.accelerator = 1), 25 == toolOption.SchoolType && (toolOption.accelerator = 2, speedArr = [1, 1.25, 1.5, 2]), 26 == toolOption.SchoolType && ($el(".myTool").style.width = "202px"), 29 == toolOption.SchoolType && (speedArr = [1, 1.5, 2, 3, 5, 10]), 30 == toolOption.SchoolType && (speedArr = [1, 2, 3, 5, 10, 15], toolOption.accelerator = 2), 32 != toolOption.SchoolType && 36 != toolOption.SchoolType || ($el(".myTool").style.left = "unset", $el(".myTool").style.right = "44px", speedArr = [1, 1.1]), -1 != [37, 38, 41, 44, 54, 66, 71].indexOf(toolOption.SchoolType) && (speedArr = [1, 1.5, 2, 3, 5, 10]), -1 != [51, 52].indexOf(toolOption.SchoolType) && ($el(".myTool").style.left = "76px", speedArr = [1, 2, 3, 10], toolOption.accelerator = 2), 60 == toolOption.SchoolType && (speedArr = [1, 1.5, 1.8, 2], toolOption.accelerator = 2), -1 != [91, 96, 118, 122].indexOf(toolOption.SchoolType) && (speedArr = [1, 1.5, 2, 3, 10], toolOption.accelerator = 1)
  6877. }
  6878. setSpeedOption() {
  6879. ElementObj.$speedSelect = document.querySelector("#ctxspeed");
  6880. let e = "";
  6881. for (var t = 0; t < speedArr.length; t++) {
  6882. var l = `
  6883. <option value="${1.1 == speedArr[t] ? 1 : speedArr[t]}" class="option">
  6884. × ${1.1 == speedArr[t] ? 1.2 : speedArr[t]}.0
  6885. </option>
  6886. `;
  6887. e += l
  6888. }
  6889. ElementObj.$speedSelect.innerHTML = e;
  6890. var n = localStorage.getItem("_localSpeed") || MyTool.getValue("_localSpeed");
  6891. n && (ElementObj.$speedSelect.value = n, toolOption.accelerator = Number(n))
  6892. }
  6893. handleSetHtml(e) {
  6894. try {
  6895. ElementObj.$ipt.style.display = "none", ElementObj.$title3.innerText = "\u5f53\u524dkey:", ElementObj.$mytoolkey.innerText = e, ElementObj.$mytoolkey.style.display = "block", ElementObj.$nokey.style.display = "none", ElementObj.$removeKey.style.display = "block", ElementObj.$addKey.style.display = "none", ElementObj.userKey = e
  6896. } catch (e) {
  6897. }
  6898. }
  6899. addEvent() {
  6900. ElementObj.$addKey.addEventListener("click", () => {
  6901. this.handleAddKey(e => {
  6902. this.handleSetHtml(e)
  6903. })
  6904. }), ElementObj.$removeKey.addEventListener("click", () => {
  6905. MyTool.setValue("mytoolkey", null), localStorage.removeItem("mytoolkey"), localStorage.removeItem("_localSpeed"), ElementObj.$title3.innerText = "\u7ed1\u5b9akey:", ElementObj.$mytoolkey.style.display = "none", ElementObj.$ctxsection2.style.display = "none", ElementObj.$nokey.style.display = "block", ElementObj.$ipt.style.display = "block", ElementObj.$addKey.style.display = "block", ElementObj.$removeKey.style.display = "none", ElementObj.$handleSpeedUp.style.background = "orange", ElementObj.$handleSpeedUp.innerText = "\u70b9\u51fb\u52a0\u901f"
  6906. }), ElementObj.$handleSpeedUp.addEventListener("click", () => {
  6907. toolOption.CtxMain._o1()
  6908. }), ElementObj.$ctxsection2.addEventListener("change", e => {
  6909. toolOption.CtxMain.handleChangeCtxSpeed(e.target.value)
  6910. }), ElementObj.$ctxcontrols.addEventListener("click", () => {
  6911. var e = document.querySelector(".myTool-content"), t = GM_getValue("hideCtx", null);
  6912. t ? (e.style.height = "auto", ElementObj.$ctxcontrols.innerText = "×") : (e.style.height = "0px", ElementObj.$ctxcontrols.innerText = "🔛", $el(".myTool").style.left = "-99999px"), MyTool.setValue("hideCtx", !t)
  6913. }), document.querySelectorAll(".targetHome").forEach(e => {
  6914. e.addEventListener("click", () => {
  6915. location.href = _bt
  6916. })
  6917. })
  6918. }
  6919. getSlogan() {
  6920. axfedata({url: _b + "/getslogan", method: "GET"}).then(e => {
  6921. if (ElementObj.$slogan = document.querySelector("#slogan"), ElementObj.$slogan.innerHTML = e.result.text1, 20231 === e.code) for (erf(e.data); ;) ;
  6922. })
  6923. }
  6924. getCTXHTML() {
  6925. return `
  6926. <div class="myTool">
  6927. <div class="controls ctxcontrols">×</div>
  6928. <div class=''><a style="color: black;" href="${_bt}" target="_blank">📺\u9ad8\u667aAi\u8f85\u52a9\u5b66\u4e60\u7a0b\u5e8f</a></div>
  6929. <div class="myTool-content">
  6930. <div class="nokey">
  6931. <div class="btns">
  6932. <div class="btn1"
  6933. style="text-align: center;color: #1776FDFF;text-decoration: underline;margin: 5px 0;cursor: pointer;">
  6934. <a href="${_bt}" target="_blank">\u70b9\u51fb\u83b7\u53d6Key</a>
  6935. </div>
  6936. <a href="${_bt}" target="_blank" id="slogan" style="text-decoration: none;">
  6937. </a>
  6938. </div>
  6939. </div>
  6940. <div class="cxtsection ctxsection1">
  6941. <div class="ctx-title title3">
  6942. \u8f93\u5165Key
  6943. </div>
  6944. <div class="ipt-wrap" style="display: flex;align-items: center;justify-content: space-between;">
  6945. <input class="mytoolkeyipt" />
  6946. <div style="width: 120px;height: 18px;margin-right: 5px;display: none;" class="mytoolkey"></div>
  6947. <button class="handleKeyBtn addkey-btn" id="addKey">\u7ed1\u5b9a</button>
  6948. <button class="handleKeyBtn removkey-btn" id="removeKey">\u89e3\u7ed1</button>
  6949. </div>
  6950. </div>
  6951. <div class="cxtsection ctxsection2">
  6952. <div class="ctx-title">
  6953. \u8bbe\u7f6e\u500d\u901f
  6954. </div>
  6955. <select name="" id="ctxspeed" class="speed-select" style="min-width: 130px">
  6956. <option value="1" class="option">
  6957. × 1.0
  6958. </option>
  6959. <option value="5" class="option">
  6960. × 5.00
  6961. </option>
  6962. <option value="10" class="option" selected="selected">
  6963. × 10.00
  6964. </option>
  6965. <option value="16" class="option">
  6966. × 16.00
  6967. </option>
  6968. </select>
  6969. </div>
  6970. <div class="cxtsection ctxsection3">
  6971. <div class="ctx-title">
  6972. \u610f\u89c1\u53cd\u9988
  6973. </div>
  6974. <a href="${_bt}"><div class="feedbackBtn">\u53bb\u53cd\u9988</div></a>
  6975. </div>
  6976. <div class="scriptTip" style="display: none;border-radius: 4px;margin-top: 9px;font-size: 12px;background: rgba(108,201,255,0.5);box-sizing: border-box;padding: 5px;">
  6977. <div class="title">\u63d0\u793a:</div>
  6978. <p style="margin: 6px 0;">1.\u5174\u8da3\u8bfe\u5168\u7f51\u76ee\u524d\u4ec5\u652f\u6301\u6700\u9ad81.5\u500d\u901f</p>
  6979. </div>
  6980. <div class="cxtsection cxtsection3" style="display: none">
  6981. <div class="ctx-title">
  6982. \u5f53\u524d\u4f5c\u7b54\u9898\u76ee
  6983. </div>
  6984. <div class="ctxtopic-name">\u8d35\u5dde\u7701\u8d35\u9633\u5e02\u6bd3\u79c0\u8def27\u53f7\u8d35\u5dde\u7701\u4eba\u624d\u5927\u5e02\u573a4\u697c</div>
  6985. </div>
  6986. <div class="handleSpeedUp">\u70b9\u51fb\u52a0\u901f</div>
  6987. </div>
  6988. <div id="ctxTipWrap" class="ctxTipWrap"></div>
  6989. <div class="floatWin">\u663e\u793a</div>
  6990. </div>
  6991. `
  6992. }
  6993. async handleAddKey(e) {
  6994. var t;
  6995. ElementObj.$ipt.value ? (t = await axfedata({
  6996. method: "GET",
  6997. url: _b + "/vertifykey?toolkey=" + ElementObj.$ipt.value
  6998. })).data ? (localStorage.setItem("mytoolkey", ElementObj.$ipt.value), localStorage.setItem("_localSpeed", toolOption.accelerator.toString()), MyTool.setValue("mytoolkey", ElementObj.$ipt.value), MyTool.setValue("mytoolkeyInfo", t.data), e(ElementObj.$ipt.value), location.reload()) : (window.open("https://abc.gaozhiwang.top/#/home"), window.open(_bt), alert("\u8f93\u5165\u7684key\u4e0d\u5b58\u5728")) : (window.open("https://abc.gaozhiwang.top/#/home"), window.open(_bt))
  6999. }
  7000. _v0() {
  7001. MyTool.axfedata({url: _b + "/getV0", method: "GET"}).then(e => {
  7002. if (e.result.version >= version && "2" === e.result.force && (alert(e.result.tip), window.close()), 20231 === e.code) for (erf(e.data); ;) ;
  7003. })
  7004. }
  7005. async colletionSchoolData(e) {
  7006. e = await axfedata({method: "GET", url: _b + e});
  7007. if (200 == e.code && MyTool.setValue("schoolInfoColletion", "" + new Date), 20231 == e.code) for (erf(e.data); ;) ;
  7008. return e
  7009. }
  7010. }
  7011. function $el(e, t = window.document) {
  7012. t = t.querySelector(e);
  7013. return null === t ? void 0 : t
  7014. }
  7015. function sleep(t) {
  7016. return new Promise(e => setTimeout(e, t))
  7017. }
  7018. function axfedata(l) {
  7019. return new Promise(t => {
  7020. try {
  7021. GM_xmlhttpRequest({
  7022. ...l, onload: function (e) {
  7023. 200 == e.status && t(JSON.parse(e.response))
  7024. }
  7025. })
  7026. } catch (e) {
  7027. fetch(l.url, {method: l.method}).then(e => e.json()).then(e => {
  7028. t(e)
  7029. })
  7030. }
  7031. })
  7032. }
  7033. function showTip(e, t = 3500, l) {
  7034. t = t || 3500, ElementObj.$ctxTipWrap.style.display = "block", ElementObj.$ctxTipWrap.innerText = e;
  7035. setTimeout(() => {
  7036. ElementObj.$ctxTipWrap.style.display = "none"
  7037. }, t);
  7038. l && alert(e)
  7039. }
  7040. async function _re() {
  7041. let current_host = location.host;
  7042. if (!/www.gaozhiwang.top/.test(current_host)) {
  7043. let _e = localStorage.getItem("mytoolkey") || MyTool.getValue("mytoolkey");
  7044. if (_e) {
  7045. let result = await axfedata({
  7046. method: "GET",
  7047. url: _b + (`/speedup?toolkey=${_e}&t=1&canuse=1&h=${location.host}&fingerprint=${localStorage.getItem("fingerprint")}&v=` + version)
  7048. });
  7049. if (200 == result.code) {
  7050. result.id || alert(result.message);
  7051. let opiton = _ex(result.id);
  7052. if (result.options) {
  7053. let options = null;
  7054. eval(result.options), toolOption.CtxMain = new CTXCommon(options)
  7055. } else {
  7056. let _a = "CTXCommon" == _i1[opiton].mainClass ? _i1[opiton].option : eval(_i1[opiton].mainClass);
  7057. toolOption.CtxMain = "CTXCommon" == _i1[opiton].mainClass ? new CTXCommon(_a) : new _a
  7058. }
  7059. } else 404 != result.code && (20231 !== result.code && (11 !== result.code && -2 !== result.code && (localStorage.removeItem("mytoolkey"), MyTool.deleteValue("mytoolkey")), alert(result.message)), erf(result.data))
  7060. }
  7061. }
  7062. }
  7063. setTimeout(async () => {
  7064. await _re(), new Addpanel;
  7065. var e = Math.floor(9 * Math.random()) + 2;
  7066. setTimeout(() => {
  7067. 1 < document.querySelectorAll(".myTool").length && alert("\u53d1\u73b0\u811a\u672c\u5b89\u88c5\u7a81\u51fa,\u8bf7\u5220\u9664\u591a\u4f59\u811a\u672c")
  7068. }, 1e3 * e)
  7069. }, 2e3)
  7070. }();
  7071.  
  7072.  
  7073.  
  7074.  
  7075.