diff --git a/modules/default/calendar/node_helper.js b/modules/default/calendar/node_helper.js index 95bb7dca..d733137e 100644 --- a/modules/default/calendar/node_helper.js +++ b/modules/default/calendar/node_helper.js @@ -1,7 +1,7 @@ /* Magic Mirror * Node Helper: Calendar * - * By Michael Teeuw https://michaelteeuw.nl + * By Michael Teeuw http://michaelteeuw.nl * MIT Licensed. */ @@ -11,19 +11,20 @@ var CalendarFetcher = require("./calendarfetcher.js"); module.exports = NodeHelper.create({ // Override start method. - start: function () { + start: function() { var events = []; this.fetchers = []; console.log("Starting node helper for: " + this.name); + }, // Override socketNotificationReceived method. - socketNotificationReceived: function (notification, payload) { + socketNotificationReceived: function(notification, payload) { if (notification === "ADD_CALENDAR") { //console.log('ADD_CALENDAR: '); - this.createFetcher(payload.url, payload.fetchInterval, payload.excludedEvents, payload.maximumEntries, payload.maximumNumberOfDays, payload.auth, payload.broadcastPastEvents); + this.createFetcher(payload.url, payload.fetchInterval, payload.excludedEvents, payload.maximumEntries, payload.maximumNumberOfDays, payload.auth, payload.broadcastPastEvents, payload.id); } }, @@ -35,38 +36,40 @@ module.exports = NodeHelper.create({ * attribute reloadInterval number - Reload interval in milliseconds. */ - createFetcher: function (url, fetchInterval, excludedEvents, maximumEntries, maximumNumberOfDays, auth, broadcastPastEvents) { + createFetcher: function(url, fetchInterval, excludedEvents, maximumEntries, maximumNumberOfDays, auth, broadcastPastEvents, identifier) { var self = this; if (!validUrl.isUri(url)) { - self.sendSocketNotification("INCORRECT_URL", { url: url }); + self.sendSocketNotification("INCORRECT_URL", {url: url, id: identifier}); return; } var fetcher; - if (typeof self.fetchers[url] === "undefined") { + if (typeof self.fetchers[identifier + url] === "undefined") { console.log("Create new calendar fetcher for url: " + url + " - Interval: " + fetchInterval); fetcher = new CalendarFetcher(url, fetchInterval, excludedEvents, maximumEntries, maximumNumberOfDays, auth, broadcastPastEvents); - fetcher.onReceive(function (fetcher) { + fetcher.onReceive(function(fetcher) { //console.log('Broadcast events.'); //console.log(fetcher.events()); self.sendSocketNotification("CALENDAR_EVENTS", { url: fetcher.url(), - events: fetcher.events() + events: fetcher.events(), + id: identifier }); }); - fetcher.onError(function (fetcher, error) { + fetcher.onError(function(fetcher, error) { console.error("Calendar Error. Could not fetch calendar: ", fetcher.url(), error); self.sendSocketNotification("FETCH_ERROR", { url: fetcher.url(), - error: error + error: error, + id: identifier }); }); - self.fetchers[url] = fetcher; + self.fetchers[identifier + url] = fetcher; } else { //console.log('Use existing news fetcher for url: ' + url); fetcher = self.fetchers[url];