// ==UserScript==
// @name 北交大iCalender课表生成
// @namespace https://github.com/ZiuChen/BJTU-Schedule-ics-csvGenerator
// @version 1.1
// @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://greasyfork.org/scripts/431577-ics-deps-min-js/code/icsdepsminjs.js?version=965165
// @grant 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("2021-09-06"); // 每学期第一个周一的日期
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