Crack Forclass

这同样适用于 Forclass,Sunclass,271BAY,Zhizhiniao

当前为 2021-06-05 提交的版本,查看 最新版本

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name               Crack Forclass
// @namespace          https://www.forclass.tk/script
// @version            3.7.0
// @icon               https://houtar.coding.net/p/crackForclass/d/crackForclass/git/raw/master/icon.png
// @description        这同样适用于 Forclass,Sunclass,271BAY,Zhizhiniao
// @author             Houtarchat
// @match              *://*.forclass.net/Student/Dati*
// @match              *://*.271bay.com/Student/Dati*
// @match              *://web.zhizhiniao.com/Student/Dati*
// @contributionURL    https://www.houtarchat.ml/donate.html
// @contributionAmount 5 RMB
// @license            GNU General Public License
// @run-at             document-idle
// ==/UserScript==
(() => {
    /* jslint browser: true */
    /* global unsafeWindow */

    unsafeWindow.g_debugmode = true;
    const aidx = unsafeWindow.getRequestParamValue('aidx'), paidx = unsafeWindow.getRequestParamValue('paidx');
    unsafeWindow.tick = () => null;
    unsafeWindow.polling4Submit = () => null;
    unsafeWindow.$('.qoption input,.qoption textarea').unbind('cut copy paste');
    unsafeWindow.document
        .querySelector(
            '#paperoperation > div.el-dati-funcs.el-upload-submit > div.el-dati-submit-td'
        )
        .setAttribute('class', 'el-dati-submit-td');

    if (unsafeWindow.getRequestParamValue('type') === '5') {
        const oneClickCompletionReviewButton = document.createElement('input');
        oneClickCompletionReviewButton.onclick = () =>
            unsafeWindow.addToQueue('UploadAttachmentPaperAnswer2', {
                aidx,
                session: unsafeWindow.getSession(),
                page: 1,
                studentAnswer: '<style>[ads]{vertical-align:baseline;font-weight:400;font-style:normal;font-size:14px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.3em;letter-spacing:0}[ads] a{text-decoration:none}[ads] .ea-content{margin:1em 1em .5em;padding:1em;background:rgba(0,0,0,.03);color:#505050}[ads] .ea-content a:link,[ads] .ea-content a:visited{color:#505050}[ads] .ea-content a:active,[ads] .ea-content a:hover{color:#373737}[ads] .ea-content a b,[ads] .ea-content a strong{color:#088cdb}[ads] .ea-callout a:link,[ads] .ea-callout a:visited{color:#6a6a6a}[ads] .ea-callout a:active,[ads] .ea-callout a:hover{color:#505050}[ads] .ea-callout a{font-size:.8em}[ads] .ea-content{border:0;border-radius:3px;box-shadow:0 2px 3px rgba(0,0,0,.15)}[ads] .ea-content{border:0;border-radius:3px;box-shadow:none}[ads]{font-size:14px}[ads] .ea-content{text-align:left}[ads] .ea-callout{margin:.5em 1em 1em;padding-right:1em;padding-left:1em;text-align:right;font-style:italic}</style><div ads><div class=\'ea-content\'><a href=\'https://greasyfork.org/zh-CN/scripts?set=451857\' rel=\'nofollow\' target=\'_blank\'><strong>Crack Forclass: </strong><span>The best plugin for Forclass.</span> <strong>Try it now!</strong></a></div><div class=\'ea-callout\'><a target=\'_blank\' href=\'https://greasyfork.org/zh-CN/users/614734-houtar0chat\'>Ad by Houtarchat</a></div></div>',
                studentAnswerURL: '',
                size: '',
            }, () => {
                unsafeWindow.http('GetStudentAnsweredPaper', {
                    session: unsafeWindow.getSession(),
                    page: 1,
                    paidx,
                    aidx,
                }, response =>
                    unsafeWindow.addToQueue('SetAssignmentPaperAnswer', {
                        session: JSON.parse(unsafeWindow.sessionStorage.account).session,
                        paIdx: response[0].PAIdx,
                        score: '100',
                        comment: '',
                        page: 0,
                    }, () => null, '', true), '');
            }, '', true);
        oneClickCompletionReviewButton.type = 'button';
        oneClickCompletionReviewButton.value = '一键完成&amp;批阅';
        $('.el-dati-attach-require').append(oneClickCompletionReviewButton);
    } else {
        const htTime = document.createElement('input');
        htTime.id = 'HT-Time';
        htTime.value = 'HH:mm:ss';
        const modificationTimeButton = document.createElement('input');
        modificationTimeButton.onclick = () => [unsafeWindow.sessionStorage.hour, unsafeWindow.sessionStorage.minute, unsafeWindow.sessionStorage.second] = $('#HT-Time').val().split(':');
        modificationTimeButton.type = 'button';
        modificationTimeButton.value = '修改答题所用时间';
        const openAnswerPageByFrameButton = document.createElement('input');
        openAnswerPageByFrameButton.onclick = () => {
            const out = unsafeWindow.document.createElement('div'), bar = unsafeWindow.document.createElement('div'),
                title = unsafeWindow.document.createElement('div'), rtbtns = unsafeWindow.document.createElement('div'),
                closeE = unsafeWindow.document.createElement('div'),
                body = unsafeWindow.document.createElement('iframe');
            out.setAttribute('class', 'dlg-out');
            out.setAttribute(
                'style',
                'z-index:3000;left:362.5px;top:140.5px;display:block'
            );
            unsafeWindow.document.querySelector('#main').appendChild(out);
            bar.setAttribute('class', 'dlg-bar');
            out.appendChild(bar);
            title.setAttribute('class', 'dlg-title');
            title.innerText = 'Houtarchat';
            bar.appendChild(title);
            rtbtns.setAttribute('class', 'dlg-rtbtns-out');
            bar.appendChild(rtbtns);
            closeE.setAttribute('class', 'dlg-close-e');
            closeE.setAttribute(
                'style',
                'text-align:center;width:34px;height:39px;display:inline-block;cursor:pointer;vertical-align:top;cursor:pointer;font-size:21px;font-weight:700'
            );
            closeE.innerText = '×';
            rtbtns.appendChild(closeE);
            body.setAttribute('class', 'dlg-body');
            body.setAttribute('src', `${unsafeWindow.location.protocol}//${unsafeWindow.location.host}/Student/Dajx${location.search.replace('state', '')}${location.hash}`);
            body.setAttribute(
                'style',
                'height:250px;width:450px;left:0;overflow:scroll;'
            );
            body.setAttribute('scrolling', 'yes');
            out.appendChild(body);

            closeE.onclick = () => out.style.display = 'none';

            body.onload = () => {
                const content = unsafeWindow.document.querySelector(
                    '#main > div:nth-child(10) > iframe'
                ).contentDocument;
                content.createElement('style').innerText = '*{max-width:520px!important;}';
                content.querySelector('head').appendChild(content.createElement('style'));
                content.querySelector(`body`).setAttribute('style', 'width: 1040px;');
                const width = 'width:520px';
                content
                    .querySelector(`#main > div.el-main.el-w1200`)
                    .setAttribute('style', width);
                content
                    .querySelector(
                        '#main > div.el-main.el-w1200 > div > div.el-stu-out.el-stu-content'
                    )
                    .setAttribute('style', width);
                content
                    .querySelector(
                        '#main > div.el-main.el-w1200 > div > div.el-stu-out.el-stu-content > div'
                    )
                    .setAttribute('style', width);
                content
                    .querySelector(
                        '#main > div.el-main.el-w1200 > div > div.el-stu-out.el-stu-content > div.el-main-right.el-stu-manual-r > div > div'
                    )
                    .setAttribute('style', width);
                content.querySelector('#header').remove();
                content.querySelector('#footer').remove();
                content
                    .querySelector('#main > div.el-main.el-w1200 > div > div.totop')
                    .remove();
                content
                    .querySelector(
                        '#main > div.el-main.el-w1200 > div > div.el-stu-out.el-stu-content > div.el-main-left.el-main-left-thin'
                    )
                    .remove();
            };
        };
        openAnswerPageByFrameButton.type = 'button';
        openAnswerPageByFrameButton.value = '打开frame答案';
        const openAnswerPageByNewPageButton = document.createElement('input');
        openAnswerPageByNewPageButton.onclick = () => window.open(`${unsafeWindow.location.protocol}//${unsafeWindow.location.host}/Student/Dajx${location.search.replace('state', '')}${location.hash}`);
        openAnswerPageByNewPageButton.type = 'button';
        openAnswerPageByNewPageButton.value = '新页面打开答案';
        $('.paperDesc').append(htTime, modificationTimeButton, '<br>');
    }
})();