// ==UserScript==
// @name ustc教务系统扩展脚本
// @namespace jw.ustc.edu.cn enhanced
// @version 1.2.0
// @description ustc教务系统扩展脚本,可自动导入评课社区评分,自动识别验证码等
// @author John Paven
// @match https://jw.ustc.edu.cn/*
// @include https://jw.ustc.edu.cn/*
// @match https://passport.ustc.edu.cn/*
// @include https://passport.ustc.edu.cn/*
// @match https://mail.ustc.edu.cn/
// @include https://mail.ustc.edu.cn/
// @require https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js
// @connect www.icourse.club
// @grant GM_xmlhttpRequest
// ==/UserScript==
(function() {
'use strict';
const args = {
'username': 'PB00000000',
'password': '00000000',
'mail_username': 'ustc',
'mail_password': 'ustc'
};
const params = {'maxlength_withteacher': 150, 'maxlength_withoutteacher': 100};
const compare_numbers = [
'00000001111110000000000001111111111000001000111111111111000000011111111111111000001111110000111111000011111000000111110000111110000001111100011111000000001111100111110000000011111001111100000000111110011111000000001111100111110000000011111001111100000000111110011111000000001111100111110000000011111000111110100001111100001111100000011111000011111100001111110000011111111111111000000011111111111100000000011111111110000000000011111110000000',
'00000011111111000000000011111111110000000000111111111100000100001111111111000000000011100111110000001010000001111100000001000000011111000000000000000111110000000000000001111100000100000000011111000000000000000111110000000000000001111100000000000000011111000000000000000111110001000000000001111100000000000000011111000000000000000111110000000000000001111100000000001111111111111110000011111111111111100000111111111111111000001111111111111110',
'00001111111110000000001111111111111000000011111111111111100000111111111111111000001111000001111111010010000000001111110000000000000001111100000000000000011111000000000000000111110000000000001011111100000000000001111110000000000000111111100000000000011111110000000000001111111000000000001111111100000000000111111110000000000011111111000000000001111111100000000000111111111111111100001111111111111111000011111111111111110000111111111111111100',
'00000111111110000000010111111111111010000001111111111111000000011111111111111000000110000001111110000000000000001111100000000000000011111000000000000000111110000000000001011111000000000011111111110000000000111111110000000000001111111111000000000011111111111000000000000001111111000000000000000111110000000000000001111100001000000000011111000011100000011111110000111111111111111000001111111111111110000001111111111110000000000111111110000000',
'00000000011111110000000000000111111100000000000011111111001000000001111111110000000000011101111100000000001111011111000000000111100111110000000001110001111100000000111101011111010000011110000111110100000111000001111100000011110000011111000001111000000111110000011100000001111100000111111111111111111001111111111111111110011111111111111111100111111111111111111000000000000111110000000000000001111100000000000000011111000000000000000111110000',
'01011111111111110000000111111111111100000001111111111111000000011111111111110000000111110000000000000001111100000000000000011111000000000000000111111111110000000001111111111110000000011111111111110001000111111111111110000001110000011111110000010000000011111100000000000000011111000000000000010111110000000000000001111100001000000000111111000011100000011111100000111111111111111000001111111111111100000001111111111110000000000011111110000000',
'00000001011111100000000000011111111110000000011111111111110000001111111111111100000011111100000111000001111100000000010000011111000000000000001111100111111000000011111111111111000000111111111111111000001111111111111111000011111100000111111000111110000000111110001111100000001111100011111000000011111000111110000000111110000111100000001111100001111100000111110000001111111111111110000001111111111110000000001111111111000000000000111111000000',
'00111111111111111100001111111111111111000011111111111111110000111111111111111100000000001000111110000000000000001111100000000000000111111000000000000001111100000000000000111111000000000000001111100000000000000111111000000000000001111100000000000000111111000000000000001111100000000100000011111000000000000001111110000000000000011111000000000000001111110000000000000011111000000000000001111110000000000000011111000000000000001111110000000000',
'00000001111111000001000001111111111100000000111111111111100000011111111111111100000111111000111111000001111100000111110000011111000001111100000111111000111111000000111111111111100000000111111111110000000001111111111100000101111111111111110000011111100001111100001111100000001111100011111000000011111000111110000000111110001111100000001111100011111100000111111000011111111111111100000111111111111111000000111111111111100000000001111111000000',
'00000001111110000000000001111111111000000000111111111111000000011111111111111000000111110000011111000011111000000011110000111110000000111100001111100000001111100011111000000011111000111110000000111110001111110000011111100001111111111111111000001111111111111110000001111111111111100000001111110011111000000000000001111100000101000000011111000001110000011111100000011111111111111000000111111111111100000000111111111100000000000011111100000000'
];
// add grades for "全校开课查询"
$("tbody").on("click","td a", function() {
$('.modal-title-nameEn').append('<h3 class = "point">评分加载中</h3>');
var course_message = $(this).parent().parent().html().split('</td><td>');
var course_teachers = course_message[8].split(',');
var course_visited = [];
for (var page = 1; page < 10; page++) {
GM_xmlhttpRequest({
method: "GET",
url: "http://www.icourse.club/search/?page=" + page + "&term=&q=" + course_message[2],
synchronous: true,
onload: function(response) {
var response_text = response.responseText;
for (var teacher_id = 0; teacher_id < course_teachers.length; teacher_id++){
var teacher_exist = response_text.search(course_message[8].split(',')[teacher_id]);
if (teacher_exist > 0) {
var text_split = response_text.split(course_message[8].split(',')[teacher_id]);
for (var text_id = 0; text_id < text_split.length - 1; text_id++){
var sub_text = text_split[text_id].substring(text_split[text_id].length - params.maxlength_withteacher, text_split[text_id].length - 1);
var href_text = sub_text.substring(sub_text.indexOf('href') + 6, sub_text.indexOf('/">') + 1);
GM_xmlhttpRequest({
method: "GET",
url: "http://www.icourse.club" + href_text,
synchronous: true,
onload: function(response) {
var endtext = response.responseText;
var content1_endtext = endtext.indexOf('<span class="blue h3">');
var content2_endtext = endtext.indexOf('</span><span class="h3 blue mobile">');
var content3_endtext = endtext.indexOf('<span class="small grey align-bottom left-pd-sm desktop">');
var course_name = endtext.substring(content1_endtext + 22, content2_endtext);
var professor_name = endtext.substring(content2_endtext + 36, content3_endtext);
professor_name = professor_name.substring(0, professor_name.indexOf('</span>'));
if (course_visited.indexOf(course_name + professor_name) == -1){
course_visited.push(course_name + professor_name);
if (endtext.indexOf('暂无评价') == -1) {
var course_grade = endtext.substring(endtext.indexOf('<span class="rl-pd-sm h4">') + 26, endtext.indexOf('</span><span class="rl-pd-sm text-muted">'));
var evaluate_number = endtext.substring(endtext.indexOf('<span class="rl-pd-sm text-muted">(') + 35, endtext.indexOf('人评价'));
var result = '<h3 class = "result">' + course_name + professor_name + '    评分:' + course_grade + '    评价人数:' + evaluate_number + '</h3>';
console.log(result);
if($('.point').text().indexOf('评分加载中') != -1){
$('.point').html(result);
}
else{
$('.modal-title-nameEn').append(result);
}
}
else {
var result = '<h3 class = "result">' + course_name + professor_name + '    暂无评价</h3>';
if($('.point').text().indexOf('评分加载中') != -1){
$('.point').html(result);
}
else{
$('.modal-title-nameEn').append(result);
}
}
}
}
});
}
}
else if(teacher_exist == 0){
var text_split = response_text.split('/">' + course_message[2]);
for (var text_id = 0; text_id < text_split.length - 1; text_id++){
var sub_text = text_split[text_id].substring(text_split[text_id].length - params.maxlength_withoutteacher, text_split[text_id].length);
var href_text = sub_text.substring(sub_text.indexOf('href') + 6, sub_text.length);
GM_xmlhttpRequest({
method: "GET",
url: "http://www.icourse.club" + href_text,
synchronous: true,
onload: function(response) {
var endtext = response.responseText;
var content1_endtext = endtext.indexOf('<span class="blue h3">');
var content2_endtext = endtext.indexOf('</span><span class="h3 blue mobile">');
var content3_endtext = endtext.indexOf('<span class="small grey align-bottom left-pd-sm desktop">');
var course_name = endtext.substring(content1_endtext + 22, content2_endtext);
var professor_name = endtext.substring(content2_endtext + 36, content3_endtext);
professor_name = professor_name.substring(0, professor_name.indexOf('</span>'));
if (course_visited.indexOf(course_name + professor_name) == -1){
course_visited.push(course_name + professor_name);
if (endtext.indexOf('暂无评价') == -1) {
var course_grade = endtext.substring(endtext.indexOf('<span class="rl-pd-sm h4">') + 26, endtext.indexOf('</span><span class="rl-pd-sm text-muted">'));
var evaluate_number = endtext.substring(endtext.indexOf('<span class="rl-pd-sm text-muted">(') + 35, endtext.indexOf('人评价'));
var result = '<h3 class = "result">' + course_name + professor_name + '    评分:' + course_grade + "    评价人数:" + evaluate_number + '</h3>';
if($('.point').text().indexOf('评分加载中') != -1){
$('.point').html(result);
}
else{
$('.modal-title-nameEn').append(result);
}
}
else {
var result = '<h3 class = "result">' + course_name + professor_name + '    暂无评价</h3>';
if($('.point').text().indexOf('评分加载中') != -1){
$('.point').html(result);
}
else{
$('.modal-title-nameEn').append(result);
}
}
}
}
});
}
}
else if($('.point').text().indexOf('评分加载中') != -1){
$('.point').text($('.point').text().concat('.'));
}
}
}
});
}
if($('.point').text() == '评分加载中.........'){
$('.point').text('暂无评价');
}
});
// add grades for "已选所有课程"
$("body").on("click","#selected-lessons tbody td span", function() {
$('.modal-title-nameEn:first').append('<h3 class = "point">评分加载中</h3>');
var course_message = $(this).parent().parent().html().split('</td><td>');
var course_teachers = course_message[6].split(',');
var course_visited = [];
for (var page = 1; page < 10; page++) {
GM_xmlhttpRequest({
method: "GET",
url: "http://www.icourse.club/search/?page=" + page + "&term=&q=" + course_message[3],
synchronous: true,
onload: function(response) {
var response_text = response.responseText;
for (var teacher_id = 0; teacher_id < course_teachers.length; teacher_id++){
var teacher_exist = response_text.search(course_message[6].split(',')[teacher_id]);
if (teacher_exist > 0) {
var text_split = response_text.split(course_message[6].split(',')[teacher_id]);
for (var text_id = 0; text_id < text_split.length - 1; text_id++){
var sub_text = text_split[text_id].substring(text_split[text_id].length - params.maxlength_withteacher, text_split[text_id].length - 1);
var href_text = sub_text.substring(sub_text.indexOf('href') + 6, sub_text.indexOf('/">') + 1);
GM_xmlhttpRequest({
method: "GET",
url: "http://www.icourse.club" + href_text,
synchronous: true,
onload: function(response) {
var endtext = response.responseText;
var content1_endtext = endtext.indexOf('<span class="blue h3">');
var content2_endtext = endtext.indexOf('</span><span class="h3 blue mobile">');
var content3_endtext = endtext.indexOf('<span class="small grey align-bottom left-pd-sm desktop">');
var course_name = endtext.substring(content1_endtext + 22, content2_endtext);
var professor_name = endtext.substring(content2_endtext + 36, content3_endtext);
professor_name = professor_name.substring(0, professor_name.indexOf('</span>'));
if (course_visited.indexOf(course_name + professor_name) == -1){
course_visited.push(course_name + professor_name);
if (endtext.indexOf('暂无评价') == -1) {
var course_grade = endtext.substring(endtext.indexOf('<span class="rl-pd-sm h4">') + 26, endtext.indexOf('</span><span class="rl-pd-sm text-muted">'));
var evaluate_number = endtext.substring(endtext.indexOf('<span class="rl-pd-sm text-muted">(') + 35, endtext.indexOf('人评价'));
var result = '<h3 class = "result">' + course_name + professor_name + '    评分:' + course_grade + "    评价人数:" + evaluate_number + '</h3>';
if($('.point').text().indexOf('评分加载中') != -1){
$('.point').html(result);
}
else{
$('.modal-title-nameEn').append(result);
}
}
else {
var result = '<h3 class = "result">' + course_name + professor_name + '    暂无评价</h3>';
if($('.point').text().indexOf('评分加载中') != -1){
$('.point').html(result);
}
else{
$('.modal-title-nameEn').append(result);
}
}
}
}
});
}
}
else if(teacher_exist == 0){
var text_split = response_text.split('/">' + course_message[3]);
for (var text_id = 0; text_id < text_split.length - 1; text_id++){
var sub_text = text_split[text_id].substring(text_split[text_id].length - params.maxlength_withoutteacher, text_split[text_id].length);
var href_text = sub_text.substring(sub_text.indexOf('href') + 6, sub_text.length);
GM_xmlhttpRequest({
method: "GET",
url: "http://www.icourse.club" + href_text,
synchronous: true,
onload: function(response) {
var endtext = response.responseText;
var content1_endtext = endtext.indexOf('<span class="blue h3">');
var content2_endtext = endtext.indexOf('</span><span class="h3 blue mobile">');
var content3_endtext = endtext.indexOf('<span class="small grey align-bottom left-pd-sm desktop">');
var course_name = endtext.substring(content1_endtext + 22, content2_endtext);
var professor_name = endtext.substring(content2_endtext + 36, content3_endtext);
professor_name = professor_name.substring(0, professor_name.indexOf('</span>'));
if (course_visited.indexOf(course_name + professor_name) == -1){
course_visited.push(course_name + professor_name);
if (endtext.indexOf('暂无评价') == -1) {
var course_grade = endtext.substring(endtext.indexOf('<span class="rl-pd-sm h4">') + 26, endtext.indexOf('</span><span class="rl-pd-sm text-muted">'));
var evaluate_number = endtext.substring(endtext.indexOf('<span class="rl-pd-sm text-muted">(') + 35, endtext.indexOf('人评价'));
var result = '<h3 class = "result">' + course_name + professor_name + '    评分:' + course_grade + "    评价人数:" + evaluate_number + '</h3>';
if($('.point').text().indexOf('评分加载中') != -1){
$('.point').html(result);
}
else{
$('.modal-title-nameEn').append(result);
}
}
else {
var result = '<h3 class = "result">' + course_name + professor_name + '    暂无评价</h3>';
if($('.point').text().indexOf('评分加载中') != -1){
$('.point').html(result);
}
else{
$('.modal-title-nameEn').append(result);
}
}
}
}
});
}
}
else if($('.point').text().indexOf('评分加载中') != -1){
$('.point').text($('.point').text().concat('.'));
}
}
}
});
}
if($('.point').text() == '评分加载中.........'){
$('.point').text('暂无评价');
}
});
// add grades for "全校课程"
$("body").on("click","#all-lessons tbody td span", function() {
$('.modal-title-nameEn:first').append('<h3 class = "point">评分加载中</h3>');
var course_message = $(this).parent().parent().html().split('</td><td>');
var course_teachers = course_message[7].split(',');
var course_visited = [];
for (var page = 1; page < 10; page++) {
GM_xmlhttpRequest({
method: "GET",
url: "http://www.icourse.club/search/?page=" + page + "&term=&q=" + course_message[3],
synchronous: true,
onload: function(response) {
var response_text = response.responseText;
for (var teacher_id = 0; teacher_id < course_teachers.length; teacher_id++){
var teacher_exist = response_text.search(course_message[7].split(',')[teacher_id]);
if (teacher_exist > 0) {
var text_split = response_text.split(course_message[7].split(',')[teacher_id]);
for (var text_id = 0; text_id < text_split.length - 1; text_id++){
var sub_text = text_split[text_id].substring(text_split[text_id].length - params.maxlength_withteacher, text_split[text_id].length - 1);
var href_text = sub_text.substring(sub_text.indexOf('href') + 6, sub_text.indexOf('/">') + 1);
GM_xmlhttpRequest({
method: "GET",
url: "http://www.icourse.club" + href_text,
synchronous: true,
onload: function(response) {
var endtext = response.responseText;
var content1_endtext = endtext.indexOf('<span class="blue h3">');
var content2_endtext = endtext.indexOf('</span><span class="h3 blue mobile">');
var content3_endtext = endtext.indexOf('<span class="small grey align-bottom left-pd-sm desktop">');
var course_name = endtext.substring(content1_endtext + 22, content2_endtext);
var professor_name = endtext.substring(content2_endtext + 36, content3_endtext);
professor_name = professor_name.substring(0, professor_name.indexOf('</span>'));
if (course_visited.indexOf(course_name + professor_name) == -1){
course_visited.push(course_name + professor_name);
if (endtext.indexOf('暂无评价') == -1) {
var course_grade = endtext.substring(endtext.indexOf('<span class="rl-pd-sm h4">') + 26, endtext.indexOf('</span><span class="rl-pd-sm text-muted">'));
var evaluate_number = endtext.substring(endtext.indexOf('<span class="rl-pd-sm text-muted">(') + 35, endtext.indexOf('人评价'));
var result = '<h3 class = "result">' + course_name + professor_name + '    评分:' + course_grade + "    评价人数:" + evaluate_number + '</h3>';
if($('.point').text().indexOf('评分加载中') != -1){
$('.point').html(result);
}
else{
$('.modal-title-nameEn').append(result);
}
}
else {
var result = '<h3 class = "result">' + course_name + professor_name + '    暂无评价</h3>';
if($('.point').text().indexOf('评分加载中') != -1){
$('.point').html(result);
}
else{
$('.modal-title-nameEn').append(result);
}
}
}
}
});
}
}
else if(teacher_exist == 0){
var text_split = response_text.split('/">' + course_message[3]);
for (var text_id = 0; text_id < text_split.length - 1; text_id++){
var sub_text = text_split[text_id].substring(text_split[text_id].length - params.maxlength_withoutteacher, text_split[text_id].length);
var href_text = sub_text.substring(sub_text.indexOf('href') + 6, sub_text.length);
GM_xmlhttpRequest({
method: "GET",
url: "http://www.icourse.club" + href_text,
synchronous: true,
onload: function(response) {
var endtext = response.responseText;
var content1_endtext = endtext.indexOf('<span class="blue h3">');
var content2_endtext = endtext.indexOf('</span><span class="h3 blue mobile">');
var content3_endtext = endtext.indexOf('<span class="small grey align-bottom left-pd-sm desktop">');
var course_name = endtext.substring(content1_endtext + 22, content2_endtext);
var professor_name = endtext.substring(content2_endtext + 36, content3_endtext);
professor_name = professor_name.substring(0, professor_name.indexOf('</span>'));
if (course_visited.indexOf(course_name + professor_name) == -1){
course_visited.push(course_name + professor_name);
if (endtext.indexOf('暂无评价') == -1) {
var course_grade = endtext.substring(endtext.indexOf('<span class="rl-pd-sm h4">') + 26, endtext.indexOf('</span><span class="rl-pd-sm text-muted">'));
var evaluate_number = endtext.substring(endtext.indexOf('<span class="rl-pd-sm text-muted">(') + 35, endtext.indexOf('人评价'));
var result = '<h3 class = "result">' + course_name + professor_name + '    评分:' + course_grade + "    评价人数:" + evaluate_number + '</h3>';
if($('.point').text().indexOf('评分加载中') != -1){
$('.point').html(result);
}
else{
$('.modal-title-nameEn').append(result);
}
}
else {
var result = '<h3 class = "result">' + course_name + professor_name + '    暂无评价</h3>';
if($('.point').text().indexOf('评分加载中') != -1){
$('.point').html(result);
}
else{
$('.modal-title-nameEn').append(result);
}
}
}
}
});
}
}
else if($('.point').text().indexOf('评分加载中') != -1){
$('.point').text($('.point').text().concat('.'));
}
}
}
});
}
if($('.point').text() == '评分加载中.........'){
$('.point').text('暂无评价');
}
});
// add grades for "推荐培养方案内课程"
$("body").on("click","#modal-info-content tbody td span", function() {
$('.modal-title-nameEn:first').append('<h3 class = "point">评分加载中</h3>');
var course_message = $(this).parent().parent().html().split('</td><td>');
var course_teachers = course_message[7].split('</span>')[0].split('<span>')[1].split(',');
var course_visited = [];
for (var page = 1; page < 10; page++) {
GM_xmlhttpRequest({
method: "GET",
url: "http://www.icourse.club/search/?page=" + page + "&term=&q=" + course_message[4],
synchronous: true,
onload: function(response) {
var response_text = response.responseText;
for (var teacher_id = 0; teacher_id < course_teachers.length; teacher_id++){
var teacher_exist = response_text.search(course_teachers[teacher_id]);
if (teacher_exist > 0) {
var text_split = response_text.split(course_teachers[teacher_id]);
for (var text_id = 0; text_id < text_split.length - 1; text_id++){
var sub_text = text_split[text_id].substring(text_split[text_id].length - params.maxlength_withteacher, text_split[text_id].length - 1);
var href_text = sub_text.substring(sub_text.indexOf('href') + 6, sub_text.indexOf('/">') + 1);
GM_xmlhttpRequest({
method: "GET",
url: "http://www.icourse.club" + href_text,
synchronous: true,
onload: function(response) {
var endtext = response.responseText;
var content1_endtext = endtext.indexOf('<span class="blue h3">');
var content2_endtext = endtext.indexOf('</span><span class="h3 blue mobile">');
var content3_endtext = endtext.indexOf('<span class="small grey align-bottom left-pd-sm desktop">');
var course_name = endtext.substring(content1_endtext + 22, content2_endtext);
var professor_name = endtext.substring(content2_endtext + 36, content3_endtext);
professor_name = professor_name.substring(0, professor_name.indexOf('</span>'));
if (course_visited.indexOf(course_name + professor_name) == -1){
course_visited.push(course_name + professor_name);
if (endtext.indexOf('暂无评价') == -1) {
var course_grade = endtext.substring(endtext.indexOf('<span class="rl-pd-sm h4">') + 26, endtext.indexOf('</span><span class="rl-pd-sm text-muted">'));
var evaluate_number = endtext.substring(endtext.indexOf('<span class="rl-pd-sm text-muted">(') + 35, endtext.indexOf('人评价'));
var result = '<h3 class = "result">' + course_name + professor_name + '    评分:' + course_grade + "    评价人数:" + evaluate_number + '</h3>';
if($('.point').text().indexOf('评分加载中') != -1){
$('.point').html(result);
}
else{
$('.modal-title-nameEn').append(result);
}
}
else {
var result = '<h3 class = "result">' + course_name + professor_name + '    暂无评价</h3>';
if($('.point').text().indexOf('评分加载中') != -1){
$('.point').html(result);
}
else{
$('.modal-title-nameEn').append(result);
}
}
}
}
});
}
}
else if(teacher_exist == 0){
var text_split = response_text.split('/">' + course_message[3]);
for (var text_id = 0; text_id < text_split.length - 1; text_id++){
var sub_text = text_split[text_id].substring(text_split[text_id].length - params.maxlength_withoutteacher, text_split[text_id].length);
var href_text = sub_text.substring(sub_text.indexOf('href') + 6, sub_text.length);
GM_xmlhttpRequest({
method: "GET",
url: "http://www.icourse.club" + href_text,
synchronous: true,
onload: function(response) {
var endtext = response.responseText;
var content1_endtext = endtext.indexOf('<span class="blue h3">');
var content2_endtext = endtext.indexOf('</span><span class="h3 blue mobile">');
var content3_endtext = endtext.indexOf('<span class="small grey align-bottom left-pd-sm desktop">');
var course_name = endtext.substring(content1_endtext + 22, content2_endtext);
var professor_name = endtext.substring(content2_endtext + 36, content3_endtext);
professor_name = professor_name.substring(0, professor_name.indexOf('</span>'));
if (course_visited.indexOf(course_name + professor_name) == -1){
course_visited.push(course_name + professor_name);
if (endtext.indexOf('暂无评价') == -1) {
var course_grade = endtext.substring(endtext.indexOf('<span class="rl-pd-sm h4">') + 26, endtext.indexOf('</span><span class="rl-pd-sm text-muted">'));
var evaluate_number = endtext.substring(endtext.indexOf('<span class="rl-pd-sm text-muted">(') + 35, endtext.indexOf('人评价'));
var result = '<h3 class = "result">' + course_name + professor_name + '    评分:' + course_grade + "    评价人数:" + evaluate_number + '</h3>';
if($('.point').text().indexOf('评分加载中') != -1){
$('.point').html(result);
}
else{
$('.modal-title-nameEn').append(result);
}
}
else {
var result = '<h3 class = "result">' + course_name + professor_name + '    暂无评价</h3>';
if($('.point').text().indexOf('评分加载中') != -1){
$('.point').html(result);
}
else{
$('.modal-title-nameEn').append(result);
}
}
}
}
});
}
}
else if($('.point').text().indexOf('评分加载中') != -1){
$('.point').text($('.point').text().concat('.'));
}
}
}
});
}
if($('.point').text() == '评分加载中.........'){
$('.point').text('暂无评价');
}
});
// add grades for "我的课表"
$("body").on("click","#lessons tbody td span", function() {
$('.modal-title-nameEn:first').append('<h3 class = "point">评分加载中</h3>');
var course_message = $(this).parent().parent().html().split('</td><td>');
var course_teachers = course_message[8].split('(');
var course_visited = [];
for (var page = 1; page < 10; page++) {
GM_xmlhttpRequest({
method: "GET",
url: "http://www.icourse.club/search/?page=" + page + "&term=&q=" + course_message[2],
synchronous: true,
onload: function(response) {
var response_text = response.responseText;
for (var teacher_id = 0; teacher_id < course_teachers.length - 1; teacher_id++){
var teacher_exist = response_text.search(course_teachers[teacher_id].split(')').pop());
if (teacher_exist > 0) {
var text_split = response_text.split(course_teachers[teacher_id].split(')').pop());
for (var text_id = 0; text_id < text_split.length - 1; text_id++){
var sub_text = text_split[text_id].substring(text_split[text_id].length - params.maxlength_withteacher, text_split[text_id].length - 1);
var href_text = sub_text.substring(sub_text.indexOf('href') + 6, sub_text.indexOf('/">') + 1);
GM_xmlhttpRequest({
method: "GET",
url: "http://www.icourse.club" + href_text,
synchronous: true,
onload: function(response) {
var endtext = response.responseText;
var content1_endtext = endtext.indexOf('<span class="blue h3">');
var content2_endtext = endtext.indexOf('</span><span class="h3 blue mobile">');
var content3_endtext = endtext.indexOf('<span class="small grey align-bottom left-pd-sm desktop">');
var course_name = endtext.substring(content1_endtext + 22, content2_endtext);
var professor_name = endtext.substring(content2_endtext + 36, content3_endtext);
professor_name = professor_name.substring(0, professor_name.indexOf('</span>'));
if (course_visited.indexOf(course_name + professor_name) == -1){
course_visited.push(course_name + professor_name);
if (endtext.indexOf('暂无评价') == -1) {
var course_grade = endtext.substring(endtext.indexOf('<span class="rl-pd-sm h4">') + 26, endtext.indexOf('</span><span class="rl-pd-sm text-muted">'));
var evaluate_number = endtext.substring(endtext.indexOf('<span class="rl-pd-sm text-muted">(') + 35, endtext.indexOf('人评价'));
var result = '<h3 class = "result">' + course_name + professor_name + '    评分:' + course_grade + "    评价人数:" + evaluate_number + '</h3>';
if($('.point').text().indexOf('评分加载中') != -1){
$('.point').html(result);
}
else{
$('.modal-title-nameEn').append(result);
}
}
else {
var result = '<h3 class = "result">' + course_name + professor_name + '    暂无评价</h3>';
if($('.point').text().indexOf('评分加载中') != -1){
$('.point').html(result);
}
else{
$('.modal-title-nameEn').append(result);
}
}
}
}
});
}
}
else if(teacher_exist == 0){
var text_split = response_text.split('/">' + course_message[3]);
for (var text_id = 0; text_id < text_split.length - 1; text_id++){
var sub_text = text_split[text_id].substring(text_split[text_id].length - params.maxlength_withoutteacher, text_split[text_id].length);
var href_text = sub_text.substring(sub_text.indexOf('href') + 6, sub_text.length);
GM_xmlhttpRequest({
method: "GET",
url: "http://www.icourse.club" + href_text,
synchronous: true,
onload: function(response) {
var endtext = response.responseText;
var content1_endtext = endtext.indexOf('<span class="blue h3">');
var content2_endtext = endtext.indexOf('</span><span class="h3 blue mobile">');
var content3_endtext = endtext.indexOf('<span class="small grey align-bottom left-pd-sm desktop">');
var course_name = endtext.substring(content1_endtext + 22, content2_endtext);
var professor_name = endtext.substring(content2_endtext + 36, content3_endtext);
professor_name = professor_name.substring(0, professor_name.indexOf('</span>'));
if (course_visited.indexOf(course_name + professor_name) == -1){
course_visited.push(course_name + professor_name);
if (endtext.indexOf('暂无评价') == -1) {
var course_grade = endtext.substring(endtext.indexOf('<span class="rl-pd-sm h4">') + 26, endtext.indexOf('</span><span class="rl-pd-sm text-muted">'));
var evaluate_number = endtext.substring(endtext.indexOf('<span class="rl-pd-sm text-muted">(') + 35, endtext.indexOf('人评价'));
var result = '<h3 class = "result">' + course_name + professor_name + '    评分:' + course_grade + "    评价人数:" + evaluate_number + '</h3>';
if($('.point').text().indexOf('评分加载中') != -1){
$('.point').html(result);
}
else{
$('.modal-title-nameEn').append(result);
}
}
else {
var result = '<h3 class = "result">' + course_name + professor_name + '    暂无评价</h3>';
if($('.point').text().indexOf('评分加载中') != -1){
$('.point').html(result);
}
else{
$('.modal-title-nameEn').append(result);
}
}
}
}
});
}
}
else if($('.point').text().indexOf('评分加载中') != -1){
$('.point').text($('.point').text().concat('.'));
}
}
}
});
}
if($('.point').text() == '评分加载中.........'){
$('.point').text('暂无评价');
}
});
// 自动识别验证码
if(window.location.href.indexOf('passport.ustc.edu.cn') != -1){
var img_LT = new Image(128, 32);
img_LT.src = 'https://passport.ustc.edu.cn/validatecode.jsp?type=login';
var canvas = document.createElement("canvas");
canvas.style.backgroundColor = "white";
var ctx = canvas.getContext("2d");
img_LT.onload = () => {
ctx.drawImage(img_LT, 0, 0);
var imgdata = ctx.getImageData(0, 0, 128, 32).data;
var green_average = 0;
for(var j = 0;j < 128 * 32; j++){
green_average += imgdata[4 * j + 1];
}
green_average /= (128 * 32);
var numbers = ["", "", "", ""];
for(var i = 4; i < 26; i++){
for(var j = 26; j < 46; j++){
var pixel = imgdata[4 * (128 * i + j) + 1] > green_average ? '0' : '1';
numbers[0] += pixel;
}
for(var j = 47; j < 67; j++){
var pixel = imgdata[4 * (128 * i + j) + 1] > green_average ? '0' : '1';
numbers[1] += pixel;
}
for(var j = 68; j < 88; j++){
var pixel = imgdata[4 * ( 128 * i + j) + 1] > green_average ? '0' : '1';
numbers[2] += pixel;
}
for(var j = 89; j < 109; j++){
var pixel = imgdata[4 * (128 * i + j) + 1] > green_average ? '0' : '1';
numbers[3] += pixel;
}
}
var LT = "";
for(var i = 0; i < 4; i++){
var index = '0';
var min_different = 440;
for(var j = 0; j < 10; j++){
var different = 0;
for(var k = 0; k < 440; k++){
if(numbers[i].charAt(k) != compare_numbers[j].charAt(k)){
different += 1;
}
}
if(different < min_different){
min_different = different;
index = j + '';
}
}
LT += index;
}
if(args.username != 'PB00000000'){
$('#username').val(args.username);
$('#password').val(args.password);
$('.group #validate').val(LT);
$('#login').click();
}
else{
$('.group #validate').val(LT);
$('#login').click();
}
}
}
// 网页版邮箱自动登录(不可用)
if(window.location.href.indexOf('mail.ustc.edu.cn') != -1){
$('span:contains("mail.ustc.edu.cn")').click();
if(args.mail_username != 'ustc'){
$('#uid').val(args.mail_username);
$('#password').val(args.mail_password);
}
$('#login_button').click();
}
})();