// ==UserScript== // @name 北交大iCalender课表生成 // @namespace https://github.com/ZiuChen/BJTU-Schedule-ics-csvGenerator // @version 1.2 // @description 📁📄导出ics/csv格式的日程文件! 💻📱支持多端同步! 📝支持Excel编辑! 📆📅支持导入各系统原生日历! 💃🤸‍♂️再也不用截长图!下载乱七八糟的软件! 只适配了本科生界面,如遇问题欢迎反馈! // @author Ziu // @icon https://gitee.com/ziuc/utool-filebed/raw/master/20210514-231824-0795.png // @match https://aa.bjtu.edu.cn/course_selection/courseselect/stuschedule/* // @match https://aa.bjtu.edu.cn/course_selection/courseselecttask/schedule/ // @require http://libs.baidu.com/jquery/2.0.0/jquery.min.js // @require https://cdn.jsdelivr.net/gh/nwcell/ics.js@dfec67f37a3c267b3f97dd229c9b6a3521222794/demo/ics.deps.min.js // @grant none // @license MIT // @downloadURL none // ==/UserScript== (function () { 'use strict'; function buttonGenerate(){ if(window.location.href.search('/courseselect/stuschedule/')!=-1){ // 本学期课表 $(".widget-title").append(' '); $(".widget-title").append('  '); $(".widget-title").append('  '); $('#stuScheduleCalenderRedirect').click(function (){window.open('https://bksy.bjtu.edu.cn/Semester.html')}); $('#scheduleIcsGenerate').click(function (){icsmain(0)}); $('#csvGenerate').click(function (){csvmain(0)}); } else if(window.location.href.search('/courseselecttask/schedule/')!=-1){ // 选课课表 $(".widget-title").append(' ') $(".widget-title").append('  ') $(".widget-title").append('  '); $('#scheduleCalenderRedirect').click(function (){window.open('https://bksy.bjtu.edu.cn/Semester.html')}); $('#scheduleIcsGenerate').click(function (){icsmain(1)}); $('#csvGenerate').click(function (){csvmain(1)}); } } // generateWeekTable() @github ygowill function generateWeekTable(){ const startMonday = new Date("2022-02-28"); // 每学期第一个周一的日期 let weekDateTable = []; for (let i = 0; i < 30; i++) { // 生成到30周 let weekArr = []; for (let j = 0; j < 7; j++) { let tmpDate = new Date(startMonday); tmpDate.setDate(tmpDate.getDate() + 7 * i + j); weekArr.push(tmpDate); } weekDateTable.push(weekArr); } return weekDateTable; } function tableTransfer(rowTable, isOrigin){ // 7*7行转列 let tmpTable = []; let columnTable = []; for(let i=0;i<7;i++){ if(isOrigin){ for(let j=0;j<7;j++){ tmpTable.push(rowTable[j]); } } else { for(let j=i;j<49;j+=7){ tmpTable.push(rowTable[j]); } } columnTable[i] = tmpTable; tmpTable = []; } return columnTable; } function removeZero(iArr){ for(let i=0;itd[style!='height:80px;']"), isOrigin); let courseList = []; let courseTmp = {}; for(let i=0;i<7;i++){ for(let j=0;j<7;j++){ for(let k=0;ktd[style!='height:80px;']"), isOrigin); let courseList = []; let courseTmp = {}; for(let i=0;i<7;i++){ for(let j=0;j<7;j++){ for(let k=0;k