iobroker.parcel 0.2.2 → 0.2.6

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/io-package.json CHANGED
@@ -1,8 +1,12 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "parcel",
4
- "version": "0.2.2",
4
+ "version": "0.2.6",
5
5
  "news": {
6
+ "0.2.6": {
7
+ "en": "Improve DHL Status and add link to shipment in the telegram notification",
8
+ "de": "Verbesserung des DHL Status und Link zur Sendung in der Telegram Benachrichtigung hinzugefügt"
9
+ },
6
10
  "0.2.2": {
7
11
  "en": "Improvment for Amazon Login and fix for Briefaanündigung Image",
8
12
  "de": "Verbesserung für Amazon Login und Fix für Briefankündigung Image State"
package/main.js CHANGED
@@ -1708,11 +1708,13 @@ class Parcel extends utils.Adapter {
1708
1708
  if (sendung.sendungsdetails && sendung.sendungsdetails.sendungsverlauf && sendung.sendungsdetails.sendungsverlauf.kurzStatus) {
1709
1709
  status = sendung.sendungsdetails.sendungsverlauf.kurzStatus;
1710
1710
  }
1711
- if (sendung.sendungsdetails && sendung.sendungsdetails.liveTrackingVerfuegbar && sendung.sendungsdetails.liveTracking) {
1711
+ if (sendung.sendungsdetails && sendung.sendungsdetails.liveTracking) {
1712
1712
  status = status + ' ' + sendung.sendungsdetails.liveTracking.countdown + ' Stopps';
1713
1713
  }
1714
- if (status === '') {
1715
- return;
1714
+ if (sendung.sendungsdetails && sendung.sendungsdetails.zustellung && sendung.sendungsdetails.zustellung.zustellzeitfensterBis) {
1715
+ const bisDate = new Date(sendung.sendungsdetails.zustellung.zustellzeitfensterBis).toLocaleTimeString('de-DE');
1716
+ const vonDate = new Date(sendung.sendungsdetails.zustellung.zustellzeitfensterVon).toLocaleTimeString('de-DE');
1717
+ status = status + ' ' + vonDate + '-' + bisDate;
1716
1718
  }
1717
1719
  const name = sendung.sendungsinfo.sendungsname || 'Unbekannt';
1718
1720
 
@@ -1778,6 +1780,7 @@ class Parcel extends utils.Adapter {
1778
1780
  }
1779
1781
  const sendungsObject = {
1780
1782
  id: sendung.id,
1783
+ tracking: sendung.order,
1781
1784
  name: name,
1782
1785
  status: sendung.status.text.longText || '',
1783
1786
  source: 'Hermes',
@@ -1821,7 +1824,13 @@ class Parcel extends utils.Adapter {
1821
1824
  }
1822
1825
  if (id === 'amz' && data && data.sendungen) {
1823
1826
  const sendungsArray = data.sendungen.map((sendung) => {
1824
- const sendungsObject = { id: sendung.id, name: sendung.name, status: sendung.status, source: 'AMZ' };
1827
+ const sendungsObject = {
1828
+ id: sendung.id,
1829
+ name: sendung.name,
1830
+ status: sendung.status,
1831
+ source: 'AMZ',
1832
+ tracking: sendung.detailedState.signInRedirectUrl,
1833
+ };
1825
1834
 
1826
1835
  sendungsObject.delivery_status = this.deliveryStatusCheck(sendung, id, sendungsObject);
1827
1836
  if (sendungsObject.delivery_status === this.delivery_status.OUT_FOR_DELIVERY) {
@@ -1899,7 +1908,7 @@ class Parcel extends utils.Adapter {
1899
1908
  const sendInstances = this.config.sendToInstance.replace(/ /g, '').split(',');
1900
1909
  const sendUser = this.config.sendToUser.replace(/ /g, '').split(',');
1901
1910
  for (const sendInstance of sendInstances) {
1902
- const text = '📦 ' + sendungen[id].source + ' ' + sendungen[id].name + '\n' + sendungen[id].status;
1911
+ let text = '📦 ' + sendungen[id].source + ' ' + sendungen[id].name + '\n' + sendungen[id].status;
1903
1912
  if (sendUser.length > 0) {
1904
1913
  for (const user of sendUser) {
1905
1914
  if (sendInstance.includes('pushover')) {
@@ -1913,6 +1922,37 @@ class Parcel extends utils.Adapter {
1913
1922
  text: text,
1914
1923
  phone: user,
1915
1924
  });
1925
+ } else if (sendInstance.includes('telegram')) {
1926
+ let url = '';
1927
+ let trackingId = sendungen[id].tracking || id;
1928
+ if (sendungen[id].source === 'DHL') {
1929
+ url = 'https://www.dhl.de/de/privatkunden/dhl-sendungsverfolgung.html?piececode=' + trackingId;
1930
+ }
1931
+ if (sendungen[id].source === 'AMZ') {
1932
+ url = 'https://www.amazon.de' + trackingId;
1933
+ }
1934
+ if (sendungen[id].source === 'GLS') {
1935
+ url = 'https://gls-group.eu/DE/de/paketverfolgung?match=' + trackingId;
1936
+ }
1937
+ if (sendungen[id].source === 'DPD') {
1938
+ url = 'https://tracking.dpd.de/parcelstatus?query=' + trackingId;
1939
+ }
1940
+ if (sendungen[id].source === 'UPS') {
1941
+ url = 'https://www.ups.com/track?loc=de_DE&tracknum=' + trackingId;
1942
+ }
1943
+ if (sendungen[id].source === 'Hermes') {
1944
+ url = 'https://www.myhermes.de/empfangen/sendungsverfolgung/sendungsinformation/?trackingnumber=' + trackingId;
1945
+ }
1946
+ let name = sendungen[id].name;
1947
+ if (name != null && name.replace) {
1948
+ name = name.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
1949
+ }
1950
+ let status = sendungen[id].status;
1951
+ if (status != null && status.replace) {
1952
+ status = status.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
1953
+ }
1954
+ text = '📦 <a href="' + url + '">' + sendungen[id].source + '</a> ' + name + '\n' + status;
1955
+ await this.sendToAsync(sendInstance, { user: user, text: text, disable_web_page_preview: true, parse_mode: 'HTML' });
1916
1956
  } else {
1917
1957
  await this.sendToAsync(sendInstance, { user: user, text: text });
1918
1958
  }
@@ -2741,6 +2781,17 @@ class Parcel extends utils.Adapter {
2741
2781
  }
2742
2782
  }
2743
2783
  } else {
2784
+ await this.extendObjectAsync(id.replace('image_url', 'image'), {
2785
+ type: 'state',
2786
+ common: {
2787
+ name: 'Image Base64 Decrypted from URL',
2788
+ write: false,
2789
+ read: true,
2790
+ type: 'string',
2791
+ role: 'state',
2792
+ },
2793
+ native: {},
2794
+ });
2744
2795
  this.setState(id.replace('image_url', 'image'), imageBase64, true);
2745
2796
  }
2746
2797
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.parcel",
3
- "version": "0.2.2",
3
+ "version": "0.2.6",
4
4
  "description": "Parcel tracking",
5
5
  "author": {
6
6
  "name": "TA2k",
@@ -29,28 +29,28 @@
29
29
  "axios": "^1.6.2",
30
30
  "http-cookie-agent": "^5.0.4",
31
31
  "jsdom": "^21.1.2",
32
- "json2iob": "^2.4.8",
32
+ "json2iob": "^2.4.11",
33
33
  "qs": "^6.11.2",
34
34
  "tough-cookie": "^4.1.3",
35
35
  "uuid": "^9.0.1"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@iobroker/testing": "^4.1.0",
39
- "@types/chai": "^4.3.10",
39
+ "@types/chai": "^4.3.11",
40
40
  "@types/chai-as-promised": "^7.1.8",
41
- "@types/mocha": "^10.0.4",
42
- "@types/node": "^20.9.1",
41
+ "@types/mocha": "^10.0.6",
42
+ "@types/node": "^20.10.4",
43
43
  "@types/proxyquire": "^1.3.31",
44
44
  "@types/sinon": "^10.0.20",
45
45
  "@types/sinon-chai": "^3.2.12",
46
46
  "chai": "^4.3.10",
47
47
  "chai-as-promised": "^7.1.1",
48
- "eslint": "^8.53.0",
48
+ "eslint": "^8.55.0",
49
49
  "mocha": "^10.2.0",
50
50
  "proxyquire": "^2.1.3",
51
51
  "sinon": "^15.2.0",
52
52
  "sinon-chai": "^3.7.0",
53
- "typescript": "~5.2.2"
53
+ "typescript": "~5.3.3"
54
54
  },
55
55
  "main": "main.js",
56
56
  "files": [