UNPKG

node-red-contrib-ical-events

Version:
1 lines 6.52 kB
"use strict";var __awaiter=this&&this.__awaiter||function(e,t,l,n){return new(l||(l=Promise))(function(o,i){function r(e){try{u(n.next(e))}catch(e){i(e)}}function a(e){try{u(n.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof l?t:new l(function(e){e(t)})).then(r,a)}u((n=n.apply(e,t||[])).next())})},__generator=this&&this.__generator||function(e,t){var l,n,o,i,r={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){return function(i){if(l)throw new TypeError("Generator is already executing.");for(;r;)try{if(l=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return r.label++,{value:i[1],done:!1};case 5:r.label++,n=i[1],i=[0];continue;case 7:i=r.ops.pop(),r.trys.pop();continue;default:if(!(o=(o=r.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){r=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){r.label=i[1];break}if(6===i[0]&&r.label<o[1]){r.label=o[1],o=i;break}if(o&&r.label<o[2]){r.label=o[2],r.ops.push(i);break}o[2]&&r.ops.pop(),r.trys.pop();continue}i=t.call(e,r)}catch(e){i=[6,e],n=0}finally{l=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,a])}}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getICal=exports.getConfig=void 0;var NodeCache=require("node-cache"),kalender_events_1=require("kalender-events"),luxon_1=require("luxon"),moment=require("moment");function getConfig(e,t,l,n){var o,i,r=(null==n?void 0:n.caldav)||(null==n?void 0:n.type)||(null==e?void 0:e.caltype);return!r&&(null==e?void 0:e.caldav)&&("false"===e.caldav?r="ical":"true"===e.caldav?r="caldav":"icloud"===e.caldav&&(r="icloud")),{nodeconfig:l,url:(null==n?void 0:n.url)||(null==e?void 0:e.url),name:(null==n?void 0:n.calendarName)||(null==e?void 0:e.name),language:(null==t?void 0:t.util.evaluateNodeProperty(l.language,l.languagetype,l,n))||(null==n?void 0:n.language)||(null==e?void 0:e.language),checkall:(null==n?void 0:n.checkall)||(null==l?void 0:l.checkall)||!1,replacedates:(null==n?void 0:n.replacedates)||(null==e?void 0:e.replacedates),type:r,username:(null==n?void 0:n.username)||(null===(o=null==e?void 0:e.credentials)||void 0===o?void 0:o.user)||(null==e?void 0:e.username),usecache:(null==n?void 0:n.usecache)||(null==e?void 0:e.usecache)||!1,includeTodo:(null==n?void 0:n.includeTodo)||(null==e?void 0:e.includeTodo)||!1,eventtypes:(null==t?void 0:t.util.evaluateNodeProperty(l.eventtypes,l.eventtypestype,l,n))||"events",password:(null==n?void 0:n.password)||(null===(i=null==e?void 0:e.credentials)||void 0===i?void 0:i.pass)||(null==e?void 0:e.password),calendar:(null==n?void 0:n.calendar)||(null==t?void 0:t.util.evaluateNodeProperty(l.calendar,l.calendartype,l,n))||(null==e?void 0:e.calendar),filter:(null==t?void 0:t.util.evaluateNodeProperty(l.filter,l.filtertype,l,n))||(null==n?void 0:n.filter)||(null==l?void 0:l.filter),timezone:(null==t?void 0:t.util.evaluateNodeProperty(l.timezone,l.timezonetype,l,n))||(null==n?void 0:n.timezone)||(null==l?void 0:l.timezone),filter2:(null==t?void 0:t.util.evaluateNodeProperty(l.filter2,l.filter2type,l,n))||(null==n?void 0:n.filter2)||(null==l?void 0:l.filter2),filterProperty:(null==t?void 0:t.util.evaluateNodeProperty(l.filterProperty,l.filterPropertytype,l,n))||(null==n?void 0:n.filterProperty)||(null==l?void 0:l.filterProperty),filterOperator:(null==t?void 0:t.util.evaluateNodeProperty(l.filterOperator,l.filterOperator2type,l,n))||(null==n?void 0:n.filterOperator)||(null==l?void 0:l.filterOperator),trigger:(null==t?void 0:t.util.evaluateNodeProperty(l.trigger,l.triggertype,l,n))||(null==n?void 0:n.trigger)||(null==l?void 0:l.trigger)||"always",dateformat:(null==t?void 0:t.util.evaluateNodeProperty(l.dateformat,l.dateformattype,l,n))||{timeStyle:"short",dateStyle:"short"},preview:parseInt((null==t?void 0:t.util.evaluateNodeProperty(l.preview,l.previewtype,l,n))||(null==n?void 0:n.preview)||(null==l?void 0:l.preview)||(null==l?void 0:l.endpreview)||10),previewUnits:(null==t?void 0:t.util.evaluateNodeProperty(l.previewUnits,l.previewUnitstype,l,n))||(null==n?void 0:n.previewUnits)||(null==l?void 0:l.previewUnits)||(null==l?void 0:l.endpreviewUnits)||"d",pastview:parseInt((null==t?void 0:t.util.evaluateNodeProperty(l.pastview,l.pastviewtype,l,n))||(null==n?void 0:n.pastview)||(null==l?void 0:l.pastview)||1),pastviewUnits:(null==t?void 0:t.util.evaluateNodeProperty(l.pastviewUnits,l.pastviewUnitstype,l,n))||(null==n?void 0:n.pastviewUnits)||(null==l?void 0:l.pastviewUnits)||"d",offset:parseInt((null==t?void 0:t.util.evaluateNodeProperty(l.offset,l.offsettype,l,n))||(null==n?void 0:n.offset)||(null==l?void 0:l.offset)||0),offsetUnits:(null==t?void 0:t.util.evaluateNodeProperty(l.offsetUnits,l.offsetUnitstype,l,n))||(null==n?void 0:n.offsetUnits)||(null==l?void 0:l.offsetUnits)||"m",rejectUnauthorized:(null==n?void 0:n.rejectUnauthorized)||(null==l?void 0:l.rejectUnauthorized)||!1,combineResponse:(null==n?void 0:n.combineResponse)||(null==l?void 0:l.combineResponse)||!1,cache:new NodeCache}}function extendEvent(e,t,l){return t.timezone&&(e.eventStart=luxon_1.DateTime.fromJSDate(new Date(e.eventStart)).setZone(t.timezone).toString(),e.eventEnd=luxon_1.DateTime.fromJSDate(new Date(e.eventEnd)).setZone(t.timezone).toString()),e.countdown=l.countdown(new Date(e.eventStart)),e.calendarName||(e.calendarName=t.name),e}function getICal(e,t,l){return __awaiter(this,void 0,void 0,function(){var n,o,i,r,a,u,d,v,s,c;return __generator(this,function(p){switch(p.label){case 0:n=new kalender_events_1.KalenderEvents,o=[],e.config.checkall?e.red.nodes.eachNode(function(n){if("ical-config"===n.type){var i=getConfig(e.red.nodes.getNode(n.id),t,l,e.msg);o.push(i)}}):o.push(e.config),i=[],r=0,a=o,p.label=1;case 1:if(!(r<a.length))return[3,6];u=a[r],p.label=2;case 2:return p.trys.push([2,4,,5]),d=u,moment(e.msg.payload,moment.ISO_8601).isValid()&&(d=Object.assign(d,{now:moment(e.msg.payload).toDate()})),[4,n.getEvents(d)];case 3:for(s in v=p.sent())i.push(extendEvent(v[s],d,n));return[3,5];case 4:return c=p.sent(),e.config.usecache&&e.cache&&(i=e.cache.get("events")),e.error(c),[3,5];case 5:return r++,[3,1];case 6:return e.config.usecache&&e.cache&&e.cache.set("events",i),[2,i]}})})}exports.getConfig=getConfig,exports.getICal=getICal;