import {CxTaskControlBar, Task} from "@App/mooc/chaoxing/task"; import {createBtn, get, isPhone, protocolPrompt, randNumber} from "@App/internal/utils/utils"; import {Application} from "@App/internal/application"; import {CxVideoOptimization, Video} from "@App/mooc/chaoxing/video"; import {CssBtn} from "@App/mooc/chaoxing/utils"; import {Mooc} from "@App/mooc/factory"; import {Context, Hook} from "@App/internal/utils/hook"; export class CxDocumentTask extends Task { protected time: NodeJS.Timer; public Start(): void { let next = () => { let el = this.context.document.querySelector(".imglook > .mkeRbtn"); if (el.style.visibility == "hidden") { this.completeCallback && this.completeCallback(); return; } el.click(); this.time = this.context.setTimeout(next, randNumber(1, 5) * 1000); }; this.time = this.context.setTimeout(next, randNumber(1, 5) * 1000); } } export class CxAudioOptimization extends CxVideoOptimization { protected param: any; public Start(): void { //对播放器进行优化 window.addEventListener("load", () => { Application.App.config.super_mode && isPhone() && ((Application.GlobalContext).Ext.isChaoxing = true); }); this.hook(); document.addEventListener("readystatechange", () => { this.hook(); }); this.Api(); } protected hook() { if (document.readyState != "interactive") { return; } Application.App.log.Debug("hook cx audio"); let self = this; let paramHook = new Hook("params2VideoOpt", (Application.GlobalContext).ans.AudioJs.prototype); paramHook.Middleware(function (next: Context, ...args: any) { self.param = args[0]; return next.apply(this, args); }); (Application.GlobalContext).Ext.isSogou = false; } } export class CxAudioTask extends Video { protected queryVideo(): HTMLVideoElement { return this.context.document.getElementById("audio_html5_api"); } } export class CxAudioControlBar extends CxTaskControlBar { public defaultBtn() { super.defaultBtn(); let pass = CssBtn(createBtn("秒过嘤频", "秒过会被后台检测到", "cx-btn")); pass.style.background = "#F57C00"; pass.onclick = () => { if (!protocolPrompt("秒过会产生不良记录,是否继续?", "boom_audio_no_prompt")) { return; } (