summaryrefslogtreecommitdiff
path: root/src/index.ts
diff options
context:
space:
mode:
authorschneefux <schneefux+commit@schneefux.xyz>2018-05-01 20:26:07 +0200
committerschneefux <schneefux+commit@schneefux.xyz>2018-05-01 20:38:01 +0200
commit567a0f7a2f248cd25b8a5e0e357f9b10c16a9036 (patch)
tree5c0e0e8790fe8f7be2eecfcb4fe70222b7a847da /src/index.ts
parent1c0c2e4be26dcd68fdb538edd5845ea702b9fa98 (diff)
downloadsplus-567a0f7a2f248cd25b8a5e0e357f9b10c16a9036.tar.gz
splus-567a0f7a2f248cd25b8a5e0e357f9b10c16a9036.zip
Retrieve schedule for current week, add course config var (closes #3)
Diffstat (limited to 'src/index.ts')
-rw-r--r--src/index.ts34
1 files changed, 15 insertions, 19 deletions
diff --git a/src/index.ts b/src/index.ts
index 95d3797..47bc00c 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -1,39 +1,35 @@
+import * as moment from 'moment';
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());
+const baseDate = moment().startOf('week');
-config.source.getData().then(async data => {
+config.source.getData(baseDate.weeks()).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 beginDate = baseDate.clone();
+ beginDate.add(moment.duration({
+ days: lec.day + 1, // for moment: 1 = Monday
+ hours: lec.begin,
+ }));
- let endDate = new Date(baseDate);
- endDate.setDate(endDate.getDate() + lec.day);
- endDate.setMinutes(endDate.getMinutes() + lec.end * 60);
+ let endDate = baseDate.clone();
+ endDate.add(moment.duration({
+ days: lec.day + 1,
+ hours: lec.end,
+ }));
const event: IEvent = {
summary: lec.title,
description: lec.lecturer + (lec.info !== '' ? ' - ' : '') + lec.info,
location: lec.room,
- start: beginDate,
- end: endDate
+ start: beginDate.toDate(),
+ end: endDate.toDate(),
};
await config.sink.createEvent(event);