blob: 95d37974de9a9835c06ba9760da8a2c2760543c5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
import {SplusParser} from './core/SplusParser';
import {config} from './config';
import {IEvent} from './core/IEvent';
function getMonday(date: Date) {
const day = date.getDay() || 7;
if (day !== 1) {
date.setHours(-24 * (day - 1));
}
return new Date(date.getFullYear(), date.getMonth(), date.getDate());
}
const baseDate = getMonday(new Date());
config.source.getData().then(async data => {
const lectures = new SplusParser(data.toString()).getLectures(config.lectureFilter);
for (let i = 0; i < lectures.length; i++) {
const lec = lectures[i];
let beginDate = new Date(baseDate);
beginDate.setDate(beginDate.getDate() + lec.day);
beginDate.setMinutes(beginDate.getMinutes() + lec.begin * 60);
let endDate = new Date(baseDate);
endDate.setDate(endDate.getDate() + lec.day);
endDate.setMinutes(endDate.getMinutes() + lec.end * 60);
const event: IEvent = {
summary: lec.title,
description: lec.lecturer + (lec.info !== '' ? ' - ' : '') + lec.info,
location: lec.room,
start: beginDate,
end: endDate
};
await config.sink.createEvent(event);
console.log(lec.title, beginDate.toISOString(), endDate.toISOString());
}
await config.sink.commit();
});
|