iobroker.parcelapp 0.1.5 → 0.2.0
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 +9 -7
- package/admin/i18n/de/translations.json +16 -19
- package/admin/i18n/en/translations.json +3 -6
- package/admin/i18n/es/translations.json +16 -19
- package/admin/i18n/fr/translations.json +16 -19
- package/admin/i18n/it/translations.json +16 -19
- package/admin/i18n/nl/translations.json +16 -19
- package/admin/i18n/pl/translations.json +16 -19
- package/admin/i18n/pt/translations.json +16 -19
- package/admin/i18n/ru/translations.json +16 -19
- package/admin/i18n/uk/translations.json +16 -19
- package/admin/i18n/zh-cn/translations.json +16 -19
- package/admin/jsonConfig.json +106 -121
- package/build/lib/state-manager.d.ts.map +1 -1
- package/build/lib/state-manager.js +0 -1
- package/build/lib/types.d.ts +2 -2
- package/build/lib/types.d.ts.map +1 -1
- package/build/main.js +28 -8
- package/io-package.json +16 -3
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -19,10 +19,10 @@ ioBroker adapter that connects to the [parcel.app](https://parcelapp.net) API an
|
|
|
19
19
|
|
|
20
20
|
- **300+ carriers** — DHL, FedEx, UPS, Amazon, Hermes, GLS, DPD, and many more via parcel.app
|
|
21
21
|
- **Per-package ioBroker states** — carrier, status, tracking number, delivery window, last event, last location
|
|
22
|
-
- **Summary states** — active count, today count, combined delivery window
|
|
22
|
+
- **Summary states** — active count, today count, combined delivery window
|
|
23
23
|
- **Delivery time estimates** — today, tomorrow, in X days with combined time window
|
|
24
24
|
- **Automatic polling** with configurable interval (5–60 minutes)
|
|
25
|
-
- **
|
|
25
|
+
- **Configurable cleanup** of delivered packages — auto-remove or keep as "Delivered"
|
|
26
26
|
- **Add deliveries** via sendTo message from scripts or other adapters
|
|
27
27
|
- **Admin UI** with connection test, polling settings, and status language selection
|
|
28
28
|
- **Multilingual status labels** (German/English)
|
|
@@ -44,7 +44,7 @@ ioBroker adapter that connects to the [parcel.app](https://parcelapp.net) API an
|
|
|
44
44
|
|--------|-------------|---------|
|
|
45
45
|
| **API Key** | Your parcel.app API key (get it at [web.parcelapp.net](https://web.parcelapp.net)) | — |
|
|
46
46
|
| **Poll Interval** | How often to fetch updates (minutes) | 10 |
|
|
47
|
-
| **
|
|
47
|
+
| **Auto-remove delivered** | Remove delivered packages from states automatically | Yes |
|
|
48
48
|
| **Status Language** | Language for status labels (German/English) | German |
|
|
49
49
|
|
|
50
50
|
---
|
|
@@ -57,8 +57,7 @@ parcelapp.0.
|
|
|
57
57
|
├── summary.
|
|
58
58
|
│ ├── activeCount — Number of active deliveries
|
|
59
59
|
│ ├── todayCount — Number of deliveries expected today
|
|
60
|
-
│
|
|
61
|
-
│ └── json — All active deliveries as JSON
|
|
60
|
+
│ └── deliveryWindow — Combined delivery window for today
|
|
62
61
|
└── deliveries.
|
|
63
62
|
└── {packageId}. — One device per package
|
|
64
63
|
├── carrier — Carrier name (e.g. DHL Express)
|
|
@@ -86,7 +85,6 @@ parcelapp.0.
|
|
|
86
85
|
### No deliveries shown
|
|
87
86
|
- The API returns cached data — new deliveries may take a few minutes to appear
|
|
88
87
|
- Check if you have active deliveries in the parcel.app
|
|
89
|
-
- Try changing the filter mode to "Recent" to see completed deliveries
|
|
90
88
|
|
|
91
89
|
### Rate limit
|
|
92
90
|
- The parcel.app API allows 20 requests per hour
|
|
@@ -96,6 +94,11 @@ parcelapp.0.
|
|
|
96
94
|
|
|
97
95
|
## Changelog
|
|
98
96
|
|
|
97
|
+
### 0.2.0 (2026-03-25)
|
|
98
|
+
- Added option to keep delivered packages in states
|
|
99
|
+
- Simplified admin UI to single page
|
|
100
|
+
- Removed redundant summary.json state
|
|
101
|
+
|
|
99
102
|
### 0.1.5 (2026-03-24)
|
|
100
103
|
- Added auto-merge config, weekly Dependabot schedule
|
|
101
104
|
|
|
@@ -110,7 +113,6 @@ parcelapp.0.
|
|
|
110
113
|
|
|
111
114
|
### 0.1.1 (2026-03-23)
|
|
112
115
|
- Redesigned adapter logo
|
|
113
|
-
- Fixed repochecker issues
|
|
114
116
|
|
|
115
117
|
### 0.1.0 (2026-03-23)
|
|
116
118
|
- Initial release
|
|
@@ -1,27 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"
|
|
4
|
-
"
|
|
2
|
+
"aboutHeader": "Unterstütze diesen Adapter",
|
|
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
5
|
"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
|
-
"label_apiKey": "API-Schlüssel",
|
|
7
6
|
"btn_checkConnection": "Verbindung testen",
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"tooltip_pollInterval": "Wie oft Lieferupdates abgefragt werden (5-60 Minuten, Standard: 10). Rate-Limit: 20 Anfragen/Stunde.",
|
|
13
|
-
"label_filterMode": "Filtermodus",
|
|
14
|
-
"tooltip_filterMode": "Aktiv: nur laufende Lieferungen. Kürzlich: inklusive kürzlich zugestellter.",
|
|
15
|
-
"filterMode_active": "Nur aktive Lieferungen",
|
|
16
|
-
"filterMode_recent": "Kürzliche Lieferungen",
|
|
7
|
+
"donateKofi": "Unterstützen auf Ko-fi",
|
|
8
|
+
"donatePaypal": "Spenden via PayPal",
|
|
9
|
+
"header_connection": "parcel.app API",
|
|
10
|
+
"header_delivery": "Lieferungen",
|
|
17
11
|
"header_display": "Anzeige",
|
|
12
|
+
"header_polling": "Abfrage",
|
|
13
|
+
"label_apiKey": "API-Schlüssel",
|
|
14
|
+
"label_autoRemoveDelivered": "Zugestellte Pakete automatisch entfernen",
|
|
18
15
|
"label_language": "Status-Sprache",
|
|
19
|
-
"
|
|
16
|
+
"label_pollInterval": "Abfrageintervall (Minuten)",
|
|
20
17
|
"lang_de": "Deutsch",
|
|
21
18
|
"lang_en": "Englisch",
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
19
|
+
"msg_connectionFailed": "Verbindung fehlgeschlagen!",
|
|
20
|
+
"msg_connectionOk": "Verbindung erfolgreich!",
|
|
21
|
+
"tooltip_autoRemoveDelivered": "Wenn aktiviert, werden zugestellte Pakete automatisch aus dem Objektbaum entfernt. Wenn deaktiviert, bleiben sie mit Status 'Zugestellt' bestehen, bis sie in parcel.app gelöscht werden.",
|
|
22
|
+
"tooltip_language": "Sprache für Statusmeldungen (z.B. 'Unterwegs' vs 'In Transit')",
|
|
23
|
+
"tooltip_pollInterval": "Wie oft Lieferupdates abgefragt werden (5-60 Minuten, Standard: 10). Rate-Limit: 20 Anfragen/Stunde."
|
|
27
24
|
}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
{
|
|
2
|
-
"tab_connection": "Connection",
|
|
3
|
-
"tab_settings": "Settings",
|
|
4
2
|
"header_connection": "parcel.app API",
|
|
5
3
|
"apiKeyInfo": "Enter your parcel.app API key. A Premium subscription is required. Get your key at web.parcelapp.net → API panel.",
|
|
6
4
|
"label_apiKey": "API Key",
|
|
@@ -10,10 +8,9 @@
|
|
|
10
8
|
"header_polling": "Polling",
|
|
11
9
|
"label_pollInterval": "Poll Interval (minutes)",
|
|
12
10
|
"tooltip_pollInterval": "How often to fetch delivery updates (5-60 minutes, default: 10). Rate limit: 20 requests/hour.",
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"filterMode_recent": "Recent deliveries",
|
|
11
|
+
"header_delivery": "Delivery",
|
|
12
|
+
"label_autoRemoveDelivered": "Automatically remove delivered packages",
|
|
13
|
+
"tooltip_autoRemoveDelivered": "When enabled, delivered packages are automatically removed from the state tree. When disabled, they remain with status 'Delivered' until deleted in parcel.app.",
|
|
17
14
|
"header_display": "Display",
|
|
18
15
|
"label_language": "Status Language",
|
|
19
16
|
"tooltip_language": "Language for delivery status labels (e.g. 'In Transit' vs 'Unterwegs')",
|
|
@@ -1,27 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"
|
|
4
|
-
"
|
|
2
|
+
"aboutHeader": "Apoya este adaptador",
|
|
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
5
|
"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
|
-
"label_apiKey": "Clave API",
|
|
7
6
|
"btn_checkConnection": "Probar conexión",
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"tooltip_pollInterval": "Con qué frecuencia obtener actualizaciones de entrega (5-60 minutos, predeterminado: 10). Límite: 20 solicitudes/hora.",
|
|
13
|
-
"label_filterMode": "Modo de filtro",
|
|
14
|
-
"tooltip_filterMode": "Activo: solo entregas actuales. Reciente: incluye entregas recientemente completadas.",
|
|
15
|
-
"filterMode_active": "Solo entregas activas",
|
|
16
|
-
"filterMode_recent": "Entregas recientes",
|
|
7
|
+
"donateKofi": "Apoyar en Ko-fi",
|
|
8
|
+
"donatePaypal": "Donar vía PayPal",
|
|
9
|
+
"header_connection": "parcel.app API",
|
|
10
|
+
"header_delivery": "Entregas",
|
|
17
11
|
"header_display": "Visualización",
|
|
12
|
+
"header_polling": "Consulta",
|
|
13
|
+
"label_apiKey": "Clave API",
|
|
14
|
+
"label_autoRemoveDelivered": "Eliminar automáticamente paquetes entregados",
|
|
18
15
|
"label_language": "Idioma de estados",
|
|
19
|
-
"
|
|
16
|
+
"label_pollInterval": "Intervalo de consulta (minutos)",
|
|
20
17
|
"lang_de": "Alemán",
|
|
21
18
|
"lang_en": "Inglés",
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
19
|
+
"msg_connectionFailed": "¡Error de conexión!",
|
|
20
|
+
"msg_connectionOk": "¡Conexión exitosa!",
|
|
21
|
+
"tooltip_autoRemoveDelivered": "Cuando está activado, los paquetes entregados se eliminan automáticamente del árbol de estados. Cuando está desactivado, permanecen con el estado 'Entregado' hasta ser eliminados en parcel.app.",
|
|
22
|
+
"tooltip_language": "Idioma para las etiquetas de estado de entrega",
|
|
23
|
+
"tooltip_pollInterval": "Con qué frecuencia obtener actualizaciones de entrega (5-60 minutos, predeterminado: 10). Límite: 20 solicitudes/hora."
|
|
27
24
|
}
|
|
@@ -1,27 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"
|
|
4
|
-
"
|
|
2
|
+
"aboutHeader": "Soutenez cet adaptateur",
|
|
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
5
|
"apiKeyInfo": "Entrez votre clé API parcel.app. Un abonnement Premium est requis. Obtenez votre clé sur web.parcelapp.net → panneau API.",
|
|
6
|
-
"label_apiKey": "Clé API",
|
|
7
6
|
"btn_checkConnection": "Tester la connexion",
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"tooltip_pollInterval": "Fréquence de récupération des mises à jour de livraison (5-60 minutes, défaut : 10). Limite : 20 requêtes/heure.",
|
|
13
|
-
"label_filterMode": "Mode de filtrage",
|
|
14
|
-
"tooltip_filterMode": "Actif : uniquement les livraisons en cours. Récent : inclut les livraisons récemment terminées.",
|
|
15
|
-
"filterMode_active": "Livraisons actives uniquement",
|
|
16
|
-
"filterMode_recent": "Livraisons récentes",
|
|
7
|
+
"donateKofi": "Soutenir sur Ko-fi",
|
|
8
|
+
"donatePaypal": "Faire un don via PayPal",
|
|
9
|
+
"header_connection": "parcel.app API",
|
|
10
|
+
"header_delivery": "Livraisons",
|
|
17
11
|
"header_display": "Affichage",
|
|
12
|
+
"header_polling": "Interrogation",
|
|
13
|
+
"label_apiKey": "Clé API",
|
|
14
|
+
"label_autoRemoveDelivered": "Supprimer automatiquement les colis livrés",
|
|
18
15
|
"label_language": "Langue des statuts",
|
|
19
|
-
"
|
|
16
|
+
"label_pollInterval": "Intervalle d interrogation (minutes)",
|
|
20
17
|
"lang_de": "Allemand",
|
|
21
18
|
"lang_en": "Anglais",
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
19
|
+
"msg_connectionFailed": "Échec de la connexion !",
|
|
20
|
+
"msg_connectionOk": "Connexion réussie !",
|
|
21
|
+
"tooltip_autoRemoveDelivered": "Lorsque activé, les colis livrés sont automatiquement supprimés de l'arborescence d'états. Lorsque désactivé, ils restent avec le statut 'Livré' jusqu'à leur suppression dans parcel.app.",
|
|
22
|
+
"tooltip_language": "Langue pour les libellés de statut de livraison",
|
|
23
|
+
"tooltip_pollInterval": "Fréquence de récupération des mises à jour de livraison (5-60 minutes, défaut : 10). Limite : 20 requêtes/heure."
|
|
27
24
|
}
|
|
@@ -1,27 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"
|
|
4
|
-
"
|
|
2
|
+
"aboutHeader": "Supporta questo adattatore",
|
|
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
5
|
"apiKeyInfo": "Inserisci la tua chiave API parcel.app. È necessario un abbonamento Premium. Ottieni la tua chiave su web.parcelapp.net → pannello API.",
|
|
6
|
-
"label_apiKey": "Chiave API",
|
|
7
6
|
"btn_checkConnection": "Testa connessione",
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"tooltip_pollInterval": "Frequenza di aggiornamento delle consegne (5-60 minuti, predefinito: 10). Limite: 20 richieste/ora.",
|
|
13
|
-
"label_filterMode": "Modalità filtro",
|
|
14
|
-
"tooltip_filterMode": "Attivo: solo consegne in corso. Recente: include consegne recentemente completate.",
|
|
15
|
-
"filterMode_active": "Solo consegne attive",
|
|
16
|
-
"filterMode_recent": "Consegne recenti",
|
|
7
|
+
"donateKofi": "Supporta su Ko-fi",
|
|
8
|
+
"donatePaypal": "Dona tramite PayPal",
|
|
9
|
+
"header_connection": "parcel.app API",
|
|
10
|
+
"header_delivery": "Consegne",
|
|
17
11
|
"header_display": "Visualizzazione",
|
|
12
|
+
"header_polling": "Polling",
|
|
13
|
+
"label_apiKey": "Chiave API",
|
|
14
|
+
"label_autoRemoveDelivered": "Rimuovi automaticamente i pacchi consegnati",
|
|
18
15
|
"label_language": "Lingua degli stati",
|
|
19
|
-
"
|
|
16
|
+
"label_pollInterval": "Intervallo di polling (minuti)",
|
|
20
17
|
"lang_de": "Tedesco",
|
|
21
18
|
"lang_en": "Inglese",
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
19
|
+
"msg_connectionFailed": "Connessione fallita!",
|
|
20
|
+
"msg_connectionOk": "Connessione riuscita!",
|
|
21
|
+
"tooltip_autoRemoveDelivered": "Se attivato, i pacchi consegnati vengono automaticamente rimossi dall'albero degli stati. Se disattivato, rimangono con lo stato 'Consegnato' fino alla cancellazione in parcel.app.",
|
|
22
|
+
"tooltip_language": "Lingua per le etichette di stato della consegna",
|
|
23
|
+
"tooltip_pollInterval": "Frequenza di aggiornamento delle consegne (5-60 minuti, predefinito: 10). Limite: 20 richieste/ora."
|
|
27
24
|
}
|
|
@@ -1,27 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"
|
|
4
|
-
"
|
|
2
|
+
"aboutHeader": "Steun deze adapter",
|
|
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
5
|
"apiKeyInfo": "Voer je parcel.app API-sleutel in. Een Premium-abonnement is vereist. Haal je sleutel op via web.parcelapp.net → API-paneel.",
|
|
6
|
-
"label_apiKey": "API-sleutel",
|
|
7
6
|
"btn_checkConnection": "Verbinding testen",
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"tooltip_pollInterval": "Hoe vaak bezorgingsupdates ophalen (5-60 minuten, standaard: 10). Limiet: 20 verzoeken/uur.",
|
|
13
|
-
"label_filterMode": "Filtermodus",
|
|
14
|
-
"tooltip_filterMode": "Actief: alleen huidige bezorgingen. Recent: inclusief recent afgeleverde.",
|
|
15
|
-
"filterMode_active": "Alleen actieve bezorgingen",
|
|
16
|
-
"filterMode_recent": "Recente bezorgingen",
|
|
7
|
+
"donateKofi": "Steunen op Ko-fi",
|
|
8
|
+
"donatePaypal": "Doneren via PayPal",
|
|
9
|
+
"header_connection": "parcel.app API",
|
|
10
|
+
"header_delivery": "Leveringen",
|
|
17
11
|
"header_display": "Weergave",
|
|
12
|
+
"header_polling": "Polling",
|
|
13
|
+
"label_apiKey": "API-sleutel",
|
|
14
|
+
"label_autoRemoveDelivered": "Afgeleverde pakketten automatisch verwijderen",
|
|
18
15
|
"label_language": "Statustaal",
|
|
19
|
-
"
|
|
16
|
+
"label_pollInterval": "Polling-interval (minuten)",
|
|
20
17
|
"lang_de": "Duits",
|
|
21
18
|
"lang_en": "Engels",
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
19
|
+
"msg_connectionFailed": "Verbinding mislukt!",
|
|
20
|
+
"msg_connectionOk": "Verbinding succesvol!",
|
|
21
|
+
"tooltip_autoRemoveDelivered": "Indien ingeschakeld worden afgeleverde pakketten automatisch uit de objectboom verwijderd. Indien uitgeschakeld blijven ze met status 'Afgeleverd' bestaan tot ze in parcel.app worden verwijderd.",
|
|
22
|
+
"tooltip_language": "Taal voor bezorgingsstatussen",
|
|
23
|
+
"tooltip_pollInterval": "Hoe vaak bezorgingsupdates ophalen (5-60 minuten, standaard: 10). Limiet: 20 verzoeken/uur."
|
|
27
24
|
}
|
|
@@ -1,27 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"
|
|
4
|
-
"
|
|
2
|
+
"aboutHeader": "Wesprzyj ten adapter",
|
|
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
5
|
"apiKeyInfo": "Wprowadź klucz API parcel.app. Wymagana subskrypcja Premium. Uzyskaj klucz na web.parcelapp.net → panel API.",
|
|
6
|
-
"label_apiKey": "Klucz API",
|
|
7
6
|
"btn_checkConnection": "Testuj połączenie",
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"tooltip_pollInterval": "Jak często pobierać aktualizacje dostaw (5-60 minut, domyślnie: 10). Limit: 20 zapytań/godzinę.",
|
|
13
|
-
"label_filterMode": "Tryb filtrowania",
|
|
14
|
-
"tooltip_filterMode": "Aktywne: tylko bieżące dostawy. Ostatnie: w tym niedawno ukończone.",
|
|
15
|
-
"filterMode_active": "Tylko aktywne dostawy",
|
|
16
|
-
"filterMode_recent": "Ostatnie dostawy",
|
|
7
|
+
"donateKofi": "Wesprzyj na Ko-fi",
|
|
8
|
+
"donatePaypal": "Przekaż darowiznę przez PayPal",
|
|
9
|
+
"header_connection": "parcel.app API",
|
|
10
|
+
"header_delivery": "Dostawy",
|
|
17
11
|
"header_display": "Wyświetlanie",
|
|
12
|
+
"header_polling": "Odpytywanie",
|
|
13
|
+
"label_apiKey": "Klucz API",
|
|
14
|
+
"label_autoRemoveDelivered": "Automatycznie usuwaj dostarczone przesyłki",
|
|
18
15
|
"label_language": "Język statusów",
|
|
19
|
-
"
|
|
16
|
+
"label_pollInterval": "Interwał odpytywania (minuty)",
|
|
20
17
|
"lang_de": "Niemiecki",
|
|
21
18
|
"lang_en": "Angielski",
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
19
|
+
"msg_connectionFailed": "Połączenie nieudane!",
|
|
20
|
+
"msg_connectionOk": "Połączenie udane!",
|
|
21
|
+
"tooltip_autoRemoveDelivered": "Po włączeniu dostarczone przesyłki są automatycznie usuwane z drzewa stanów. Po wyłączeniu pozostają ze statusem 'Dostarczono' do usunięcia w parcel.app.",
|
|
22
|
+
"tooltip_language": "Język dla etykiet statusu dostawy",
|
|
23
|
+
"tooltip_pollInterval": "Jak często pobierać aktualizacje dostaw (5-60 minut, domyślnie: 10). Limit: 20 zapytań/godzinę."
|
|
27
24
|
}
|
|
@@ -1,27 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"
|
|
4
|
-
"
|
|
2
|
+
"aboutHeader": "Apoie este adaptador",
|
|
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
5
|
"apiKeyInfo": "Insira sua chave API do parcel.app. É necessária uma assinatura Premium. Obtenha sua chave em web.parcelapp.net → painel API.",
|
|
6
|
-
"label_apiKey": "Chave API",
|
|
7
6
|
"btn_checkConnection": "Testar Conexão",
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"tooltip_pollInterval": "Com que frequência buscar atualizações de entrega (5-60 minutos, padrão: 10). Limite: 20 solicitações/hora.",
|
|
13
|
-
"label_filterMode": "Modo de filtro",
|
|
14
|
-
"tooltip_filterMode": "Ativo: apenas entregas atuais. Recente: inclui entregas recentemente concluídas.",
|
|
15
|
-
"filterMode_active": "Apenas entregas ativas",
|
|
16
|
-
"filterMode_recent": "Entregas recentes",
|
|
7
|
+
"donateKofi": "Apoiar no Ko-fi",
|
|
8
|
+
"donatePaypal": "Doar via PayPal",
|
|
9
|
+
"header_connection": "parcel.app API",
|
|
10
|
+
"header_delivery": "Entregas",
|
|
17
11
|
"header_display": "Exibição",
|
|
12
|
+
"header_polling": "Consulta",
|
|
13
|
+
"label_apiKey": "Chave API",
|
|
14
|
+
"label_autoRemoveDelivered": "Remover automaticamente pacotes entregues",
|
|
18
15
|
"label_language": "Idioma do status",
|
|
19
|
-
"
|
|
16
|
+
"label_pollInterval": "Intervalo de consulta (minutos)",
|
|
20
17
|
"lang_de": "Alemão",
|
|
21
18
|
"lang_en": "Inglês",
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
19
|
+
"msg_connectionFailed": "Falha na conexão!",
|
|
20
|
+
"msg_connectionOk": "Conexão bem-sucedida!",
|
|
21
|
+
"tooltip_autoRemoveDelivered": "Quando ativado, os pacotes entregues são automaticamente removidos da árvore de estados. Quando desativado, permanecem com o estado 'Entregue' até serem eliminados no parcel.app.",
|
|
22
|
+
"tooltip_language": "Idioma para os rótulos de status de entrega",
|
|
23
|
+
"tooltip_pollInterval": "Com que frequência buscar atualizações de entrega (5-60 minutos, padrão: 10). Limite: 20 solicitações/hora."
|
|
27
24
|
}
|
|
@@ -1,27 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"
|
|
4
|
-
"
|
|
2
|
+
"aboutHeader": "Поддержите этот адаптер",
|
|
3
|
+
"aboutInfo": "Этот адаптер бесплатный и с открытым исходным кодом. Если он вам полезен, поддержите разработку небольшим пожертвованием.",
|
|
4
|
+
"aboutTab": "О программе",
|
|
5
5
|
"apiKeyInfo": "Введите API-ключ parcel.app. Требуется Premium-подписка. Получите ключ на web.parcelapp.net → раздел API.",
|
|
6
|
-
"label_apiKey": "API-ключ",
|
|
7
6
|
"btn_checkConnection": "Проверить соединение",
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"tooltip_pollInterval": "Как часто получать обновления доставки (5-60 минут, по умолчанию: 10). Лимит: 20 запросов/час.",
|
|
13
|
-
"label_filterMode": "Режим фильтра",
|
|
14
|
-
"tooltip_filterMode": "Активные: только текущие доставки. Недавние: включая недавно доставленные.",
|
|
15
|
-
"filterMode_active": "Только активные доставки",
|
|
16
|
-
"filterMode_recent": "Недавние доставки",
|
|
7
|
+
"donateKofi": "Поддержать на Ko-fi",
|
|
8
|
+
"donatePaypal": "Пожертвовать через PayPal",
|
|
9
|
+
"header_connection": "parcel.app API",
|
|
10
|
+
"header_delivery": "Доставки",
|
|
17
11
|
"header_display": "Отображение",
|
|
12
|
+
"header_polling": "Опрос",
|
|
13
|
+
"label_apiKey": "API-ключ",
|
|
14
|
+
"label_autoRemoveDelivered": "Автоматически удалять доставленные посылки",
|
|
18
15
|
"label_language": "Язык статусов",
|
|
19
|
-
"
|
|
16
|
+
"label_pollInterval": "Интервал опроса (минуты)",
|
|
20
17
|
"lang_de": "Немецкий",
|
|
21
18
|
"lang_en": "Английский",
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
19
|
+
"msg_connectionFailed": "Ошибка соединения!",
|
|
20
|
+
"msg_connectionOk": "Соединение успешно!",
|
|
21
|
+
"tooltip_autoRemoveDelivered": "Если включено, доставленные посылки автоматически удаляются из дерева состояний. Если выключено, они остаются со статусом 'Доставлено' до удаления в parcel.app.",
|
|
22
|
+
"tooltip_language": "Язык для статусов доставки",
|
|
23
|
+
"tooltip_pollInterval": "Как часто получать обновления доставки (5-60 минут, по умолчанию: 10). Лимит: 20 запросов/час."
|
|
27
24
|
}
|
|
@@ -1,27 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"
|
|
4
|
-
"
|
|
2
|
+
"aboutHeader": "Підтримайте цей адаптер",
|
|
3
|
+
"aboutInfo": "Цей адаптер безкоштовний та з відкритим кодом. Якщо він вам корисний, підтримайте розробку невеликою пожертвою.",
|
|
4
|
+
"aboutTab": "Про програму",
|
|
5
5
|
"apiKeyInfo": "Введіть ваш API-ключ parcel.app. Потрібна Premium-підписка. Отримайте ключ на web.parcelapp.net → панель API.",
|
|
6
|
-
"label_apiKey": "API-ключ",
|
|
7
6
|
"btn_checkConnection": "Перевірити з'єднання",
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"tooltip_pollInterval": "Як часто отримувати оновлення доставки (5-60 хвилин, за замовчуванням: 10). Ліміт: 20 запитів/годину.",
|
|
13
|
-
"label_filterMode": "Режим фільтрування",
|
|
14
|
-
"tooltip_filterMode": "Активні: лише поточні доставки. Нещодавні: включно з нещодавно завершеними.",
|
|
15
|
-
"filterMode_active": "Лише активні доставки",
|
|
16
|
-
"filterMode_recent": "Нещодавні доставки",
|
|
7
|
+
"donateKofi": "Підтримати на Ko-fi",
|
|
8
|
+
"donatePaypal": "Пожертвувати через PayPal",
|
|
9
|
+
"header_connection": "parcel.app API",
|
|
10
|
+
"header_delivery": "Доставки",
|
|
17
11
|
"header_display": "Відображення",
|
|
12
|
+
"header_polling": "Опитування",
|
|
13
|
+
"label_apiKey": "API-ключ",
|
|
14
|
+
"label_autoRemoveDelivered": "Автоматично видаляти доставлені посилки",
|
|
18
15
|
"label_language": "Мова статусів",
|
|
19
|
-
"
|
|
16
|
+
"label_pollInterval": "Інтервал опитування (хвилини)",
|
|
20
17
|
"lang_de": "Німецька",
|
|
21
18
|
"lang_en": "Англійська",
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
19
|
+
"msg_connectionFailed": "Помилка з'єднання!",
|
|
20
|
+
"msg_connectionOk": "З'єднання успішне!",
|
|
21
|
+
"tooltip_autoRemoveDelivered": "Якщо увімкнено, доставлені посилки автоматично видаляються з дерева станів. Якщо вимкнено, вони залишаються зі статусом 'Доставлено' до видалення в parcel.app.",
|
|
22
|
+
"tooltip_language": "Мова для міток статусу доставки",
|
|
23
|
+
"tooltip_pollInterval": "Як часто отримувати оновлення доставки (5-60 хвилин, за замовчуванням: 10). Ліміт: 20 запитів/годину."
|
|
27
24
|
}
|
|
@@ -1,27 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"
|
|
4
|
-
"
|
|
2
|
+
"aboutHeader": "支持此适配器",
|
|
3
|
+
"aboutInfo": "此适配器免费且开源。如果您觉得有用,请考虑通过小额捐赠支持开发。",
|
|
4
|
+
"aboutTab": "关于",
|
|
5
5
|
"apiKeyInfo": "输入你的 parcel.app API 密钥。需要 Premium 订阅。在 web.parcelapp.net → API 面板获取密钥。",
|
|
6
|
-
"label_apiKey": "API 密钥",
|
|
7
6
|
"btn_checkConnection": "测试连接",
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"tooltip_pollInterval": "多久获取一次快递更新(5-60分钟,默认:10)。速率限制:20次请求/小时。",
|
|
13
|
-
"label_filterMode": "过滤模式",
|
|
14
|
-
"tooltip_filterMode": "活跃:仅当前快递。最近:包括最近完成的。",
|
|
15
|
-
"filterMode_active": "仅活跃快递",
|
|
16
|
-
"filterMode_recent": "最近的快递",
|
|
7
|
+
"donateKofi": "在 Ko-fi 上支持",
|
|
8
|
+
"donatePaypal": "通过 PayPal 捐赠",
|
|
9
|
+
"header_connection": "parcel.app API",
|
|
10
|
+
"header_delivery": "配送",
|
|
17
11
|
"header_display": "显示",
|
|
12
|
+
"header_polling": "轮询",
|
|
13
|
+
"label_apiKey": "API 密钥",
|
|
14
|
+
"label_autoRemoveDelivered": "自动移除已送达的包裹",
|
|
18
15
|
"label_language": "状态语言",
|
|
19
|
-
"
|
|
16
|
+
"label_pollInterval": "轮询间隔(分钟)",
|
|
20
17
|
"lang_de": "德语",
|
|
21
18
|
"lang_en": "英语",
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
19
|
+
"msg_connectionFailed": "连接失败!",
|
|
20
|
+
"msg_connectionOk": "连接成功!",
|
|
21
|
+
"tooltip_autoRemoveDelivered": "启用后,已送达的包裹会自动从状态树中移除。禁用后,它们将保持'已送达'状态,直到在 parcel.app 中删除。",
|
|
22
|
+
"tooltip_language": "快递状态标签的语言",
|
|
23
|
+
"tooltip_pollInterval": "多久获取一次快递更新(5-60分钟,默认:10)。速率限制:20次请求/小时。"
|
|
27
24
|
}
|
package/admin/jsonConfig.json
CHANGED
|
@@ -1,131 +1,116 @@
|
|
|
1
1
|
{
|
|
2
2
|
"i18n": true,
|
|
3
|
-
"type": "
|
|
3
|
+
"type": "panel",
|
|
4
4
|
"items": {
|
|
5
|
-
"
|
|
6
|
-
"type": "
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
"connectionHeader": {
|
|
10
|
-
"type": "header",
|
|
11
|
-
"text": "header_connection",
|
|
12
|
-
"size": 4
|
|
13
|
-
},
|
|
14
|
-
"apiKeyInfo": {
|
|
15
|
-
"type": "staticText",
|
|
16
|
-
"text": "apiKeyInfo",
|
|
17
|
-
"xs": 12, "sm": 12, "md": 12, "lg": 12, "xl": 12,
|
|
18
|
-
"style": {
|
|
19
|
-
"fontSize": 14,
|
|
20
|
-
"color": "#666",
|
|
21
|
-
"marginBottom": 16
|
|
22
|
-
}
|
|
23
|
-
},
|
|
24
|
-
"apiKey": {
|
|
25
|
-
"type": "password",
|
|
26
|
-
"label": "label_apiKey",
|
|
27
|
-
"xs": 12, "sm": 12, "md": 8, "lg": 8, "xl": 8
|
|
28
|
-
},
|
|
29
|
-
"checkConnection": {
|
|
30
|
-
"newLine": true,
|
|
31
|
-
"type": "sendTo",
|
|
32
|
-
"label": "btn_checkConnection",
|
|
33
|
-
"command": "checkConnection",
|
|
34
|
-
"jsonData": "{\"apiKey\": \"${data.apiKey}\"}",
|
|
35
|
-
"result": {
|
|
36
|
-
"okText": "msg_connectionOk",
|
|
37
|
-
"errorText": "msg_connectionFailed"
|
|
38
|
-
},
|
|
39
|
-
"xs": 12, "sm": 12, "md": 4, "lg": 4, "xl": 4
|
|
40
|
-
}
|
|
41
|
-
}
|
|
5
|
+
"connectionHeader": {
|
|
6
|
+
"type": "header",
|
|
7
|
+
"text": "header_connection",
|
|
8
|
+
"size": 4
|
|
42
9
|
},
|
|
43
|
-
"
|
|
44
|
-
"type": "
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
},
|
|
52
|
-
"pollInterval": {
|
|
53
|
-
"type": "number",
|
|
54
|
-
"label": "label_pollInterval",
|
|
55
|
-
"tooltip": "tooltip_pollInterval",
|
|
56
|
-
"min": 5,
|
|
57
|
-
"max": 60,
|
|
58
|
-
"default": 10,
|
|
59
|
-
"xs": 12, "sm": 12, "md": 6, "lg": 6, "xl": 6
|
|
60
|
-
},
|
|
61
|
-
"filterMode": {
|
|
62
|
-
"type": "select",
|
|
63
|
-
"label": "label_filterMode",
|
|
64
|
-
"tooltip": "tooltip_filterMode",
|
|
65
|
-
"default": "active",
|
|
66
|
-
"options": [
|
|
67
|
-
{ "label": "filterMode_active", "value": "active" },
|
|
68
|
-
{ "label": "filterMode_recent", "value": "recent" }
|
|
69
|
-
],
|
|
70
|
-
"xs": 12, "sm": 12, "md": 6, "lg": 6, "xl": 6
|
|
71
|
-
},
|
|
72
|
-
"displayHeader": {
|
|
73
|
-
"newLine": true,
|
|
74
|
-
"type": "header",
|
|
75
|
-
"text": "header_display",
|
|
76
|
-
"size": 5
|
|
77
|
-
},
|
|
78
|
-
"language": {
|
|
79
|
-
"type": "select",
|
|
80
|
-
"label": "label_language",
|
|
81
|
-
"tooltip": "tooltip_language",
|
|
82
|
-
"default": "de",
|
|
83
|
-
"options": [
|
|
84
|
-
{ "label": "lang_de", "value": "de" },
|
|
85
|
-
{ "label": "lang_en", "value": "en" }
|
|
86
|
-
],
|
|
87
|
-
"xs": 12, "sm": 12, "md": 6, "lg": 6, "xl": 6
|
|
88
|
-
}
|
|
10
|
+
"apiKeyInfo": {
|
|
11
|
+
"type": "staticText",
|
|
12
|
+
"text": "apiKeyInfo",
|
|
13
|
+
"xs": 12, "sm": 12, "md": 12, "lg": 12, "xl": 12,
|
|
14
|
+
"style": {
|
|
15
|
+
"fontSize": 14,
|
|
16
|
+
"color": "#666",
|
|
17
|
+
"marginBottom": 16
|
|
89
18
|
}
|
|
90
19
|
},
|
|
91
|
-
"
|
|
92
|
-
"type": "
|
|
93
|
-
"label": "
|
|
94
|
-
"
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
20
|
+
"apiKey": {
|
|
21
|
+
"type": "password",
|
|
22
|
+
"label": "label_apiKey",
|
|
23
|
+
"xs": 12, "sm": 12, "md": 8, "lg": 8, "xl": 8
|
|
24
|
+
},
|
|
25
|
+
"checkConnection": {
|
|
26
|
+
"newLine": true,
|
|
27
|
+
"type": "sendTo",
|
|
28
|
+
"label": "btn_checkConnection",
|
|
29
|
+
"command": "checkConnection",
|
|
30
|
+
"jsonData": "{\"apiKey\": \"${data.apiKey}\"}",
|
|
31
|
+
"result": {
|
|
32
|
+
"okText": "msg_connectionOk",
|
|
33
|
+
"errorText": "msg_connectionFailed"
|
|
34
|
+
},
|
|
35
|
+
"xs": 12, "sm": 12, "md": 4, "lg": 4, "xl": 4
|
|
36
|
+
},
|
|
37
|
+
"pollingHeader": {
|
|
38
|
+
"newLine": true,
|
|
39
|
+
"type": "header",
|
|
40
|
+
"text": "header_polling",
|
|
41
|
+
"size": 5
|
|
42
|
+
},
|
|
43
|
+
"pollInterval": {
|
|
44
|
+
"type": "number",
|
|
45
|
+
"label": "label_pollInterval",
|
|
46
|
+
"tooltip": "tooltip_pollInterval",
|
|
47
|
+
"min": 5,
|
|
48
|
+
"max": 60,
|
|
49
|
+
"default": 10,
|
|
50
|
+
"xs": 12, "sm": 12, "md": 6, "lg": 6, "xl": 6
|
|
51
|
+
},
|
|
52
|
+
"deliveryHeader": {
|
|
53
|
+
"newLine": true,
|
|
54
|
+
"type": "header",
|
|
55
|
+
"text": "header_delivery",
|
|
56
|
+
"size": 5
|
|
57
|
+
},
|
|
58
|
+
"autoRemoveDelivered": {
|
|
59
|
+
"type": "checkbox",
|
|
60
|
+
"label": "label_autoRemoveDelivered",
|
|
61
|
+
"tooltip": "tooltip_autoRemoveDelivered",
|
|
62
|
+
"default": true,
|
|
63
|
+
"xs": 12, "sm": 12, "md": 12, "lg": 12, "xl": 12
|
|
64
|
+
},
|
|
65
|
+
"displayHeader": {
|
|
66
|
+
"newLine": true,
|
|
67
|
+
"type": "header",
|
|
68
|
+
"text": "header_display",
|
|
69
|
+
"size": 5
|
|
70
|
+
},
|
|
71
|
+
"language": {
|
|
72
|
+
"type": "select",
|
|
73
|
+
"label": "label_language",
|
|
74
|
+
"tooltip": "tooltip_language",
|
|
75
|
+
"default": "de",
|
|
76
|
+
"options": [
|
|
77
|
+
{ "label": "lang_de", "value": "de" },
|
|
78
|
+
{ "label": "lang_en", "value": "en" }
|
|
79
|
+
],
|
|
80
|
+
"xs": 12, "sm": 12, "md": 6, "lg": 6, "xl": 6
|
|
81
|
+
},
|
|
82
|
+
"aboutHeader": {
|
|
83
|
+
"newLine": true,
|
|
84
|
+
"type": "header",
|
|
85
|
+
"text": "aboutHeader",
|
|
86
|
+
"size": 5
|
|
87
|
+
},
|
|
88
|
+
"aboutInfo": {
|
|
89
|
+
"type": "staticText",
|
|
90
|
+
"text": "aboutInfo",
|
|
91
|
+
"xs": 12, "sm": 12, "md": 12, "lg": 12, "xl": 12,
|
|
92
|
+
"style": {
|
|
93
|
+
"fontSize": 14,
|
|
94
|
+
"marginBottom": 16
|
|
128
95
|
}
|
|
96
|
+
},
|
|
97
|
+
"_kofiLink": {
|
|
98
|
+
"type": "staticLink",
|
|
99
|
+
"href": "https://ko-fi.com/krobipd",
|
|
100
|
+
"label": "donateKofi",
|
|
101
|
+
"button": true,
|
|
102
|
+
"variant": "outlined",
|
|
103
|
+
"color": "primary",
|
|
104
|
+
"xs": 12, "sm": 6, "md": 4, "lg": 4, "xl": 4
|
|
105
|
+
},
|
|
106
|
+
"_paypalLink": {
|
|
107
|
+
"type": "staticLink",
|
|
108
|
+
"href": "https://paypal.me/krobipd",
|
|
109
|
+
"label": "donatePaypal",
|
|
110
|
+
"button": true,
|
|
111
|
+
"variant": "outlined",
|
|
112
|
+
"color": "primary",
|
|
113
|
+
"xs": 12, "sm": 6, "md": 4, "lg": 4, "xl": 4
|
|
129
114
|
}
|
|
130
115
|
}
|
|
131
116
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-manager.d.ts","sourceRoot":"","sources":["../../src/lib/state-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAqB9C,oDAAoD;AACpD,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAkB;IAEjC,mDAAmD;gBACvC,OAAO,EAAE,eAAe;IAIpC;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAU9B;;;;OAIG;IACH,SAAS,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM;IAQ3C;;;;;OAKG;IACG,cAAc,CAClB,QAAQ,EAAE,cAAc,EACxB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IAiGhB;;;;OAIG;IACG,aAAa,CAAC,gBAAgB,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"state-manager.d.ts","sourceRoot":"","sources":["../../src/lib/state-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAqB9C,oDAAoD;AACpD,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAkB;IAEjC,mDAAmD;gBACvC,OAAO,EAAE,eAAe;IAIpC;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAU9B;;;;OAIG;IACH,SAAS,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM;IAQ3C;;;;;OAKG;IACG,cAAc,CAClB,QAAQ,EAAE,cAAc,EACxB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IAiGhB;;;;OAIG;IACG,aAAa,CAAC,gBAAgB,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsCtE;;;;OAIG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB3D;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;IA2B/B;;;;;OAKG;IACH,OAAO,CAAC,yBAAyB;IAiDjC;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAevB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAO3B;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IAkC/B;;;;;;;;OAQG;YACW,YAAY;CAc3B"}
|
|
@@ -102,7 +102,6 @@ class StateManager {
|
|
|
102
102
|
this.createAndSet("summary.activeCount", "Active Deliveries", "number", "value", activeDeliveries.length),
|
|
103
103
|
this.createAndSet("summary.todayCount", "Deliveries Today", "number", "value", todayDeliveries.length),
|
|
104
104
|
this.createAndSet("summary.deliveryWindow", "Combined Delivery Window", "string", "text", this.calculateCombinedWindow(todayDeliveries)),
|
|
105
|
-
this.createAndSet("summary.json", "All Deliveries (JSON)", "string", "json", JSON.stringify(activeDeliveries)),
|
|
106
105
|
]);
|
|
107
106
|
}
|
|
108
107
|
/**
|
package/build/lib/types.d.ts
CHANGED
|
@@ -76,10 +76,10 @@ declare global {
|
|
|
76
76
|
apiKey: string;
|
|
77
77
|
/** Polling interval in minutes */
|
|
78
78
|
pollInterval: number;
|
|
79
|
-
/** Filter mode for deliveries */
|
|
80
|
-
filterMode: "active" | "recent";
|
|
81
79
|
/** Language for status labels */
|
|
82
80
|
language: "de" | "en";
|
|
81
|
+
/** Automatically remove delivered packages from states */
|
|
82
|
+
autoRemoveDelivered: boolean;
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
85
|
}
|
package/build/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,MAAM,WAAW,iBAAiB;IAChC,yCAAyC;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,sCAAsC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mCAAmC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;CAC/B;AAED,8CAA8C;AAC9C,MAAM,WAAW,cAAc;IAC7B,yBAAyB;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,sCAAsC;IACtC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,6BAA6B;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iCAAiC;IACjC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uCAAuC;IACvC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,2CAA2C;IAC3C,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,qCAAqC;IACrC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,4BAA4B;AAC5B,MAAM,WAAW,WAAW;IAC1B,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yBAAyB;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,yCAAyC;AACzC,MAAM,WAAW,kBAAkB;IACjC,6BAA6B;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,gCAAgC;AAChC,MAAM,WAAW,mBAAmB;IAClC,qCAAqC;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,8BAA8B;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,0DAA0D;AAC1D,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEhD,4CAA4C;AAC5C,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAUnD,CAAC;AAEF,6CAA6C;AAC7C,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAUnD,CAAC;AAGF,OAAO,CAAC,MAAM,CAAC;IAEb,UAAU,QAAQ,CAAC;QACjB,UAAU,aAAa;YACrB,yBAAyB;YACzB,MAAM,EAAE,MAAM,CAAC;YACf,kCAAkC;YAClC,YAAY,EAAE,MAAM,CAAC;YACrB,iCAAiC;YACjC,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,MAAM,WAAW,iBAAiB;IAChC,yCAAyC;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,sCAAsC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mCAAmC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;CAC/B;AAED,8CAA8C;AAC9C,MAAM,WAAW,cAAc;IAC7B,yBAAyB;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,sCAAsC;IACtC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,6BAA6B;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iCAAiC;IACjC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uCAAuC;IACvC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,2CAA2C;IAC3C,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,qCAAqC;IACrC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,4BAA4B;AAC5B,MAAM,WAAW,WAAW;IAC1B,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yBAAyB;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,yCAAyC;AACzC,MAAM,WAAW,kBAAkB;IACjC,6BAA6B;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,gCAAgC;AAChC,MAAM,WAAW,mBAAmB;IAClC,qCAAqC;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,8BAA8B;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,0DAA0D;AAC1D,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEhD,4CAA4C;AAC5C,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAUnD,CAAC;AAEF,6CAA6C;AAC7C,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAUnD,CAAC;AAGF,OAAO,CAAC,MAAM,CAAC;IAEb,UAAU,QAAQ,CAAC;QACjB,UAAU,aAAa;YACrB,yBAAyB;YACzB,MAAM,EAAE,MAAM,CAAC;YACf,kCAAkC;YAClC,YAAY,EAAE,MAAM,CAAC;YACrB,iCAAiC;YACjC,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC;YACtB,0DAA0D;YAC1D,mBAAmB,EAAE,OAAO,CAAC;SAC9B;KACF;CACF"}
|
package/build/main.js
CHANGED
|
@@ -67,6 +67,8 @@ class ParcelappAdapter extends utils.Adapter {
|
|
|
67
67
|
// Initialize
|
|
68
68
|
this.client = new parcel_client_1.ParcelClient(apiKey.trim());
|
|
69
69
|
this.stateManager = new state_manager_1.StateManager(this);
|
|
70
|
+
// Cleanup obsolete states
|
|
71
|
+
await this.cleanupObsoleteStates();
|
|
70
72
|
// Initial poll
|
|
71
73
|
await this.poll();
|
|
72
74
|
// Set up recurring poll
|
|
@@ -124,29 +126,47 @@ class ParcelappAdapter extends utils.Adapter {
|
|
|
124
126
|
this.sendTo(obj.from, obj.command, { error: "Unknown command" }, obj.callback);
|
|
125
127
|
}
|
|
126
128
|
}
|
|
129
|
+
async cleanupObsoleteStates() {
|
|
130
|
+
const obsoleteStates = [
|
|
131
|
+
"summary.json", // removed in 0.2.0
|
|
132
|
+
];
|
|
133
|
+
for (const stateId of obsoleteStates) {
|
|
134
|
+
const obj = await this.getObjectAsync(stateId);
|
|
135
|
+
if (obj) {
|
|
136
|
+
await this.delObjectAsync(stateId);
|
|
137
|
+
this.log.debug(`Removed obsolete state: ${stateId}`);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
127
141
|
async poll() {
|
|
128
142
|
if (this.isPolling || !this.client || !this.stateManager) {
|
|
129
143
|
return;
|
|
130
144
|
}
|
|
131
145
|
this.isPolling = true;
|
|
132
146
|
try {
|
|
133
|
-
|
|
134
|
-
const
|
|
147
|
+
// When keeping delivered packages, use "recent" to get them from API
|
|
148
|
+
const autoRemove = this.config.autoRemoveDelivered !== false;
|
|
149
|
+
const deliveries = await this.client.getDeliveries(autoRemove ? "active" : "recent");
|
|
135
150
|
await this.setStateAsync("info.connection", { val: true, ack: true });
|
|
136
|
-
// Filter
|
|
137
|
-
const
|
|
151
|
+
// Filter deliveries based on auto-remove setting
|
|
152
|
+
const visibleDeliveries = autoRemove
|
|
153
|
+
? deliveries.filter((d) => parseInt(d.status_code, 10) !== 0)
|
|
154
|
+
: deliveries;
|
|
138
155
|
// Update each delivery
|
|
139
156
|
const activeIds = [];
|
|
140
|
-
for (const delivery of
|
|
157
|
+
for (const delivery of visibleDeliveries) {
|
|
141
158
|
const carrierName = await this.client.getCarrierName(delivery.carrier_code);
|
|
142
159
|
await this.stateManager.updateDelivery(delivery, carrierName);
|
|
143
160
|
activeIds.push(this.stateManager.packageId(delivery));
|
|
144
161
|
}
|
|
145
162
|
// Cleanup stale deliveries
|
|
146
163
|
await this.stateManager.cleanupDeliveries(activeIds);
|
|
147
|
-
// Update summary
|
|
148
|
-
|
|
149
|
-
|
|
164
|
+
// Update summary
|
|
165
|
+
const summaryDeliveries = autoRemove
|
|
166
|
+
? visibleDeliveries
|
|
167
|
+
: deliveries.filter((d) => parseInt(d.status_code, 10) !== 0);
|
|
168
|
+
await this.stateManager.updateSummary(summaryDeliveries);
|
|
169
|
+
this.log.debug(`Polled ${visibleDeliveries.length} deliveries (${summaryDeliveries.length} active)`);
|
|
150
170
|
}
|
|
151
171
|
catch (err) {
|
|
152
172
|
const error = err;
|
package/io-package.json
CHANGED
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "parcelapp",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.2.0",
|
|
5
5
|
"news": {
|
|
6
|
+
"0.2.0": {
|
|
7
|
+
"en": "Added option to keep delivered packages, simplified admin UI, removed summary.json state",
|
|
8
|
+
"de": "Option zum Beibehalten gelieferter Pakete hinzugefügt, Admin-Benutzeroberfläche vereinfacht, Status „summary.json“ entfernt",
|
|
9
|
+
"ru": "Добавлена опция сохранения доставленных пакетов, упрощен пользовательский интерфейс администратора, удалено состояние summary.json.",
|
|
10
|
+
"pt": "Adicionada opção para manter pacotes entregues, UI de administração simplificada, estado summary.json removido",
|
|
11
|
+
"nl": "Optie toegevoegd om afgeleverde pakketten te behouden, vereenvoudigde beheerdersinterface, verwijderde summary.json-status",
|
|
12
|
+
"fr": "Ajout d'une option pour conserver les packages livrés, interface utilisateur d'administration simplifiée, suppression de l'état summary.json",
|
|
13
|
+
"it": "Aggiunta opzione per mantenere i pacchetti consegnati, interfaccia utente di amministrazione semplificata, stato summary.json rimosso",
|
|
14
|
+
"es": "Opción agregada para conservar los paquetes entregados, interfaz de usuario de administración simplificada, estado de resumen.json eliminado",
|
|
15
|
+
"pl": "Dodano opcję przechowywania dostarczonych paczek, uproszczony interfejs administratora, usunięto stan podsumowania.json",
|
|
16
|
+
"uk": "Додано параметр збереження доставлених пакетів, спрощений інтерфейс адміністратора, видалено стан summary.json",
|
|
17
|
+
"zh-cn": "添加了保留已交付包的选项,简化了管理 UI,删除了summary.json 状态"
|
|
18
|
+
},
|
|
6
19
|
"0.1.5": {
|
|
7
20
|
"en": "Added auto-merge config, weekly Dependabot schedule, actions/checkout v6",
|
|
8
21
|
"de": "Auto-Merge-Konfiguration hinzugefügt, wöchentlicher Dependabot-Zeitplan, actions/checkout v6",
|
|
@@ -161,8 +174,8 @@
|
|
|
161
174
|
"native": {
|
|
162
175
|
"apiKey": "",
|
|
163
176
|
"pollInterval": 10,
|
|
164
|
-
"
|
|
165
|
-
"
|
|
177
|
+
"language": "de",
|
|
178
|
+
"autoRemoveDelivered": true
|
|
166
179
|
},
|
|
167
180
|
"instanceObjects": [
|
|
168
181
|
{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iobroker.parcelapp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "ioBroker adapter for parcel.app — track packages from 300+ carriers",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "krobi",
|
|
@@ -61,6 +61,7 @@
|
|
|
61
61
|
"test:integration": "npm run build:test && mocha --exit \"build/test/**/*.js\"",
|
|
62
62
|
"test": "npm run build:test && mocha --exit \"build/test/**/*.js\"",
|
|
63
63
|
"test:ci": "npm run build:test && mocha --exit --reporter spec \"build/test/**/*.js\"",
|
|
64
|
+
"translate": "translate-adapter",
|
|
64
65
|
"lint": "eslint",
|
|
65
66
|
"lint:fix": "eslint --fix",
|
|
66
67
|
"release": "release-script"
|