Greasy Fork is available in English.

南信大图书馆入馆考试助手

进入南信大入馆考试页面,遇到不会的题按空格自动选择正确答案,如遇问题可加QQ 835573228

  1. // ==UserScript==
  2. // @name 南信大图书馆入馆考试助手
  3. // @namespace http://tampermonkey.net/
  4. // @version 1.4
  5. // @description 进入南信大入馆考试页面,遇到不会的题按空格自动选择正确答案,如遇问题可加QQ 835573228
  6. // @author ZYY
  7. // @include http://learner.nuist.edu.cn/**
  8. // ==/UserScript==
  9.  
  10. (function() {
  11. 'use strict';
  12.  
  13. //===========================开始==============================
  14.  
  15. var ti_list = ['图书馆一共有多少间1224平方米的大型借阅室?', '因特殊情况需要个别注册“校园卡证籍”,应该到哪个部门办理手续?', '本科生一次可以借多少册外文图书?', '教职工、研究生借阅期限为?', '科技查新室是在图书馆的哪里?', '所有读者可借阅各种图书最多可以多少册?', '上午可以科技查新的时间是?', '为了提高图书的利用率,每人每次取书不得超过多少册', '本科生的借阅期限为?', '电子阅览室在哪一层?', '寒暑假期间到期的图书,借期可以延至开学日后的多少天?', '赔偿手续办好后,找到了需要赔偿的原有资料怎么办?', '馆藏查询地址是?', '江苏省高校通用借书证每年可办理的时间是?', '图书馆一共有多少间322平方 米的中型借阅室?', '丢失校园卡后,可以到哪个部门办理挂失手续?', '网上挂失校园卡的地址是?', '图书馆一共有多少册印刷型文献?', '哲学、社会学书刊在借阅期间发生损坏严重,影响内容完整者,按原价多少赔偿?', '补办校园卡新卡后,原有卡内余额会?', '书刊资料在借阅期间发生损坏、涂改现象程度较轻,不影响内容完整者,按原价多少赔偿?', '馆藏中文科技书、专业期刊和专业资料在借阅期间发生损坏严重,影响内容完整者,按原价多少赔偿?', '南京信息工程大学图书馆创建于哪一年?', '网上挂失校园卡的地址是?', '多卷集图书和有卷期的刊物遗失一本或数本应该如何赔偿?', '周一到周五图书馆开放的时间是?', '想要体验图书馆的VR虚拟现实,应该去一层的哪里?', '图书馆一共有多少册电子图书?', '中文图书逾期后收取多少占用费?', '江苏省高校通用借书证图书借阅期限为?', '关于图书馆放映厅的服务对象哪个是正确的', '信息共享空间在哪一层?', '中外文过刊,最大借期为多少天?', '偷窃书籍者,除追回原书刊资料外,还应按原价的多少倍进行赔偿?', '阅览室图书因复印等特殊需要临时借出,若当日未归还,逾期将收取每天每册逾期占用费多少元?', '图书馆一共有多少册电子图书?', '周六日图书馆的开放时间是?', '中外文现刊如需借出,下面哪个选项是正确的?','自己的校园卡可以给哪些人使用?','关于馆际互借,一下几个选项中哪个是错误的?','每天几点后可以在微信预约五楼的电子阅览室?','文献传递中产生的费用改如何收取?','按本馆《读者损坏遗失书刊资料赔偿办法》,损害图书最高多少倍赔偿?','读者赔偿款该怎么处理','想要借文科理科的书可以去几楼?']
  16. 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']
  17.  
  18. alert('遇到不会的题目按空格键自动选择答案!')
  19. document.onkeydown=function(e){ //对整个页面文档监听
  20. var keyNum=window.event ? e.keyCode :e.which; //获取被按下的键值
  21.  
  22. if(keyNum==32){
  23. var tiIndex_list=document.querySelectorAll('.examing_num.clearfix')[0].querySelectorAll('li')
  24. let ti = document.querySelector('.examing_right_ h4[data-v-1adbac28] span').innerText
  25. let max_similar = 0
  26. let max_similar_index = -1
  27. for(let j = 0;j<ti_list.length;j++){
  28. if(similar(ti,ti_list[j])>max_similar){
  29. max_similar = similar(ti,ti_list[j])
  30. max_similar_index = j
  31. }
  32. }
  33. console.log(ti,ti_list[max_similar_index])
  34. console.log(similar(ti,ti_list[max_similar_index]))
  35. console.log(max_similar_index)
  36. if(max_similar>0.5){
  37. if(answer_list[max_similar_index].indexOf('A')!=-1){
  38. document.querySelectorAll('.examing_ans div')[0].click()
  39. }
  40. if(answer_list[max_similar_index].indexOf('B')!=-1){
  41. document.querySelectorAll('.examing_ans div')[1].click()
  42. }
  43. if(answer_list[max_similar_index].indexOf('C')!=-1){
  44. document.querySelectorAll('.examing_ans div')[2].click()
  45. }
  46. if(answer_list[max_similar_index].indexOf('D')!=-1){
  47. document.querySelectorAll('.examing_ans div')[3].click()
  48. }
  49. }else{
  50. alert('本题没有找到答案!')
  51. }
  52. }
  53. }
  54.  
  55. //===========================结束==============================
  56. //文本相似度判断
  57. function similar(s, t, f) {
  58. if (!s || !t) {
  59. return 0
  60. }
  61. var l = s.length > t.length ? s.length : t.length
  62. var n = s.length
  63. var m = t.length
  64. var d = []
  65. f = f || 3
  66. var min = function(a, b, c) {
  67. return a < b ? (a < c ? a : c) : (b < c ? b : c)
  68. }
  69. var i, j, si, tj, cost
  70. if (n === 0) return m
  71. if (m === 0) return n
  72. for (i = 0; i <= n; i++) {
  73. d[i] = []
  74. d[i][0] = i
  75. }
  76. for (j = 0; j <= m; j++) {
  77. d[0][j] = j
  78. }
  79. for (i = 1; i <= n; i++) {
  80. si = s.charAt(i - 1)
  81. for (j = 1; j <= m; j++) {
  82. tj = t.charAt(j - 1)
  83. if (si === tj) {
  84. cost = 0
  85. } else {
  86. cost = 1
  87. }
  88. d[i][j] = min(d[i - 1][j] + 1, d[i][j - 1] + 1, d[i - 1][j - 1] + cost)
  89. }
  90. }
  91. let res = (1 - d[n][m] / l)
  92. return res.toFixed(f)
  93. }
  94. //累加list前num数的和
  95. function leijia(list,num){
  96. var sum = 0
  97. for(var i=0;i<num;i++){
  98. sum+=list[i];
  99. }
  100. return sum;
  101. }
  102.  
  103. //生成从minNum到maxNum的随机数
  104. function randomNum(minNum,maxNum){
  105. switch(arguments.length){
  106. case 1:
  107. return parseInt(Math.random()*minNum+1,10);
  108. break;
  109. case 2:
  110. return parseInt(Math.random()*(maxNum-minNum+1)+minNum,10);
  111. break;
  112. default:
  113. return 0;
  114. break;
  115. }
  116. }
  117. //判断num是否在指定区间内
  118. function isInRange(num,start,end){
  119. if(num>=start && num<=end){
  120. return true;
  121. }else{
  122. return false;
  123. }
  124. }
  125. //单选题执行函数
  126. function danxuan(bili){
  127. var pp = randomNum(1,100)
  128. for(var i=1;i<=bili.length;i++){
  129. var start = 0;
  130. if(i!=1){
  131. start = leijia(bili,i-1)
  132. }
  133. var end = leijia(bili,i);
  134. if(isInRange(pp,start,end)){
  135. return i-1;
  136. break;
  137. }
  138. }
  139. }
  140. //多选题执行函数
  141. function duoxuan(probability){
  142. var flag = false;
  143. var i = randomNum(1,100);
  144. if(isInRange(i,1,probability)){
  145. flag = true;
  146. }
  147. return flag;
  148. }
  149.  
  150. //清楚cookie
  151. function clearCookie() {
  152. var keys = document.cookie.match(/[^ =;]+(?=\=)/g);
  153. if (keys) {
  154. for (var i = keys.length; i--;) {
  155. document.cookie = keys[i] + '=0;path=/;expires=' + new Date(0).toUTCString();//清除当前域名下的,例如:m.kevis.com
  156. document.cookie = keys[i] + '=0;path=/;domain=' + document.domain + ';expires=' + new Date(0).toUTCString();//清除当前域名下的,例如 .m.kevis.com
  157. document.cookie = keys[i] + '=0;path=/;domain=kevis.com;expires=' + new Date(0).toUTCString();//清除一级域名下的或指定的,例如 .kevis.com
  158. }
  159. }
  160. alert('已清除');
  161. }
  162. //滑动验证函数
  163. function yanzhen(){
  164. var event = document.createEvent('MouseEvents');
  165. event.initEvent('mousedown', true, false);
  166. document.querySelector("#nc_1_n1z").dispatchEvent(event);
  167. event = document.createEvent('MouseEvents');
  168. event.initEvent('mousemove', true, false);
  169. Object.defineProperty(event,'clientX',{get(){return 260;}})
  170. document.querySelector("#nc_1_n1z").dispatchEvent(event);
  171. }
  172.  
  173. //滚动到末尾函数
  174. function scrollToBottom(){
  175. (function () {
  176. var y = document.body.scrollTop;
  177. var step = 500;
  178. window.scroll(0, y);
  179. function f() {
  180. if (y < document.body.scrollHeight) {
  181. y += step;
  182. window.scroll(0, y);
  183. setTimeout(f, 50);
  184. }
  185. else {
  186. window.scroll(0, y);
  187. document.title += "scroll-done";
  188. }
  189. }
  190. setTimeout(f, 1000);
  191. })();
  192. }
  193. })();