iobroker.ical 1.13.2 → 1.13.3

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-2022, bluefox <dogafox@gmail.com>
3
+ Copyright (c) 2014-2023, 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
@@ -9,10 +9,11 @@
9
9
  [![Translation status](https://weblate.iobroker.net/widgets/adapters/-/ical/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget)
10
10
  [![Downloads](https://img.shields.io/npm/dm/iobroker.ical.svg)](https://www.npmjs.com/package/iobroker.ical)
11
11
 
12
- This adapter allows to read .ics files from specific URL and parse it (Google Calendar or iCal).
13
- Alternatively it is possible to use a local `.ics` file (use absolute path to the file instead of URL)
12
+ ioBroker.ical is an adapter for the ioBroker automation platform focusing on iCalendar files, widely used for storing and sharing calendar data. It allows users to read and parse iCalendar files locally or from a specified URL.
14
13
 
15
- **This adapter uses Sentry libraries to automatically report exceptions and code errors to the developers.** For more details and for information how to disable the error reporting see [Sentry-Plugin Documentation](https://github.com/ioBroker/plugin-sentry#plugin-sentry)! Sentry reporting is used starting with js-controller 3.0.
14
+ With ioBroker.ical, you can perform various actions based on calendar events, such as triggering smart home devices, sending notifications, or executing specific scripts or routines. For example, you could create automation rules that turn on the lights when a particular event is about to start or send a reminder notification for an upcoming appointment.
15
+
16
+ Sentry reporting, starting with js-controller 3.0, means that this adapter can use Sentry libraries to report exceptions and code errors to developers automatically. For more details and how to disable error reporting, see [Sentry-Plugin Documentation](https://github.com/ioBroker/plugin-sentry#plugin-sentry).
16
17
 
17
18
  ## Documentation
18
19
 
@@ -29,6 +30,12 @@ Alternatively it is possible to use a local `.ics` file (use absolute path to th
29
30
  Placeholder for the next version (at the beginning of the line):
30
31
  ### **WORK IN PROGRESS**
31
32
  -->
33
+ ### 1.13.3 (2023-06-20)
34
+ * (jens-maus) updated node-ical to latest 0.16.1
35
+ * (klein0r) Use color picker in adapter settings
36
+ * (klein0r) Dropped Admin 4 UI
37
+ * (klein0r) Added Ukrainian language
38
+
32
39
  ### 1.13.2 (2022-08-29)
33
40
  * (Apollon77) fix strange log messages by downgrading RRule again
34
41
 
@@ -42,14 +49,11 @@ Alternatively it is possible to use a local `.ics` file (use absolute path to th
42
49
  ### 1.12.2 (2022-06-03)
43
50
  * (Apollon77) Fix displaying rest-time of event in one case
44
51
 
45
- ### 1.12.1 (2022-03-22)
46
- * (Apollon77) Adjust colorize of dates to also show dates started in the past with todays color
47
-
48
52
  ## License
49
53
 
50
54
  The MIT License (MIT)
51
55
 
52
- Copyright (c) 2014-2022, bluefox <dogafox@gmail.com>
56
+ Copyright (c) 2014-2023, bluefox <dogafox@gmail.com>
53
57
 
54
58
  Permission is hereby granted, free of charge, to any person obtaining a copy
55
59
  of this software and associated documentation files (the "Software"), to deal
@@ -0,0 +1,34 @@
1
+ {
2
+ "Add arrow for started events": "Додайте стрілку для розпочатих подій",
3
+ "Add event color if available": "Використовуйте колір події для поля, якщо доступний",
4
+ "Calendars": "Календарі",
5
+ "Colorize HTML": "Розфарбуйте HTML",
6
+ "Default color for HTML": "Колір за замовчуванням для HTML",
7
+ "Events": "Події",
8
+ "Every calendar has own color": "Кожен календар має свій колір",
9
+ "HTML settings": "Налаштування HTML",
10
+ "Hide Start-End of events": "Приховати початок-кінець подій",
11
+ "Hide Year": "Приховати рік",
12
+ "Ignore Certificate errors": "Ігнорувати помилки сертифіката",
13
+ "Ignore case for event-search": "Ігнорувати регістр для пошуку подій",
14
+ "Language": "Мова",
15
+ "Padding date with '0'": "Заповнення дати \"0\"",
16
+ "Past days": "Минулих днів",
17
+ "Preview days": "Дні попереднього перегляду",
18
+ "Replace dates with words": "Замініть дати словами",
19
+ "Use by full day": "Замінити 00:00 на",
20
+ "color": "колір",
21
+ "display": "дисплей",
22
+ "enabled": "включено",
23
+ "filter": "фільтр",
24
+ "filterregex": "Фільтр як регулярний вираз",
25
+ "iCal adapter settings": "Налаштування адаптера iCal",
26
+ "name": "Ім'я",
27
+ "pass": "Пароль",
28
+ "sslignore": "Ігноруйте помилки SSL",
29
+ "url": "URL-адреса календаря або ім’я файлу",
30
+ "user": "Ім'я користувача",
31
+ "Options": "Опції",
32
+ "Set ID": "Встановити ID",
33
+ "Set Ack": "Установити Ack"
34
+ }
@@ -92,7 +92,7 @@
92
92
  "label": "Use by full day"
93
93
  },
94
94
  "defColor": {
95
- "type": "text",
95
+ "type": "color",
96
96
  "sm": 12,
97
97
  "md": 4,
98
98
  "lg": 4,
@@ -176,15 +176,16 @@
176
176
  "attr": "name",
177
177
  "width": "15%",
178
178
  "title": {
179
- "en": "name",
179
+ "en": "Name",
180
180
  "de": "Name",
181
- "ru": "имя",
182
- "pt": "nome",
183
- "nl": "naam",
181
+ "ru": "Имя",
182
+ "pt": "Nome",
183
+ "nl": "Naam",
184
184
  "fr": "Nom",
185
- "it": "nome",
186
- "es": "nombre",
185
+ "it": "Nome",
186
+ "es": "Nombre",
187
187
  "pl": "Nazwa",
188
+ "uk": "Ім'я",
188
189
  "zh-cn": "姓名"
189
190
  },
190
191
  "filter": true,
@@ -205,6 +206,7 @@
205
206
  "it": "URL del calendario o nome del file",
206
207
  "es": "Calendario URL o nombre de archivo",
207
208
  "pl": "Calendar URL lub nazwy plików",
209
+ "uk": "URL-адреса календара або назва файлу",
208
210
  "zh-cn": "卡伦·URL或档案"
209
211
  },
210
212
  "filter": false,
@@ -225,6 +227,7 @@
225
227
  "it": "Nome utente",
226
228
  "es": "Nombre de usuario",
227
229
  "pl": "Imię User",
230
+ "uk": "Ім'я користувача",
228
231
  "zh-cn": "使用名称"
229
232
  },
230
233
  "filter": false,
@@ -247,6 +250,7 @@
247
250
  "it": "Password",
248
251
  "es": "Contraseña",
249
252
  "pl": "Password",
253
+ "uk": "Логін",
250
254
  "zh-cn": "护照"
251
255
  },
252
256
  "filter": false,
@@ -267,6 +271,7 @@
267
271
  "it": "Ignora errori SSL",
268
272
  "es": "Ignorar errores SSL",
269
273
  "pl": "Ignore SSL error",
274
+ "uk": "Ignore SSL помилки",
270
275
  "zh-cn": "Ignore SSL错误"
271
276
  },
272
277
  "filter": false,
@@ -287,6 +292,7 @@
287
292
  "it": "Colore",
288
293
  "es": "Color",
289
294
  "pl": "Kolor",
295
+ "uk": "Колір",
290
296
  "zh-cn": "颜色"
291
297
  },
292
298
  "filter": false,
@@ -307,6 +313,7 @@
307
313
  "it": "Filtro",
308
314
  "es": "Filtro",
309
315
  "pl": "Filter",
316
+ "uk": "Фільтри",
310
317
  "zh-cn": "电影"
311
318
  },
312
319
  "filter": false,
@@ -327,6 +334,7 @@
327
334
  "it": "Filtra come espressione normale",
328
335
  "es": "Filtro como expresión regular",
329
336
  "pl": "Filter jako zwykły wyraz wyrażenia",
337
+ "uk": "Фільтр як регулярний вираз",
330
338
  "zh-cn": "过滤为正则表达式"
331
339
  },
332
340
  "filter": false,
@@ -353,15 +361,16 @@
353
361
  "attr": "name",
354
362
  "width": "20%",
355
363
  "title": {
356
- "en": "name",
364
+ "en": "Name",
357
365
  "de": "Name",
358
- "ru": "имя",
359
- "pt": "nome",
360
- "nl": "naam",
366
+ "ru": "Имя",
367
+ "pt": "Nome",
368
+ "nl": "Naam",
361
369
  "fr": "Nom",
362
- "it": "nome",
363
- "es": "nombre",
370
+ "it": "Nome",
371
+ "es": "Nombre",
364
372
  "pl": "Nazwa",
373
+ "uk": "Ім'я",
365
374
  "zh-cn": "姓名"
366
375
  },
367
376
  "filter": true,
@@ -382,6 +391,7 @@
382
391
  "it": "Attivo",
383
392
  "es": "Activo",
384
393
  "pl": "Aktywny",
394
+ "uk": "Активний",
385
395
  "zh-cn": "精算师"
386
396
  },
