hk-bus-eta 3.3.4 → 3.4.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/dist/ctb.js +6 -2
- package/dist/ctb.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +25 -4
- package/dist/index.js.map +1 -1
- package/dist/kmb.js +6 -2
- package/dist/kmb.js.map +1 -1
- package/esm/ctb.js +6 -2
- package/esm/ctb.js.map +1 -1
- package/esm/index.d.ts +1 -0
- package/esm/index.js +21 -3
- package/esm/index.js.map +1 -1
- package/esm/kmb.js +6 -2
- package/esm/kmb.js.map +1 -1
- package/package.json +1 -1
- package/src/ctb.ts +6 -2
- package/src/index.ts +28 -5
- package/src/kmb.ts +6 -2
package/dist/ctb.js
CHANGED
|
@@ -7,7 +7,7 @@ function fetchEtas({ stopId, route, bound, seq, }) {
|
|
|
7
7
|
})
|
|
8
8
|
.then((response) => response.json())
|
|
9
9
|
.then(({ data }) => data
|
|
10
|
-
.filter((eta) =>
|
|
10
|
+
.filter((eta) => bound.includes(eta.dir))
|
|
11
11
|
// filter the eta by the stop sequence information
|
|
12
12
|
// as the route data may not 100% match
|
|
13
13
|
// use the nearest seq
|
|
@@ -24,7 +24,11 @@ function fetchEtas({ stopId, route, bound, seq, }) {
|
|
|
24
24
|
en: e.dest_en,
|
|
25
25
|
},
|
|
26
26
|
co: "ctb",
|
|
27
|
-
})))
|
|
27
|
+
})))
|
|
28
|
+
.catch(err => {
|
|
29
|
+
console.error(err);
|
|
30
|
+
return [];
|
|
31
|
+
});
|
|
28
32
|
}
|
|
29
33
|
exports.default = fetchEtas;
|
|
30
34
|
//# sourceMappingURL=ctb.js.map
|
package/dist/ctb.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ctb.js","sourceRoot":"","sources":["../src/ctb.ts"],"names":[],"mappings":";;AAAA,mCAAmC;AAUnC,SAAwB,SAAS,CAAC,EAChC,MAAM,EACN,KAAK,EACL,KAAK,EACL,GAAG,GACY;IACf,OAAO,KAAK,CACV,wDAAwD,MAAM,IAAI,KAAK,EAAE,EACzE;QACE,KAAK,EAAE,gBAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;KACzC,CACF;SACE,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACnC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CACjB,IAAI;SACD,MAAM,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"ctb.js","sourceRoot":"","sources":["../src/ctb.ts"],"names":[],"mappings":";;AAAA,mCAAmC;AAUnC,SAAwB,SAAS,CAAC,EAChC,MAAM,EACN,KAAK,EACL,KAAK,EACL,GAAG,GACY;IACf,OAAO,KAAK,CACV,wDAAwD,MAAM,IAAI,KAAK,EAAE,EACzE;QACE,KAAK,EAAE,gBAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;KACzC,CACF;SACE,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACnC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CACjB,IAAI;SACD,MAAM,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9C,kDAAkD;QAClD,uCAAuC;QACvC,sBAAsB;SACrB,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,EAAE,EAAE,CACvB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACvD;SACA,MAAM,CACL,CAAC,GAAQ,EAAE,CAAS,EAAE,IAAgB,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CACnE;SACA,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;QAChB,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,MAAM,EAAE;YACN,EAAE,EAAE,CAAC,CAAC,MAAM;YACZ,EAAE,EAAE,CAAC,CAAC,MAAM;SACb;QACD,IAAI,EAAE;YACJ,EAAE,EAAE,CAAC,CAAC,OAAO;YACb,EAAE,EAAE,CAAC,CAAC,OAAO;SACd;QACD,EAAE,EAAE,KAAK;KACV,CAAC,CAAC,CACN;SACA,KAAK,CAAC,GAAG,CAAC,EAAE;QACX,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACP,CAAC;AA1CD,4BA0CC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -9,4 +9,5 @@ interface fetchEtasProps extends RouteListEntry {
|
|
|
9
9
|
export declare function fetchEtas({ route, stops, bound, dest, freq, seq, serviceType, co, nlbId, gtfsId, stopList, language, holidays, serviceDayMap, }: fetchEtasProps): Promise<Eta[]>;
|
|
10
10
|
export declare function fetchEtaDb(): Promise<EtaDb>;
|
|
11
11
|
export declare function fetchEtaDbMd5(): Promise<string>;
|
|
12
|
+
export declare function fetchRouteUpdatedAt(route: RouteListEntry): Promise<number>;
|
|
12
13
|
export type * from "./type";
|
package/dist/index.js
CHANGED
|
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.fetchEtaDbMd5 = exports.fetchEtaDb = exports.fetchEtas = void 0;
|
|
15
|
+
exports.fetchRouteUpdatedAt = exports.fetchEtaDbMd5 = exports.fetchEtaDb = exports.fetchEtas = void 0;
|
|
16
16
|
const kmb_1 = __importDefault(require("./kmb"));
|
|
17
17
|
const ctb_1 = __importDefault(require("./ctb"));
|
|
18
18
|
const nlb_1 = __importDefault(require("./nlb"));
|
|
@@ -74,10 +74,14 @@ function fetchEtas({ route, stops, bound, dest, freq, seq, serviceType, co, nlbI
|
|
|
74
74
|
_etas = _etas.concat(yield (0, hkkf_1.default)({ freq, seq, holidays, serviceDayMap }));
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
|
-
|
|
78
|
-
|
|
77
|
+
if (_etas.some((e) => e.eta)) {
|
|
78
|
+
_etas = _etas.filter((e) => e.eta);
|
|
79
|
+
}
|
|
80
|
+
return _etas
|
|
81
|
+
.sort((a, b) => {
|
|
82
|
+
if (!a.eta || a.eta === "")
|
|
79
83
|
return 1;
|
|
80
|
-
else if (b.eta === "")
|
|
84
|
+
else if (!b.eta || b.eta === "")
|
|
81
85
|
return -1;
|
|
82
86
|
return a.eta < b.eta ? -1 : 1;
|
|
83
87
|
});
|
|
@@ -107,4 +111,21 @@ function fetchEtaDbMd5() {
|
|
|
107
111
|
});
|
|
108
112
|
}
|
|
109
113
|
exports.fetchEtaDbMd5 = fetchEtaDbMd5;
|
|
114
|
+
function fetchRouteUpdatedAt(route) {
|
|
115
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
116
|
+
const filename = `${route.route}+${route.serviceType}+${route.orig.en}+${route.dest.en}`;
|
|
117
|
+
return fetch(`https://data.hkbus.app/route-ts/${filename.replace(/[\\\/\:\*\?\"\<\>\|\]\']/g, '')}`)
|
|
118
|
+
.then((r) => {
|
|
119
|
+
if (r.ok) {
|
|
120
|
+
return r.text();
|
|
121
|
+
}
|
|
122
|
+
throw Error("no update");
|
|
123
|
+
})
|
|
124
|
+
.then((r) => parseInt(r, 10) * 1000)
|
|
125
|
+
.catch((e) => {
|
|
126
|
+
return 0;
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
exports.fetchRouteUpdatedAt = fetchRouteUpdatedAt;
|
|
110
131
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gDAAwB;AACxB,gDAAwB;AACxB,gDAAwB;AACxB,4DAAoC;AACpC,gDAAwB;AACxB,4DAAoC;AACpC,gDAAwB;AACxB,0DAAiC;AACjC,kEAA0C;AAC1C,kDAA0B;AAW1B,SAAsB,SAAS,CAAC,EAC9B,KAAK,EACL,KAAK,EACL,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,WAAW,EACX,EAAE,EACF,KAAK,EACL,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,aAAa,GACE;;QACf,IAAI;YACF,IAAI,KAAK,GAAU,EAAE,CAAC;YACtB,KAAK,MAAM,UAAU,IAAI,EAAE,EAAE;gBAC3B,IAAI,UAAU,KAAK,KAAK,IAAI,KAAK,CAAC,GAAG,EAAE;oBACrC,KAAK,GAAG,KAAK,CAAC,MAAM,CAClB,MAAM,IAAA,aAAG,EAAC;wBACR,KAAK;wBACL,KAAK,EAAE,KAAK,CAAC,GAAG;wBAChB,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;wBACtB,GAAG;wBACH,EAAE;wBACF,WAAW;wBACX,KAAK,EAAE,KAAK,CAAC,GAAG;qBACjB,CAAC,CACH,CAAC;iBACH;qBAAM,IAAI,UAAU,KAAK,KAAK,IAAI,KAAK,CAAC,GAAG,EAAE;oBAC5C,KAAK,GAAG,KAAK,CAAC,MAAM,CAClB,MAAM,IAAA,aAAG,EAAC,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CACpE,CAAC;iBACH;qBAAM,IAAI,UAAU,KAAK,KAAK,IAAI,KAAK,CAAC,GAAG,EAAE;oBAC5C,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,IAAA,aAAG,EAAC,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;iBACpE;qBAAM,IAAI,UAAU,KAAK,WAAW,IAAI,KAAK,CAAC,SAAS,EAAE;oBACxD,KAAK,GAAG,KAAK,CAAC,MAAM,CAClB,MAAM,IAAA,mBAAS,EAAC,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CACnE,CAAC;iBACH;qBAAM,IAAI,UAAU,KAAK,KAAK,IAAI,KAAK,CAAC,GAAG,EAAE;oBAC5C,KAAK,GAAG,KAAK,CAAC,MAAM,CAClB,MAAM,IAAA,aAAG,EAAC,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CACrE,CAAC;iBACH;qBAAM,IAAI,UAAU,KAAK,WAAW,IAAI,KAAK,CAAC,SAAS,EAAE;oBACxD,KAAK,GAAG,KAAK,CAAC,MAAM,CAClB,MAAM,IAAA,mBAAS,EAAC,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAC/D,CAAC;iBACH;qBAAM,IAAI,UAAU,KAAK,KAAK,IAAI,KAAK,CAAC,GAAG,EAAE;oBAC5C,KAAK,GAAG,KAAK,CAAC,MAAM,CAClB,MAAM,IAAA,aAAG,EAAC;wBACR,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;wBACtB,KAAK;wBACL,QAAQ;wBACR,KAAK,EAAE,KAAK,CAAC,GAAG;qBACjB,CAAC,CACH,CAAC;iBACH;qBAAM,IAAI,UAAU,KAAK,cAAc,IAAI,KAAK,CAAC,YAAY,EAAE;oBAC9D,KAAK,GAAG,KAAK,CAAC,MAAM,CAClB,MAAM,IAAA,sBAAY,EAAC;wBACjB,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ;qBACpD,CAAC,CACH,CAAA;iBACF;qBAAM,IAAI,UAAU,KAAK,UAAU,IAAI,KAAK,CAAC,QAAQ,EAAE;oBACtD,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,IAAA,kBAAQ,EAAC,EAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAC,CAAC,CAAC,CAAA;iBAClF;qBAAM,IAAI,UAAU,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE;oBAC9C,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,IAAA,cAAI,EAAC,EAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,aAAa,EAAC,CAAC,CAAC,CAAA;iBACvE;aACF;YAED,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/kmb.js
CHANGED
|
@@ -8,7 +8,7 @@ function fetchEtas({ stopId, route, seq, serviceType, stops, co, bound, }) {
|
|
|
8
8
|
})
|
|
9
9
|
.then((response) => response.json())
|
|
10
10
|
.then(({ data }) => data
|
|
11
|
-
.filter((e) => e.
|
|
11
|
+
.filter((e) => e.dir === bound)
|
|
12
12
|
.sort((a, b) => Math.abs(a.seq - seq) < Math.abs(b.seq - seq) ? -1 : 1)
|
|
13
13
|
.filter((eta, _, self) => eta.seq === self[0].seq)
|
|
14
14
|
// if KMB is the only service provider and the service type is matched,
|
|
@@ -36,7 +36,11 @@ function fetchEtas({ stopId, route, seq, serviceType, stops, co, bound, }) {
|
|
|
36
36
|
en: e.dest_en,
|
|
37
37
|
},
|
|
38
38
|
co: "kmb",
|
|
39
|
-
})))
|
|
39
|
+
})))
|
|
40
|
+
.catch(err => {
|
|
41
|
+
console.error(err);
|
|
42
|
+
return [];
|
|
43
|
+
});
|
|
40
44
|
}
|
|
41
45
|
exports.default = fetchEtas;
|
|
42
46
|
//# sourceMappingURL=kmb.js.map
|
package/dist/kmb.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kmb.js","sourceRoot":"","sources":["../src/kmb.ts"],"names":[],"mappings":";;AACA,mCAAmC;AAYnC,kCAAkC;AAClC,SAAwB,SAAS,CAAC,EAChC,MAAM,EACN,KAAK,EACL,GAAG,EACH,WAAW,EACX,KAAK,EACL,EAAE,EACF,KAAK,GACU;IACf,OAAO,KAAK,CACV,mDAAmD,MAAM,IAAI,KAAK,IAAI,WAAW,EAAE,EACnF;QACE,KAAK,EAAE,gBAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;KACzC,CACF;SACE,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACnC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CACjB,IAAI;SACD,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,
|
|
1
|
+
{"version":3,"file":"kmb.js","sourceRoot":"","sources":["../src/kmb.ts"],"names":[],"mappings":";;AACA,mCAAmC;AAYnC,kCAAkC;AAClC,SAAwB,SAAS,CAAC,EAChC,MAAM,EACN,KAAK,EACL,GAAG,EACH,WAAW,EACX,KAAK,EACL,EAAE,EACF,KAAK,GACU;IACf,OAAO,KAAK,CACV,mDAAmD,MAAM,IAAI,KAAK,IAAI,WAAW,EAAE,EACnF;QACE,KAAK,EAAE,gBAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;KACzC,CACF;SACE,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACnC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CACjB,IAAI;SACD,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC;SACnC,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,EAAE,EAAE,CACvB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACvD;SACA,MAAM,CAAC,CAAC,GAAQ,EAAE,CAAS,EAAE,IAAW,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACtE,uEAAuE;QACvE,gFAAgF;SAC/E,MAAM,CACL,CAAC,GAAQ,EAAE,EAAE,CACX,EAAE,CAAC,MAAM,GAAG,CAAC;QACb,WAAW,KAAK,GAAG,CAAC,YAAY;QAChC,GAAG,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CACtB;SACA,MAAM,CAAC,CAAC,GAAQ,EAAE,EAAE;QACnB,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE;YACxC,wBAAwB;YACxB,IAAI,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE;gBACvB,OAAO,GAAG,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC;aAC5B;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;QAChB,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,MAAM,EAAE;YACN,EAAE,EAAE,CAAC,CAAC,MAAM;YACZ,EAAE,EAAE,CAAC,CAAC,MAAM;SACb;QACD,IAAI,EAAE;YACJ,EAAE,EAAE,CAAC,CAAC,OAAO;YACb,EAAE,EAAE,CAAC,CAAC,OAAO;SACd;QACD,EAAE,EAAE,KAAK;KACV,CAAC,CAAC,CACN;SACA,KAAK,CAAC,GAAG,CAAC,EAAE;QACX,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACP,CAAC;AAzDD,4BAyDC"}
|
package/esm/ctb.js
CHANGED
|
@@ -5,7 +5,7 @@ export default function fetchEtas({ stopId, route, bound, seq, }) {
|
|
|
5
5
|
})
|
|
6
6
|
.then((response) => response.json())
|
|
7
7
|
.then(({ data }) => data
|
|
8
|
-
.filter((eta) =>
|
|
8
|
+
.filter((eta) => bound.includes(eta.dir))
|
|
9
9
|
// filter the eta by the stop sequence information
|
|
10
10
|
// as the route data may not 100% match
|
|
11
11
|
// use the nearest seq
|
|
@@ -22,6 +22,10 @@ export default function fetchEtas({ stopId, route, bound, seq, }) {
|
|
|
22
22
|
en: e.dest_en,
|
|
23
23
|
},
|
|
24
24
|
co: "ctb",
|
|
25
|
-
})))
|
|
25
|
+
})))
|
|
26
|
+
.catch(err => {
|
|
27
|
+
console.error(err);
|
|
28
|
+
return [];
|
|
29
|
+
});
|
|
26
30
|
}
|
|
27
31
|
//# sourceMappingURL=ctb.js.map
|
package/esm/ctb.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ctb.js","sourceRoot":"","sources":["../src/ctb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAUnC,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,MAAM,EACN,KAAK,EACL,KAAK,EACL,GAAG,GACY;IACf,OAAO,KAAK,CACV,wDAAwD,MAAM,IAAI,KAAK,EAAE,EACzE;QACE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;KACzC,CACF;SACE,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACnC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CACjB,IAAI;SACD,MAAM,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"ctb.js","sourceRoot":"","sources":["../src/ctb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAUnC,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,MAAM,EACN,KAAK,EACL,KAAK,EACL,GAAG,GACY;IACf,OAAO,KAAK,CACV,wDAAwD,MAAM,IAAI,KAAK,EAAE,EACzE;QACE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;KACzC,CACF;SACE,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACnC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CACjB,IAAI;SACD,MAAM,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9C,kDAAkD;QAClD,uCAAuC;QACvC,sBAAsB;SACrB,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,EAAE,EAAE,CACvB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACvD;SACA,MAAM,CACL,CAAC,GAAQ,EAAE,CAAS,EAAE,IAAgB,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CACnE;SACA,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;QAChB,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,MAAM,EAAE;YACN,EAAE,EAAE,CAAC,CAAC,MAAM;YACZ,EAAE,EAAE,CAAC,CAAC,MAAM;SACb;QACD,IAAI,EAAE;YACJ,EAAE,EAAE,CAAC,CAAC,OAAO;YACb,EAAE,EAAE,CAAC,CAAC,OAAO;SACd;QACD,EAAE,EAAE,KAAK;KACV,CAAC,CAAC,CACN;SACA,KAAK,CAAC,GAAG,CAAC,EAAE;QACX,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/esm/index.d.ts
CHANGED
|
@@ -9,4 +9,5 @@ interface fetchEtasProps extends RouteListEntry {
|
|
|
9
9
|
export declare function fetchEtas({ route, stops, bound, dest, freq, seq, serviceType, co, nlbId, gtfsId, stopList, language, holidays, serviceDayMap, }: fetchEtasProps): Promise<Eta[]>;
|
|
10
10
|
export declare function fetchEtaDb(): Promise<EtaDb>;
|
|
11
11
|
export declare function fetchEtaDbMd5(): Promise<string>;
|
|
12
|
+
export declare function fetchRouteUpdatedAt(route: RouteListEntry): Promise<number>;
|
|
12
13
|
export type * from "./type";
|
package/esm/index.js
CHANGED
|
@@ -58,10 +58,14 @@ export async function fetchEtas({ route, stops, bound, dest, freq, seq, serviceT
|
|
|
58
58
|
_etas = _etas.concat(await hkkf({ freq, seq, holidays, serviceDayMap }));
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
|
-
|
|
62
|
-
|
|
61
|
+
if (_etas.some((e) => e.eta)) {
|
|
62
|
+
_etas = _etas.filter((e) => e.eta);
|
|
63
|
+
}
|
|
64
|
+
return _etas
|
|
65
|
+
.sort((a, b) => {
|
|
66
|
+
if (!a.eta || a.eta === "")
|
|
63
67
|
return 1;
|
|
64
|
-
else if (b.eta === "")
|
|
68
|
+
else if (!b.eta || b.eta === "")
|
|
65
69
|
return -1;
|
|
66
70
|
return a.eta < b.eta ? -1 : 1;
|
|
67
71
|
});
|
|
@@ -83,4 +87,18 @@ export async function fetchEtaDbMd5() {
|
|
|
83
87
|
.catch(() => fetch("https://hkbus.github.io/hk-bus-crawling/routeFareList.md5", { cache: "no-store" })
|
|
84
88
|
.then(r => r.text()));
|
|
85
89
|
}
|
|
90
|
+
export async function fetchRouteUpdatedAt(route) {
|
|
91
|
+
const filename = `${route.route}+${route.serviceType}+${route.orig.en}+${route.dest.en}`;
|
|
92
|
+
return fetch(`https://data.hkbus.app/route-ts/${filename.replace(/[\\\/\:\*\?\"\<\>\|\]\']/g, '')}`)
|
|
93
|
+
.then((r) => {
|
|
94
|
+
if (r.ok) {
|
|
95
|
+
return r.text();
|
|
96
|
+
}
|
|
97
|
+
throw Error("no update");
|
|
98
|
+
})
|
|
99
|
+
.then((r) => parseInt(r, 10) * 1000)
|
|
100
|
+
.catch((e) => {
|
|
101
|
+
return 0;
|
|
102
|
+
});
|
|
103
|
+
}
|
|
86
104
|
//# sourceMappingURL=index.js.map
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,OAAO,CAAC;AACxB,OAAO,GAAG,MAAM,OAAO,CAAC;AACxB,OAAO,GAAG,MAAM,OAAO,CAAC;AACxB,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,GAAG,MAAM,OAAO,CAAC;AACxB,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,GAAG,MAAM,OAAO,CAAC;AACxB,OAAO,QAAQ,MAAM,YAAY,CAAA;AACjC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,IAAI,MAAM,QAAQ,CAAC;AAW1B,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,EAC9B,KAAK,EACL,KAAK,EACL,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,WAAW,EACX,EAAE,EACF,KAAK,EACL,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,aAAa,GACE;IACf,IAAI;QACF,IAAI,KAAK,GAAU,EAAE,CAAC;QACtB,KAAK,MAAM,UAAU,IAAI,EAAE,EAAE;YAC3B,IAAI,UAAU,KAAK,KAAK,IAAI,KAAK,CAAC,GAAG,EAAE;gBACrC,KAAK,GAAG,KAAK,CAAC,MAAM,CAClB,MAAM,GAAG,CAAC;oBACR,KAAK;oBACL,KAAK,EAAE,KAAK,CAAC,GAAG;oBAChB,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;oBACtB,GAAG;oBACH,EAAE;oBACF,WAAW;oBACX,KAAK,EAAE,KAAK,CAAC,GAAG;iBACjB,CAAC,CACH,CAAC;aACH;iBAAM,IAAI,UAAU,KAAK,KAAK,IAAI,KAAK,CAAC,GAAG,EAAE;gBAC5C,KAAK,GAAG,KAAK,CAAC,MAAM,CAClB,MAAM,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CACpE,CAAC;aACH;iBAAM,IAAI,UAAU,KAAK,KAAK,IAAI,KAAK,CAAC,GAAG,EAAE;gBAC5C,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;aACpE;iBAAM,IAAI,UAAU,KAAK,WAAW,IAAI,KAAK,CAAC,SAAS,EAAE;gBACxD,KAAK,GAAG,KAAK,CAAC,MAAM,CAClB,MAAM,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CACnE,CAAC;aACH;iBAAM,IAAI,UAAU,KAAK,KAAK,IAAI,KAAK,CAAC,GAAG,EAAE;gBAC5C,KAAK,GAAG,KAAK,CAAC,MAAM,CAClB,MAAM,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CACrE,CAAC;aACH;iBAAM,IAAI,UAAU,KAAK,WAAW,IAAI,KAAK,CAAC,SAAS,EAAE;gBACxD,KAAK,GAAG,KAAK,CAAC,MAAM,CAClB,MAAM,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAC/D,CAAC;aACH;iBAAM,IAAI,UAAU,KAAK,KAAK,IAAI,KAAK,CAAC,GAAG,EAAE;gBAC5C,KAAK,GAAG,KAAK,CAAC,MAAM,CAClB,MAAM,GAAG,CAAC;oBACR,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;oBACtB,KAAK;oBACL,QAAQ;oBACR,KAAK,EAAE,KAAK,CAAC,GAAG;iBACjB,CAAC,CACH,CAAC;aACH;iBAAM,IAAI,UAAU,KAAK,cAAc,IAAI,KAAK,CAAC,YAAY,EAAE;gBAC9D,KAAK,GAAG,KAAK,CAAC,MAAM,CAClB,MAAM,YAAY,CAAC;oBACjB,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ;iBACpD,CAAC,CACH,CAAA;aACF;iBAAM,IAAI,UAAU,KAAK,UAAU,IAAI,KAAK,CAAC,QAAQ,EAAE;gBACtD,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,QAAQ,CAAC,EAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAC,CAAC,CAAC,CAAA;aAClF;iBAAM,IAAI,UAAU,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE;gBAC9C,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,EAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,aAAa,EAAC,CAAC,CAAC,CAAA;aACvE;SACF;QAED,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;YAC5B,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;SACpC;QACD,OAAO,KAAK;aACT,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACb,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,EAAE;gBAAE,OAAO,CAAC,CAAC;iBAChC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,EAAE;gBAAE,OAAO,CAAC,CAAC,CAAC;YAC3C,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;KACN;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,EAAE,CAAC;KACX;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,OAAO,KAAK,CAAC,+CAA+C,EAAE,EAAC,KAAK,EAAE,UAAU,EAAC,CAAC;SAC/E,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACrB,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,gEAAgE,EAAE,EAAC,KAAK,EAAE,UAAU,EAAC,CAAC;SACtG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CACrB,CAAC;AACN,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,OAAO,KAAK,CAAC,0CAA0C,EAAE,EAAC,KAAK,EAAE,UAAU,EAAC,CAAC;SAC1E,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACrB,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,2DAA2D,EAAE,EAAC,KAAK,EAAE,UAAU,EAAC,CAAC;SACjG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CACrB,CAAC;AACN,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,KAAqB;IAC7D,MAAM,QAAQ,GAAG,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,CAAA;IACxF,OAAO,KAAK,CACV,mCAAmC,QAAQ,CAAC,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC,EAAE,CACvF;SACE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QACV,IAAI,CAAC,CAAC,EAAE,EAAE;YACR,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;SACjB;QACD,MAAM,KAAK,CAAC,WAAW,CAAC,CAAC;IAC3B,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACV,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CACvB;SACA,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACX,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/esm/kmb.js
CHANGED
|
@@ -6,7 +6,7 @@ export default function fetchEtas({ stopId, route, seq, serviceType, stops, co,
|
|
|
6
6
|
})
|
|
7
7
|
.then((response) => response.json())
|
|
8
8
|
.then(({ data }) => data
|
|
9
|
-
.filter((e) => e.
|
|
9
|
+
.filter((e) => e.dir === bound)
|
|
10
10
|
.sort((a, b) => Math.abs(a.seq - seq) < Math.abs(b.seq - seq) ? -1 : 1)
|
|
11
11
|
.filter((eta, _, self) => eta.seq === self[0].seq)
|
|
12
12
|
// if KMB is the only service provider and the service type is matched,
|
|
@@ -34,6 +34,10 @@ export default function fetchEtas({ stopId, route, seq, serviceType, stops, co,
|
|
|
34
34
|
en: e.dest_en,
|
|
35
35
|
},
|
|
36
36
|
co: "kmb",
|
|
37
|
-
})))
|
|
37
|
+
})))
|
|
38
|
+
.catch(err => {
|
|
39
|
+
console.error(err);
|
|
40
|
+
return [];
|
|
41
|
+
});
|
|
38
42
|
}
|
|
39
43
|
//# sourceMappingURL=kmb.js.map
|
package/esm/kmb.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kmb.js","sourceRoot":"","sources":["../src/kmb.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAYnC,kCAAkC;AAClC,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,MAAM,EACN,KAAK,EACL,GAAG,EACH,WAAW,EACX,KAAK,EACL,EAAE,EACF,KAAK,GACU;IACf,OAAO,KAAK,CACV,mDAAmD,MAAM,IAAI,KAAK,IAAI,WAAW,EAAE,EACnF;QACE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;KACzC,CACF;SACE,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACnC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CACjB,IAAI;SACD,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,
|
|
1
|
+
{"version":3,"file":"kmb.js","sourceRoot":"","sources":["../src/kmb.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAYnC,kCAAkC;AAClC,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,MAAM,EACN,KAAK,EACL,GAAG,EACH,WAAW,EACX,KAAK,EACL,EAAE,EACF,KAAK,GACU;IACf,OAAO,KAAK,CACV,mDAAmD,MAAM,IAAI,KAAK,IAAI,WAAW,EAAE,EACnF;QACE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;KACzC,CACF;SACE,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACnC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CACjB,IAAI;SACD,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC;SACnC,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,EAAE,EAAE,CACvB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACvD;SACA,MAAM,CAAC,CAAC,GAAQ,EAAE,CAAS,EAAE,IAAW,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACtE,uEAAuE;QACvE,gFAAgF;SAC/E,MAAM,CACL,CAAC,GAAQ,EAAE,EAAE,CACX,EAAE,CAAC,MAAM,GAAG,CAAC;QACb,WAAW,KAAK,GAAG,CAAC,YAAY;QAChC,GAAG,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CACtB;SACA,MAAM,CAAC,CAAC,GAAQ,EAAE,EAAE;QACnB,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE;YACxC,wBAAwB;YACxB,IAAI,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE;gBACvB,OAAO,GAAG,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC;aAC5B;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;QAChB,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,MAAM,EAAE;YACN,EAAE,EAAE,CAAC,CAAC,MAAM;YACZ,EAAE,EAAE,CAAC,CAAC,MAAM;SACb;QACD,IAAI,EAAE;YACJ,EAAE,EAAE,CAAC,CAAC,OAAO;YACb,EAAE,EAAE,CAAC,CAAC,OAAO;SACd;QACD,EAAE,EAAE,KAAK;KACV,CAAC,CAAC,CACN;SACA,KAAK,CAAC,GAAG,CAAC,EAAE;QACX,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/package.json
CHANGED
package/src/ctb.ts
CHANGED
|
@@ -23,7 +23,7 @@ export default function fetchEtas({
|
|
|
23
23
|
.then((response) => response.json())
|
|
24
24
|
.then(({ data }) =>
|
|
25
25
|
data
|
|
26
|
-
.filter((eta: any) =>
|
|
26
|
+
.filter((eta: any) => bound.includes(eta.dir))
|
|
27
27
|
// filter the eta by the stop sequence information
|
|
28
28
|
// as the route data may not 100% match
|
|
29
29
|
// use the nearest seq
|
|
@@ -45,5 +45,9 @@ export default function fetchEtas({
|
|
|
45
45
|
},
|
|
46
46
|
co: "ctb",
|
|
47
47
|
})),
|
|
48
|
-
)
|
|
48
|
+
)
|
|
49
|
+
.catch(err => {
|
|
50
|
+
console.error(err);
|
|
51
|
+
return [];
|
|
52
|
+
});
|
|
49
53
|
}
|
package/src/index.ts
CHANGED
|
@@ -89,11 +89,15 @@ export async function fetchEtas({
|
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
91
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
92
|
+
if (_etas.some((e) => e.eta)) {
|
|
93
|
+
_etas = _etas.filter((e) => e.eta);
|
|
94
|
+
}
|
|
95
|
+
return _etas
|
|
96
|
+
.sort((a, b) => {
|
|
97
|
+
if (!a.eta || a.eta === "") return 1;
|
|
98
|
+
else if (!b.eta || b.eta === "") return -1;
|
|
99
|
+
return a.eta < b.eta ? -1 : 1;
|
|
100
|
+
});
|
|
97
101
|
} catch (err) {
|
|
98
102
|
console.error(err);
|
|
99
103
|
return [];
|
|
@@ -116,4 +120,23 @@ export async function fetchEtaDbMd5(): Promise<string> {
|
|
|
116
120
|
);
|
|
117
121
|
}
|
|
118
122
|
|
|
123
|
+
export async function fetchRouteUpdatedAt(route: RouteListEntry): Promise<number> {
|
|
124
|
+
const filename = `${route.route}+${route.serviceType}+${route.orig.en}+${route.dest.en}`
|
|
125
|
+
return fetch(
|
|
126
|
+
`https://data.hkbus.app/route-ts/${filename.replace(/[\\\/\:\*\?\"\<\>\|\]\']/g, '')}`
|
|
127
|
+
)
|
|
128
|
+
.then((r) => {
|
|
129
|
+
if (r.ok) {
|
|
130
|
+
return r.text();
|
|
131
|
+
}
|
|
132
|
+
throw Error("no update");
|
|
133
|
+
})
|
|
134
|
+
.then((r) =>
|
|
135
|
+
parseInt(r, 10) * 1000
|
|
136
|
+
)
|
|
137
|
+
.catch((e) => {
|
|
138
|
+
return 0;
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
|
|
119
142
|
export type * from "./type";
|
package/src/kmb.ts
CHANGED
|
@@ -30,7 +30,7 @@ export default function fetchEtas({
|
|
|
30
30
|
.then((response) => response.json())
|
|
31
31
|
.then(({ data }) =>
|
|
32
32
|
data
|
|
33
|
-
.filter((e: any) => e.
|
|
33
|
+
.filter((e: any) => e.dir === bound)
|
|
34
34
|
.sort((a: any, b: any) =>
|
|
35
35
|
Math.abs(a.seq - seq) < Math.abs(b.seq - seq) ? -1 : 1,
|
|
36
36
|
)
|
|
@@ -64,5 +64,9 @@ export default function fetchEtas({
|
|
|
64
64
|
},
|
|
65
65
|
co: "kmb",
|
|
66
66
|
})),
|
|
67
|
-
)
|
|
67
|
+
)
|
|
68
|
+
.catch(err => {
|
|
69
|
+
console.error(err);
|
|
70
|
+
return [];
|
|
71
|
+
});
|
|
68
72
|
}
|