清华社英语自动刷题刷时长脚本代码分享

举报
始于初夏 发表于 2021/05/14 13:44:43 2021/05/14
【摘要】 一、脚本介绍:    清华社英语自动刷题刷时长脚本是一款电脑上运行的脚本,能够实现课程进度100%以及挂时长。支持新世界交互英语(第一版)视听说、新世界交互英语(第二版)视听说、新时代大学英语视听说、新世界交互英语(第二版)读写译、新时代大学英语读写译、新时代高职英语综合教程二、脚本功能:   1、教材完成100%、总成绩96-100   2、每个单元完成进度为100%   3、每个单元成绩...

一、脚本介绍:

    清华社英语自动刷题刷时长脚本是一款电脑上运行的脚本,能够实现课程进度100%以及挂时长。支持新世界交互英语(第一版)视听说、新世界交互英语(第二版)视听说、新时代大学英语视听说、新世界交互英语(第二版)读写译、新时代大学英语读写译、新时代高职英语综合教程

二、脚本功能:

   1、教材完成100%、总成绩96-100

   2、每个单元完成进度为100%

   3、每个单元成绩为95-100

   4、每个单元会有学习时长 

脚本下载:https://wukongstudio.lanzoui.com/b01i5qpof

  脚本运行界面截图:

清华社真实脚本截图1.png

三、脚本实现原理:

      主要是通过浏览器安装油猴脚本来实现。油猴脚本适用于ChromeFirefox等浏览器。油猴脚本将在您的用户脚本管理方面提供更多的便利。它提供了例如便捷脚本安装、自动更新检查、标签中的脚本运行状况速览、内置的编辑器等众多功能。从而通过脚本管理+脚本的方式来实现清华社英语自动刷题刷时长。

四、脚本的主要代码:

 function input_in(e, txt) {
        if (e.type == 'textarea') {
            e.value= txt;
        } else {
            e.innerText= txt;
        }

        let changeEvent = null;
        changeEvent = document.createEvent ("HTMLEvents");
        changeEvent.initEvent ("input", true, true);
        e.dispatchEvent (changeEvent);

        changeEvent = document.createEvent ("HTMLEvents");
        changeEvent.initEvent ("keyup", true, true);
        e.dispatchEvent (changeEvent);

        changeEvent = document.createEvent ("HTMLEvents");
        changeEvent.initEvent ("change", true, true);
        e.dispatchEvent (changeEvent);
    }

    function mouseEvent(div, type, pos) {
        var mousedown = document.createEvent("MouseEvents");

        let x = 0;
        let y = 0;
        if(pos == undefined) {
            let rect = div.getBoundingClientRect();
            x = (rect.x*2 + rect.width)/2;
            y = (rect.y*2 + rect.height)/2;
        } else {
            x = pos.x;
            y = pos.y;
        }

        mousedown.initMouseEvent(type,true,true,unsafeWindow,0,  
        x, y, x, y,false,false,false,false,0,null);
        div.dispatchEvent(mousedown);
    }

    async function dragTo(from, to) {
        let dragBlock = $(".lib-drag-block");
        dragBlock.scrollTop(to.offsetTop - dragBlock[0].offsetTop);
        $(document).scrollTop(dragBlock[0].offsetTop);
        await sleep(100);
        mouseEvent(from, 'mousedown');
        await sleep(100);
        mouseEvent(to, 'mousemove');
        await sleep(10);
        mouseEvent(to, 'mousemove');
        mouseEvent(to, 'mousemove');
        mouseEvent(to, 'mouseup');
        await sleep(100);
    }

    async function doTopic() {
        let setTixing = async (t)=> {
            console.log('[+] 题型:', t);
            $('#yun_status').text('当前题型:'+t);
        }; 

        if($('.wy-course-bottom .wy-course-btn-right .wy-btn').text().indexOf('Submit')==-1 && $('#J_prismPlayer').length==0) {
            // $('.page-next')[1].click();
            // await sleep(pageNextDelay);
            $('#yun_status').text('当前题目已完成');
            return false;
        }

        if($('img[title="录音"]').length!=0 && config.autodo.includes('auto_luyin')) {
            await setTixing('录音');
            await doReadRepeat();
        } else if($('.lib-textarea-container, .img-blank-answer').length!=0 && config.autodo.includes('auto_lytk')) {
            await setTixing('听力/图片填空');
            await doListenImgAnswer();
        } else if($('.lib-fill-blank-do-input-left').length!=0 && config.autodo.includes('auto_tiankong')) {
            await setTixing('填空');
            await doTianKone();
        } else if($('.lib-single-item-img').length!=0 && config.autodo.includes('auto_danxuan')) {
            await setTixing('单选');
            await doSingleChoose();
        } else if($('.lib-role-select-item').length!=0 && config.autodo.includes('auto_roleplay')) {
            await setTixing('角色扮演');
            await doRolePlay();
        } else if($('.ant-select-dropdown-menu-item').length!=0 && config.autodo.includes('auto_dropchoose')) {
            await setTixing('下拉选择');
            await doDropChoose();
        } else if($('.lib-drag-box').length!=0 && config.autodo.includes('auto_drag')) {
            await setTixing('托块');
            await doDrag();
        } else if($('#J_prismPlayer').length!=0 && config.autodo.includes('auto_video')) {
            await setTixing('视频');
            await doVideo();
            await sleep(config.delay); // 挂机,增加时长
            return true;
        } else {
            await unSupposedOrSkip();
            return false;
        }

        await sleep(config.delay); // 挂机,增加时长
        click_btn(); // Submit
        return true;
    }
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。