387
397
  "filter": false,
@@ -402,6 +412,7 @@
402
412
  "it": "Set ID",
403
413
  "es": "Establecer ID",
404
414
  "pl": "Set Identity (ang.)",
415
+ "uk": "Встановити ID",
405
416
  "zh-cn": "导 言"
406
417
  },
407
418
  "filter": false,
@@ -417,11 +428,12 @@
417
428
  "de": "EIN",
418
429
  "ru": "НА",
419
430
  "pt": "VAMOS",
420
- "nl": "ON",
431
+ "nl": "",
421
432
  "fr": "ON",
422
433
  "it": "ON",
423
434
  "es": "ON",
424
435
  "pl": "ON",
436
+ "uk": "ПРО НАС",
425
437
  "zh-cn": "目录"
426
438
  },
427
439
  "filter": false,
@@ -442,6 +454,7 @@
442
454
  "it": "UFFICIO",
443
455
  "es": "OFF",
444
456
  "pl": "OFF",
457
+ "uk": "ВІД",
445
458
  "zh-cn": "导 言"
446
459
  },
447
460
  "filter": false,
@@ -462,6 +475,7 @@
462
475
  "it": "Set Ack",
463
476
  "es": "Set Ack",
464
477
  "pl": "Set Ack",
478
+ "uk": "Комплект Ack",
465
479
  "zh-cn": "A. 定 标"
466
480
  },
467
481
  "filter": false,
@@ -482,6 +496,7 @@
482
496
  "it": "Visualizza",
483
497
  "es": "Visualización",
484
498
  "pl": "Display",
499
+ "uk": "Показати",
485
500
  "zh-cn": "缺点"
486
501
  },
487
502
  "filter": false,
package/admin/words.js CHANGED
@@ -8,36 +8,36 @@
8
8
  'use strict';
9
9
 
