Created
June 24, 2019 16:40
-
-
Save hsupu/726249b2e2310d4e3d429e8ae4dc6408 to your computer and use it in GitHub Desktop.
将选课系统的课程同步到培养计划的第二步
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==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