universal-parcel-scraper 0.121.0-main.1069 → 0.123.0-main.1075
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 +2 -2
- package/data/catalog.json +31 -6
- package/data/coverage-summary.json +1 -1
- package/data/detection-golden.json +144 -0
- package/dist/browser/scraper.js +21 -6
- package/dist/carriers/epost-global/adapter.d.ts +15 -0
- package/dist/carriers/epost-global/adapter.js +38 -0
- package/dist/carriers/epost-global/carrier.json +71 -10
- package/dist/carriers/epost-global/numbers.json +228 -0
- package/dist/carriers/epost-global/parser.d.ts +14 -0
- package/dist/carriers/epost-global/parser.js +212 -0
- package/dist/carriers/epost-global/status.d.ts +13 -0
- package/dist/carriers/epost-global/status.js +55 -0
- package/dist/carriers/epost-global/statuses.json +14 -1
- package/dist/carriers/passport/adapter.d.ts +14 -0
- package/dist/carriers/passport/adapter.js +66 -0
- package/dist/carriers/passport/carrier.json +61 -8
- package/dist/carriers/passport/numbers.json +116 -2
- package/dist/carriers/passport/parser.d.ts +13 -0
- package/dist/carriers/passport/parser.js +222 -0
- package/dist/carriers/passport/status.d.ts +13 -0
- package/dist/carriers/passport/status.js +52 -0
- package/dist/carriers/passport/statuses.json +17 -1
- package/dist/core/catalog/statusMaps.js +4 -2
- package/dist/data/catalog.json +31 -6
- package/dist/generated/catalog.d.ts +19 -6
- package/dist/generated/catalog.js +31 -6
- package/dist/generated/recognition.js +2 -0
- package/dist/generated/registry.js +6 -2
- package/dist/server/openapi.json +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -13,7 +13,7 @@ The engine behind [Peek](https://peektracker.com) ([GitHub](https://github.com/p
|
|
|
13
13
|
[](LICENSE)
|
|
14
14
|
|
|
15
15
|
<!-- GENERATED:summary -->
|
|
16
|
-
**3,500+ carriers** through **
|
|
16
|
+
**3,500+ carriers** through **182 dedicated adapters** and **5 universal fallbacks**
|
|
17
17
|
|
|
18
18
|
<sub>208 catalog entries · 66 countries represented</sub>
|
|
19
19
|
<!-- /GENERATED:summary -->
|
|
@@ -155,7 +155,7 @@ createTracker({ providers: ['ParcelsApp', 'Ship24', '17TRACK', 'Postal Ninja', '
|
|
|
155
155
|
<!-- GENERATED:stages -->
|
|
156
156
|
<img src="docs/assets/stages.svg" alt="DHL: Die Sendung wurde in das Zustellfahrzeug geladen.; Mondial Relay: En cours de livraison; Correios Brazil: Objeto saiu para entrega ao destinatário; Correos Express: EN REPARTO; Yamato Transport: 配達中; La Poste / Colissimo: DISTOU. All are filed under out_for_delivery." width="760">
|
|
157
157
|
|
|
158
|
-
The carrier folders record 5,
|
|
158
|
+
The carrier folders record 5,346 such statuses, each filed under one stage.
|
|
159
159
|
<!-- /GENERATED:stages -->
|
|
160
160
|
|
|
161
161
|
Wording nobody recorded yet goes through a classifier that reads seven European languages.
|
package/data/catalog.json
CHANGED
|
@@ -6141,15 +6141,33 @@
|
|
|
6141
6141
|
"timezone": "America/Los_Angeles",
|
|
6142
6142
|
"tracking": {
|
|
6143
6143
|
"mode": "automatic",
|
|
6144
|
-
"adapter": "
|
|
6144
|
+
"adapter": "epost-global",
|
|
6145
|
+
"recognitionRank": 65,
|
|
6146
|
+
"localClocks": true
|
|
6145
6147
|
},
|
|
6146
6148
|
"canaryUrl": "https://epgtrack.com/",
|
|
6147
|
-
"trackingUrlTemplate": "https://epgtrack.com/",
|
|
6149
|
+
"trackingUrlTemplate": "https://epgtrack.com/{trackingNumber}",
|
|
6148
6150
|
"trackingSearchUrl": "https://epgtrack.com/",
|
|
6149
|
-
"linkRules": [
|
|
6151
|
+
"linkRules": [
|
|
6152
|
+
{
|
|
6153
|
+
"domains": [
|
|
6154
|
+
"epgtrack.com"
|
|
6155
|
+
],
|
|
6156
|
+
"path": "^/(EPG\\d{10,15})/?$"
|
|
6157
|
+
},
|
|
6158
|
+
{
|
|
6159
|
+
"domains": [
|
|
6160
|
+
"epgtrack.com"
|
|
6161
|
+
],
|
|
6162
|
+
"pathPattern": "^/$",
|
|
6163
|
+
"params": [
|
|
6164
|
+
"id"
|
|
6165
|
+
]
|
|
6166
|
+
}
|
|
6167
|
+
],
|
|
6150
6168
|
"detectionRules": [
|
|
6151
6169
|
{
|
|
6152
|
-
"pattern": "^EPG\\d{10,
|
|
6170
|
+
"pattern": "^EPG\\d{10,15}$",
|
|
6153
6171
|
"confidence": "high"
|
|
6154
6172
|
}
|
|
6155
6173
|
]
|
|
@@ -7724,7 +7742,8 @@
|
|
|
7724
7742
|
"timezone": "America/New_York",
|
|
7725
7743
|
"tracking": {
|
|
7726
7744
|
"mode": "automatic",
|
|
7727
|
-
"adapter": "
|
|
7745
|
+
"adapter": "passport",
|
|
7746
|
+
"recognitionRank": 55
|
|
7728
7747
|
},
|
|
7729
7748
|
"canaryUrl": "https://passportglobal.com/track/",
|
|
7730
7749
|
"trackingUrlTemplate": "https://track.passportglobal.com/{trackingNumber}",
|
|
@@ -7736,11 +7755,17 @@
|
|
|
7736
7755
|
"track.passportshipping.com"
|
|
7737
7756
|
],
|
|
7738
7757
|
"path": "^/([^/?#]+)/?$"
|
|
7758
|
+
},
|
|
7759
|
+
{
|
|
7760
|
+
"domains": [
|
|
7761
|
+
"passportglobal.com"
|
|
7762
|
+
],
|
|
7763
|
+
"path": "^/([Pp][Gg]\\d{10,11}[A-Za-z]{2})/?$"
|
|
7739
7764
|
}
|
|
7740
7765
|
],
|
|
7741
7766
|
"detectionRules": [
|
|
7742
7767
|
{
|
|
7743
|
-
"pattern": "^PG\\d{10}[A-Z]{2}$",
|
|
7768
|
+
"pattern": "^PG\\d{10,11}[A-Z]{2}$",
|
|
7744
7769
|
"confidence": "high"
|
|
7745
7770
|
}
|
|
7746
7771
|
]
|
|
@@ -28358,6 +28358,46 @@
|
|
|
28358
28358
|
"epost-global"
|
|
28359
28359
|
]
|
|
28360
28360
|
},
|
|
28361
|
+
{
|
|
28362
|
+
"input": "EPG011023513021511",
|
|
28363
|
+
"carrier": "epost-global",
|
|
28364
|
+
"confidence": "high",
|
|
28365
|
+
"candidates": [
|
|
28366
|
+
"epost-global"
|
|
28367
|
+
]
|
|
28368
|
+
},
|
|
28369
|
+
{
|
|
28370
|
+
"input": "EPG011024032660913",
|
|
28371
|
+
"carrier": "epost-global",
|
|
28372
|
+
"confidence": "high",
|
|
28373
|
+
"candidates": [
|
|
28374
|
+
"epost-global"
|
|
28375
|
+
]
|
|
28376
|
+
},
|
|
28377
|
+
{
|
|
28378
|
+
"input": "EPG011024033241487",
|
|
28379
|
+
"carrier": "epost-global",
|
|
28380
|
+
"confidence": "high",
|
|
28381
|
+
"candidates": [
|
|
28382
|
+
"epost-global"
|
|
28383
|
+
]
|
|
28384
|
+
},
|
|
28385
|
+
{
|
|
28386
|
+
"input": "EPG011024034506837",
|
|
28387
|
+
"carrier": "epost-global",
|
|
28388
|
+
"confidence": "high",
|
|
28389
|
+
"candidates": [
|
|
28390
|
+
"epost-global"
|
|
28391
|
+
]
|
|
28392
|
+
},
|
|
28393
|
+
{
|
|
28394
|
+
"input": "EPG011113700050012",
|
|
28395
|
+
"carrier": "epost-global",
|
|
28396
|
+
"confidence": "high",
|
|
28397
|
+
"candidates": [
|
|
28398
|
+
"epost-global"
|
|
28399
|
+
]
|
|
28400
|
+
},
|
|
28361
28401
|
{
|
|
28362
28402
|
"input": "EPG0112300001175",
|
|
28363
28403
|
"carrier": "epost-global",
|
|
@@ -28374,6 +28414,38 @@
|
|
|
28374
28414
|
"epost-global"
|
|
28375
28415
|
]
|
|
28376
28416
|
},
|
|
28417
|
+
{
|
|
28418
|
+
"input": "EPG030878223676213",
|
|
28419
|
+
"carrier": "epost-global",
|
|
28420
|
+
"confidence": "high",
|
|
28421
|
+
"candidates": [
|
|
28422
|
+
"epost-global"
|
|
28423
|
+
]
|
|
28424
|
+
},
|
|
28425
|
+
{
|
|
28426
|
+
"input": "EPG050927120007542",
|
|
28427
|
+
"carrier": "epost-global",
|
|
28428
|
+
"confidence": "high",
|
|
28429
|
+
"candidates": [
|
|
28430
|
+
"epost-global"
|
|
28431
|
+
]
|
|
28432
|
+
},
|
|
28433
|
+
{
|
|
28434
|
+
"input": "EPG071024031554244",
|
|
28435
|
+
"carrier": "epost-global",
|
|
28436
|
+
"confidence": "high",
|
|
28437
|
+
"candidates": [
|
|
28438
|
+
"epost-global"
|
|
28439
|
+
]
|
|
28440
|
+
},
|
|
28441
|
+
{
|
|
28442
|
+
"input": "EPG071101400605458",
|
|
28443
|
+
"carrier": "epost-global",
|
|
28444
|
+
"confidence": "high",
|
|
28445
|
+
"candidates": [
|
|
28446
|
+
"epost-global"
|
|
28447
|
+
]
|
|
28448
|
+
},
|
|
28377
28449
|
{
|
|
28378
28450
|
"input": "EPG10223001274",
|
|
28379
28451
|
"carrier": "epost-global",
|
|
@@ -28382,6 +28454,30 @@
|
|
|
28382
28454
|
"epost-global"
|
|
28383
28455
|
]
|
|
28384
28456
|
},
|
|
28457
|
+
{
|
|
28458
|
+
"input": "EPG141034707026058",
|
|
28459
|
+
"carrier": "epost-global",
|
|
28460
|
+
"confidence": "high",
|
|
28461
|
+
"candidates": [
|
|
28462
|
+
"epost-global"
|
|
28463
|
+
]
|
|
28464
|
+
},
|
|
28465
|
+
{
|
|
28466
|
+
"input": "EPG161034705036758",
|
|
28467
|
+
"carrier": "epost-global",
|
|
28468
|
+
"confidence": "high",
|
|
28469
|
+
"candidates": [
|
|
28470
|
+
"epost-global"
|
|
28471
|
+
]
|
|
28472
|
+
},
|
|
28473
|
+
{
|
|
28474
|
+
"input": "EPG250969101591620",
|
|
28475
|
+
"carrier": "epost-global",
|
|
28476
|
+
"confidence": "high",
|
|
28477
|
+
"candidates": [
|
|
28478
|
+
"epost-global"
|
|
28479
|
+
]
|
|
28480
|
+
},
|
|
28385
28481
|
{
|
|
28386
28482
|
"input": "ERA907538712MY",
|
|
28387
28483
|
"carrier": "pos-malaysia",
|
|
@@ -33057,6 +33153,38 @@
|
|
|
33057
33153
|
"passport"
|
|
33058
33154
|
]
|
|
33059
33155
|
},
|
|
33156
|
+
{
|
|
33157
|
+
"input": "PG16107427306DE",
|
|
33158
|
+
"carrier": "passport",
|
|
33159
|
+
"confidence": "high",
|
|
33160
|
+
"candidates": [
|
|
33161
|
+
"passport"
|
|
33162
|
+
]
|
|
33163
|
+
},
|
|
33164
|
+
{
|
|
33165
|
+
"input": "PG16153149815AT",
|
|
33166
|
+
"carrier": "passport",
|
|
33167
|
+
"confidence": "high",
|
|
33168
|
+
"candidates": [
|
|
33169
|
+
"passport"
|
|
33170
|
+
]
|
|
33171
|
+
},
|
|
33172
|
+
{
|
|
33173
|
+
"input": "PG18272609183GB",
|
|
33174
|
+
"carrier": "passport",
|
|
33175
|
+
"confidence": "high",
|
|
33176
|
+
"candidates": [
|
|
33177
|
+
"passport"
|
|
33178
|
+
]
|
|
33179
|
+
},
|
|
33180
|
+
{
|
|
33181
|
+
"input": "PG6255087480AU",
|
|
33182
|
+
"carrier": "passport",
|
|
33183
|
+
"confidence": "high",
|
|
33184
|
+
"candidates": [
|
|
33185
|
+
"passport"
|
|
33186
|
+
]
|
|
33187
|
+
},
|
|
33060
33188
|
{
|
|
33061
33189
|
"input": "PG6519662122CA",
|
|
33062
33190
|
"carrier": "passport",
|
|
@@ -33065,6 +33193,22 @@
|
|
|
33065
33193
|
"passport"
|
|
33066
33194
|
]
|
|
33067
33195
|
},
|
|
33196
|
+
{
|
|
33197
|
+
"input": "PG7230048929CA",
|
|
33198
|
+
"carrier": "passport",
|
|
33199
|
+
"confidence": "high",
|
|
33200
|
+
"candidates": [
|
|
33201
|
+
"passport"
|
|
33202
|
+
]
|
|
33203
|
+
},
|
|
33204
|
+
{
|
|
33205
|
+
"input": "PG7237729986CA",
|
|
33206
|
+
"carrier": "passport",
|
|
33207
|
+
"confidence": "high",
|
|
33208
|
+
"candidates": [
|
|
33209
|
+
"passport"
|
|
33210
|
+
]
|
|
33211
|
+
},
|
|
33068
33212
|
{
|
|
33069
33213
|
"input": "PG756920321CA",
|
|
33070
33214
|
"carrier": "canada-post",
|
package/dist/browser/scraper.js
CHANGED
|
@@ -4942,14 +4942,23 @@ var De = {
|
|
|
4942
4942
|
timezone: "America/Los_Angeles",
|
|
4943
4943
|
tracking: {
|
|
4944
4944
|
mode: "automatic",
|
|
4945
|
-
adapter: "
|
|
4945
|
+
adapter: "epost-global",
|
|
4946
|
+
recognitionRank: 65,
|
|
4947
|
+
localClocks: !0
|
|
4946
4948
|
},
|
|
4947
4949
|
canaryUrl: "https://epgtrack.com/",
|
|
4948
|
-
trackingUrlTemplate: "https://epgtrack.com/",
|
|
4950
|
+
trackingUrlTemplate: "https://epgtrack.com/{trackingNumber}",
|
|
4949
4951
|
trackingSearchUrl: "https://epgtrack.com/",
|
|
4950
|
-
linkRules: [
|
|
4952
|
+
linkRules: [{
|
|
4953
|
+
domains: ["epgtrack.com"],
|
|
4954
|
+
path: "^/(EPG\\d{10,15})/?$"
|
|
4955
|
+
}, {
|
|
4956
|
+
domains: ["epgtrack.com"],
|
|
4957
|
+
pathPattern: "^/$",
|
|
4958
|
+
params: ["id"]
|
|
4959
|
+
}],
|
|
4951
4960
|
detectionRules: [{
|
|
4952
|
-
pattern: "^EPG\\d{10,
|
|
4961
|
+
pattern: "^EPG\\d{10,15}$",
|
|
4953
4962
|
confidence: "high"
|
|
4954
4963
|
}]
|
|
4955
4964
|
},
|
|
@@ -6124,7 +6133,8 @@ var De = {
|
|
|
6124
6133
|
timezone: "America/New_York",
|
|
6125
6134
|
tracking: {
|
|
6126
6135
|
mode: "automatic",
|
|
6127
|
-
adapter: "
|
|
6136
|
+
adapter: "passport",
|
|
6137
|
+
recognitionRank: 55
|
|
6128
6138
|
},
|
|
6129
6139
|
canaryUrl: "https://passportglobal.com/track/",
|
|
6130
6140
|
trackingUrlTemplate: "https://track.passportglobal.com/{trackingNumber}",
|
|
@@ -6132,9 +6142,12 @@ var De = {
|
|
|
6132
6142
|
linkRules: [{
|
|
6133
6143
|
domains: ["track.passportglobal.com", "track.passportshipping.com"],
|
|
6134
6144
|
path: "^/([^/?#]+)/?$"
|
|
6145
|
+
}, {
|
|
6146
|
+
domains: ["passportglobal.com"],
|
|
6147
|
+
path: "^/([Pp][Gg]\\d{10,11}[A-Za-z]{2})/?$"
|
|
6135
6148
|
}],
|
|
6136
6149
|
detectionRules: [{
|
|
6137
|
-
pattern: "^PG\\d{10}[A-Z]{2}$",
|
|
6150
|
+
pattern: "^PG\\d{10,11}[A-Z]{2}$",
|
|
6138
6151
|
confidence: "high"
|
|
6139
6152
|
}]
|
|
6140
6153
|
},
|
|
@@ -12351,6 +12364,7 @@ var Qc = {
|
|
|
12351
12364
|
elta: 150,
|
|
12352
12365
|
emile: 480,
|
|
12353
12366
|
envialia: 260,
|
|
12367
|
+
"epost-global": 65,
|
|
12354
12368
|
"express-one": 190,
|
|
12355
12369
|
"fan-courier": 330,
|
|
12356
12370
|
"four-px": 570,
|
|
@@ -12389,6 +12403,7 @@ var Qc = {
|
|
|
12389
12403
|
ontrac: 650,
|
|
12390
12404
|
"orlen-paczka": 495,
|
|
12391
12405
|
"osm-worldwide": 75,
|
|
12406
|
+
passport: 55,
|
|
12392
12407
|
"poczta-polska": 750,
|
|
12393
12408
|
"post-luxembourg": 80,
|
|
12394
12409
|
"posta-slovenije": 130,
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type AdapterFactory, type TrackingContext } from '../../core/adapter/index.js';
|
|
2
|
+
import type { CarrierResult } from '../../core/result/index.js';
|
|
3
|
+
import { type StepRecorder } from '../../core/telemetry/index.js';
|
|
4
|
+
/** The action the tracking page posts its numbers to. */
|
|
5
|
+
export declare const EPOST_GLOBAL_ENDPOINT = "https://epgtrack.com/TrackingShipment/ShipmentData";
|
|
6
|
+
export declare class EpostGlobalTracker {
|
|
7
|
+
private readonly options;
|
|
8
|
+
constructor(options?: {
|
|
9
|
+
fetcher?: typeof fetch;
|
|
10
|
+
recorder?: StepRecorder;
|
|
11
|
+
userAgent?: string;
|
|
12
|
+
});
|
|
13
|
+
fetch(raw: string, context?: TrackingContext): Promise<CarrierResult>;
|
|
14
|
+
}
|
|
15
|
+
export declare const adapter: AdapterFactory;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { accepted, recognizeFromLookup } from '../../core/adapter/index.js';
|
|
2
|
+
import { runSteps } from '../../core/runner/index.js';
|
|
3
|
+
import { firstAttemptMs, networkRetryStep } from '../../core/runner/networkRetry.js';
|
|
4
|
+
import { NOOP_RECORDER } from '../../core/telemetry/index.js';
|
|
5
|
+
import { decodeText, fetchBounded, userAgentOf } from '../../core/transport/index.js';
|
|
6
|
+
import { EPOST_GLOBAL_MAX_BYTES, normalizeEpostGlobalNumber, parseEpostGlobal, PROVIDER } from './parser.js';
|
|
7
|
+
/** The action the tracking page posts its numbers to. */
|
|
8
|
+
export const EPOST_GLOBAL_ENDPOINT = 'https://epgtrack.com/TrackingShipment/ShipmentData';
|
|
9
|
+
export class EpostGlobalTracker {
|
|
10
|
+
options;
|
|
11
|
+
constructor(options = {}) {
|
|
12
|
+
this.options = options;
|
|
13
|
+
}
|
|
14
|
+
async fetch(raw, context = {}) {
|
|
15
|
+
const number = normalizeEpostGlobalNumber(raw);
|
|
16
|
+
const read = async (signal, timeoutMs) => {
|
|
17
|
+
const { bytes } = await fetchBounded(EPOST_GLOBAL_ENDPOINT, { method: 'POST', signal, headers: {
|
|
18
|
+
Accept: 'text/html, */*; q=0.01', 'User-Agent': userAgentOf(this.options.userAgent), 'X-Requested-With': 'XMLHttpRequest',
|
|
19
|
+
}, body: new URLSearchParams({ id: number }) }, { provider: PROVIDER, timeoutMs: Math.max(1, Math.floor(timeoutMs)), maxBytes: EPOST_GLOBAL_MAX_BYTES, fetcher: this.options.fetcher });
|
|
20
|
+
return parseEpostGlobal(decodeText(bytes), raw);
|
|
21
|
+
};
|
|
22
|
+
// A request that fails to reach the site, or hangs, gets one more try: the
|
|
23
|
+
// first gets half of the budget, so the retry fits in the rest.
|
|
24
|
+
return runSteps({ carrier: 'epost-global', budgetMs: context.budgetMs ?? 15_000, signal: context.signal,
|
|
25
|
+
recorder: this.options.recorder ?? NOOP_RECORDER }, [
|
|
26
|
+
{ id: 'direct', run: ({ signal, remainingMs }) => read(signal, firstAttemptMs(remainingMs)) },
|
|
27
|
+
networkRetryStep(({ signal, remainingMs }) => read(signal, remainingMs)),
|
|
28
|
+
]);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export const adapter = (environment) => {
|
|
32
|
+
const tracker = new EpostGlobalTracker({ fetcher: environment.fetcher, recorder: environment.recorder, userAgent: environment.userAgent });
|
|
33
|
+
return {
|
|
34
|
+
id: 'epost-global', recordsSteps: true, steps: ['direct', 'retry'],
|
|
35
|
+
track: (input, context) => tracker.fetch(input.number, context),
|
|
36
|
+
recognize: (number, context) => recognizeFromLookup(() => tracker.fetch(number, context), () => accepted(() => normalizeEpostGlobalNumber(number))),
|
|
37
|
+
};
|
|
38
|
+
};
|
|
@@ -17,24 +17,85 @@
|
|
|
17
17
|
"timezone": "America/Los_Angeles",
|
|
18
18
|
"tracking": {
|
|
19
19
|
"mode": "automatic",
|
|
20
|
-
"adapter": "
|
|
21
|
-
"steps": [
|
|
20
|
+
"adapter": "epost-global",
|
|
21
|
+
"steps": [
|
|
22
|
+
"direct",
|
|
23
|
+
"retry"
|
|
24
|
+
],
|
|
25
|
+
"recognition": {
|
|
26
|
+
"rank": 65
|
|
27
|
+
},
|
|
28
|
+
"localClocks": true
|
|
22
29
|
},
|
|
23
|
-
"capabilities": [
|
|
30
|
+
"capabilities": [
|
|
31
|
+
"history",
|
|
32
|
+
"location",
|
|
33
|
+
"provider_code",
|
|
34
|
+
"destination_country",
|
|
35
|
+
"delivery_partner",
|
|
36
|
+
"delivery_tracking_number"
|
|
37
|
+
],
|
|
24
38
|
"portal": {
|
|
25
|
-
"url": "https://epgtrack.com/",
|
|
39
|
+
"url": "https://epgtrack.com/{trackingNumber}",
|
|
26
40
|
"searchUrl": "https://epgtrack.com/",
|
|
27
41
|
"canaryUrl": "https://epgtrack.com/",
|
|
28
|
-
"shows": [
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
42
|
+
"shows": [
|
|
43
|
+
"status",
|
|
44
|
+
"history",
|
|
45
|
+
"location",
|
|
46
|
+
"progress_rail",
|
|
47
|
+
"destination_country",
|
|
48
|
+
"postcodes",
|
|
49
|
+
"related_awb_numbers",
|
|
50
|
+
"delivery_partner",
|
|
51
|
+
"delivery_tracking_number"
|
|
52
|
+
],
|
|
53
|
+
"scraped": [
|
|
54
|
+
"status",
|
|
55
|
+
"history",
|
|
56
|
+
"location",
|
|
57
|
+
"provider_code",
|
|
58
|
+
"offset_timestamps",
|
|
59
|
+
"destination_country",
|
|
60
|
+
"delivery_partner",
|
|
61
|
+
"delivery_tracking_number"
|
|
62
|
+
],
|
|
63
|
+
"discarded": [
|
|
64
|
+
"progress_rail",
|
|
65
|
+
"postcodes",
|
|
66
|
+
"related_awb_numbers"
|
|
67
|
+
],
|
|
68
|
+
"unavailable": [
|
|
69
|
+
"eta",
|
|
70
|
+
"delivered_at",
|
|
71
|
+
"weight",
|
|
72
|
+
"service_name",
|
|
73
|
+
"sender_name",
|
|
74
|
+
"recipient_name",
|
|
75
|
+
"proof_of_delivery"
|
|
76
|
+
]
|
|
32
77
|
},
|
|
33
|
-
"links": [
|
|
78
|
+
"links": [
|
|
79
|
+
{
|
|
80
|
+
"domains": [
|
|
81
|
+
"epgtrack.com"
|
|
82
|
+
],
|
|
83
|
+
"path": "^/(EPG\\d{10,15})/?$"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"domains": [
|
|
87
|
+
"epgtrack.com"
|
|
88
|
+
],
|
|
89
|
+
"pathPattern": "^/$",
|
|
90
|
+
"params": [
|
|
91
|
+
"id"
|
|
92
|
+
]
|
|
93
|
+
}
|
|
94
|
+
],
|
|
34
95
|
"detection": [
|
|
35
96
|
{
|
|
36
97
|
"id": "epost-global-1",
|
|
37
|
-
"pattern": "^EPG\\d{10,
|
|
98
|
+
"pattern": "^EPG\\d{10,15}$",
|
|
38
99
|
"confidence": "high"
|
|
39
100
|
}
|
|
40
101
|
]
|