10
10
  systemDictionary = {
11
- "Add arrow for started events": { "en": "Add arrow for started events", "de": "Pfeil für gestartete Ereignisse hinzufügen", "ru": "Добавить стрелку для начатых событий", "pt": "Adicionar seta para eventos iniciados", "nl": "Voeg pijl toe voor gestarte evenementen", "fr": "Ajouter une flèche pour les événements commencés", "it": "Aggiungi freccia per gli eventi iniziati", "es": "Agregar flecha para eventos iniciados", "pl": "Dodaj strzałkę do rozpoczętych wydarzeń", "zh-cn": "为开始的事件添加箭头"},
12
- "Add event color if available": { "en": "Use event color for box if available", "de": "Ereignisfarbe als Box verwenden, falls verfügbar", "ru": "Используйте цвет события для поля, если он доступен", "pt": "Use a cor do evento para a caixa, se disponível", "nl": "Gebruik gebeurteniskleur voor vak indien beschikbaar", "fr": "Utiliser la couleur de l'événement pour la case si disponible", "it": "Usa il colore dell'evento per la scatola, se disponibile", "es": "Use el color del evento para el cuadro si está disponible", "pl": "Użyj koloru zdarzenia w polu, jeśli jest dostępny", "zh-cn": "如果可用,请为框使用事件颜色"},
13
- "Calendars": { "en": "Calendars", "de": "Kalender", "ru": "Календари", "pt": "Calendário", "nl": "Agenda", "fr": "Calendriers", "it": "calendari", "es": "Calendarios", "pl": "Kalendarze", "zh-cn": "日历"},
14
- "Colorize HTML": { "en": "Colorize HTML", "de": "Benutze Farben für HTML", "ru": "Раскрашивать HTML", "pt": "Colorir HTML", "nl": "Gebruik kleuren voor HTML", "fr": "Coloriser HTML", "it": "Colorize HTML", "es": "Colorear HTML", "pl": "Koloruj HTML", "zh-cn": "着色 HTML"},
15
- "Default color for HTML": { "en": "Default color for HTML", "de": "Standardfarben für HTML", "ru": "Цвет по умолчанию для HTML", "pt": "Cor padrão para HTML", "nl": "Standaard-kleur voor HTML", "fr": "Couleur par défaut pour HTML", "it": "Colore predefinito per HTML", "es": "Color predeterminado para HTML", "pl": "Domyślny kolor dla HTML", "zh-cn": "HTML 的默认颜色"},
16
- "Events": { "en": "Events", "de": "Ereignisse", "ru": "События", "pt": "Eventos", "nl": "Gebeurtenissen", "fr": "Événements", "it": "eventi", "es": "Eventos", "pl": "Wydarzenia", "zh-cn": "活动"},
17
- "Every calendar has own color": { "en": "Every calendar has own color", "de": "Jeder Kalender hat eine eigene Farbe", "ru": "Каждый календарь в свой цвет", "pt": "Cada calendário tem cor própria", "nl": "Elke agenda heeft zijn eigen kleur", "fr": "Chaque calendrier a sa propre couleur", "it": "Ogni calendario ha il proprio colore", "es": "Cada calendario tiene su propio color", "pl": "Każdy kalendarz ma własny kolor", "zh-cn": "每个日历都有自己的颜色"},
18
- "HTML settings": { "en": "HTML settings", "de": "HTML Einstellungen", "ru": "Настройки HTML", "pt": "Configurações de HTML", "nl": "HTML-instellingen", "fr": "Paramètres HTML", "it": "Impostazioni HTML", "es": "Configuración HTML", "pl": "Ustawienia HTML", "zh-cn": "HTML 设置"},
19
- "Hide Start-End of events": { "en": "Hide Start-End of events", "de": "Start- und Endzeit verbergen", "ru": "Скрывать начало и конец события", "pt": "Ocultar início e fim dos eventos", "nl": "Verberg begin-einde van evenementen", "fr": "Masquer le début et la fin des événements", "it": "Nascondi inizio-fine degli eventi", "es": "Ocultar inicio-fin de eventos", "pl": "Ukryj Start-Koniec wydarzeń", "zh-cn": "隐藏事件的开始 - 结束"},
20
- "Hide Year": { "en": "Hide Year", "de": "Jahr verbergen", "ru": "Скрывать год", "pt": "Ocultar Ano", "nl": "Jaar verbergen", "fr": "Masquer l'année", "it": "Nascondi anno", "es": "Ocultar año", "pl": "Ukryj rok", "zh-cn": "隐藏年份"},
21
- "Ignore Certificate errors": { "en": "Ignore Certificate errors", "de": "Zertifikatfehler ignorieren", "ru": "Игнорировать ошибки сертификата", "pt": "Ignorar erros de certificado", "nl": "Certificaat fout negeren", "fr": "Ignorer les erreurs de certificat", "it": "Ignora errori del certificato", "es": "Ignorar errores de certificado", "pl": "Ignoruj błędy certyfikatu", "zh-cn": "忽略证书错误"},
22
- "Ignore case for event-search": { "en": "Ignore case for event-search", "de": "Groß-/Kleinschreibung bei Ereignis-Suche ignorieren", "ru": "Ignore case for event-search", "pt": "Ignorar maiúsculas e minúsculas para procura de eventos", "nl": "Ignore case for event-search", "fr": "Ignore case for event-search", "it": "Ignore case for event-search", "es": "Ignore case for event-search", "pl": "Ignore case for event-search", "zh-cn": "忽略事件搜索的大小写"},
23
- "Language": { "en": "Language", "de": "Sprache", "ru": "Язык", "pt": "Língua", "nl": "Taal", "fr": "La langue", "it": "linguaggio", "es": "Idioma", "pl": "Język", "zh-cn": "语"},
24
- "Padding date with '0'": { "en": "Padding date with '0'", "de": "Datumsangaben mit führender '0'", "ru": "Дополнять даты c '0'", "pt": "Datas com '0' à esquerda", "nl": "Datum opvullen met '0'", "fr": "Rembourrage avec '0'", "it": "Data di riempimento con '0'", "es": "Fecha de relleno con '0'", "pl": "Data wstawienia z \"0\"", "zh-cn": "用“0”填充日期"},
25
- "Past days": { "en": "Past days", "de": "Vergangene Tage", "ru": "Прошедшие дни", "pt": "Dias passados", "nl": "Vorige dagen", "fr": "Jours passés", "it": "Giorni passati", "es": "Días pasados", "pl": "Minione dni", "zh-cn": "过去的日子"},
26
- "Preview days": { "en": "Preview days", "de": "Tagesvorschau", "ru": "На сколько дней", "pt": "Antevisão Diária", "nl": "Vooruitzicht", "fr": "Jours d'aperçu", "it": "Giorni di anteprima", "es": "Vista previa de días", "pl": "Podgląd dni", "zh-cn": "预览天数"},
27
- "Replace dates with words": { "en": "Replace dates with words", "de": "Ersetze Datum mit Worten", "ru": "Заменять даты на слова", "pt": "Substitua datas por palavras", "nl": "Vervang datum met woorden", "fr": "Remplacer les dates par des mots", "it": "Sostituisci le date con le parole", "es": "Reemplazar fechas con palabras", "pl": "Zastąp daty słowami", "zh-cn": "用单词替换日期"},
28
- "Use by full day": { "en": "Replace 00:00 with", "de": "Ersetze 00:00 mit", "ru": "Заменять 00:00 на", "pt": "Substitua 00:00 com", "nl": "Vervang 00:00 met", "fr": "Remplacer 00:00 avec", "it": "Sostituisci 00:00 con", "es": "Reemplace 00:00 con", "pl": "Zamień 00:00 na", "zh-cn": "将 00:00 替换为"},
29
- "color": { "en": "Color", "de": "Farbe", "ru": "Цвет", "pt": "Cor", "nl": "Kleur", "fr": "Couleur", "it": "Colore", "es": "Color", "pl": "Kolor", "zh-cn": "颜色"},
30
- "display": { "en": "display", "de": "anzeigen", "ru": "показать в списке", "pt": "mostrar", "nl": "weergeven", "fr": "afficher", "it": "display", "es": "monitor", "pl": "pokaz", "zh-cn": "展示"},
31
- "enabled": { "en": "enabled", "de": "Aktiviert", "ru": "активно", "pt": "ativado", "nl": "actief", "fr": "activée", "it": "abilitato", "es": "habilitado", "pl": "włączony", "zh-cn": "启用"},
32
- "filter": { "en": "Filter", "de": "Filter", "ru": "Фильтр", "pt": "Filtro", "nl": "Filter", "fr": "Filtre", "it": "Filtro", "es": "Filtrar", "pl": "Filtr", "zh-cn": "筛选"},
33
- "filterregex": { "en": "Filter as regular expression", "de": "Filter als regulärer Ausdruck", "ru": "Фильтровать как регулярное выражение", "pt": "Filtrar como expressão regular", "nl": "Filter als reguliere expressie", "fr": "Filtrer en tant qu'expression régulière", "it": "Filtra come espressione regolare", "es": "Filtrar como expresión regular.", "pl": "Filtruj jako wyrażenie regularne", "zh-cn": "过滤为正则表达式"},
34
- "iCal adapter settings": { "en": "iCal adapter settings", "de": "iCal Adapter Einstellungen", "ru": "iCal Настройки", "pt": "Configurações do adaptador iCal", "nl": "iCal Instellingen", "fr": "Paramètres de l'adaptateur iCal", "it": "Impostazioni della scheda iCal", "es": "Configuración del adaptador iCal", "pl": "Ustawienia adaptera iCal", "zh-cn": "iCal 适配器设置"},
35
- "name": { "en": "Name", "de": "Name", "ru": "Имя", "pt": "Nome", "nl": "Naam", "fr": "prénom", "it": "Nome", "es": "Nombre", "pl": "Nazwa", "zh-cn": "名称"},
36
- "pass": { "en": "Password", "de": "Passwort", "ru": "Пароль", "pt": "Senha", "nl": "Wachtwoord", "fr": "Mot de passe", "it": "Parola d'ordine", "es": "Contraseña", "pl": "Hasło", "zh-cn": "密码"},
37
- "sslignore": { "en": "Ignore SSL errors", "de": "SSL-Fehler ignorieren", "ru": "Игнор ошибок SSL", "pt": "Ignorar erros de SSL", "nl": "SSL fout negeren", "fr": "Ignorer les erreurs SSL", "it": "Ignora errori SSL", "es": "Ignorar los errores de SSL", "pl": "Zignoruj błędy SSL", "zh-cn": "忽略 SSL 错误"},
38
- "url": { "en": "Calendar URL or file name", "de": "Kalender URL oder Dateiname", "ru": "URL календаря или имя файла", "pt": "URL do calendário ou nome do arquivo", "nl": "Agend URL of bestandsnaam", "fr": "URL du calendrier ou nom de fichier", "it": "URL del calendario o nome del file", "es": "URL del calendario o nombre del archivo", "pl": "URL kalendarza lub nazwa pliku", "zh-cn": "日历 URL 或文件名"},
39
- "user": { "en": "Username", "de": "Benutzername", "ru": "Имя пользователя", "pt": "Nome de usuário", "nl": "Gebruikersnaam", "fr": "Nom d'utilisateur", "it": "Nome utente", "es": "Nombre de usuario", "pl": "Nazwa Użytkownika", "zh-cn": "用户名"},
40
- "Options": { "en": "Options", "de": "Optionen", "ru": "Опции", "pt": "Opções", "nl": "Opties", "fr": "Choix", "it": "Opzioni", "es": "Opciones", "pl": "Opcje", "zh-cn": "选项"},
41
- "Set ID": { "en": "Set ID", "de": "ID festlegen", "ru": "Установить идентификатор", "pt": "Definir ID", "nl": "ID instellen", "fr": "Définir l'identifiant", "it": "Imposta l'ID", "es": "Pon la identificacion", "pl": "Ustaw ID", "zh-cn": "设置名称"},
42
- "Set Ack": { "en": "Set Ack", "de": "Bestätigen", "ru": "Установить подтверждение", "pt": "Definir confirmação", "nl": "Set Ack", "fr": "Confirmer", "it": "Imposta Rispondi", "es": "Establecer acuse de recibo", "pl": "Ustaw Potwierdź", "zh-cn": "设置确认"},
11
+ "Add arrow for started events": { "en": "Add arrow for started events", "de": "Pfeil für gestartete Ereignisse hinzufügen", "ru": "Добавить стрелку для начатых событий", "pt": "Adicionar seta para eventos iniciados", "nl": "Voeg pijl toe voor gestarte evenementen", "fr": "Ajouter une flèche pour les événements commencés", "it": "Aggiungi freccia per gli eventi iniziati", "es": "Agregar flecha para eventos iniciados", "pl": "Dodaj strzałkę do rozpoczętych wydarzeń", "uk": "Додайте стрілку для розпочатих подій", "zh-cn": "为开始的事件添加箭头"},
12
+ "Add event color if available": { "en": "Use event color for box if available", "de": "Ereignisfarbe als Box verwenden, falls verfügbar", "ru": "Используйте цвет события для поля, если он доступен", "pt": "Use a cor do evento para a caixa, se disponível", "nl": "Gebruik gebeurteniskleur voor vak indien beschikbaar", "fr": "Utiliser la couleur de l'événement pour la case si disponible", "it": "Usa il colore dell'evento per la scatola, se disponibile", "es": "Use el color del evento para el cuadro si está disponible", "pl": "Użyj koloru zdarzenia w polu, jeśli jest dostępny", "uk": "Використовуйте колір події для поля, якщо доступний", "zh-cn": "如果可用,请为框使用事件颜色"},
13
+ "Calendars": { "en": "Calendars", "de": "Kalender", "ru": "Календари", "pt": "Calendário", "nl": "Agenda", "fr": "Calendriers", "it": "calendari", "es": "Calendarios", "pl": "Kalendarze", "uk": "Календарі", "zh-cn": "日历"},
14
+ "Colorize HTML": { "en": "Colorize HTML", "de": "Benutze Farben für HTML", "ru": "Раскрашивать HTML", "pt": "Colorir HTML", "nl": "Gebruik kleuren voor HTML", "fr": "Coloriser HTML", "it": "Colorize HTML", "es": "Colorear HTML", "pl": "Koloruj HTML", "uk": "Розфарбуйте HTML", "zh-cn": "着色 HTML"},
15
+ "Default color for HTML": { "en": "Default color for HTML", "de": "Standardfarben für HTML", "ru": "Цвет по умолчанию для HTML", "pt": "Cor padrão para HTML", "nl": "Standaard-kleur voor HTML", "fr": "Couleur par défaut pour HTML", "it": "Colore predefinito per HTML", "es": "Color predeterminado para HTML", "pl": "Domyślny kolor dla HTML", "uk": "Колір за замовчуванням для HTML", "zh-cn": "HTML 的默认颜色"},
16
+ "Events": { "en": "Events", "de": "Ereignisse", "ru": "События", "pt": "Eventos", "nl": "Gebeurtenissen", "fr": "Événements", "it": "eventi", "es": "Eventos", "pl": "Wydarzenia", "uk": "Події", "zh-cn": "活动"},
17
+ "Every calendar has own color": { "en": "Every calendar has own color", "de": "Jeder Kalender hat eine eigene Farbe", "ru": "Каждый календарь в свой цвет", "pt": "Cada calendário tem cor própria", "nl": "Elke agenda heeft zijn eigen kleur", "fr": "Chaque calendrier a sa propre couleur", "it": "Ogni calendario ha il proprio colore", "es": "Cada calendario tiene su propio color", "pl": "Każdy kalendarz ma własny kolor", "uk": "Кожен календар має свій колір", "zh-cn": "每个日历都有自己的颜色"},
18
+ "HTML settings": { "en": "HTML settings", "de": "HTML Einstellungen", "ru": "Настройки HTML", "pt": "Configurações de HTML", "nl": "HTML-instellingen", "fr": "Paramètres HTML", "it": "Impostazioni HTML", "es": "Configuración HTML", "pl": "Ustawienia HTML", "uk": "Налаштування HTML", "zh-cn": "HTML 设置"},
19
+ "Hide Start-End of events": { "en": "Hide Start-End of events", "de": "Start- und Endzeit verbergen", "ru": "Скрывать начало и конец события", "pt": "Ocultar início e fim dos eventos", "nl": "Verberg begin-einde van evenementen", "fr": "Masquer le début et la fin des événements", "it": "Nascondi inizio-fine degli eventi", "es": "Ocultar inicio-fin de eventos", "pl": "Ukryj Start-Koniec wydarzeń", "uk": "Приховати початок-кінець подій", "zh-cn": "隐藏事件的开始 - 结束"},
20
+ "Hide Year": { "en": "Hide Year", "de": "Jahr verbergen", "ru": "Скрывать год", "pt": "Ocultar Ano", "nl": "Jaar verbergen", "fr": "Masquer l'année", "it": "Nascondi anno", "es": "Ocultar año", "pl": "Ukryj rok", "uk": "Приховати рік", "zh-cn": "隐藏年份"},
21
+ "Ignore Certificate errors": { "en": "Ignore Certificate errors", "de": "Zertifikatfehler ignorieren", "ru": "Игнорировать ошибки сертификата", "pt": "Ignorar erros de certificado", "nl": "Certificaat fout negeren", "fr": "Ignorer les erreurs de certificat", "it": "Ignora errori del certificato", "es": "Ignorar errores de certificado", "pl": "Ignoruj błędy certyfikatu", "uk": "Ігнорувати помилки сертифіката", "zh-cn": "忽略证书错误"},
22
+ "Ignore case for event-search": { "en": "Ignore case for event-search", "de": "Groß-/Kleinschreibung bei Ereignis-Suche ignorieren", "ru": "Ignore case for event-search", "pt": "Ignorar maiúsculas e minúsculas para procura de eventos", "nl": "Ignore case for event-search", "fr": "Ignore case for event-search", "it": "Ignore case for event-search", "es": "Ignore case for event-search", "pl": "Ignore case for event-search", "uk": "Ігнорувати регістр для пошуку подій", "zh-cn": "忽略事件搜索的大小写"},
23
+ "Language": { "en": "Language", "de": "Sprache", "ru": "Язык", "pt": "Língua", "nl": "Taal", "fr": "La langue", "it": "linguaggio", "es": "Idioma", "pl": "Język", "uk": "Мова", "zh-cn": "语"},
24
+ "Padding date with '0'": { "en": "Padding date with '0'", "de": "Datumsangaben mit führender '0'", "ru": "Дополнять даты c '0'", "pt": "Datas com '0' à esquerda", "nl": "Datum opvullen met '0'", "fr": "Rembourrage avec '0'", "it": "Data di riempimento con '0'", "es": "Fecha de relleno con '0'", "pl": "Data wstawienia z \"0\"", "uk": "Заповнення дати \"0\"", "zh-cn": "用“0”填充日期"},
25
+ "Past days": { "en": "Past days", "de": "Vergangene Tage", "ru": "Прошедшие дни", "pt": "Dias passados", "nl": "Vorige dagen", "fr": "Jours passés", "it": "Giorni passati", "es": "Días pasados", "pl": "Minione dni", "uk": "Минулих днів", "zh-cn": "过去的日子"},
26
+ "Preview days": { "en": "Preview days", "de": "Tagesvorschau", "ru": "На сколько дней", "pt": "Antevisão Diária", "nl": "Vooruitzicht", "fr": "Jours d'aperçu", "it": "Giorni di anteprima", "es": "Vista previa de días", "pl": "Podgląd dni", "uk": "Дні попереднього перегляду", "zh-cn": "预览天数"},
27
+ "Replace dates with words": { "en": "Replace dates with words", "de": "Ersetze Datum mit Worten", "ru": "Заменять даты на слова", "pt": "Substitua datas por palavras", "nl": "Vervang datum met woorden", "fr": "Remplacer les dates par des mots", "it": "Sostituisci le date con le parole", "es": "Reemplazar fechas con palabras", "pl": "Zastąp daty słowami", "uk": "Замініть дати словами", "zh-cn": "用单词替换日期"},
28
+ "Use by full day": { "en": "Replace 00:00 with", "de": "Ersetze 00:00 mit", "ru": "Заменять 00:00 на", "pt": "Substitua 00:00 com", "nl": "Vervang 00:00 met", "fr": "Remplacer 00:00 avec", "it": "Sostituisci 00:00 con", "es": "Reemplace 00:00 con", "pl": "Zamień 00:00 na", "uk": "Замінити 00:00 на", "zh-cn": "将 00:00 替换为"},
29
+ "color": { "en": "Color", "de": "Farbe", "ru": "Цвет", "pt": "Cor", "nl": "Kleur", "fr": "Couleur", "it": "Colore", "es": "Color", "pl": "Kolor", "uk": "колір", "zh-cn": "颜色"},
30
+ "display": { "en": "display", "de": "anzeigen", "ru": "показать в списке", "pt": "mostrar", "nl": "weergeven", "fr": "afficher", "it": "display", "es": "monitor", "pl": "pokaz", "uk": "дисплей", "zh-cn": "展示"},
31
+ "enabled": { "en": "enabled", "de": "Aktiviert", "ru": "активно", "pt": "ativado", "nl": "actief", "fr": "activée", "it": "abilitato", "es": "habilitado", "pl": "włączony", "uk": "включено", "zh-cn": "启用"},
32
+ "filter": { "en": "Filter", "de": "Filter", "ru": "Фильтр", "pt": "Filtro", "nl": "Filter", "fr": "Filtre", "it": "Filtro", "es": "Filtrar", "pl": "Filtr", "uk": "фільтр", "zh-cn": "筛选"},
33
+ "filterregex": { "en": "Filter as regular expression", "de": "Filter als regulärer Ausdruck", "ru": "Фильтровать как регулярное выражение", "pt": "Filtrar como expressão regular", "nl": "Filter als reguliere expressie", "fr": "Filtrer en tant qu'expression régulière", "it": "Filtra come espressione regolare", "es": "Filtrar como expresión regular.", "pl": "Filtruj jako wyrażenie regularne", "uk": "Фільтр як регулярний вираз", "zh-cn": "过滤为正则表达式"},
34
+ "iCal adapter settings": { "en": "iCal adapter settings", "de": "iCal Adapter Einstellungen", "ru": "iCal Настройки", "pt": "Configurações do adaptador iCal", "nl": "iCal Instellingen", "fr": "Paramètres de l'adaptateur iCal", "it": "Impostazioni della scheda iCal", "es": "Configuración del adaptador iCal", "pl": "Ustawienia adaptera iCal", "uk": "Налаштування адаптера iCal", "zh-cn": "iCal 适配器设置"},
35
+ "name": { "en": "Name", "de": "Name", "ru": "Имя", "pt": "Nome", "nl": "Naam", "fr": "prénom", "it": "Nome", "es": "Nombre", "pl": "Nazwa", "uk": "Ім'я", "zh-cn": "名称"},
36
+ "pass": { "en": "Password", "de": "Passwort", "ru": "Пароль", "pt": "Senha", "nl": "Wachtwoord", "fr": "Mot de passe", "it": "Parola d'ordine", "es": "Contraseña", "pl": "Hasło", "uk": "Пароль", "zh-cn": "密码"},
37
+ "sslignore": { "en": "Ignore SSL errors", "de": "SSL-Fehler ignorieren", "ru": "Игнор ошибок SSL", "pt": "Ignorar erros de SSL", "nl": "SSL fout negeren", "fr": "Ignorer les erreurs SSL", "it": "Ignora errori SSL", "es": "Ignorar los errores de SSL", "pl": "Zignoruj błędy SSL", "uk": "Ігноруйте помилки SSL", "zh-cn": "忽略 SSL 错误"},
38
+ "url": { "en": "Calendar URL or file name", "de": "Kalender URL oder Dateiname", "ru": "URL календаря или имя файла", "pt": "URL do calendário ou nome do arquivo", "nl": "Agend URL of bestandsnaam", "fr": "URL du calendrier ou nom de fichier", "it": "URL del calendario o nome del file", "es": "URL del calendario o nombre del archivo", "pl": "URL kalendarza lub nazwa pliku", "uk": "URL-адреса календаря або ім’я файлу", "zh-cn": "日历 URL 或文件名"},
39
+ "user": { "en": "Username", "de": "Benutzername", "ru": "Имя пользователя", "pt": "Nome de usuário", "nl": "Gebruikersnaam", "fr": "Nom d'utilisateur", "it": "Nome utente", "es": "Nombre de usuario", "pl": "Nazwa Użytkownika", "uk": "Ім'я користувача", "zh-cn": "用户名"},
40
+ "Options": { "en": "Options", "de": "Optionen", "ru": "Опции", "pt": "Opções", "nl": "Opties", "fr": "Choix", "it": "Opzioni", "es": "Opciones", "pl": "Opcje", "uk": "Опції", "zh-cn": "选项"},
41
+ "Set ID": { "en": "Set ID", "de": "ID festlegen", "ru": "Установить идентификатор", "pt": "Definir ID", "nl": "ID instellen", "fr": "Définir l'identifiant", "it": "Imposta l'ID", "es": "Pon la identificacion", "pl": "Ustaw ID", "uk": "Встановити ID", "zh-cn": "设置名称"},
42
+ "Set Ack": { "en": "Set Ack", "de": "Bestätigen", "ru": "Установить подтверждение", "pt": "Definir confirmação", "nl": "Set Ack", "fr": "Confirmer", "it": "Imposta Rispondi", "es": "Establecer acuse de recibo", "pl": "Ustaw Potwierdź", "uk": "Установити Ack", "zh-cn": "设置确认"},
43
43
  };
package/io-package.json CHANGED
@@ -1,8 +1,21 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "ical",
4
- "version": "1.13.2",
4
+ "version": "1.13.3",
5
5
  "news": {
6
+ "1.13.3": {
7
+ "en": "updated node-ical to latest 0.16.1\nUse color picker in adapter settings\nDropped Admin 4 UI\nAdded Ukrainian language",
8
+ "de": "aktualisiert kinematisch auf neuste 0,16,1\nVerwenden Sie Farbwähler in Adaptereinstellungen\nAdmin 4 UI fallen lassen\nUkrainische Sprache",
9
+ "ru": "обновленный node-ical до последней 0.16.1\nИспользуйте цвет пикер в настройках адаптера\nDropped Админ 4 UI\nДобавлен украинский язык",
10
+ "pt": "atualizado node-ical para mais recente 0.16.1\nUse o seletor de cores nas configurações do adaptador\nAdmin Dropped 4 UI\nAdicionado idioma ucraniano",
11
+ "nl": "vertaling: 0.16.1\nGebruik kleurenpikker in adapter setting\nDrop Admin 4 UI\nVoeg Oekraïense taal toe",
12
+ "fr": "mise à jour node-ical to latest 0,16.1\nUtiliser le cueilleur de couleur dans les réglages de l'adaptateur\nDropped Admin 4 UI\nAjout de la langue ukrainienne",
13
+ "it": "aggiornato nodo-ical al più recente 0.16.1\nUtilizzare il raccoglitore di colore nelle impostazioni dell'adattatore\nAmministrazioni a goccia 4 UI\nAggiunto lingua ucraina",
14
+ "es": "actualizado nodo-ical a último 0.16.1\nUse el selector de color en la configuración del adaptador\nAdmin 4 UI\nIdioma ucraniano añadido",
15
+ "pl": "uaktualnianie węzła 0,16.1\nUżycie koloru w ustawieniach adapterowych\nDropped Admin 4\nJęzyk ukraiński",
16
+ "uk": "оновлений вузол-ical в останні роки 0 товар(ов) - 0.00 р\nВикористання кольорового пікера в налаштуваннях адаптера\nПоза «69»\nУкраїнська мова",
17
+ "zh-cn": "最新资料 0.16.1\nB. 在适应环境中使用颜色的采样\nDrodmin 4 UI\n增加乌克兰语"
18
+ },
6
19
  "1.13.2": {
7
20
  "en": "fix strange log messages by downgrading RRule again",
8
21
  "de": "seltsame Log-Nachrichten durch Downgrading RRule wieder beheben",
@@ -13,6 +26,7 @@
13
26
  "it": "correggere i messaggi di registro strani degradando di nuovo RRule",
14
27
  "es": "solucionar extraños mensajes de registro por la reducción de RRule de nuevo",
15
28
  "pl": "naprawić dziwne wiadomości logowe poprzez zdegradowanie RRule'a ponownie",
29
+ "uk": "виправити дивні повідомлення журналу, знову знизивши RRule",
16
30
  "zh-cn": "f 照常逻辑信息,再降解后再降解。"
17
31
  },
18
32
  "1.13.1": {
@@ -25,6 +39,7 @@
25
39
  "it": "Libreria richiesta modificata",
26
40
  "es": "Biblioteca de solicitud modificada",
27
41
  "pl": "Zmiennikowa biblioteka",
42
+ "uk": "Змінена бібліотека запитів",
28
43
  "zh-cn": "更改要求图书馆"
29
44
  },
30
45
  "1.13.0": {
@@ -37,6 +52,7 @@
37
52
  "it": "Aggiunto 5 UI\nTradotto tutti i nomi degli oggetti",
38
53
  "es": "Admin 5 UI\nTraducir todos los nombres de objetos",
39
54
  "pl": "Admin 5\nPrzetłumaczył wszystkie nazwy obiektowe",
55
+ "uk": "Додано інтерфейс адміністратора 5\nПерекладено всі назви об'єктів",
40
56
  "zh-cn": "增删5 UI\n所有物体的名称"
41
57
  },
42
58
  "1.12.2": {
@@ -49,6 +65,7 @@
49
65
  "it": "Risolto il problema con la visualizzazione del tempo di riposo dell'evento in un caso",
50
66
  "es": "Corrección que muestra el tiempo de descanso del evento en un caso",
51
67
  "pl": "Naprawiono wyświetlanie czasu spoczynku zdarzenia w jednym przypadku",
68
+ "uk": "Виправлено відображення часу відпочинку події в одному випадку",
52
69
  "zh-cn": "修复在一种情况下显示事件的休息时间"
53
70
  },
54
71
  "1.12.1": {
@@ -61,6 +78,7 @@
61
78
  "it": "Regola la colorazione delle date per mostrare anche le date iniziate in passato con il colore di oggi",
62
79
  "es": "Ajuste el color de las fechas para mostrar también las fechas que comenzaron en el pasado con el color de hoy",
63
80
  "pl": "Dostosuj kolorowanie dat, aby wyświetlać również daty rozpoczęte w przeszłości z dzisiejszym kolorem",
81
+ "uk": "Налаштуйте колір дат, щоб також відображати дати, розпочаті в минулому, сьогоднішнім кольором",
64
82
  "zh-cn": "调整日期的颜色以使用今天的颜色显示过去开始的日期"
65
83
  },
66
84
  "1.12.0": {
@@ -73,19 +91,8 @@
73
91
  "it": "Aggiungi l'opzione per scegliere il flag di riconoscimento impostato durante l'aggiornamento di oggetti estranei sugli eventi\nutilizzare un campo colore dalla voce del calendario come colore per la visualizzazione\nQuando non viene visualizzata alcuna freccia per eventi già in corso e le date non vengono sostituite con parole, viene visualizzata la data di inizio nell'elenco e non la data di fine\nQuando non si sostituisce la data con le parole e l'immissione termina alle 0:0:0, mostrare il giorno prima come fine\nRisolvi i problemi quando non viene fornita una data di fine nella voce del calendario (inizio e fine sono gli stessi)\nCalcola correttamente la durata degli eventi di più giorni\nRispettare le modifiche dell'ora legale in alcuni calcoli per evitare strani effetti\nAnalizza nuovamente i file ics con terminazioni di riga diverse",
74
92
  "es": "Agregue la opción para elegir el conjunto de indicadores de reconocimiento al actualizar objetos extraños en eventos\nuse un campo de color de la entrada del calendario como color para mostrar\nCuando no se muestra ninguna flecha para eventos que ya se están ejecutando y las fechas no se reemplazan con palabras, se muestra la fecha de inicio en la lista y no la fecha de finalización.\nCuando no se reemplaza la fecha con palabras y la entrada finaliza en 0:0:0, se muestra el día anterior como final\nSolucionar problemas cuando no se proporciona una fecha de finalización en la entrada del calendario (el inicio y el final son los mismos)\nCalcular correctamente la duración de los eventos de varios días\nRespete los cambios de horario de verano en algunos cálculos para evitar efectos extraños\nAnalizar archivos ics con diferentes finales de línea nuevamente",
75
93
  "pl": "Dodano opcję wyboru flagi potwierdzenia ustawionej podczas aktualizowania obcych obiektów na zdarzeniach\nużyj pola koloru z pozycji kalendarza jako koloru do wyświetlania\nGdy nie ma strzałki dla już trwających wydarzeń, a daty nie są zastępowane słowami, wyświetlaj datę rozpoczęcia na liście, a nie datę zakończenia\nGdy nie zastępujesz daty słowami, a wpis kończy się o 0:0:0, pokaż dzień wcześniej jako koniec\nNapraw problemy, gdy we wpisie kalendarza nie podano daty zakończenia (początek i koniec są takie same)\nPrawidłowo oblicz długość wydarzeń wielodniowych\nPrzestrzegaj zmian czasu letniego w niektórych obliczeniach, aby zapobiec dziwnym efektom\nPrzeanalizuj ponownie pliki z różnymi zakończeniami linii",
94
+ "uk": "Додайте опцію вибору прапора підтвердження під час оновлення сторонніх об’єктів у подіях\nвикористовувати колірне поле з запису календаря як колір для відображення\nЯкщо стрілка для вже запущених подій не відображається, а дати не замінено словами, у списку відображатиметься дата початку, а не дата завершення\nЯкщо дата не замінюється словами, а запис закінчується на 0:0:0, показуйте попередній день як кінець\nВиправлення проблем, коли в записі календаря не вказано дату завершення (початок і кінець однакові)\nПравильно розрахувати тривалість багатоденних подій\nДотримуйтеся змін літнього часу в деяких обчисленнях, щоб запобігти дивним ефектам\nЗнову проаналізуйте ics файли з різними закінченнями рядків",
76
95
  "zh-cn": "添加选项以在更新事件上的外来对象时选择 ack 标志集\n使用日历条目中的颜色字段作为显示颜色\n如果未显示已运行事件的箭头且日期未替换为单词,则在列表中显示开始日期而不是结束日期\n当不用单词替换日期并且条目在 0:0:0 结束时,将前一天显示为结束\n修复日历条目中未提供结束日期时的问题(开始和结束时间相同)\n正确计算多日事件的长度\n在某些计算中尊重 DST 更改以防止出现奇怪的影响\n再次解析具有不同行尾的 ics 文件"
77
- },
78
- "1.11.6": {
79
- "en": "fixed incorrect recurrence event processing",
80
- "de": "Fehlerhafte Verarbeitung von Wiederholungsereignissen behoben",
81
- "ru": "исправлена некорректная обработка события повторения",
82
- "pt": "corrigiu o processamento incorreto do evento de recorrência",
83
- "nl": "foutieve verwerking van herhalingsgebeurtenissen verholpen",
84
- "fr": "correction du traitement incorrect des événements de récurrence",
85
- "it": "corretta elaborazione degli eventi di ricorrenza errata",
86
- "es": "Se corrigió el procesamiento incorrecto de eventos de recurrencia.",
87
- "pl": "naprawiono nieprawidłowe przetwarzanie zdarzeń rekurencyjnych",
88
- "zh-cn": "修复了不正确的重复事件处理"
89
96
  }
90
97
  },
91
98
  "title": "iCal Calendar",
@@ -99,6 +106,7 @@
99
106
  "it": "Calendario iCal",
100
107
  "es": "Calendario iCal",
101
108
  "pl": "Kalendarz iCal",
109
+ "uk": "Календар iCal",
102
110
  "zh-cn": "iCal 日历"
103
111
  },
104
112
  "desc": {
@@ -111,6 +119,7 @@
111
119
  "it": "Questo adattatore consente di leggere i file .ics da URL specifici e di analizzarli (Google Calendar o iCal)",
112
120
  "es": "Este adaptador permite leer archivos .ics de una URL específica y analizarlos (Google Calendar o iCal)",
113
121
  "pl": "Ten adapter umożliwia odczytanie plików .ics z określonego adresu URL i przeanalizowanie go (Kalendarz Google lub iCal)",
122
+ "uk": "Цей адаптер дозволяє читати файли .ics із певної URL-адреси та аналізувати їх (Google Calendar або iCal)",
114
123
  "zh-cn": "此适配器允许从特定 URL 读取 .ics 文件并对其进行解析(Google Calendar 或 iCal)"
115
124
  },
116
125
  "authors": [
@@ -131,7 +140,6 @@
131
140
  "loglevel": "info",
132
141
  "readme": "https://github.com/iobroker-community-adapters/ioBroker.ical/blob/master/README.md",
133
142
  "icon": "ical.png",
134
- "materialize": true,
135
143
  "compact": true,
136
144
  "keywords": [
137
145
  "web",
@@ -168,7 +176,7 @@
168
176
  "daysPreview": 7,
169
177
  "daysPast": 0,
170
178
  "colorize": true,
171
- "defColor": "white",
179
+ "defColor": "#FFFFFF",
172
180
  "fulltime": " ",
173
181
  "dataPaddingWithZeros": true,
174
182
  "replaceDates": true,
@@ -218,6 +226,7 @@
218
226
  "it": "Eventi utente controllati dal calendario",
219
227
  "es": "Eventos de usuario controlados desde el calendario",
220
228
  "pl": "Rozgrywki użytkownicy kontrolują kalendarz",
229
+ "uk": "Заходи користувачів, що контролюються з календаря",
221
230
  "zh-cn": "B. 按日历开列的使用活动"
222
231
  }
223
232
  },
