diff options
| author | Tim Schiewe <git@tforge.de> | 2018-04-30 18:15:52 +0200 |
|---|---|---|
| committer | Tim Schiewe <git@tforge.de> | 2018-04-30 18:15:52 +0200 |
| commit | 93b466df50d94d4c15715f5eb4d88a0be7d61c11 (patch) | |
| tree | 4923ae6a554b6e599af53a401825ec8391250620 /src/ICal.ts | |
| parent | fba804b69e5cbdbe7cb71d6137b2b2a56230a971 (diff) | |
| download | splus-93b466df50d94d4c15715f5eb4d88a0be7d61c11.tar.gz splus-93b466df50d94d4c15715f5eb4d88a0be7d61c11.zip | |
Create better structure
Diffstat (limited to 'src/ICal.ts')
| -rw-r--r-- | src/ICal.ts | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/ICal.ts b/src/ICal.ts new file mode 100644 index 0000000..09bc9bf --- /dev/null +++ b/src/ICal.ts @@ -0,0 +1,30 @@ +// ref. https://www.npmjs.com/package/ical-generator +import * as ical from 'ical-generator'; +import * as crypto from 'crypto'; +import * as fs from 'fs'; + +const TARGET_FILE = 'etc/informatik1.ics'; +const DOMAIN = 'schneefux.github.io'; // TODO config management + +const sha256 = (x) => crypto.createHash('sha256').update(x, 'utf8').digest('hex'); + +const cal = ical(); + +// TODO declare an interface +export function createEvent(event) { + // TODO better duplicate detection and resolve conflicts lol + const eventId = sha256(JSON.stringify(event)).substr(0, 16); + + const icalEvent = cal.createEvent({ + uid: eventId, + start: event.start.dateTime, + end: event.end.dateTime, + timestamp: new Date(), + summary: event.summary, + description: event.description, + }); +} + +export function commit() { + fs.writeFile(TARGET_FILE, cal.toString(), (err) => {}); +} |
