- // ==UserScript==
- // @name USTC Teacher Email
- // @namespace http://tampermonkey.net/
- // @version 1.3
- // @description Get Teacher Email
- // @author txtxj
- // @match https://jw.ustc.edu.cn/home*
- // @icon https://www.google.com/s2/favicons?sz=64&domain=github.com
- // @grant none
- // ==/UserScript==
-
- $(window).on("load", function() {
-
- 'use strict';
-
- let title = document.getElementById("e-top-home-page");
- let li = document.createElement("li");
- li.setAttribute("class", "tabLi active");
- let btn = document.createElement("a");
- btn.href = "javascript:void(0)";
- btn.onclick = function() {
- var teacherName = prompt("请输入老师姓名\n搜索需要用时约 30 秒\n搜索结果将以弹窗形式给出\n详细输出可在控制台查看");
-
- async function getTeacherEmail(teacher, terms=10, interval=3) {
- // 学期 id 配置
- const POOL = ["281", "261", "241", "221", "202", "201", "281", "261", "181", "161", "141", "121", "101", "81", "62", "61", "39", "35", "23", "38", "20", "43", "21", "34", "42", "37", "17", "41", "18", "33", "22", "9", "19", "40", "36", "32", "10", "24", "44", "25", "11", "47", "46", "45", "27", "51", "50", "12", "26", "49", "48", "8", "7", "31", "6", "16", "5", "30", "4", "15", "3", "29", "2", "1", "14", "28", "53", "52", "13"];
-
- // 首先获取学生查询的标识码
- const queryDoc = await $.ajax({
- url: "https://jw.ustc.edu.cn/for-std/lesson-search",
- });
- const student_id = queryDoc.match(
- /\/for-std\/lesson-search\/index\/(\d*)/
- )[1];
-
- // 查找老师教的课程 id
- const course_id = await (async () => {
- for (let i = 0; i < terms; i++) {
- const courses_url = `https://jw.ustc.edu.cn/for-std/lesson-search/semester/${POOL[i]}/search/${student_id}?teacherNameLike=${teacher}`;
- const courses_info = await $.ajax({ url: courses_url });
- if (courses_info.data && courses_info.data.length) {
- const courses_teachers = courses_info.data.map((course) => ({
- teachers: course.teacherAssignmentList.map((teacher_object) => teacher_object.person.nameZh),
- id: course.id
- })).filter((course_teachers) => course_teachers.teachers.includes(teacher))
- if (courses_teachers)
- return courses_teachers[0].id;
- }
- console.log(`第 ${i + 1} 个学期查询失败,正在等待 ${interval} 秒...`);
- await new Promise((r) => setTimeout(r, interval * 1000));
- }
- })();
-
- if (typeof(course_id) == "undefined") {
- alert(`没有找到${teacherName}`);
- return;
- }
-
- // 根据课程 id,查询邮箱
- const email_url = `https://jw.ustc.edu.cn/ws/course-adjustment-apply/get-teacher-info?lessonId=${course_id}`;
- const email_res = await $.ajax({ url: email_url });
-
- email_res.forEach((object) => {
- if (object[teacher]) {
- console.log(object[teacher]);
- alert(object[teacher]);
- }
- });
-
- }
-
- getTeacherEmail(teacherName);
- }
- btn.id = "teacher-email";
- btn.innerHTML = " 邮箱 ";
- title.appendChild(li);
- li.appendChild(btn);
-
- let space = document.getElementsByClassName("toolbarView nav navbar-nav ")[0];
- space.style.width = "65%";
- });