diff options
| author | schneefux <schneefux+commit@schneefux.xyz> | 2018-05-01 20:26:07 +0200 |
|---|---|---|
| committer | schneefux <schneefux+commit@schneefux.xyz> | 2018-05-01 20:38:01 +0200 |
| commit | 567a0f7a2f248cd25b8a5e0e357f9b10c16a9036 (patch) | |
| tree | 5c0e0e8790fe8f7be2eecfcb4fe70222b7a847da /src/index.ts | |
| parent | 1c0c2e4be26dcd68fdb538edd5845ea702b9fa98 (diff) | |
| download | splus-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.ts | 34 |
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); |
