iobroker.ical 1.16.0 → 1.16.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2014-2024, bluefox <dogafox@gmail.com>
3
+ Copyright (c) 2014-2025, bluefox <dogafox@gmail.com>
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -31,8 +31,17 @@ Sentry reporting, starting with js-controller 3.0, means that this adapter can u
31
31
  Placeholder for the next version (at the beginning of the line):
32
32
  ### **WORK IN PROGRESS**
33
33
  -->
34
+ ### 1.16.2 (2025-06-16)
35
+
36
+ * (@GermanBluefox) Small fix in the configuration dialog
37
+
38
+ ### 1.16.1 (2024-11-01)
39
+ * (jens-maus) fix issue with handling rrule timezones incorrect with the latest node-ical (#708).
40
+ * (jens-maus) update node-ical to latest 0.20.1
41
+ * (jens-maus) save cached files to os tmpdir instead.
42
+
34
43
  ### 1.16.0 (2024-10-29)
35
- * (cvoelkel76) add checkbox to allow to exactly match a calender event.
44
+ * (cvoelkel76) added checkbox to allow exactly matching of a calendar event.
36
45
  * (jens-maus) update node-ical to latest 0.20.0
37
46
  * (klein0r) Breaking change: Removed trigger state (subscribe is deprecated in js-controller 6.x)
38
47
  * (simatec) Responsive design added
@@ -44,18 +53,11 @@ Sentry reporting, starting with js-controller 3.0, means that this adapter can u
44
53
  ### 1.14.3 (2024-02-28)
45
54
  * (jens-maus) update node-ical to latest 0.18.0
46
55
 
47
- ### 1.14.2 (2024-01-29)
48
- * (jens-maus) update node-ical to latest 0.17.2
49
-
50
- ### 1.14.1 (2024-01-29)
51
- * (klein0r) Create dummy file in files tab
52
- * (klein0r) Fixed recurring events
53
-
54
56
  ## License
55
57
 
56
58
  The MIT License (MIT)
57
59
 
58
- Copyright (c) 2014-2024, bluefox <dogafox@gmail.com>
60
+ Copyright (c) 2014-2025, bluefox <dogafox@gmail.com>
59
61
 
60
62
  Permission is hereby granted, free of charge, to any person obtaining a copy
61
63
  of this software and associated documentation files (the "Software"), to deal
@@ -59,6 +59,7 @@
59
59
  "sm": 12,
60
60
  "md": 4,
61
61
  "lg": 4,
62
+ "noTranslation": true,
62
63
  "options": [
63
64
  {
64
65
  "label": "English",
@@ -69,11 +70,11 @@
69
70
  "value": "de"
70
71
  },
71
72
  {
72
- "label": "русский",
73
+ "label": "Русский",
73
74
  "value": "ru"
74
75
  },
75
76
  {
76
- "label": "Portugues",
77
+ "label": "Português",
77
78
  "value": "pt"
78
79
  },
79
80
  {
@@ -81,7 +82,7 @@
81
82
  "value": "nl"
82
83
  },
83
84
  {
84
- "label": "français",
85
+ "label": "Français",
85
86
  "value": "fr"
86
87
  },
87
88
  {
@@ -89,7 +90,7 @@
89
90
  "value": "it"
90
91
  },
91
92
  {
92
- "label": "Espanol",
93
+ "label": "Español",
93
94
  "value": "es"
94
95
  }
95
96
  ],
package/io-package.json CHANGED
@@ -1,8 +1,34 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "ical",
4
- "version": "1.16.0",
4
+ "version": "1.16.2",
5
5
  "news": {
6
+ "1.16.2": {
7
+ "en": "Small fix in the configuration dialog",
8
+ "de": "Kleine Fixierung im Konfigurationsdialog",
9
+ "ru": "Небольшое исправление в диалоге конфигурации",
10
+ "pt": "Pequena correção na janela de configuração",
11
+ "nl": "Kleine correctie in het configuratievenster",
12
+ "fr": "Petite correction dans la boîte de dialogue de configuration",
13
+ "it": "Piccola correzione nella finestra di dialogo di configurazione",
14
+ "es": "Ajuste pequeño en el diálogo de configuración",
15
+ "pl": "Małe poprawki w oknie konfiguracji",
16
+ "uk": "Невелика фіксація в діалоговому вікні конфігурації",
17
+ "zh-cn": "配置对话框中的小修补"
18
+ },
19
+ "1.16.1": {
20
+ "en": "fix issue with handling rrule timezones incorrect with latest node-ical (#708).\nupdate node-ical to latest 0.20.1\nsave cached files to os tmpdir instead.",
21
+ "de": "problem mit dem umgang mit rrule zeitzonen falsch mit neusten node-ical (#708).\nupdate node-ical bis neueste 0.20.1\nspeichern sie cache-dateien auf os tmpdir statt.",
22
+ "ru": "исправить проблему с обработкой часовых поясов правила некорректно с последними узлами (#708).\nобновление узла к последним 0.20.1\nвместо этого сохранить кэшированные файлы в os tmpdir.",
23
+ "pt": "corrigir problema com manipulação rrule fusos horários incorreta com o mais recente node-ical (#708).\natualização node-ical para mais recente 0.20.1\nsalvar arquivos em cache para os tmpdir em vez disso.",
24
+ "nl": "fix probleem met de behandeling rrule tijdzones incorrect met de laatste node-ical (#708).\nnode-ical updaten naar de laatste 0.20.1\nbewaar gecachede bestanden in plaats daarvan in os tmpdir.",
25
+ "fr": "corriger le problème avec la manipulation des fuseaux horaires rrule incorrecte avec le dernier nœud (#708).\nmettre à jour node-ical au dernier 0.20.1\nenregistrer les fichiers mis en cache dans os tmpdir à la place.",
26
+ "it": "risolvere il problema con la gestione di fusi orari non corretto con ultimo nodo-ical (#708).\naggiornamento nodo-ical al più recente 0.20.1\nsalvare i file memorizzati in cache a os tmpdir invece.",
27
+ "es": "solucionar problema con el manejo rrule timezones incorrecto con el último node-ical (#708).\nactualización node-ical al último 0.20.1\nguardar archivos en caché a os tmpdir en su lugar.",
28
+ "pl": "problem z obsługą rrule strefy czasu nieprawidłowy z najnowszym nodeical (# 708).\nupdate node- ical do najnowszej wersji 0.20.1\nzapisać pliki cached do os tmpdir zamiast.",
29
+ "uk": "виправлено проблему з використанням rrule timezones, некоректних з найновішою вершиною (#708).\nоновлення вершини-ical до останньої 0.20.1\nзберегти кешовані файли на os tmpdir замість.",
30
+ "zh-cn": "将处理rrule时区的问题与最新节点错误(# 708).\n将节点更新为最新的0.20.1\n将缓存的文件保存到 os tmpdir ."
31
+ },
6
32
  "1.16.0": {
7
33
  "en": "add checkbox to allow to exactly match a calender event.\nupdate node-ical to latest 0.20.0\nBreaking change: Removed trigger state (subscribe is deprecated in js-controller 6.x)\nResponsive design added",
8
34
  "de": "fügen sie checkbox hinzu, um ein kalenderereignis genau zu vereinbaren.\nupdate node-ical bis neueste 0.20.0\nBruchänderung: Entfernter Triggerzustand (Abonnent wird in js-Controller 6.x abgeschrieben)\nResponsive Design hinzugefügt",
@@ -67,32 +93,6 @@
67
93
  "pl": "Utwórz plik atrapy w zakładce pliki\nNaprawiono powtarzające się zdarzenia",
68
94
  "uk": "Створіть файл dummy у вкладці файлів\nВиправлено повторювані події",
69
95
  "zh-cn": "在文件标签中创建模拟文件\n固定经常性活动"
70
- },
71
- "1.14.0": {
72
- "en": "Allow to set custom http user agent\nAdded option to use files tab for calendar files",
73
- "de": "Erlauben Sie, benutzerdefinierte http-Benutzer-Agent\nOption hinzugefügt, um Dateien Tab für Kalenderdateien zu verwenden",
74
- "ru": "Разрешить настроить пользовательский\nДобавлена возможность использования вкладки файлов для календарных файлов",
75
- "pt": "Permitir definir agente de usuário http personalizado\nOpção adicionada para usar a guia de arquivos para arquivos de calendário",
76
- "nl": "Aangepaste http-gebruikeragent instellen\nToegevoegd optie om bestanden te gebruiken tabblad voor agendabestanden",
77
- "fr": "Permettre de définir un agent utilisateur http personnalisé\nAjout d'une option pour utiliser l'onglet fichiers pour les fichiers calendrier",
78
- "it": "Consentire di impostare personalizzato http user agent\nAggiunta opzione per utilizzare scheda file per i file del calendario",
79
- "es": "Permitir establecer un agente de usuario http personalizado\nOpción adicional para usar la pestaña de archivos para archivos de calendario",
80
- "pl": "Zezwalaj na ustawianie niestandardowych użytkowników http\nDodano opcję użycia zakładki plików do plików kalendarza",
81
- "uk": "Дозвольте встановити користувальницький агент\nДодана можливість використовувати вкладку файлів для календарних файлів",
82
- "zh-cn": "允许设置自定义 http 用户代理\n为日历文件使用文件标签添加了选项"
83
- },
84
- "1.13.6": {
85
- "en": "Incorrect jsonConfig has been fixed [#602]\nDependencies have been updated",
86
- "de": "Fehler in jsonConfig wurde behoben [#602]\nAbhängigkeiten wurden aktualisiert",
87
- "ru": "Неправильный jsonConfig был исправлен [#602]\nВ зависимости были обновлены",
88
- "pt": "JsonConfig incorreto foi corrigido [#602]\nAs dependências foram atualizadas",
89
- "nl": "Incorrect JsonConfig is gerepareerd\nAfhankelijkheid",
90
- "fr": "Incorrect jsonConfig a été corrigé [#602]\nLes dépendances ont été mises à jour",
91
- "it": "JsonConfig non corretto è stato fissato [#602]\nLe dipendenze sono state aggiornate",
92
- "es": "JsonConfig incorrecto ha sido fijado [#602]\nSe han actualizado las dependencias",
93
- "pl": "Incorrect jsonConfig został ustalony jako #602\nZależności zostały zaktualizowane",
94
- "uk": "[#602]\nОновлено залежність",
95
- "zh-cn": "错误的 json Config已确定[第602号]\n已更新了属地"
96
96
  }
97
97
  },
98
98
  "titleLang": {
package/main.js CHANGED
@@ -5,6 +5,7 @@ const crypto = require('node:crypto');
5
5
  const fs = require('node:fs');
6
6
  const path = require('node:path');
7
7
  const https = require('node:https');
8
+ const os = require('node:os');
8
9
 
9
10
  const utils = require('@iobroker/adapter-core');
10
11
  const adapterName = require('./package.json').name.split('.').pop();
@@ -157,7 +158,7 @@ async function getICal(urlOrFile, user, pass, sslignore, calName, cb) {
157
158
  }
158
159
 
159
160
  const calHash = crypto.createHash('md5').update(user + pass + urlOrFile).digest('hex');
160
- const cachedFilename = path.join(__dirname, calHash);
161
+ const cachedFilename = path.join(os.tmpdir(), 'iob-' + calHash + '.ics');
161
162
 
162
163
  axios(options).then(function (response) {
163
164
  if (response.data) {
@@ -283,7 +284,7 @@ async function processData(data, realnow, startpreview, endpreview, now2, calNam
283
284
 
284
285
  // only events with summary and a start date are interesting
285
286
  if ((ev.summary !== undefined) && (ev.type === 'VEVENT') && ev.start && ev.start instanceof Date) {
286
- adapter.log.debug(`ev: ${JSON.stringify(ev)}`);
287
+ adapter.log.debug(`ev[${k}]: ${JSON.stringify(ev)}`);
287
288
  if (!ev.end || !(ev.end instanceof Date)) {
288
289
  ev.end = new Date(ev.start.getTime());
289
290
  if (ev.start.getHours() === 0 && ev.start.getMinutes() === 0 && ev.start.getSeconds() === 0) {
@@ -363,11 +364,11 @@ options: ${JSON.stringify(options)}`
363
364
  // this event will be recognized as a date event
364
365
  ev2.start.setHours(0,0,0,0);
365
366
  } else if (ev.datetype === 'date-time') {
366
- // add a time offset which is relative between
367
- // ev2 and ev because rrule seems to return dates in
368
- // local time only. And if not correctly the exdate
369
- // check later will not work correctly.
370
- ev2.start = addOffset(ev2.start, ev2.start.getTimezoneOffset() - ev.start.getTimezoneOffset());
367
+ // rrule only knows about local time but stores the
368
+ // datetime in zulu (Z) UTC time strings. Thus we need
369
+ // to convert it to local time carrying objects, thus
370
+ // add the ev2.start tz offset
371
+ ev2.start = addOffset(ev2.start, ev2.start.getTimezoneOffset());
371
372
  }
372
373
 
373
374
  // Set end date based on length in ms
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.ical",
3
- "version": "1.16.0",
3
+ "version": "1.16.2",
4
4
  "description": "Allows read information from google calender and from iCal.",
5
5
  "author": {
6
6
  "name": "bluefox",
@@ -39,11 +39,11 @@
39
39
  "node": ">=18"
40
40
  },
41
41
  "dependencies": {
42
- "@iobroker/adapter-core": "^3.2.1",
43
- "axios": "^1.7.7",
42
+ "@iobroker/adapter-core": "^3.2.3",
43
+ "axios": "^1.10.0",
44
44
  "cloneextend": "^0.0.3",
45
45
  "json-schema": "^0.4.0",
46
- "node-ical": "^0.20.0",
46
+ "node-ical": "^0.20.1",
47
47
  "rrule": "2.8.1"
48
48
  },
49
49
  "devDependencies": {
@@ -51,25 +51,25 @@
51
51
  "@alcalzone/release-script-plugin-iobroker": "^3.7.2",
52
52
  "@alcalzone/release-script-plugin-license": "^3.7.0",
53
53
  "@alcalzone/release-script-plugin-manual-review": "^3.7.0",
54
- "@iobroker/adapter-dev": "^1.3.0",
55
- "@iobroker/testing": "^5.0.0",
54
+ "@iobroker/adapter-dev": "^1.4.0",
55
+ "@iobroker/testing": "^5.0.4",
56
56
  "@types/chai": "^4.3.19",
57
57
  "@types/chai-as-promised": "^7.1.8",
58
- "@types/mocha": "^10.0.8",
59
- "@types/node": "^22.7.4",
58
+ "@types/mocha": "^10.0.10",
59
+ "@types/node": "^22.15.29",
60
60
  "@types/proxyquire": "^1.3.31",
61
- "@types/sinon": "^17.0.3",
61
+ "@types/sinon": "^17.0.4",
62
62
  "@types/sinon-chai": "^3.2.12",
63
63
  "chai": "^4.5.0",
64
64
  "chai-as-promised": "^7.1.2",
65
- "chai-string": "^1.5.0",
65
+ "chai-string": "^1.6.0",
66
66
  "eslint": "^8.56.0",
67
- "luxon": "^3.5.0",
68
- "mocha": "^10.7.3",
67
+ "luxon": "^3.6.1",
68
+ "mocha": "^10.8.2",
69
69
  "proxyquire": "^2.1.3",
70
70
  "sinon": "^19.0.2",
71
71
  "sinon-chai": "^3.7.0",
72
- "typescript": "~5.6.2"
72
+ "typescript": "~5.8.3"
73
73
  },
74
74
  "bugs": {
75
75
  "url": "https://github.com/iobroker-community-adapters/ioBroker.ical/issues"