iobroker.parcelapp 0.2.1 → 0.2.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/README.md +22 -4
- package/admin/i18n/de/translations.json +1 -2
- package/admin/i18n/en/translations.json +1 -2
- package/admin/i18n/es/translations.json +1 -2
- package/admin/i18n/fr/translations.json +1 -2
- package/admin/i18n/it/translations.json +1 -2
- package/admin/i18n/nl/translations.json +1 -2
- package/admin/i18n/pl/translations.json +1 -2
- package/admin/i18n/pt/translations.json +1 -2
- package/admin/i18n/ru/translations.json +1 -2
- package/admin/i18n/uk/translations.json +1 -2
- package/admin/i18n/zh-cn/translations.json +1 -2
- package/admin/jsonConfig.json +3 -3
- package/build/main.js +4 -4
- package/io-package.json +14 -14
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -94,6 +94,9 @@ parcelapp.0.
|
|
|
94
94
|
|
|
95
95
|
## Changelog
|
|
96
96
|
|
|
97
|
+
### 0.2.2 (2026-03-28)
|
|
98
|
+
- Adapter-managed timers, CI on Windows/macOS, consistent i18n keys, full MIT license in README
|
|
99
|
+
|
|
97
100
|
### 0.2.1 (2026-03-25)
|
|
98
101
|
- Robust error handling: rate limit detection, connection error deduplication, poll throttling
|
|
99
102
|
|
|
@@ -114,9 +117,6 @@ parcelapp.0.
|
|
|
114
117
|
### 0.1.2 (2026-03-23)
|
|
115
118
|
- Updated devDependencies
|
|
116
119
|
|
|
117
|
-
### 0.1.1 (2026-03-23)
|
|
118
|
-
- Redesigned adapter logo
|
|
119
|
-
|
|
120
120
|
Older changelog: [CHANGELOG.md](CHANGELOG.md)
|
|
121
121
|
|
|
122
122
|
---
|
|
@@ -137,10 +137,28 @@ This adapter is free and open source. If you find it useful, consider buying me
|
|
|
137
137
|
|
|
138
138
|
## License
|
|
139
139
|
|
|
140
|
-
MIT License
|
|
140
|
+
MIT License
|
|
141
141
|
|
|
142
142
|
Copyright (c) 2026 krobi <krobi@power-dreams.com>
|
|
143
143
|
|
|
144
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
145
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
146
|
+
in the Software without restriction, including without limitation the rights
|
|
147
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
148
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
149
|
+
furnished to do so, subject to the following conditions:
|
|
150
|
+
|
|
151
|
+
The above copyright notice and this permission notice shall be included in all
|
|
152
|
+
copies or substantial portions of the Software.
|
|
153
|
+
|
|
154
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
155
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
156
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
157
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
158
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
159
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
160
|
+
SOFTWARE.
|
|
161
|
+
|
|
144
162
|
---
|
|
145
163
|
|
|
146
164
|
*Developed with assistance from Claude.ai*
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
2
|
+
"supportHeader": "Unterstütze diesen Adapter",
|
|
3
3
|
"aboutInfo": "Dieser Adapter ist kostenlos und Open Source. Wenn du ihn nützlich findest, unterstütze die Entwicklung gerne mit einer kleinen Spende.",
|
|
4
|
-
"aboutTab": "Info",
|
|
5
4
|
"apiKeyInfo": "Gib deinen parcel.app API-Schlüssel ein. Ein Premium-Abo wird benötigt. Den Schlüssel findest du unter web.parcelapp.net → API-Bereich.",
|
|
6
5
|
"btn_checkConnection": "Verbindung testen",
|
|
7
6
|
"donateKofi": "Unterstützen auf Ko-fi",
|
|
@@ -16,8 +16,7 @@
|
|
|
16
16
|
"tooltip_language": "Language for delivery status labels (e.g. 'In Transit' vs 'Unterwegs')",
|
|
17
17
|
"lang_de": "German",
|
|
18
18
|
"lang_en": "English",
|
|
19
|
-
"
|
|
20
|
-
"aboutHeader": "Support this Adapter",
|
|
19
|
+
"supportHeader": "Support this Adapter",
|
|
21
20
|
"aboutInfo": "This adapter is free and open source. If you find it useful, please consider supporting its development with a small donation.",
|
|
22
21
|
"donateKofi": "Support on Ko-fi",
|
|
23
22
|
"donatePaypal": "Donate via PayPal"
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
2
|
+
"supportHeader": "Apoya este adaptador",
|
|
3
3
|
"aboutInfo": "Este adaptador es gratuito y de código abierto. Si lo encuentras útil, considera apoyar el desarrollo con una pequeña donación.",
|
|
4
|
-
"aboutTab": "Acerca de",
|
|
5
4
|
"apiKeyInfo": "Introduce tu clave API de parcel.app. Se requiere una suscripción Premium. Obtén tu clave en web.parcelapp.net → panel API.",
|
|
6
5
|
"btn_checkConnection": "Probar conexión",
|
|
7
6
|
"donateKofi": "Apoyar en Ko-fi",
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
2
|
+
"supportHeader": "Soutenez cet adaptateur",
|
|
3
3
|
"aboutInfo": "Cet adaptateur est gratuit et open source. Si vous le trouvez utile, pensez à soutenir son développement par un petit don.",
|
|
4
|
-
"aboutTab": "À propos",
|
|
5
4
|
"apiKeyInfo": "Entrez votre clé API parcel.app. Un abonnement Premium est requis. Obtenez votre clé sur web.parcelapp.net → panneau API.",
|
|
6
5
|
"btn_checkConnection": "Tester la connexion",
|
|
7
6
|
"donateKofi": "Soutenir sur Ko-fi",
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
2
|
+
"supportHeader": "Supporta questo adattatore",
|
|
3
3
|
"aboutInfo": "Questo adattatore è gratuito e open source. Se lo trovi utile, considera di supportare lo sviluppo con una piccola donazione.",
|
|
4
|
-
"aboutTab": "Info",
|
|
5
4
|
"apiKeyInfo": "Inserisci la tua chiave API parcel.app. È necessario un abbonamento Premium. Ottieni la tua chiave su web.parcelapp.net → pannello API.",
|
|
6
5
|
"btn_checkConnection": "Testa connessione",
|
|
7
6
|
"donateKofi": "Supporta su Ko-fi",
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
2
|
+
"supportHeader": "Steun deze adapter",
|
|
3
3
|
"aboutInfo": "Deze adapter is gratis en open source. Als je hem nuttig vindt, overweeg dan de ontwikkeling te steunen met een kleine donatie.",
|
|
4
|
-
"aboutTab": "Over",
|
|
5
4
|
"apiKeyInfo": "Voer je parcel.app API-sleutel in. Een Premium-abonnement is vereist. Haal je sleutel op via web.parcelapp.net → API-paneel.",
|
|
6
5
|
"btn_checkConnection": "Verbinding testen",
|
|
7
6
|
"donateKofi": "Steunen op Ko-fi",
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
2
|
+
"supportHeader": "Wesprzyj ten adapter",
|
|
3
3
|
"aboutInfo": "Ten adapter jest darmowy i open source. Jeśli uważasz go za przydatny, rozważ wsparcie rozwoju niewielką darowizną.",
|
|
4
|
-
"aboutTab": "O programie",
|
|
5
4
|
"apiKeyInfo": "Wprowadź klucz API parcel.app. Wymagana subskrypcja Premium. Uzyskaj klucz na web.parcelapp.net → panel API.",
|
|
6
5
|
"btn_checkConnection": "Testuj połączenie",
|
|
7
6
|
"donateKofi": "Wesprzyj na Ko-fi",
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
2
|
+
"supportHeader": "Apoie este adaptador",
|
|
3
3
|
"aboutInfo": "Este adaptador é gratuito e de código aberto. Se você o achar útil, considere apoiar o desenvolvimento com uma pequena doação.",
|
|
4
|
-
"aboutTab": "Sobre",
|
|
5
4
|
"apiKeyInfo": "Insira sua chave API do parcel.app. É necessária uma assinatura Premium. Obtenha sua chave em web.parcelapp.net → painel API.",
|
|
6
5
|
"btn_checkConnection": "Testar Conexão",
|
|
7
6
|
"donateKofi": "Apoiar no Ko-fi",
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
2
|
+
"supportHeader": "Поддержите этот адаптер",
|
|
3
3
|
"aboutInfo": "Этот адаптер бесплатный и с открытым исходным кодом. Если он вам полезен, поддержите разработку небольшим пожертвованием.",
|
|
4
|
-
"aboutTab": "О программе",
|
|
5
4
|
"apiKeyInfo": "Введите API-ключ parcel.app. Требуется Premium-подписка. Получите ключ на web.parcelapp.net → раздел API.",
|
|
6
5
|
"btn_checkConnection": "Проверить соединение",
|
|
7
6
|
"donateKofi": "Поддержать на Ko-fi",
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
2
|
+
"supportHeader": "Підтримайте цей адаптер",
|
|
3
3
|
"aboutInfo": "Цей адаптер безкоштовний та з відкритим кодом. Якщо він вам корисний, підтримайте розробку невеликою пожертвою.",
|
|
4
|
-
"aboutTab": "Про програму",
|
|
5
4
|
"apiKeyInfo": "Введіть ваш API-ключ parcel.app. Потрібна Premium-підписка. Отримайте ключ на web.parcelapp.net → панель API.",
|
|
6
5
|
"btn_checkConnection": "Перевірити з'єднання",
|
|
7
6
|
"donateKofi": "Підтримати на Ko-fi",
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
2
|
+
"supportHeader": "支持此适配器",
|
|
3
3
|
"aboutInfo": "此适配器免费且开源。如果您觉得有用,请考虑通过小额捐赠支持开发。",
|
|
4
|
-
"aboutTab": "关于",
|
|
5
4
|
"apiKeyInfo": "输入你的 parcel.app API 密钥。需要 Premium 订阅。在 web.parcelapp.net → API 面板获取密钥。",
|
|
6
5
|
"btn_checkConnection": "测试连接",
|
|
7
6
|
"donateKofi": "在 Ko-fi 上支持",
|
package/admin/jsonConfig.json
CHANGED
|
@@ -79,13 +79,13 @@
|
|
|
79
79
|
],
|
|
80
80
|
"xs": 12, "sm": 12, "md": 6, "lg": 6, "xl": 6
|
|
81
81
|
},
|
|
82
|
-
"
|
|
82
|
+
"_supportHeader": {
|
|
83
83
|
"newLine": true,
|
|
84
84
|
"type": "header",
|
|
85
|
-
"text": "
|
|
85
|
+
"text": "supportHeader",
|
|
86
86
|
"size": 5
|
|
87
87
|
},
|
|
88
|
-
"
|
|
88
|
+
"_aboutInfo": {
|
|
89
89
|
"type": "staticText",
|
|
90
90
|
"text": "aboutInfo",
|
|
91
91
|
"xs": 12, "sm": 12, "md": 12, "lg": 12, "xl": 12,
|
package/build/main.js
CHANGED
|
@@ -45,7 +45,7 @@ const MIN_POLL_GAP_MS = 60_000; // Minimum 60s between polls
|
|
|
45
45
|
class ParcelappAdapter extends utils.Adapter {
|
|
46
46
|
client = null;
|
|
47
47
|
stateManager = null;
|
|
48
|
-
pollTimer =
|
|
48
|
+
pollTimer = undefined;
|
|
49
49
|
isPolling = false;
|
|
50
50
|
lastPollTime = 0;
|
|
51
51
|
rateLimitedUntil = 0;
|
|
@@ -78,13 +78,13 @@ class ParcelappAdapter extends utils.Adapter {
|
|
|
78
78
|
// Set up recurring poll
|
|
79
79
|
const interval = Math.max(MIN_POLL_INTERVAL, Math.min(MAX_POLL_INTERVAL, this.config.pollInterval ?? DEFAULT_POLL_INTERVAL));
|
|
80
80
|
const intervalMs = interval * 60 * 1000;
|
|
81
|
-
this.pollTimer = setInterval(() => void this.poll(), intervalMs);
|
|
81
|
+
this.pollTimer = this.setInterval(() => void this.poll(), intervalMs);
|
|
82
82
|
this.log.info(`Parcel tracking started — polling every ${interval} minutes`);
|
|
83
83
|
}
|
|
84
84
|
onUnload(callback) {
|
|
85
85
|
if (this.pollTimer) {
|
|
86
|
-
clearInterval(this.pollTimer);
|
|
87
|
-
this.pollTimer =
|
|
86
|
+
this.clearInterval(this.pollTimer);
|
|
87
|
+
this.pollTimer = undefined;
|
|
88
88
|
}
|
|
89
89
|
void this.setState("info.connection", { val: false, ack: true });
|
|
90
90
|
callback();
|
package/io-package.json
CHANGED
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "parcelapp",
|
|
4
|
-
"version": "0.2.
|
|
4
|
+
"version": "0.2.2",
|
|
5
5
|
"news": {
|
|
6
|
+
"0.2.2": {
|
|
7
|
+
"en": "Adapter-managed timers, CI on Windows/macOS, consistent admin UI i18n keys, full MIT license in README",
|
|
8
|
+
"de": "Adapter-verwaltete Timer, CI auf Windows/macOS, konsistente Admin-UI i18n-Keys, vollständige MIT-Lizenz in README",
|
|
9
|
+
"ru": "Таймеры, управляемые адаптером, CI на Windows/macOS, согласованные ключи i18n в Admin UI, полная лицензия MIT в README",
|
|
10
|
+
"pt": "Timers gerenciados pelo adaptador, CI no Windows/macOS, chaves i18n consistentes na UI admin, licença MIT completa no README",
|
|
11
|
+
"nl": "Adapter-beheerde timers, CI op Windows/macOS, consistente admin-UI i18n-sleutels, volledige MIT-licentie in README",
|
|
12
|
+
"fr": "Minuteries gérées par l adaptateur, CI sur Windows/macOS, clés i18n cohérentes dans l interface admin, licence MIT complète dans README",
|
|
13
|
+
"it": "Timer gestiti dall adattatore, CI su Windows/macOS, chiavi i18n coerenti nell interfaccia admin, licenza MIT completa nel README",
|
|
14
|
+
"es": "Temporizadores gestionados por el adaptador, CI en Windows/macOS, claves i18n consistentes en la UI de admin, licencia MIT completa en README",
|
|
15
|
+
"pl": "Timery zarządzane przez adapter, CI na Windows/macOS, spójne klucze i18n w admin UI, pełna licencja MIT w README",
|
|
16
|
+
"uk": "Таймери, керовані адаптером, CI на Windows/macOS, узгоджені ключі i18n в Admin UI, повна ліцензія MIT в README",
|
|
17
|
+
"zh-cn": "适配器管理的定时器,Windows/macOS CI,一致的管理界面 i18n 键,README 中的完整 MIT 许可证"
|
|
18
|
+
},
|
|
6
19
|
"0.2.1": {
|
|
7
20
|
"en": "Robust error handling: API rate limit detection, connection error deduplication, poll throttling",
|
|
8
21
|
"de": "Robuste Fehlerbehandlung: Erkennung von API-Ratenlimits, Deduplizierung von Verbindungsfehlern, Polling-Drosselung",
|
|
@@ -80,19 +93,6 @@
|
|
|
80
93
|
"pl": "Zaktualizowano zależności deweloperskie",
|
|
81
94
|
"uk": "Оновлено залежності розробки",
|
|
82
95
|
"zh-cn": "更新开发依赖"
|
|
83
|
-
},
|
|
84
|
-
"0.1.1": {
|
|
85
|
-
"en": "Redesigned adapter logo, fixed repochecker issues",
|
|
86
|
-
"de": "Adapter-Logo überarbeitet, Repochecker-Probleme behoben",
|
|
87
|
-
"ru": "Обновлён логотип адаптера, исправлены проблемы repochecker",
|
|
88
|
-
"pt": "Logo do adaptador redesenhado, problemas do repochecker corrigidos",
|
|
89
|
-
"nl": "Adapter-logo opnieuw ontworpen, repochecker-problemen opgelost",
|
|
90
|
-
"fr": "Logo de l'adaptateur redessiné, problèmes repochecker corrigés",
|
|
91
|
-
"it": "Logo dell'adattatore ridisegnato, problemi repochecker risolti",
|
|
92
|
-
"es": "Logo del adaptador rediseñado, problemas de repochecker corregidos",
|
|
93
|
-
"pl": "Przeprojektowano logo adaptera, naprawiono problemy repochecker",
|
|
94
|
-
"uk": "Оновлено логотип адаптера, виправлено проблеми repochecker",
|
|
95
|
-
"zh-cn": "重新设计适配器图标,修复 repochecker 问题"
|
|
96
96
|
}
|
|
97
97
|
},
|
|
98
98
|
"titleLang": {
|