Created
March 20, 2021 17:58
-
-
Save moeshin/63130e6be670355fca33dc4928de0a2d to your computer and use it in GitHub Desktop.
qziedu
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
{ | |
"html":"async function scheduleHtmlProvider(iframeContent = "", frameContent = "", dom = document) { | |
//除函数名外都可编辑 | |
//以下为示例,您可以完全重写或在此基础上更改 | |
res =await kingoProvider(dom) | |
console.log(res) | |
return res | |
} | |
async function kingoProvider(dom) { | |
// 是青果系统,上传图片OCR | |
img_src = kingoASPSchedule(dom); | |
const image = await download_schedule(img_src) | |
// 转Base64 | |
console.log("###2") | |
var canvas = document.createElement("canvas"); | |
canvas.width = image.width; | |
canvas.height = image.height; | |
var ctx = canvas.getContext("2d"); | |
ctx.drawImage(image, 0, 0, image.width, image.height); | |
base64_img = canvas.toDataURL("image/png"); | |
console.log(base64_img); | |
return base64_img; | |
} | |
function kingoASPSchedule(dom){ | |
// 获取青果ASP教务课表; | |
// 获取学校ID | |
bannerDom = dom.getElementsByName("banner")[0].contentWindow.document; | |
js_code = bannerDom.getElementsByTagName("script")[0].innerHTML; | |
var regex = new RegExp(/js_shoolcode\s*=\s*'([0-9]+)';/g); | |
schoolCode = regex.exec(js_code)[1]; | |
console.log(schoolCode); | |
// 获取学期选项 | |
frmbodyDom = dom.getElementsByName("frmbody")[0].contentWindow.document; | |
console.log(frmbodyDom); | |
scheduleDom = frmbodyDom.getElementsByName("frmMain")[0].contentWindow.document; | |
console.log(scheduleDom); | |
selectTag = scheduleDom.getElementsByName("Sel_XNXQ")[0]; | |
userSelect = selectTag.selectedIndex; | |
optionVal = selectTag.options[userSelect].value; | |
console.log(selectTag.options[userSelect].text); | |
console.log(optionVal); | |
// 获取hack_code | |
hack_code = scheduleDom.getElementsByName("hidyzm")[0].value; | |
console.log(hack_code); | |
// 生成发送参数 | |
m=randomString(15); | |
hidsjyzm = md5(schoolCode + optionVal + m).toUpperCase(); | |
console.log(m, hack_code, hidsjyzm); | |
// 发送异步请求 | |
var data = new FormData(); | |
data.append("hidsjyzm", hidsjyzm); | |
data.append("hidyzm", hack_code); | |
data.append("px", 0); // 排序 | |
data.append("rad", 1); | |
data.append("Sel_XNXQ", optionVal); | |
data.append("txt_yzm", ""); | |
var http_req = new XMLHttpRequest(); | |
http_req.open("POST", "./znpk/Pri_StuSel_rpt.aspx?m="+m, false); | |
http_req.withCredentials = true; | |
http_req.send(data); | |
// 读取图片链接 | |
const image_html = document.createElement("div"); | |
image_html.innerHTML = http_req.responseText; | |
img_tag = image_html.getElementsByTagName("img")[0]; | |
imgSrc = img_tag.getAttribute("src"); | |
return imgSrc; | |
} | |
async function download_schedule(imgSrc) { | |
return new Promise((resolve, _) => { | |
var image = new Image(); | |
image.src = "./znpk/"+imgSrc; | |
image.onload = () => resolve(image) | |
}) | |
} | |
function randomString(length, chars) { | |
chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" | |
var result = ''; | |
for (var i = length; i > 0; --i) result += chars[Math.floor(Math.random() * chars.length)]; | |
return result; | |
} | |
/*** MD5.js ***/ | |
function md5js(pass, code, uin) { | |
var I = hexchar2bin(md5(pass)); | |
var H = md5(I + uin); | |
var G = md5(H + code.toUpperCase()); | |
return G | |
} | |
var hexcase = 1; | |
var b64pad = ""; | |
var chrsz = 8; | |
var mode = 32; | |
function md5(A) { | |
return hex_md5(A) | |
} | |
function hex_md5(A) { | |
return binl2hex(core_md5(str2binl(A), A.length * chrsz)) | |
} | |
function str_md5(A) { | |
return binl2str(core_md5(str2binl(A), A.length * chrsz)) | |
} | |
function hex_hmac_md5(A, B) { | |
return binl2hex(core_hmac_md5(A, B)) | |
} | |
function b64_hmac_md5(A, B) { | |
return binl2b64(core_hmac_md5(A, B)) | |
} | |
function str_hmac_md5(A, B) { | |
return binl2str(core_hmac_md5(A, B)) | |
} | |
function core_md5(K, F) { | |
K[F >> 5] |= 128 << ((F) % 32); | |
K[(((F + 64) >>> 9) << 4) + 14] = F; | |
var J = 1732584193; | |
var I = -271733879; | |
var H = -1732584194; | |
var G = 271733878; | |
for (var C = 0; C < K.length; C += 16) { | |
var E = J; | |
var D = I; | |
var B = H; | |
var A = G; | |
J = md5_ff(J, I, H, G, K[C + 0], 7, -680876936); | |
G = md5_ff(G, J, I, H, K[C + 1], 12, -389564586); | |
H = md5_ff(H, G, J, I, K[C + 2], 17, 606105819); | |
I = md5_ff(I, H, G, J, K[C + 3], 22, -1044525330); | |
J = md5_ff(J, I, H, G, K[C + 4], 7, -176418897); | |
G = md5_ff(G, J, I, H, K[C + 5], 12, 1200080426); | |
H = md5_ff(H, G, J, I, K[C + 6], 17, -1473231341); | |
I = md5_ff(I, H, G, J, K[C + 7], 22, -45705983); | |
J = md5_ff(J, I, H, G, K[C + 8], 7, 1770035416); | |
G = md5_ff(G, J, I, H, K[C + 9], 12, -1958414417); | |
H = md5_ff(H, G, J, I, K[C + 10], 17, -42063); | |
I = md5_ff(I, H, G, J, K[C + 11], 22, -1990404162); | |
J = md5_ff(J, I, H, G, K[C + 12], 7, 1804603682); | |
G = md5_ff(G, J, I, H, K[C + 13], 12, -40341101); | |
H = md5_ff(H, G, J, I, K[C + 14], 17, -1502002290); | |
I = md5_ff(I, H, G, J, K[C + 15], 22, 1236535329); | |
J = md5_gg(J, I, H, G, K[C + 1], 5, -165796510); | |
G = md5_gg(G, J, I, H, K[C + 6], 9, -1069501632); | |
H = md5_gg(H, G, J, I, K[C + 11], 14, 643717713); | |
I = md5_gg(I, H, G, J, K[C + 0], 20, -373897302); | |
J = md5_gg(J, I, H, G, K[C + 5], 5, -701558691); | |
G = md5_gg(G, J, I, H, K[C + 10], 9, 38016083); | |
H = md5_gg(H, G, J, I, K[C + 15], 14, -660478335); | |
I = md5_gg(I, H, G, J, K[C + 4], 20, -405537848); | |
J = md5_gg(J, I, H, G, K[C + 9], 5, 568446438); | |
G = md5_gg(G, J, I, H, K[C + 14], 9, -1019803690); | |
H = md5_gg(H, G, J, I, K[C + 3], 14, -187363961); | |
I = md5_gg(I, H, G, J, K[C + 8], 20, 1163531501); | |
J = md5_gg(J, I, H, G, K[C + 13], 5, -1444681467); | |
G = md5_gg(G, J, I, H, K[C + 2], 9, -51403784); | |
H = md5_gg(H, G, J, I, K[C + 7], 14, 1735328473); | |
I = md5_gg(I, H, G, J, K[C + 12], 20, -1926607734); | |
J = md5_hh(J, I, H, G, K[C + 5], 4, -378558); | |
G = md5_hh(G, J, I, H, K[C + 8], 11, -2022574463); | |
H = md5_hh(H, G, J, I, K[C + 11], 16, 1839030562); | |
I = md5_hh(I, H, G, J, K[C + 14], 23, -35309556); | |
J = md5_hh(J, I, H, G, K[C + 1], 4, -1530992060); | |
G = md5_hh(G, J, I, H, K[C + 4], 11, 1272893353); | |
H = md5_hh(H, G, J, I, K[C + 7], 16, -155497632); | |
I = md5_hh(I, H, G, J, K[C + 10], 23, -1094730640); | |
J = md5_hh(J, I, H, G, K[C + 13], 4, 681279174); | |
G = md5_hh(G, J, I, H, K[C + 0], 11, -358537222); | |
H = md5_hh(H, G, J, I, K[C + 3], 16, -722521979); | |
I = md5_hh(I, H, G, J, K[C + 6], 23, 76029189); | |
J = md5_hh(J, I, H, G, K[C + 9], 4, -640364487); | |
G = md5_hh(G, J, I, H, K[C + 12], 11, -421815835); | |
H = md5_hh(H, G, J, I, K[C + 15], 16, 530742520); | |
I = md5_hh(I, H, G, J, K[C + 2], 23, -995338651); | |
J = md5_ii(J, I, H, G, K[C + 0], 6, -198630844); | |
G = md5_ii(G, J, I, H, K[C + 7], 10, 1126891415); | |
H = md5_ii(H, G, J, I, K[C + 14], 15, -1416354905); | |
I = md5_ii(I, H, G, J, K[C + 5], 21, -57434055); | |
J = md5_ii(J, I, H, G, K[C + 12], 6, 1700485571); | |
G = md5_ii(G, J, I, H, K[C + 3], 10, -1894986606); | |
H = md5_ii(H, G, J, I, K[C + 10], 15, -1051523); | |
I = md5_ii(I, H, G, J, K[C + 1], 21, -2054922799); | |
J = md5_ii(J, I, H, G, K[C + 8], 6, 1873313359); | |
G = md5_ii(G, J, I, H, K[C + 15], 10, -30611744); | |
H = md5_ii(H, G, J, I, K[C + 6], 15, -1560198380); | |
I = md5_ii(I, H, G, J, K[C + 13], 21, 1309151649); | |
J = md5_ii(J, I, H, G, K[C + 4], 6, -145523070); | |
G = md5_ii(G, J, I, H, K[C + 11], 10, -1120210379); | |
H = md5_ii(H, G, J, I, K[C + 2], 15, 718787259); | |
I = md5_ii(I, H, G, J, K[C + 9], 21, -343485551); | |
J = safe_add(J, E); | |
I = safe_add(I, D); | |
H = safe_add(H, B); | |
G = safe_add(G, A) | |
} | |
if (mode == 16) { | |
return Array(I, H) | |
} else { | |
return Array(J, I, H, G) | |
} | |
} | |
function md5_cmn(F, C, B, A, E, D) { | |
return safe_add(bit_rol(safe_add(safe_add(C, F), safe_add(A, D)), E), B) | |
} | |
function md5_ff(C, B, G, F, A, E, D) { | |
return md5_cmn((B & G) | ((~B) & F), C, B, A, E, D) | |
} | |
function md5_gg(C, B, G, F, A, E, D) { | |
return md5_cmn((B & F) | (G & (~F)), C, B, A, E, D) | |
} | |
function md5_hh(C, B, G, F, A, E, D) { | |
return md5_cmn(B ^ G ^ F, C, B, A, E, D) | |
} | |
function md5_ii(C, B, G, F, A, E, D) { | |
return md5_cmn(G ^ (B | (~F)), C, B, A, E, D) | |
} | |
function core_hmac_md5(C, F) { | |
var E = str2binl(C); | |
if (E.length > 16) { | |
E = core_md5(E, C.length * chrsz) | |
} | |
var A = Array(16), | |
D = Array(16); | |
for (var B = 0; B < 16; B++) { | |
A[B] = E[B] ^ 909522486; | |
D[B] = E[B] ^ 1549556828 | |
} | |
var G = core_md5(A.concat(str2binl(F)), 512 + F.length * chrsz); | |
return core_md5(D.concat(G), 512 + 128) | |
} | |
function safe_add(A, D) { | |
var C = (A & 65535) + (D & 65535); | |
var B = (A >> 16) + (D >> 16) + (C >> 16); | |
return (B << 16) | (C & 65535) | |
} | |
function bit_rol(A, B) { | |
return (A << B) | (A >>> (32 - B)) | |
} | |
function str2binl(D) { | |
var C = Array(); | |
var A = (1 << chrsz) - 1; | |
for (var B = 0; B < D.length * chrsz; B += chrsz) { | |
C[B >> 5] |= (D.charCodeAt(B / chrsz) & A) << (B % 32) | |
} | |
return C | |
} | |
function binl2str(C) { | |
var D = ""; | |
var A = (1 << chrsz) - 1; | |
for (var B = 0; B < C.length * 32; B += chrsz) { | |
D += String.fromCharCode((C[B >> 5] >>> (B % 32)) & A) | |
} | |
return D | |
} | |
function binl2hex(C) { | |
var B = hexcase ? "0123456789ABCDEF": "0123456789abcdef"; | |
var D = ""; | |
for (var A = 0; A < C.length * 4; A++) { | |
D += B.charAt((C[A >> 2] >> ((A % 4) * 8 + 4)) & 15) + B.charAt((C[A >> 2] >> ((A % 4) * 8)) & 15) | |
} | |
return D | |
} | |
function binl2b64(D) { | |
var C = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; | |
var F = ""; | |
for (var B = 0; B < D.length * 4; B += 3) { | |
var E = (((D[B >> 2] >> 8 * (B % 4)) & 255) << 16) | (((D[B + 1 >> 2] >> 8 * ((B + 1) % 4)) & 255) << 8) | ((D[B + 2 >> 2] >> 8 * ((B + 2) % 4)) & 255); | |
for (var A = 0; A < 4; A++) { | |
if (B * 8 + A * 6 > D.length * 32) { | |
F += b64pad | |
} else { | |
F += C.charAt((E >> 6 * (3 - A)) & 63) | |
} | |
} | |
} | |
return F | |
} | |
function hexchar2bin(str) { | |
var arr = []; | |
for (var i = 0; i < str.length; i = i + 2) { | |
arr.push("\\x" + str.substr(i, 2)) | |
} | |
arr = arr.join(""); | |
eval("var temp = '" + arr + "'"); | |
return temp | |
}", | |
"url":"http://jw.qziedu.cn/jwweb/home.aspx", | |
"isKingo":1 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment