Greasy Fork is available in English.

奥鹏在线作业助手

奥鹏在线答题小助手

// ==UserScript==
// @name         奥鹏在线作业助手
// @namespace    https://github.com/ousui/open-learn-helper
// @version      0.9.4
// @description  奥鹏在线答题小助手
// @author       shuai.w
// @match        https://learn.open.com.cn/StudentCenter/OnLineJob/*
// @grant        none
// ==/UserScript==

(function () {
    'use strict';
    // 页面执行完执行
    var check = setInterval(main, 250);

    var is_test = false;
    var btn_pcls = 'Opration-Btn-Box';

    function main() {
        if (
            document.getElementsByClassName('Opration-Btn-Box').length == 0 &&
            document.getElementsByClassName('resultshow').length == 0
            ) {
            console.info('>>> 循环检测页面作业类型......');
            return; };
        is_test = document.getElementsByClassName('resultshow').length > 0;
        if (is_test) {
            btn_pcls = 'right-bottom';
            console.info('>>> 作业类型: 作业考核');
        } else {
            console.info('>>> 作业类型: 平时作业');
        }
        clearInterval(check);

        // 这里执行比较快,需要延迟执行
        setTimeout(crack_common, 3000);
        
        add_btn_group();
    }

    function add_btn_group() {
        $('.' + btn_pcls).append('<hr />');
        add_btn('show', do_tags, '搜题');
        add_btn('clean', do_clean, '重做');
    }

    function add_btn(tag, func, text) {
        
        $('.'+btn_pcls).append(
            '<button class="same-margin relative" x-btn-'+tag+'>'+text+'</button>'
        );

        $('.'+btn_pcls+' button[x-btn-'+tag+']')
            .css({
                'background': '#0089ff',
            })
            .hover(function(){
                $(this).css({
                    '-webkit-box-shadow': '0 0 4px #5f5a5a',
                    'box-shadow': '0 0 4px #5f5a5a'
                });
            }, function(){
                $(this).css({
                    '-webkit-box-shadow': '',
                    'box-shadow': ''
                });
            })
            .on('click', func);
    }

    function do_clean() {
        $('.Choosed').click();
    }

     function do_tags() {

        $('.Subject-Title').each(function(i, e){
            var parent = $(e).parents('.Subject-Area');
            
            if (!!parent.attr('x-init')) {
                return;
            }

            parent.attr('x-init', true);
            
            var question = $(e).text();
            var equestion = encodeURIComponent(question);

            var query = $('<div>').css({
                'background': '#efefef',
                'margin-top': '-10px'
            });

            parent.find('.Subject-Title').after(query);
            get_forword_tag(query, 0, "https://www.shangxueba.com/ask/search.aspx?key="+ equestion, "上学吧");
            get_forword_tag(query, 1, "https://www.baidu.com/s?wd="+ equestion, "百度!");
            query.find('a[x-query-li]').css({
                'color': '#03b000',
                'margin': '3px 5px 3px 3px',
                'padding': '0px 5px',
                'font-weight': 800,
                'cursor': 'pointer',
                'font-size': 'larger',
                'padding': '0 8px'
            });
        });

         // fix_width();
    }

    function get_forword_tag(el, i, link, text) {
       var el_a = $('<a />').attr({
            'x-query-li': i,
            'href': link,
            'title': text,
            'target': '_blank'
        }).html(text);
        el.append(el_a);
    }

    function fix_width() {
        $('.blank-title td img').css('width', 'auto');
        $('.question-options li img').css('width', 'auto');
    }

    function request_monitoring() {
        $(document).ajaxComplete(
            function(event, xhr, settings) {

                if (settings.url.indexOf('OnlineJob/DoHomework') <= 0) {
                    return;
                }
                $('.qestitle').each(function(i, e){
                    var question = $(e).text();
                    var equestion = encodeURIComponent(question);
                    var td = $(e).attr('style', '');
                    td.parent().prepend('<td><a href="http://www.baidu.com/s?wd='+ question +'" target="_blank">Q</a></td>');
                    var height = td.height();

                    td.html('<textarea readonly style="width: 100%; border:0; font-weight:400;">'+question+'</textarea>').find('textarea').height(height);
                    // 太丑
                    // var squestion = question.replace(' )', ' ').replace('(', '').replace('。', '');
                    // td.parent().parent().append('<tr><td colspan="3"><input style="width: 100%; height:20px; font-size: 14px;font-weight:100;" value="' + squestion + '" /></td></tr>');
                });
            }
        );
    }

    // 破解常规限制:右键、 ctrl+c、 选中禁用
    function crack_common() {
        console.info('>>> 解除右键限制');
        // 禁用右键
        document.oncontextmenu = function () {
            return true;
        }
        console.info('>>> 解除禁用ctrl+c功能');
        //禁用ctrl+c功能
        document.onkeydown = function () {
            if (event.ctrlKey && window.event.keyCode == 67) {
                return true;
            }
        }
        console.info('>>> 解除禁用选中功能');
        //禁用选中
        $(document).unbind('selectstart');
    }
})();