NAGEN / 填问卷

// ==UserScript==
// @name         填问卷
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @include      *
// @license MIT
// @run-at       document-end
// ==/UserScript==



let studyTask = {
    search() {
        let textarea = document.createElement('textarea');
        let divs = document.querySelectorAll('.div_title_question_all');
        textarea.setAttribute('style', `margin:0;padding:0;width:0;height:0;
        position:absolute;`);
        document.body.appendChild(textarea);
        for (let div of divs) {
            let text = div.querySelector('.div_title_question').textContent;
            if (!(/您的姓名/.test(text)) && !(/学号/.test(text))) {
                let btn = document.createElement('BUTTON');
                btn.textContent = '搜索';
                btn.setAttribute('class', 'copy_btn');
                btn.setAttribute('style', `float:right;margin-right:150px;
                padding-left:10px;padding-right:10px;padding-top:5px;
                padding-bottom:5px;`);
                div.appendChild(btn);
            }
        }
        let btns = document.querySelectorAll('.copy_btn');
        for (let btn of btns) {
            btn.addEventListener('click', () => {
                let text = btn.parentNode.querySelector('.div_title_question')
                    .childNodes[0].nodeValue;
                let url = `https://www.baidu.com/baidu?wd=${text}`;
                window.open(url);
                // textarea.value = text;
                // textarea.select();
                // document.execCommand("Copy"); // 执行浏览器复制命令
            })
        }
    },
    autocomplete() {
        let divs = document.querySelectorAll('.div_question');
        for (let div of divs) {
            let text = div.querySelector(
                '.div_title_question_all>.div_title_question').textContent;
            let input = div.querySelector('.inputtext');
            function fill(pattern, value) {
                if (new RegExp(pattern).test(text)) {
                    input.value = value;
                }
            }
            let fill_options = {
                您的姓名: '黄鸿健',
                学号: '17033150222',
                班主任: '蔡旭菱',
                班级: '17计算机网络应用高级五年二班'
            };
            for (let i in fill_options) {
                fill(i, fill_options[i]);
            };
        }
    }
}

let oneRollPerDay = {
    scrollBar() {
        let body = document.documentElement;
        let num = body.scrollHeight - body.scrollTop;
        body.scrollTop += num;
    },
    autocomplete1() {
        /*
        将输入框和选项分开,各自获取和判断填值
        */
        localStorage.setItem('学习强国积分',
            Number(localStorage.getItem('学习强国积分')) + 1);
        let num = localStorage.getItem('学习强国积分');
        let divs = document.querySelectorAll('.field ');
        for (let div of divs) {
            let title = div.querySelector('.field-label').textContent;
            let input, radio_list, radio;
            let input_title = [
                '1. 班主任姓名:*',
                '2. 你的姓名:*',
                '6. 你目前所在地区:*',
                '16. 本次填报的日期:*',
                '17. 今天的具体位置:*',
                '23. 学习 强国App学习积分:*'
            ];
            function getRadio(pattern, num) {
                if (pattern.test(title)) {
                    num -= 1
                    radio = radio_list[num];
                }
            }
            function getInput(pattern, value) {
                if (pattern.test(title)) {
                    input.value = value;
                }
            }
            if (input_title.includes(title)) {
                input = div.getElementsByTagName('input')[0];
                getInput(/班主任姓/, '蔡旭菱');
                getInput(/你的姓名/, '黄鸿健');
                getInput(/你目前所/, '广东-广州-海珠区');
                getInput(/本次填报/, `${new Date().getFullYear()}-${
                    new Date().getMonth() + 1}-${new Date().getDate()}`);
                getInput(/今天的具/, '广东省广州市海珠区沙园街道荔福路7号广州市微生物研究所海珠区生物科技');
                getInput(/学习 强国/, num);
            } else {
                radio_list = div.getElementsByTagName('input');
                getRadio(/你所以年/, 3);
                getRadio(/你目前的/, 1);
                getRadio(/是否今天/, 2);
                getRadio(/今天位置/, 1);
                getRadio(/是否在兼/, 1);
                getRadio(/本人是否/, 1);
                getRadio(/是否有去/, 1);
                // 因为这里是有3个input,第二个input是填空的
                getRadio(/1月8日/, 3);
                getRadio(/是否间接/, 2);
                getRadio(/过去14天/, 2);
                getRadio(/1.是否目/, 1);
                getRadio(/是否完成/, 1);
                getRadio(/今天是否/, 2);
                getRadio(/是否在“/, 1);
                getRadio(/是否学习/, 1);

            }
            radio && radio.setAttribute('checked', 'checked');
        }
    },
    autocomplete2() {
        /*
    将输 入框和选项分开,各自获取和判断填值
    */
        let divs = document.querySelectorAll('.div_question');
        localStorage.setItem('学习强国积分',
            Number(localStorage.getItem('学习强国积分')) + 1);
        let num = localStorage.getItem('学习强国积分');
        for (let div of divs) {
            let title = div.querySelector('.div_title_question').textContent;
            let textarea, radio_list, radio;
            let textarea_title = [
                '班主任姓名:*',
                '你的姓名:*',
                '你目前所在地区:*',
                '本次填报的日期:*',
                '今天的具体位置:*',
                '学习 强国App学习积分:*'
            ];
            function getRadio(pattern, num) {
                if (pattern.test(title)) {
                    num -= 1
                    radio = radio_list[num];
                }
            }
            function getInput(pattern, value) {
                if (pattern.test(title)) {
                    textarea.textContent = value;
                }
            }
            console.debug(title)
            if (textarea_title.includes(title)) {
                textarea = div.getElementsByTagName('textarea')[0];
                getInput(/班主任姓/, '蔡旭菱');
                getInput(/你的姓名/, '黄鸿健');
                getInput(/你目前所/, '广东-广州-海珠区');
                getInput(/本次填报/, `${new Date().getFullYear()}-${
                    new Date().getMonth() + 1}-${new Date().getDate()}`);
                getInput(/今天的具/, '广东省广州市海珠区沙园街道荔福路7号广州市微生物研究所海珠区生物科技');
                getInput(/学习 强国/, num);

            } else {
                radio_list = div.getElementsByTagName('input');
                getRadio(/你所以年/, 3);
                getRadio(/你目前的/, 1);
                getRadio(/是否今天/, 2);
                getRadio(/今天位置/, 1);
                getRadio(/是否在兼/, 1);
                getRadio(/本人是否/, 1);
                getRadio(/是否有去/, 1);
                // 因为这里是有3个input,第二个input是填空的
                getRadio(/1月8日/, 3);
                getRadio(/是否间接/, 2);
                getRadio(/过去14天/, 2);
                getRadio(/1.是否目/, 1);
                getRadio(/是否完成/, 1);
                getRadio(/今天是否/, 2);
                getRadio(/是否学习/, 1);
                getRadio(/是否在“/, 1);

            }
            radio && radio.setAttribute('checked', 'checked');

        }
    }
}



if (/www\.wjx\.cn\/jq/.test(location.href)) {
    let title = document.querySelector('h1');
    if (/每日一报/.test(title)) {
        oneRollPerDay.scrollBar();
        oneRollPerDay.autocomplete2();
    } else {
        studyTask.search();
        studyTask.autocomplete();
    }

} else if (/www\.wjx\.cn\/m/.test(location.href)) {
    oneRollPerDay.scrollBar();
    oneRollPerDay.autocomplete1();

}