@@ -237,6 +246,7 @@
237
246
  "it": "Eventi di oggi, oggi e più tardi (controllati dal calendario)",
238
247
  "es": "Eventos de hoy, ahora y más tarde (controlados por calendario)",
239
248
  "pl": "Dzisiaj, dziś i później (kontrolowane przez kalendarz)",
249
+ "uk": "Події сьогодні, тепер і пізніше сьогодні (контрольований календарем)",
240
250
  "zh-cn": "今天、现在和以后的活动(按日历排列)"
241
251
  }
242
252
  },
@@ -256,6 +266,7 @@
256
266
  "it": "Eventi di oggi (controllati dal calendario)",
257
267
  "es": "Eventos de hoy (controlados por calendario)",
258
268
  "pl": "Wydarzenia (kontrolowane przez kalendarz)",
269
+ "uk": "Події сьогодні (контрольовані календарем)",
259
270
  "zh-cn": "今天的活动(按日历排列)"
260
271
  }
261
272
  },
@@ -275,6 +286,7 @@
275
286
  "it": "Eventi (controllati dal calendario)",
276
287
  "es": "Eventos ahora (controlados por calendario)",
277
288
  "pl": "Wydarzenia (kontrolowane przez kalendarz)",
289
+ "uk": "Події тепер (контрольовані календарем)",
278
290
  "zh-cn": "目前的活动(按日历进行)"
279
291
  }
280
292
  },
@@ -294,6 +306,7 @@
294
306
  "it": "Eventi più tardi (controllati dal calendario)",
295
307
  "es": "Eventos más tarde hoy (controlado por calendario)",
296
308
  "pl": "Wydarzenia później (kontrolowane przez kalendarz)",
309
+ "uk": "Останні події (контрольовані календарем)",
297
310
  "zh-cn": "今天晚些时候的活动(按日历排列)"
298
311
  }
299
312
  },
@@ -313,6 +326,7 @@
313
326
  "it": "Comando",
314
327
  "es": "Comando",
315
328
  "pl": "Dowództwo",
329
+ "uk": "Про компанію",
316
330
  "zh-cn": "指挥"
317
331
  },
318
332
  "desc": "Commands: read [url], check [reason]",
@@ -337,6 +351,7 @@
337
351
  "it": "Numero di eventi oggi",
338
352
  "es": "Número de eventos hoy",
339
353
  "pl": "Liczba wydarzeń współczesnych",
354
+ "uk": "Кількість подій сьогодні",
340
355
  "zh-cn": "今天活动次数"
341
356
  },
342
357
  "type": "number",
@@ -360,6 +375,7 @@
360
375
  "it": "Numero di eventi domani",
361
376
  "es": "Número de eventos mañana",
362
377
  "pl": "Liczba jutroów",
378
+ "uk": "Кількість заходів завтра",
363
379
  "zh-cn": "明天事件数目"
364
380
  },
365
381
  "type": "number",
@@ -383,6 +399,7 @@
383
399
  "it": "Numero di eventi di ieri",
384
400
  "es": "Número de eventos ayer",
385
401
  "pl": "Liczba wydarzeń yesterday",
402
+ "uk": "Кількість подій",
386
403
  "zh-cn": "昨天活动次数"
387
404
  },
388
405
  "type": "number",
@@ -406,6 +423,7 @@
406
423
  "it": "Dati del calendario come array",
407
424
  "es": "Datos de calendario como matriz",
408
425
  "pl": "Kalendarz danych jako tablica",
426
+ "uk": "Дані календаря в масиві",
409
427
  "zh-cn": "数字数据作为范围"
410
428
  },
411
429
  "desc": "JS table: []",
@@ -430,6 +448,7 @@
430
448
  "it": "Dati del calendario come HTML",
431
449
  "es": "Datos del calendario como HTML",
432
450
  "pl": "Kalendarz danych jako HTML",
451
+ "uk": "Дані календаря як HTML",
433
452
  "zh-cn": "HTML的基准数据"
434
453
  },
435
454
  "desc": "HTML table with events",
@@ -454,6 +473,7 @@
454
473
  "it": "Dati del calendario come testo",
455
474
  "es": "Datos del calendario como texto",
456
475
  "pl": "Kalendarzowe dane jako tekst",
476
+ "uk": "Інформація про календар як текст",
457
477
  "zh-cn": "作为案文的简历数据"
458
478
  },
459
479
  "desc": "Text table with events",
package/main.js CHANGED
@@ -22,7 +22,7 @@ const crypto = require('crypto');
22
22
  const fs = require('fs');
23
23
  const path = require('path');
24
24
  const adapterName = require('./package.json').name.split('.').pop();
25
- const axios = require('axios').default;
25
+ const axios = require('axios');
26
26
  const https = require('https');
27
27
 
28
28
  let adapter;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.ical",
3
- "version": "1.13.2",
3
+ "version": "1.13.3",
4
4
  "description": "Allows read information from google calender and from iCal.",
5
5
  "author": {
6
6
  "name": "bluefox",
@@ -36,36 +36,36 @@
36
36
  "url": "https://github.com/iobroker-community-adapters/ioBroker.ical"
37
37
  },
38
38
  "dependencies": {
39
- "@iobroker/adapter-core": "^2.6.0",
40
- "axios": "^0.27.2",
39
+ "@iobroker/adapter-core": "^2.6.8",
40
+ "axios": "1.4.0",
41
41
  "cloneextend": "^0.0.3",
42
42
  "json-schema": "^0.4.0",
43
- "node-ical": "^0.15.1",
43
+ "node-ical": "^0.16.1",
44
44
  "rrule": "2.6.4"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@alcalzone/release-script": "^3.5.9",
48
48
  "@alcalzone/release-script-plugin-iobroker": "^3.5.9",
49
49
  "@alcalzone/release-script-plugin-license": "^3.5.9",
50
- "@iobroker/adapter-dev": "^1.0.1",
51
- "@iobroker/testing": "^4.0.0",
52
- "@types/chai": "^4.3.3",
50
+ "@iobroker/adapter-dev": "^1.2.0",
51
+ "@iobroker/testing": "^4.1.0",
52
+ "@types/chai": "^4.3.5",
53
53
  "@types/chai-as-promised": "^7.1.5",
54
- "@types/mocha": "^9.1.1",
55
- "@types/node": "^18.7.13",
54
+ "@types/mocha": "^10.0.0",
55
+ "@types/node": "^20.3.1",
56
56
  "@types/proxyquire": "^1.3.28",
57
- "@types/sinon": "^10.0.13",
58
- "@types/sinon-chai": "^3.2.8",
57
+ "@types/sinon": "^10.0.15",
58
+ "@types/sinon-chai": "^3.2.9",
59
59
  "chai": "^4.3.6",
60
60
  "chai-as-promised": "^7.1.1",
61
61
  "chai-string": "^1.5.0",
62
- "eslint": "^8.23.0",
63
- "luxon": "^2.5.0",
64
- "mocha": "^10.0.0",
62
+ "eslint": "^8.43.0",
63
+ "luxon": "^3.3.0",
64
+ "mocha": "^10.1.0",
65
65
  "proxyquire": "^2.1.3",
66
- "sinon": "^14.0.0",
66
+ "sinon": "^15.1.2",
67
67
  "sinon-chai": "^3.7.0",
68
- "typescript": "~4.8.2"
68
+ "typescript": "~5.1.3"
69
69
  },
70
70
  "bugs": {
71
71
  "url": "https://github.com/iobroker-community-adapters/ioBroker.ical/issues"
@@ -1,263 +0,0 @@
1
- <html>
2
- <head>
3
- <meta charset="UTF-8">
4
- <!-- Materialze style -->
5
- <link rel="stylesheet" type="text/css" href="../../css/adapter.css"/>
6
- <link rel="stylesheet" type="text/css" href="../../lib/css/materialize.css">
7
- <link type="text/css" rel="stylesheet" href="../../lib/css/themes/jquery-ui/default/jquery-ui.min.css">
8
- <link type="text/css" rel="stylesheet" href="../../lib/css/fancytree/ui.fancytree.min.css"/>
9
- <link rel="stylesheet" type="text/css" href="../../lib/css/iob/selectID.css"/>
10
-
11
- <script type="text/javascript" src="../../lib/js/jquery-3.2.1.min.js"></script>
12
- <script type="text/javascript" src="../../lib/js/jquery-ui-1.10.3.full.min.js"></script>
13
- <script type="text/javascript" src="../../lib/js/jquery.fancytree-all.min.js"></script>
14
- <script type="text/javascript" src="../../socket.io/socket.io.js"></script>
15
-
16
- <script type="text/javascript" src="../../js/translate.js"></script>
17
- <script type="text/javascript" src="../../lib/js/selectID.js"></script>
18
- <script type="text/javascript" src="../../lib/js/materialize.js"></script>
19
- <script type="text/javascript" src="../../js/adapter-settings.js"></script>
20
- <script type="text/javascript" src="words.js"></script>
21
-
22
- <script type="text/javascript">
23
-
24
- var calendars = [];
25
- var events = [];
26
- // the function loadSettings has to exist ...
27
- function load(settings, onChange) {
28
- if (!settings) return;
29
- for (var key in settings) {
30
- if (!settings.hasOwnProperty(key)) continue;
31
- var $value = $('#' + key + '.value');
32
- if ($value.attr('type') === 'checkbox') {
33
- $value.prop('checked', settings[key]).on('change', function() {
34
- if ($('#auth').prop('checked')) {
35
- $('#secure').prop('checked', true);
36
- }
37
- onChange();
38
- showHideSettings();
39
- });
40
- } else {
41
- $value.val(settings[key]).on('change', function() {
42
- onChange();
43
- }).keyup(function() {
44
- onChange();
45
- });
46
- }
47
- }
48
- // Set default language
49
- if (!settings.language) {
50
- settings.language = systemLang || 'en';
51
- $('#language').val(settings.language).trigger('change');
52
- }
53
- calendars = settings.calendars || [];
54
- events = settings.events || [];
55
-
56
- for (var c = 0; c < settings.calendars.length; c++) {
57
- settings.calendars[c].sslignore =
58
- settings.calendars[c].sslignore === 'ignore' ||
59
- settings.calendars[c].sslignore === 'true' ||
60
- settings.calendars[c].sslignore === true;
61
-
62
- settings.calendars[c].name = settings.calendars[c].name || '';
63
- settings.calendars[c].url = settings.calendars[c].url || '';
64
- settings.calendars[c].user = settings.calendars[c].user || '';
65
- settings.calendars[c].pass = settings.calendars[c].pass || '';
66
- settings.calendars[c].color = settings.calendars[c].color || '';
67
-
68
- settings.calendars[c].filterregex =
69
- settings.calendars[c].filterregex === 'yes' ||
70
- settings.calendars[c].filterregex === 'true' ||
71
- settings.calendars[c].filterregex === true;
72
-
73
- settings.calendars[c].filter = settings.calendars[c].filter || '';
74
- }
75
-
76
- for (var e = 0; e < settings.events.length; e++) {
77
- if (typeof settings.events[e].ack !== 'boolean') {
78
- settings.events[e].ack = true;
79
- }
80
- }
81
-
82
- onChange(false);
83
-
84
- values2table('calendars', calendars, onChange);
85
- values2table('events', events, onChange);
86
- }
87
-
88
- function save(callback) {
89
- var obj = {};
90
- $('.value').each(function () {
91
- var $this = $(this);
92
- if ($this.attr('type') === 'checkbox') {
93
- obj[$this.attr('id')] = $this.prop('checked');
94
- } else {
95
- obj[$this.attr('id')] = $this.val();
96
- }
97
- });
98
- // Get edited table
99
- obj.calendars = table2values('calendars');
100
- obj.events = table2values('events');
101
- callback(obj);
102
- }
103
- </script>
104
- <style>
105
- .m .select-wrapper+label {
106
- top: 100%;
107
- }
108
- </style>
109
- </head>
110
- <body>
111
- <div class="m adapter-container">
112
- <div class="row">
113
- <div class="col s12">
114
- <ul class="tabs">
115
- <li class="tab col s2"><a href="#tab-main" class="translate active">Main settings</a></li>
116
- <li class="tab col s2"><a href="#tab-html" class="translate">HTML settings</a></li>
117
- <li class="tab col s2"><a href="#tab-calendars" class="translate">Calendars</a></li>
118
- <li class="tab col s2"><a href="#tab-events" class="translate">Events</a></li>
119
- </ul>
120
- </div>
121
- <div id="tab-main" class="col s12 page">
122
- <div class="row">
123
- <div class="col s12 m4 l2">
124
- <img src="ical.png" class="logo">
125
- </div>
126
- </div>
127
- <div class="row">
128
- <div class="col s12 m4">
129
- <input class="value" id="daysPreview" type="number" min="1" max="99"/>
130
- <label class="translate" for="daysPreview">Preview days</label>
131
- </div>
132
- <div class="col s12 m4">
133
- <input class="value" id="daysPast" type="number" min="0" max="99"/>
134
- <label class="translate" for="daysPast">Past days</label>
135
- </div>
136
- </div>
137
- <div class="row">
138
- <div class="col s12 m4">
139
- <input class="value" id="ignoreCaseInEventname" type="checkbox" />
140
- <label class="translate" for="ignoreCaseInEventname">Ignore case for event-search</label>
141
- </div>
142
- <div class="col s12 m4">
143
-
144
- </div>
145
- </div>
146
- </div>
147
- <div id="tab-html" class="col s12 page">
148
- <div class="row">
149
- <div class="col s12 m4">
150
- <select class="value" id="language">
151
- <option value="en">English</option>
152
- <option value="de">Deutsch</option>
153
- <option value="ru">русский</option>
154
- <option value="pt">Portugues</option>
155
- <option value="nl">Nederlands</option>
156
- <option value="fr">français</option>
157
- <option value="it">Italiano</option>
158
- <option value="es">Espanol</option>
159
- </select>
160
- <label class="translate" for="language">Language</label>
161
- </div>
162
- <div class="col s12 m4">
163
-
164
- </div>
165
- </div>
166
- <div class="row">
167
- <div class="col s12 m4">
168
- <input class="value" id="fulltime" type="text" maxlength="30"/>
169
- <label class="translate" for="fulltime">Use by full day</label>
170
- </div>
171
- <div class="col s12 m4">
172
- <input class="value" id="defColor" type="text" maxlength="10" />
173
- <label class="translate" for="defColor">Default color for HTML</label>
174
- </div>
175
- </div>
176
- <div class="row">
177
- <div class="col s12 m4">
178
- <input class="value" id="dataPaddingWithZeros" type="checkbox">
179
- <label class="translate" for="dataPaddingWithZeros">Padding date with '0'</label>
180
- </div>
181
- <div class="col s12 m4">
182
- <input class="value" id="replaceDates" type="checkbox" />
183
- <label class="translate" for="replaceDates">Replace dates with words</label>
184
- </div>
185
- </div>
186
- <div class="row">
187
- <div class="col s12 m4">
188
- <input class="value" id="everyCalOneColor" type="checkbox">
189
- <label class="translate" for="everyCalOneColor">Every calendar has own color</label>
190
- </div>
191
- <div class="col s12 m4">
192
- <input class="value" id="colorize" type="checkbox"/>
193
- <label class="translate" for="colorize">Colorize HTML</label>
194
- </div>
195
- </div>
196
- <div class="row">
197
- <div class="col s12 m4">
198
- <input class="value" id="forceFullday" type="checkbox">
199
- <label class="translate" for="forceFullday">Hide Start-End of events</label>
200
- </div>
201
- <div class="col s12 m4">
202
- <input class="value" id="hideYear" type="checkbox" />
203
- <label class="translate" for="hideYear">Hide Year</label>
204
- </div>
205
- </div>
206
- <div class="row">
207
- <div class="col s12 m4">
208
- <input class="value" id="arrowAlreadyStarted" type="checkbox">
209
- <label class="translate" for="arrowAlreadyStarted">Add arrow for started events</label>
210
- </div>
211
- <div class="col s12 m4">
212
- <input class="value" id="addColorBox" type="checkbox">
213
- <label class="translate" for="addColorBox">Add event color if available</label>
214
- </div>
215
- </div>
216
- </div>
217
- <div id="tab-calendars" class="col s12 page">
218
- <div class="col s12" id="calendars">
219
- <a class="btn-floating waves-effect waves-light blue table-button-add"><i class="material-icons">add</i></a>
220
- <div class="table-values-div">
221
- <table class="table-values">
222
- <thead>
223
- <tr>
224
- <th data-name="name" class="translate">name</th>
225
- <th data-name="url" class="translate">url</th>
226
- <th data-name="user" data-style="width: 100px" class="translate">user</th>
227
- <th data-name="pass" data-style="width: 100px" data-type="password" class="translate">pass</th>
228
- <th data-name="sslignore" data-type="checkbox" class="translate">sslignore</th>
229
- <th data-name="color" data-type="color" class="translate">color</th>
230
- <th data-name="filter" data-style="width: 100px" class="translate">filter</th>
231
- <th data-name="filterregex" data-type="checkbox" class="translate">filterregex</th>
232
- <th data-buttons="delete up down"></th>
233
- </tr>
234
- </thead>
235
- </table>
236
- </div>
237
- </div>
238
- </div>
239
- <div id="tab-events" class="col s12 page">
240
- <div class="col s12" id="events">
241
- <a class="btn-floating waves-effect waves-light blue table-button-add"><i class="material-icons">add</i></a>
242
- <div class="table-values-div">
243
- <table class="table-values">
244
- <thead>
245
- <tr>
246
- <th data-name="name" style="width: 80%" class="translate">name</th>
247
- <th data-name="enabled" style="width: 70px" data-style="width: 70px" data-type="checkbox" class="translate">enabled</th>
248
- <th data-name="id" style="width: 200px" data-style="width: 300px" data-type="OID" class="translate">Set ID</th>
249
- <th data-name="on" style="width: 50px" data-style="width: 50px" data-type="text" class="translate">ON</th>
250
- <th data-name="off" style="width: 50px" data-style="width: 50px" data-type="text" class="translate">OFF</th>
251
- <th data-name="ack" style="width: 70px" data-style="width: 70px" data-type="checkbox" class="translate">Set Ack</th>
252
- <th data-name="display" style="width: 70px" data-style="width: 70px" data-type="checkbox" class="translate">display</th>
253
- <th data-buttons="delete up down" style="width: 120px"></th>
254
- </tr>
255
- </thead>
256
- </table>
257
- </div>
258
- </div>
259
- </div>
260
- </div>
261
- </div>
262
- </body>
263
- </html>