summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschneefux <schneefux+commit@schneefux.xyz>2018-05-03 08:55:22 +0200
committerschneefux <schneefux+commit@schneefux.xyz>2018-05-03 08:55:22 +0200
commitece05d6ea3eabdd64c16dac009633c78fe337fc4 (patch)
tree8ad6834618f5d8a6dcaa3b43b789a6554a1526a1
parent54a85ae9d1ebda505194ee29f48682cbd6d57e9f (diff)
downloadsplus-ece05d6ea3eabdd64c16dac009633c78fe337fc4.tar.gz
splus-ece05d6ea3eabdd64c16dac009633c78fe337fc4.zip
Fix week prefetching
-rw-r--r--src/index.ts53
1 files changed, 26 insertions, 27 deletions
diff --git a/src/index.ts b/src/index.ts
index ce1a70a..6de11de 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -6,42 +6,41 @@ import {SplusApi} from './core/SplusApi';
import {IEvent} from './core/IEvent';
import {ILecture} from './core/ILecture';
-const flatten = (array) => [].concat(...array);
const range = (upper: number): number[] => Array.from(Array(upper), (x, i) => i)
async function main(configCourse, configPrefetchWeeks, configFilter) {
const baseDate = moment().startOf('week');
- const unfilteredLectureChunks: ILecture[][] = await BPromise.map(range(configPrefetchWeeks),
- async week => await SplusApi.getData(configCourse, baseDate.weeks() + week)
- );
- const lectures: ILecture[] = flatten(unfilteredLectureChunks).filter(configFilter);
+ await BPromise.map(range(configPrefetchWeeks), async weeksAhead => {
+ const unfilteredLectures = await SplusApi.getData(configCourse, baseDate.weeks() + weeksAhead);
+ const lectures = unfilteredLectures.filter(configFilter);
- await BPromise.map(lectures, async (lec: ILecture, weeksAhead) => {
- let beginDate = baseDate.clone();
- beginDate.add(moment.duration({
- days: lec.day + 1, // for moment: 1 = Monday
- hours: lec.begin,
- weeks: weeksAhead,
- }));
+ await BPromise.map(lectures, async lec => {
+ let beginDate = baseDate.clone();
+ beginDate.add(moment.duration({
+ days: lec.day + 1, // for moment: 1 = Monday
+ hours: lec.begin,
+ weeks: weeksAhead,
+ }));
- let endDate = baseDate.clone();
- endDate.add(moment.duration({
- days: lec.day + 1,
- hours: lec.end,
- weeks: weeksAhead,
- }));
- const event: IEvent = {
- summary: lec.title,
- description: lec.lecturer + (lec.info !== '' ? ' - ' : '') + lec.info,
- location: lec.room,
- start: beginDate.toDate(),
- end: endDate.toDate(),
- };
+ let endDate = baseDate.clone();
+ endDate.add(moment.duration({
+ days: lec.day + 1,
+ hours: lec.end,
+ weeks: weeksAhead,
+ }));
+ const event: IEvent = {
+ summary: lec.title,
+ description: lec.lecturer + (lec.info !== '' ? ' - ' : '') + lec.info,
+ location: lec.room,
+ start: beginDate.toDate(),
+ end: endDate.toDate(),
+ };
- await config.sink.createEvent(event);
+ await config.sink.createEvent(event);
- console.log(lec.title, beginDate.toISOString(), endDate.toISOString());
+ console.log(lec.title, beginDate.toISOString(), endDate.toISOString());
+ });
});
await config.sink.commit();