- // ==UserScript==
- // @name 南信大图书馆入馆考试助手
- // @namespace http://tampermonkey.net/
- // @version 1.4
- // @description 进入南信大入馆考试页面,遇到不会的题按空格自动选择正确答案,如遇问题可加QQ 835573228
- // @author ZYY
- // @include http://learner.nuist.edu.cn/**
- // ==/UserScript==
-
- (function() {
- 'use strict';
-
- //===========================开始==============================
-
- var ti_list = ['图书馆一共有多少间1224平方米的大型借阅室?', '因特殊情况需要个别注册“校园卡证籍”,应该到哪个部门办理手续?', '本科生一次可以借多少册外文图书?', '教职工、研究生借阅期限为?', '科技查新室是在图书馆的哪里?', '所有读者可借阅各种图书最多可以多少册?', '上午可以科技查新的时间是?', '为了提高图书的利用率,每人每次取书不得超过多少册', '本科生的借阅期限为?', '电子阅览室在哪一层?', '寒暑假期间到期的图书,借期可以延至开学日后的多少天?', '赔偿手续办好后,找到了需要赔偿的原有资料怎么办?', '馆藏查询地址是?', '江苏省高校通用借书证每年可办理的时间是?', '图书馆一共有多少间322平方 米的中型借阅室?', '丢失校园卡后,可以到哪个部门办理挂失手续?', '网上挂失校园卡的地址是?', '图书馆一共有多少册印刷型文献?', '哲学、社会学书刊在借阅期间发生损坏严重,影响内容完整者,按原价多少赔偿?', '补办校园卡新卡后,原有卡内余额会?', '书刊资料在借阅期间发生损坏、涂改现象程度较轻,不影响内容完整者,按原价多少赔偿?', '馆藏中文科技书、专业期刊和专业资料在借阅期间发生损坏严重,影响内容完整者,按原价多少赔偿?', '南京信息工程大学图书馆创建于哪一年?', '网上挂失校园卡的地址是?', '多卷集图书和有卷期的刊物遗失一本或数本应该如何赔偿?', '周一到周五图书馆开放的时间是?', '想要体验图书馆的VR虚拟现实,应该去一层的哪里?', '图书馆一共有多少册电子图书?', '中文图书逾期后收取多少占用费?', '江苏省高校通用借书证图书借阅期限为?', '关于图书馆放映厅的服务对象哪个是正确的', '信息共享空间在哪一层?', '中外文过刊,最大借期为多少天?', '偷窃书籍者,除追回原书刊资料外,还应按原价的多少倍进行赔偿?', '阅览室图书因复印等特殊需要临时借出,若当日未归还,逾期将收取每天每册逾期占用费多少元?', '图书馆一共有多少册电子图书?', '周六日图书馆的开放时间是?', '中外文现刊如需借出,下面哪个选项是正确的?','自己的校园卡可以给哪些人使用?','关于馆际互借,一下几个选项中哪个是错误的?','每天几点后可以在微信预约五楼的电子阅览室?','文献传递中产生的费用改如何收取?','按本馆《读者损坏遗失书刊资料赔偿办法》,损害图书最高多少倍赔偿?','读者赔偿款该怎么处理','想要借文科理科的书可以去几楼?']
- var answer_list = ['A', 'B', 'B', 'C', 'B', 'A', 'C', 'C', 'B', 'B', 'D', 'C', 'C', 'D', 'C', 'B', 'D', 'A', 'D', 'C', 'D', 'A', 'C', 'D', 'C', 'B', 'C', 'C', 'B', 'D', 'B', 'D', 'C', 'A', 'D', 'C', 'A', 'A','D','B','A','B','D','A','B']
-
- alert('遇到不会的题目按空格键自动选择答案!')
- document.onkeydown=function(e){ //对整个页面文档监听
- var keyNum=window.event ? e.keyCode :e.which; //获取被按下的键值
-
- if(keyNum==32){
- var tiIndex_list=document.querySelectorAll('.examing_num.clearfix')[0].querySelectorAll('li')
- let ti = document.querySelector('.examing_right_ h4[data-v-1adbac28] span').innerText
- let max_similar = 0
- let max_similar_index = -1
- for(let j = 0;j<ti_list.length;j++){
- if(similar(ti,ti_list[j])>max_similar){
- max_similar = similar(ti,ti_list[j])
- max_similar_index = j
- }
- }
- console.log(ti,ti_list[max_similar_index])
- console.log(similar(ti,ti_list[max_similar_index]))
- console.log(max_similar_index)
- if(max_similar>0.5){
- if(answer_list[max_similar_index].indexOf('A')!=-1){
- document.querySelectorAll('.examing_ans div')[0].click()
- }
- if(answer_list[max_similar_index].indexOf('B')!=-1){
- document.querySelectorAll('.examing_ans div')[1].click()
- }
- if(answer_list[max_similar_index].indexOf('C')!=-1){
- document.querySelectorAll('.examing_ans div')[2].click()
- }
- if(answer_list[max_similar_index].indexOf('D')!=-1){
- document.querySelectorAll('.examing_ans div')[3].click()
- }
- }else{
- alert('本题没有找到答案!')
- }
- }
- }
-
- //===========================结束==============================
- //文本相似度判断
- function similar(s, t, f) {
- if (!s || !t) {
- return 0
- }
- var l = s.length > t.length ? s.length : t.length
- var n = s.length
- var m = t.length
- var d = []
- f = f || 3
- var min = function(a, b, c) {
- return a < b ? (a < c ? a : c) : (b < c ? b : c)
- }
- var i, j, si, tj, cost
- if (n === 0) return m
- if (m === 0) return n
- for (i = 0; i <= n; i++) {
- d[i] = []
- d[i][0] = i
- }
- for (j = 0; j <= m; j++) {
- d[0][j] = j
- }
- for (i = 1; i <= n; i++) {
- si = s.charAt(i - 1)
- for (j = 1; j <= m; j++) {
- tj = t.charAt(j - 1)
- if (si === tj) {
- cost = 0
- } else {
- cost = 1
- }
- d[i][j] = min(d[i - 1][j] + 1, d[i][j - 1] + 1, d[i - 1][j - 1] + cost)
- }
- }
- let res = (1 - d[n][m] / l)
- return res.toFixed(f)
- }
- //累加list前num数的和
- function leijia(list,num){
- var sum = 0
- for(var i=0;i<num;i++){
- sum+=list[i];
- }
- return sum;
- }
-
- //生成从minNum到maxNum的随机数
- function randomNum(minNum,maxNum){
- switch(arguments.length){
- case 1:
- return parseInt(Math.random()*minNum+1,10);
- break;
- case 2:
- return parseInt(Math.random()*(maxNum-minNum+1)+minNum,10);
- break;
- default:
- return 0;
- break;
- }
- }
- //判断num是否在指定区间内
- function isInRange(num,start,end){
- if(num>=start && num<=end){
- return true;
- }else{
- return false;
- }
- }
- //单选题执行函数
- function danxuan(bili){
- var pp = randomNum(1,100)
- for(var i=1;i<=bili.length;i++){
- var start = 0;
- if(i!=1){
- start = leijia(bili,i-1)
- }
- var end = leijia(bili,i);
- if(isInRange(pp,start,end)){
- return i-1;
- break;
- }
- }
- }
- //多选题执行函数
- function duoxuan(probability){
- var flag = false;
- var i = randomNum(1,100);
- if(isInRange(i,1,probability)){
- flag = true;
- }
- return flag;
- }
-
- //清楚cookie
- function clearCookie() {
- var keys = document.cookie.match(/[^ =;]+(?=\=)/g);
- if (keys) {
- for (var i = keys.length; i--;) {
- document.cookie = keys[i] + '=0;path=/;expires=' + new Date(0).toUTCString();//清除当前域名下的,例如:m.kevis.com
- document.cookie = keys[i] + '=0;path=/;domain=' + document.domain + ';expires=' + new Date(0).toUTCString();//清除当前域名下的,例如 .m.kevis.com
- document.cookie = keys[i] + '=0;path=/;domain=kevis.com;expires=' + new Date(0).toUTCString();//清除一级域名下的或指定的,例如 .kevis.com
- }
- }
- alert('已清除');
- }
- //滑动验证函数
- function yanzhen(){
- var event = document.createEvent('MouseEvents');
- event.initEvent('mousedown', true, false);
- document.querySelector("#nc_1_n1z").dispatchEvent(event);
- event = document.createEvent('MouseEvents');
- event.initEvent('mousemove', true, false);
- Object.defineProperty(event,'clientX',{get(){return 260;}})
- document.querySelector("#nc_1_n1z").dispatchEvent(event);
- }
-
- //滚动到末尾函数
- function scrollToBottom(){
- (function () {
- var y = document.body.scrollTop;
- var step = 500;
- window.scroll(0, y);
- function f() {
- if (y < document.body.scrollHeight) {
- y += step;
- window.scroll(0, y);
- setTimeout(f, 50);
- }
- else {
- window.scroll(0, y);
- document.title += "scroll-done";
- }
- }
- setTimeout(f, 1000);
- })();
- }
- })();