forked from zxy19/CJLU_StudentCommentAutomation
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscore.js
137 lines (123 loc) · 5.44 KB
/
score.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
var connection = ['课堂', '同时', '能', '也能', '此外,课堂还'];
function feedbackGen(content, connection, lenreq = 20) {
this.content = content;
this.connection = connection;
this.lenreq = lenreq;
return this;
}
feedbackGen.prototype.randos = function () {
var zs = 0, s = {}, res = [];
while (1) {
for (
var i = parseInt(Math.random() * this.content.length);
s[this.content[i]];
i = parseInt(Math.random() * this.content.length)
) ;
if (res.indexOf(this.content[i]) == -1) {
zs += this.content[i].length;
res.push(this.content[i]);
if (zs > this.lenreq && res.length > 2) break;
}
}
var text = '';
for (var i = 0; i < res.length; i++) {
if (i) text += ',';
text += this.connection[i] + res[i];
}
text += '。';
return text;
}
var teacherGen = new feedbackGen(['达到了很好的教学效果', '能结合多种教学手段', '使学生对知识的掌握更深刻', '教学内容重点突出', '教学目的十分明确', '具有极高的专业技能', '授课方式新颖别致', '激起同学们的兴趣', '很注重互动', '课堂学习氛围轻松愉快', '真正达到了教学的目的要求', '内容深且广', '涵盖面广', '增加了素养', '教学效果显著', '加强自身修养', '使学生在轻松活跃的学习氛围中', '增长了知识', '可以使同学在领略知识魅力的同时提高自己实际技能', '教课内容广大博深', '高质量,高效率', '教课内容新颖', '独特,有个性', '表现出来的激情和精神可以深深吸引并打动学生'], ['课堂', '同时', "", '并且', '此外,课堂还'], 20);
var textbookGen = new feedbackGen(['适合学生自学', '难度适中', '便于学生自学', '对知识点讲解细致', '章节安排合理', '内容丰富,讲解到位'], ['教材', '而且', '同时', '此外,教材'], 10);
function emit_change_event(elem, val) {
elem.dispatchEvent(new InputEvent('change', {autoInnerEvent: true}));
elem.dispatchEvent(new InputEvent('input', {autoInnerEvent: true}));
}
function make_form() {
var allPanel = $('.panel.panel-default.panel-pjdx');
var classInfo = $('#jsxm').parent().parent().find('.col-sm-8').text();
var teacher = $('#jsxm').text();
console.log(`教师:${teacher},课程:${classInfo}`);
for (var i = 0; i < allPanel.length; i++) {
var panel = $(allPanel[i]);
var panelTitle = panel.find('.panel-heading .panel-title').text();
var inputs = panel.find('.form-control.input-sm.input-pjf')
var scores;
if (panelTitle.indexOf('(教材)') != -1) {
scores = customScoringFunction_textbook(teacher, classInfo);
if (!scores.feedback) scores.feedback = textbookGen.randos();
} else if (panelTitle.indexOf('(教师)') != -1) {
scores = customScoringFunction_teacher(teacher, classInfo);
if (!scores.feedback) scores.feedback = teacherGen.randos();
}
for (var j = 0; j < inputs.length; j++) {
if (!scores.score[j]) scores.score[j] = random_socre();
$(inputs[j]).val(scores.score[j]);
emit_change_event(inputs[j]);
}
panel.find('textarea').text(scores.feedback);
emit_change_event(panel.find('textarea')[0]);
}
}
async function delay(ms) {
return new Promise(function (s) {
setTimeout(s, ms);
})
}
async function fill_form() {
make_form();
await delay(100);
console.log('三秒后提交表单...');
await delay(3000);
$('#btn_xspj_tj').data('enter', 1);
$('#btn_xspj_tj').click();
}
async function auto_submit() {
$('#first_pager').click();
console.log(`[等待3s]翻页`);
await delay(3000);
while (1) {
var unSubmittedElement = $('td[title="未评"]')[0];
if (!unSubmittedElement) {
if ($('.ui-pg-input').val() != $('#sp_1_pager').text()) {
console.log(`[等待3s]翻页`);
$('#next_pager').click()
await delay(3000);
continue;
} else
break;
}
unSubmittedElement = $(unSubmittedElement);
unSubmittedElement.parent().click();
console.log(`[等待5s]选择:${unSubmittedElement.next().text()} - ${unSubmittedElement.next().next().next().text()}`)
await delay(5000);
await fill_form();
while (1) {
console.log(`等待提交完成`);
if ($('#btn_ok')[0]) break;
}
$('#btn_ok').click();
console.log(`5s后开始下一次循环`);
await delay(5000);
}
alert('全部评价已完成!');
}
if (document.title != '学生评价') {
alert('您不在学生评价页面!');
} else {
if (confirm(`
!!!您刚刚执行了自动评价插件!!!
如果是无意之举,请点击取消或在5秒内刷新页面,点击确定5秒后,脚本将会自动开始填写表单。
填写过程中,您可以随时通过刷新来中断运行。
`))
setTimeout(auto_submit, 5000);
}
function random_socre(min_score = 90) {
return Math.floor(Math.random() * (100 - min_score)) + min_score;
}
function customScoringFunction_textbook(teacherName, classInfo) {
return {defaultScore: 99, score: [], feedback: ""};
}
function customScoringFunction_teacher(teacherName, classInfo) {
return {defaultScore: 99, score: [], feedback: ""};
}