use ical.js to parse calendar data
This commit is contained in:
17
nextcloud.js
17
nextcloud.js
@ -2,6 +2,7 @@ module.exports = function(RED) {
|
||||
let dav = require('dav')
|
||||
let webdav = require('webdav')
|
||||
const fs = require('fs')
|
||||
const ICAL = require('ical.js');
|
||||
|
||||
function NextcloudConfigNode(n) {
|
||||
RED.nodes.createNode(this, n)
|
||||
@ -46,13 +47,17 @@ module.exports = function(RED) {
|
||||
.then(function (calendarEntries) {
|
||||
let icsList = { 'payload': { 'name': calendar.displayName, 'data': [] } }
|
||||
calendarEntries.forEach(function (calendarEntry) {
|
||||
const keyValue = calendarEntry.calendarData.split('\n')
|
||||
let icsJson = {}
|
||||
for (let x = 0; x < keyValue.length; x++) {
|
||||
const temp = keyValue[x].split(':')
|
||||
icsJson[temp[0]] = temp[1]
|
||||
node.warn(calendarEntry.calendarData);
|
||||
node.warn(JSON.stringify(calendarEntry.calendarData.split('\n')));
|
||||
try {
|
||||
let jCalData = ICAL.parse(calendarEntry.calendarData);
|
||||
let component = new ICAL.Component(jCalData);
|
||||
let vevent = component.getFirstSubcomponent('vevent');
|
||||
var event = new ICAL.Event(vevent);
|
||||
icsList.payload.data.push(event);
|
||||
} catch (error) {
|
||||
node.error("Error parsing calendar data: " + error);
|
||||
}
|
||||
icsList.payload.data.push(icsJson)
|
||||
})
|
||||
node.send(icsList)
|
||||
}, function () {
|
||||
|
||||
Reference in New Issue
Block a user