Skip to content

Instantly share code, notes, and snippets.

@hsupu
Created June 24, 2019 16:40
Show Gist options
  • Save hsupu/726249b2e2310d4e3d429e8ae4dc6408 to your computer and use it in GitHub Desktop.
Save hsupu/726249b2e2310d4e3d429e8ae4dc6408 to your computer and use it in GitHub Desktop.
将选课系统的课程同步到培养计划的第二步
// ==UserScript==
// @name 同步课程到培养计划
// @namespace http://tampermonkey.net/
// @version 0.1
// @description 让毕业简单一点。
// @author xp
// @match http://py.ucas.ac.cn/zh-cn/training/zhidingkechengjihua/*
// @grant none
// ==/UserScript==
function assert(id, ret) {
if (!ret) {
console.error("assert failed: " + id + "\n");
}
}
(function() {
'use strict';
let raw = `
136020 091M4021H-1 高级软件工程 是 2017—2018学年(秋)第一学期
136030 091M5025H 操作系统高级教程 否 2017—2018学年(秋)第一学期
136031 091M5026H 并发数据结构与多核编程 否 2017—2018学年(秋)第一学期
136032 091M5027H 形式语言与自动机理论 否 2017—2018学年(秋)第一学期
136043 091M5047H 现代信息检索 否 2017—2018学年(秋)第一学期
136047 092M1002H-1 计算机算法设计与分析 是 2017—2018学年(秋)第一学期
136050 092M2007H 数据库新技术 是 2017—2018学年(秋)第一学期
136364 14MGB001H-096 人文系列讲座 是 2017—2018学年(秋)第一学期
136611 15MGB001H 英语A分级考试 是 2017—2018学年(秋)第一学期
136860 201M4008H 网络认证技术 是 2017—2018学年(秋)第一学期
136426 23MGB001H-09 中国特色社会主义理论与实践研究 是 2017—2018学年(秋)第一学期
137961 23MGX007H 中国历史文化概论 否 2017—2018学年(秋)第一学期
141246 091M5002H TCP/IP协议及网络编程技术 否 2017—2018学年(春)第二学期
141371 122M5008H 知识管理 否 2017—2018学年(春)第二学期
142699 12MGX126H 金融经济学 否 2017—2018学年(春)第二学期
141504 14MGX101H 地图与文明 否 2017—2018学年(春)第二学期
141863 201M5004H 社会计算与社交网络分析 否 2017—2018学年(春)第二学期
141478 23MGB003H-10 自然辩证法概论 是 2017—2018学年(春)第二学期
142511 251M6002H 视频监控及应用 是 2017—2018学年(春)第二学期
146220 091M7006H 多媒体智能分析的研究进展及展望 否 2017—2018学年(夏)第三学期
146229 091M7021H 程序分析 否 2017—2018学年(夏)第三学期
`;
raw.split('\n')
.map((line) => line.split('\t'))
.filter((fields) => fields.length == 5)
.forEach((fields) => {
let nid = fields[0];
let sid = fields[1];
let name = fields[2];
let primary = fields[3] == '是';
let year = fields[4];
year = year.substring(0, year.length - 4);
jQuery.ajax({
type: "POST",
url: "/zh-cn/training/addcourseplan",
data: {
BtnAction: 'search',
CourseYears: year,
coursename: name,
isxwk: primary ? 1 : 0
},
dataType: 'text',
success: (data) => {
let regex = new RegExp("name=\"ckb\" value=\"(" + nid + "[^\"]+)\"");
let ret = regex.exec(data);
if (ret.length == 2) {
let ckb = ret[1];
jQuery.ajax({
type: "POST",
url: "/zh-cn/training/addcourseplan",
data: {
BtnAction: 'add',
CourseYears: year,
coursename: name,
ckb: ckb,
isxwk: primary ? 1 : 0
},
dataType: 'text',
success: () => {
console.log([year, primary, sid, name].toString() + " added\n");
},
error: (err) => {
console.error(err);
}
});
} else {
console.error([year, primary, sid, name].toString() + " not found\n");
}
},
error: (err) => {
console.error(err);
}
});
});
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment