hk-bus-eta 3.7.6 → 3.7.8

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 CHANGED
@@ -19,28 +19,29 @@ or
19
19
 
20
20
  __Crawling traffic database:__
21
21
  ```ts
22
- import { fetchEtaObj } from "hk-bus-eta";
23
- import type { BusDb } from "hk-bus-eta";
22
+ import { fetchEtaDb } from "hk-bus-eta";
23
+ import type { EtaDb } from "hk-bus-eta";
24
24
 
25
- fetchEtaDb().then((db: BusDb) => {
25
+ (async function () {
26
+ const etaDb: EtaDb = await fetchEtaDb();
26
27
  console.log(db)
27
- })
28
+ })();
28
29
  ```
29
30
 
30
31
  __Crawling ETA__
31
32
  ```ts
32
33
  import { fetchEtas } from "hk-bus-eta";
33
- import tyep { Eta } from "hk-bus-eta";
34
-
35
- // busDb is the BusDb object fetched by fetchEtaObj
36
-
37
- fetchEtas({
38
- ...busDb.routeList["1+1+CHUK YUEN ESTATE+STAR FERRY"],
39
- seq: 0,
40
- language: "en",
41
- }).then(etas => {
42
- console.log(etas)
43
- })
34
+ import type { Eta } from "hk-bus-eta";
35
+
36
+ (async function () {
37
+ // etaDb is the EtaDb object fetched by fetchEtaObj
38
+ const etas: Eta[] = await fetchEtas({
39
+ ...etaDb.routeList["1+1+CHUK YUEN ESTATE+STAR FERRY"],
40
+ seq: 0,
41
+ language: "en",
42
+ });
43
+ console.log(etas);
44
+ })();
44
45
  ```
45
46
 
46
47
  ## Data Structure
package/dist/hkkf.d.ts CHANGED
@@ -1,9 +1,11 @@
1
1
  import type { Eta, EtaDb, RouteListEntry } from "./type";
2
2
  interface fetchEtasProps {
3
+ route: RouteListEntry["route"];
4
+ bound: RouteListEntry["bound"]["hkkf"];
3
5
  freq: RouteListEntry["freq"];
4
6
  seq: number;
5
7
  holidays: EtaDb["holidays"];
6
8
  serviceDayMap: EtaDb["serviceDayMap"];
7
9
  }
8
- export default function fetchEtas({ freq, seq, holidays, serviceDayMap, }: fetchEtasProps): Promise<Eta[]>;
10
+ export default function fetchEtas({ route, bound, freq, seq, holidays, serviceDayMap, }: fetchEtasProps): Promise<Eta[]>;
9
11
  export {};
package/dist/hkkf.js CHANGED
@@ -1,53 +1,51 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const utils_1 = require("./utils");
4
- function fetchEtas({ freq, seq, holidays, serviceDayMap, }) {
5
- if (seq >= 1)
6
- return Promise.resolve([]);
7
- const now = new Date();
8
- return Promise.resolve((0, utils_1.getUpcomingFerry)({ holidays, serviceDayMap, freq, date: new Date() })
9
- .filter((v) => new Date(v).getTime() - now.getTime() < 180 * 60 * 1000)
10
- .map((eta) => ({
11
- eta: eta,
12
- remark: {
13
- zh: "預定班次",
14
- en: "Scheduled",
15
- },
16
- dest: {
17
- zh: "",
18
- en: "",
19
- },
20
- co: "fortuneferry",
21
- })));
22
- /*
23
- * the official API is broken most of the time, keep it for reference
24
- return fetch(
25
- `https://www.hkkfeta.com/opendata/eta/${route.slice(2)}/${bound === "I" ? "inbound" : "outbound"}`,
26
- {
27
- cache: isSafari ? "default" : "no-store",
28
- },
29
- )
30
- .then((response) => response.json())
31
- .then(({ data }) => {
32
- if (!data) return [];
33
-
34
- return data
35
- .map(({ETA}: any) => {
36
- return {
37
- eta: ETA,
38
- remark: {
39
- zh: "",
40
- en: "",
41
- },
42
- dest: {
4
+ function fetchEtas({ route, bound, freq, seq, holidays, serviceDayMap, }) {
5
+ if (seq === 0) {
6
+ const now = new Date();
7
+ return Promise.resolve((0, utils_1.getUpcomingFerry)({ holidays, serviceDayMap, freq, date: new Date() })
8
+ .filter((v) => new Date(v).getTime() - now.getTime() < 180 * 60 * 1000)
9
+ .map((eta) => ({
10
+ eta: eta,
11
+ remark: {
12
+ zh: "預定班次",
13
+ en: "Scheduled",
14
+ },
15
+ dest: {
43
16
  zh: "",
44
17
  en: "",
45
- },
46
- co: "hkkf",
47
- }
48
- });
49
- });
50
- */
18
+ },
19
+ co: "hkkf",
20
+ })));
21
+ }
22
+ else if (seq === 1) {
23
+ return fetch(`https://www.hkkfeta.com/opendata/eta/${route.slice(2)}/${bound === "I" ? "inbound" : "outbound"}`, {
24
+ cache: utils_1.isSafari ? "default" : "no-store",
25
+ })
26
+ .then((response) => response.json())
27
+ .then(({ data }) => {
28
+ if (!data)
29
+ return [];
30
+ return data.map(({ ETA }) => {
31
+ return {
32
+ eta: ETA,
33
+ remark: {
34
+ zh: "",
35
+ en: "",
36
+ },
37
+ dest: {
38
+ zh: "",
39
+ en: "",
40
+ },
41
+ co: "hkkf",
42
+ };
43
+ });
44
+ });
45
+ }
46
+ else {
47
+ return Promise.resolve([]);
48
+ }
51
49
  }
52
50
  exports.default = fetchEtas;
53
51
  //# sourceMappingURL=hkkf.js.map
package/dist/hkkf.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hkkf.js","sourceRoot":"","sources":["../src/hkkf.ts"],"names":[],"mappings":";;AACA,mCAAqD;AASrD,SAAwB,SAAS,CAAC,EAChC,IAAI,EACJ,GAAG,EACH,QAAQ,EACR,aAAa,GACE;IACf,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,OAAO,OAAO,CAAC,OAAO,CACpB,IAAA,wBAAgB,EAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;SAClE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC;SACtE,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACb,GAAG,EAAE,GAAG;QACR,MAAM,EAAE;YACN,EAAE,EAAE,MAAM;YACV,EAAE,EAAE,WAAW;SAChB;QACD,IAAI,EAAE;YACJ,EAAE,EAAE,EAAE;YACN,EAAE,EAAE,EAAE;SACP;QACD,EAAE,EAAE,cAAc;KACnB,CAAC,CAAC,CACN,CAAC;IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA4BI;AACN,CAAC;AArDD,4BAqDC"}
1
+ {"version":3,"file":"hkkf.js","sourceRoot":"","sources":["../src/hkkf.ts"],"names":[],"mappings":";;AACA,mCAAqD;AAWrD,SAAwB,SAAS,CAAC,EAChC,KAAK,EACL,KAAK,EACL,IAAI,EACJ,GAAG,EACH,QAAQ,EACR,aAAa,GACE;IACf,IAAI,GAAG,KAAK,CAAC,EAAE;QACb,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO,OAAO,CAAC,OAAO,CACpB,IAAA,wBAAgB,EAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;aAClE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC;aACtE,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACb,GAAG,EAAE,GAAG;YACR,MAAM,EAAE;gBACN,EAAE,EAAE,MAAM;gBACV,EAAE,EAAE,WAAW;aAChB;YACD,IAAI,EAAE;gBACJ,EAAE,EAAE,EAAE;gBACN,EAAE,EAAE,EAAE;aACP;YACD,EAAE,EAAE,MAAM;SACX,CAAC,CAAC,CACN,CAAC;KACH;SAAM,IAAI,GAAG,KAAK,CAAC,EAAE;QACpB,OAAO,KAAK,CACV,wCAAwC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,EAClG;YACE,KAAK,EAAE,gBAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;SACzC,CACF;aACE,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;aACnC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;YACjB,IAAI,CAAC,IAAI;gBAAE,OAAO,EAAE,CAAC;YAErB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAO,EAAE,EAAE;gBAC/B,OAAO;oBACL,GAAG,EAAE,GAAG;oBACR,MAAM,EAAE;wBACN,EAAE,EAAE,EAAE;wBACN,EAAE,EAAE,EAAE;qBACP;oBACD,IAAI,EAAE;wBACJ,EAAE,EAAE,EAAE;wBACN,EAAE,EAAE,EAAE;qBACP;oBACD,EAAE,EAAE,MAAM;iBACX,CAAA;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;KACN;SAAM;QACL,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;KAC5B;AACH,CAAC;AAvDD,4BAuDC"}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { RouteListEntry, EtaDb, Eta, StopList } from "./type";
2
2
  interface fetchEtasProps extends RouteListEntry {
3
- stopList: StopList;
4
- holidays: EtaDb["holidays"];
5
- serviceDayMap: EtaDb["serviceDayMap"];
3
+ stopList?: StopList;
4
+ holidays?: EtaDb["holidays"];
5
+ serviceDayMap?: EtaDb["serviceDayMap"];
6
6
  language: "zh" | "en";
7
7
  seq: number;
8
8
  }
package/dist/index.js CHANGED
@@ -69,6 +69,9 @@ function fetchEtas({ route, stops, bound, dest, freq, seq, serviceType, co, nlbI
69
69
  _etas = _etas.concat(yield (0, lightRail_1.default)({ stopId: stops.lightRail[seq], route, dest }));
70
70
  }
71
71
  else if (company_id === "mtr" && stops.mtr) {
72
+ if (!stopList) {
73
+ throw new Error("mtr requires stopList");
74
+ }
72
75
  _etas = _etas.concat(yield (0, mtr_1.default)({
73
76
  stopId: stops.mtr[seq],
74
77
  route,
@@ -77,6 +80,15 @@ function fetchEtas({ route, stops, bound, dest, freq, seq, serviceType, co, nlbI
77
80
  }));
78
81
  }
79
82
  else if (company_id === "fortuneferry" && stops.fortuneferry) {
83
+ if (!stopList) {
84
+ throw new Error("fortuneferry requires stopList");
85
+ }
86
+ if (!serviceDayMap) {
87
+ throw new Error("fortuneferry requires serviceDayMap");
88
+ }
89
+ if (!holidays) {
90
+ throw new Error("fortuneferry requires holidays");
91
+ }
80
92
  _etas = _etas.concat(yield (0, fortuneferry_1.default)({
81
93
  stops,
82
94
  seq,
@@ -87,10 +99,29 @@ function fetchEtas({ route, stops, bound, dest, freq, seq, serviceType, co, nlbI
87
99
  }));
88
100
  }
89
101
  else if (company_id === "sunferry" && stops.sunferry) {
102
+ if (!serviceDayMap) {
103
+ throw new Error("sunferry requires serviceDayMap");
104
+ }
105
+ if (!holidays) {
106
+ throw new Error("sunferry requires holidays");
107
+ }
90
108
  _etas = _etas.concat(yield (0, sunferry_1.default)({ route, seq, holidays, serviceDayMap, freq }));
91
109
  }
92
110
  else if (company_id === "hkkf" && stops.hkkf) {
93
- _etas = _etas.concat(yield (0, hkkf_1.default)({ freq, seq, holidays, serviceDayMap }));
111
+ if (!serviceDayMap) {
112
+ throw new Error("hkkf requires serviceDayMap");
113
+ }
114
+ if (!holidays) {
115
+ throw new Error("hkkf requires holidays");
116
+ }
117
+ _etas = _etas.concat(yield (0, hkkf_1.default)({
118
+ route,
119
+ bound: bound.hkkf,
120
+ freq,
121
+ seq,
122
+ holidays,
123
+ serviceDayMap,
124
+ }));
94
125
  }
95
126
  }
96
127
  if (_etas.some((e) => e.eta)) {
package/dist/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":"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"}
package/dist/lrtfeeder.js CHANGED
@@ -51,12 +51,8 @@ function fetchEtas({ stopId, route, language, }) {
51
51
  eta: `${etaDate.getUTCFullYear()}-${`0${etaDate.getUTCMonth() + 1}`.slice(-2)}-${`0${etaDate.getUTCDate()}`.slice(-2)}` +
52
52
  `T${`0${etaDate.getUTCHours()}`.slice(-2)}:${`0${etaDate.getMinutes()}`.slice(-2)}:${`0${etaDate.getSeconds()}`.slice(-2)}+08:00`,
53
53
  remark: {
54
- [language]: bus.busRemark ||
55
- (bus.isScheduled === "1"
56
- ? language === "en"
57
- ? "Scheduled"
58
- : "預定班次"
59
- : ""),
54
+ zh: bus.busRemark || (bus.isScheduled === "1" ? "預定班次" : ""),
55
+ en: bus.busRemark || (bus.isScheduled === "1" ? "Scheduled" : ""),
60
56
  },
61
57
  dest: {
62
58
  zh: "",
@@ -1 +1 @@
1
- {"version":3,"file":"lrtfeeder.js","sourceRoot":"","sources":["../src/lrtfeeder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lrtfeeder.js","sourceRoot":"","sources":["../src/lrtfeeder.ts"],"names":[],"mappings":"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"}
package/dist/nlb.js CHANGED
@@ -20,7 +20,8 @@ function fetchEtas({ stopId, nlbId, language, }) {
20
20
  dest: {
21
21
  // e.g. 經: 梅窩舊墟
22
22
  // e.g. Via: Mui Wo Old Town
23
- [language]: e.routeVariantName,
23
+ zh: language === "zh" ? e.routeVariantName : "",
24
+ en: language === "en" ? e.routeVariantName : "",
24
25
  },
25
26
  co: "nlb",
26
27
  };
@@ -31,7 +32,8 @@ function fetchEtas({ stopId, nlbId, language, }) {
31
32
  {
32
33
  eta: "",
33
34
  remark: {
34
- [language]: message,
35
+ zh: language === "zh" ? message : "",
36
+ en: language === "en" ? message : "",
35
37
  },
36
38
  dest: {
37
39
  zh: "",
package/dist/nlb.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"nlb.js","sourceRoot":"","sources":["../src/nlb.ts"],"names":[],"mappings":";;AACA,mCAAmC;AAQnC,SAAwB,SAAS,CAAC,EAChC,MAAM,EACN,KAAK,EACL,QAAQ,GACO;IACf,OAAO,KAAK,CACV,qFAAqF,KAAK,WAAW,MAAM,aAAa,QAAQ,EAAE,EAClI;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,iBAAiB,EAAE,OAAO,EAAE,EAAE,EAAE;QACvC,MAAM,OAAO,GAAG,CAAC,iBAAiB,aAAjB,iBAAiB,cAAjB,iBAAiB,GAAI,EAAE,CAAC;aACtC,MAAM,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,oBAAoB,CAAC;aAC9C,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE;YACd,MAAM,WAAW,GAAG,CAAC,CAAC,QAAQ,KAAK,GAAG,IAAI,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC;YAC1D,OAAO;gBACL,GAAG,EAAE,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,YAAY;gBAC5D,MAAM,EAAE;oBACN,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;oBAC7B,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;iBACnC;gBACD,IAAI,EAAE;oBACJ,eAAe;oBACf,4BAA4B;oBAC5B,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,gBAAgB;iBAC/B;gBACD,EAAE,EAAE,KAAK;aACV,CAAC;QACJ,CAAC,CAAC,CAAC;QAEL,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBAC1C,OAAO;oBACL;wBACE,GAAG,EAAE,EAAE;wBACP,MAAM,EAAE;4BACN,CAAC,QAAQ,CAAC,EAAE,OAAO;yBACpB;wBACD,IAAI,EAAE;4BACJ,EAAE,EAAE,EAAE;4BACN,EAAE,EAAE,EAAE;yBACP;wBACD,EAAE,EAAE,KAAK;qBACV;iBACF,CAAC;aACH;SACF;QAED,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;AACP,CAAC;AApDD,4BAoDC"}
1
+ {"version":3,"file":"nlb.js","sourceRoot":"","sources":["../src/nlb.ts"],"names":[],"mappings":";;AACA,mCAAmC;AAQnC,SAAwB,SAAS,CAAC,EAChC,MAAM,EACN,KAAK,EACL,QAAQ,GACO;IACf,OAAO,KAAK,CACV,qFAAqF,KAAK,WAAW,MAAM,aAAa,QAAQ,EAAE,EAClI;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,iBAAiB,EAAE,OAAO,EAAE,EAAE,EAAE;QACvC,MAAM,OAAO,GAAG,CAAC,iBAAiB,aAAjB,iBAAiB,cAAjB,iBAAiB,GAAI,EAAE,CAAC;aACtC,MAAM,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,oBAAoB,CAAC;aAC9C,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE;YACd,MAAM,WAAW,GAAG,CAAC,CAAC,QAAQ,KAAK,GAAG,IAAI,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC;YAC1D,OAAO;gBACL,GAAG,EAAE,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,YAAY;gBAC5D,MAAM,EAAE;oBACN,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;oBAC7B,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;iBACnC;gBACD,IAAI,EAAE;oBACJ,eAAe;oBACf,4BAA4B;oBAC5B,EAAE,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE;oBAC/C,EAAE,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE;iBAChD;gBACD,EAAE,EAAE,KAAK;aACV,CAAC;QACJ,CAAC,CAAC,CAAC;QAEL,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBAC1C,OAAO;oBACL;wBACE,GAAG,EAAE,EAAE;wBACP,MAAM,EAAE;4BACN,EAAE,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BACpC,EAAE,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;yBACrC;wBACD,IAAI,EAAE;4BACJ,EAAE,EAAE,EAAE;4BACN,EAAE,EAAE,EAAE;yBACP;wBACD,EAAE,EAAE,KAAK;qBACV;iBACF,CAAC;aACH;SACF;QAED,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;AACP,CAAC;AAtDD,4BAsDC"}
package/dist/sunferry.js CHANGED
@@ -1,60 +1,134 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
+ const tz_1 = require("@date-fns/tz");
13
+ const date_fns_1 = require("date-fns");
3
14
  const utils_1 = require("./utils");
4
15
  function fetchEtas({ route, seq, freq, holidays, serviceDayMap, }) {
5
- if (seq === 1)
6
- return Promise.resolve([]);
7
- return fetch(`https://www.sunferry.com.hk/eta/?route=${route}`, {
8
- cache: utils_1.isSafari ? "default" : "no-store",
9
- })
10
- .then((response) => response.json())
11
- .then(({ data }) => {
12
- throw new Error("");
13
- if (!data)
16
+ return __awaiter(this, void 0, void 0, function* () {
17
+ if (seq > 1) {
18
+ return Promise.resolve([]);
19
+ }
20
+ const apiEtas = yield fetch(`https://www.sunferry.com.hk/eta/?route=${route}`, {
21
+ cache: utils_1.isSafari ? "default" : "no-store",
22
+ })
23
+ .then((response) => response.json())
24
+ .then(({ data, generated_timestamp, }) => {
25
+ if (!data)
26
+ return [];
27
+ return data.map(({ depart_time, eta, rmk_en, rmk_tc, route_tc, route_en }) => {
28
+ var _a, _b;
29
+ /**
30
+ * @param timeString HH:mm
31
+ */
32
+ const guessDateTimeByTimeString = (timeString) => {
33
+ const generated = new tz_1.TZDate(generated_timestamp, "Asia/Hong_Kong");
34
+ const time = (0, date_fns_1.startOfMinute)((0, date_fns_1.set)(generated, {
35
+ hours: parseInt(timeString.split(":")[0], 10),
36
+ minutes: parseInt(timeString.split(":")[1], 10),
37
+ }));
38
+ return (0, date_fns_1.closestTo)(generated, [
39
+ (0, date_fns_1.sub)(time, { days: 1 }),
40
+ time,
41
+ (0, date_fns_1.add)(time, { days: 1 }),
42
+ ]);
43
+ };
44
+ // 橫水渡 - (坪洲-梅窩)
45
+ // 中環 - 長洲
46
+ const [originZh, destZh] = (((_a = /^橫水渡 - \((.*)\)$/.exec(route_tc)) === null || _a === void 0 ? void 0 : _a[1]) || route_tc)
47
+ .split("-")
48
+ .map((s) => s.trim());
49
+ // Inter Islands (Peng Chau - Mui Wo)
50
+ // Central - Cheung Chau
51
+ const [originEn, destEn] = (((_b = /^Inter Islands \((.*)\)$/.exec(route_en)) === null || _b === void 0 ? void 0 : _b[1]) || route_en)
52
+ .split("-")
53
+ .map((s) => s.trim());
54
+ return {
55
+ departTime: (0, date_fns_1.formatISO)(guessDateTimeByTimeString(depart_time)),
56
+ eta: eta ? (0, date_fns_1.formatISO)(guessDateTimeByTimeString(eta)) : null,
57
+ remark: {
58
+ zh: rmk_tc !== null && rmk_tc !== void 0 ? rmk_tc : "",
59
+ en: rmk_en !== null && rmk_en !== void 0 ? rmk_en : "",
60
+ },
61
+ dest: {
62
+ zh: destZh,
63
+ en: destEn,
64
+ },
65
+ co: "sunferry",
66
+ };
67
+ });
68
+ })
69
+ .catch((err) => {
70
+ console.error("Error fetching Sun Ferry ETAs:", err);
14
71
  return [];
15
- return data.map(({ depart_time, rmk_en, rmk_tc, route_tc, route_en }) => {
16
- const date = new Date();
17
- let guess = `${date.getFullYear()}-${("0" + (date.getMonth() + 1)).slice(-2)}-${("0" + date.getDate()).slice(-2)}T${depart_time}:00+08:00`;
18
- if (new Date(guess) < date) {
19
- date.setDate(date.getDate() + 1);
20
- guess = `${date.getFullYear()}-${("0" + (date.getMonth() + 1)).slice(-2)}-${("0" + date.getDate()).slice(-2)}T${depart_time}:00+08:00`;
21
- }
22
- return {
23
- eta: guess,
72
+ });
73
+ if (seq === 0) {
74
+ const greatestApiEtaTime = apiEtas.length > 0
75
+ ? (0, date_fns_1.max)(apiEtas.map((e) => new Date(e.departTime)))
76
+ : undefined;
77
+ const now = new Date();
78
+ return [
79
+ ...apiEtas
80
+ .filter((eta) => (0, date_fns_1.endOfMinute)(new Date(eta.departTime)) >= now && !eta.eta)
81
+ .map((eta) => ({
82
+ eta: eta.departTime,
83
+ remark: {
84
+ zh: [eta.remark.zh, "預定班次"].filter(Boolean).join(";"),
85
+ en: [eta.remark.en, "Scheduled"].filter(Boolean).join("; "),
86
+ },
87
+ dest: eta.dest,
88
+ co: eta.co,
89
+ })),
90
+ ...(0, utils_1.getUpcomingFerry)({
91
+ holidays,
92
+ serviceDayMap,
93
+ freq,
94
+ date: (0, date_fns_1.max)([
95
+ ...(greatestApiEtaTime
96
+ ? [(0, date_fns_1.add)(greatestApiEtaTime, { minutes: 1 })]
97
+ : []),
98
+ now,
99
+ ]),
100
+ })
101
+ .filter((v) => new Date(v).getTime() - now.getTime() < 180 * 60 * 1000)
102
+ .map((eta) => ({
103
+ eta: eta,
104
+ remark: {
105
+ zh: "預定班次",
106
+ en: "Scheduled",
107
+ },
108
+ dest: {
109
+ zh: "",
110
+ en: "",
111
+ },
112
+ co: "sunferry",
113
+ })),
114
+ ];
115
+ }
116
+ else if (seq === 1) {
117
+ return apiEtas
118
+ .filter((eta) => eta.eta !== null)
119
+ .map((eta) => ({
120
+ eta: eta.eta,
24
121
  remark: {
25
- zh: rmk_tc,
26
- en: rmk_en,
122
+ zh: eta.remark.zh,
123
+ en: eta.remark.en,
27
124
  },
28
- dest: {
29
- zh: route_tc.split(" - ")[1],
30
- en: route_en.split(" - ")[1],
31
- },
32
- co: "sunferry",
33
- };
34
- });
35
- })
36
- .catch(() => {
37
- // the API gives CORS error, the below handling is for browser
38
- const now = new Date();
39
- return (0, utils_1.getUpcomingFerry)({
40
- holidays,
41
- serviceDayMap,
42
- freq,
43
- date: new Date(),
44
- })
45
- .filter((v) => new Date(v).getTime() - now.getTime() < 180 * 60 * 1000)
46
- .map((eta) => ({
47
- eta: eta,
48
- remark: {
49
- zh: "預定班次",
50
- en: "Scheduled",
51
- },
52
- dest: {
53
- zh: "",
54
- en: "",
55
- },
56
- co: "sunferry",
57
- }));
125
+ dest: eta.dest,
126
+ co: eta.co,
127
+ }));
128
+ }
129
+ else {
130
+ return [];
131
+ }
58
132
  });
59
133
  }
60
134
  exports.default = fetchEtas;
@@ -1 +1 @@
1
- {"version":3,"file":"sunferry.js","sourceRoot":"","sources":["../src/sunferry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sunferry.js","sourceRoot":"","sources":["../src/sunferry.ts"],"names":[],"mappings":"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"}
package/esm/hkkf.d.ts CHANGED
@@ -1,9 +1,11 @@
1
1
  import type { Eta, EtaDb, RouteListEntry } from "./type";
2
2
  interface fetchEtasProps {
3
+ route: RouteListEntry["route"];
4
+ bound: RouteListEntry["bound"]["hkkf"];
3
5
  freq: RouteListEntry["freq"];
4
6
  seq: number;
5
7
  holidays: EtaDb["holidays"];
6
8
  serviceDayMap: EtaDb["serviceDayMap"];
7
9
  }
8
- export default function fetchEtas({ freq, seq, holidays, serviceDayMap, }: fetchEtasProps): Promise<Eta[]>;
10
+ export default function fetchEtas({ route, bound, freq, seq, holidays, serviceDayMap, }: fetchEtasProps): Promise<Eta[]>;
9
11
  export {};
package/esm/hkkf.js CHANGED
@@ -1,50 +1,48 @@
1
- import { getUpcomingFerry } from "./utils";
2
- export default function fetchEtas({ freq, seq, holidays, serviceDayMap, }) {
3
- if (seq >= 1)
4
- return Promise.resolve([]);
5
- const now = new Date();
6
- return Promise.resolve(getUpcomingFerry({ holidays, serviceDayMap, freq, date: new Date() })
7
- .filter((v) => new Date(v).getTime() - now.getTime() < 180 * 60 * 1000)
8
- .map((eta) => ({
9
- eta: eta,
10
- remark: {
11
- zh: "預定班次",
12
- en: "Scheduled",
13
- },
14
- dest: {
15
- zh: "",
16
- en: "",
17
- },
18
- co: "fortuneferry",
19
- })));
20
- /*
21
- * the official API is broken most of the time, keep it for reference
22
- return fetch(
23
- `https://www.hkkfeta.com/opendata/eta/${route.slice(2)}/${bound === "I" ? "inbound" : "outbound"}`,
24
- {
25
- cache: isSafari ? "default" : "no-store",
26
- },
27
- )
28
- .then((response) => response.json())
29
- .then(({ data }) => {
30
- if (!data) return [];
31
-
32
- return data
33
- .map(({ETA}: any) => {
34
- return {
35
- eta: ETA,
36
- remark: {
37
- zh: "",
38
- en: "",
39
- },
40
- dest: {
1
+ import { getUpcomingFerry, isSafari } from "./utils";
2
+ export default function fetchEtas({ route, bound, freq, seq, holidays, serviceDayMap, }) {
3
+ if (seq === 0) {
4
+ const now = new Date();
5
+ return Promise.resolve(getUpcomingFerry({ holidays, serviceDayMap, freq, date: new Date() })
6
+ .filter((v) => new Date(v).getTime() - now.getTime() < 180 * 60 * 1000)
7
+ .map((eta) => ({
8
+ eta: eta,
9
+ remark: {
10
+ zh: "預定班次",
11
+ en: "Scheduled",
12
+ },
13
+ dest: {
41
14
  zh: "",
42
15
  en: "",
43
- },
44
- co: "hkkf",
45
- }
46
- });
47
- });
48
- */
16
+ },
17
+ co: "hkkf",
18
+ })));
19
+ }
20
+ else if (seq === 1) {
21
+ return fetch(`https://www.hkkfeta.com/opendata/eta/${route.slice(2)}/${bound === "I" ? "inbound" : "outbound"}`, {
22
+ cache: isSafari ? "default" : "no-store",
23
+ })
24
+ .then((response) => response.json())
25
+ .then(({ data }) => {
26
+ if (!data)
27
+ return [];
28
+ return data.map(({ ETA }) => {
29
+ return {
30
+ eta: ETA,
31
+ remark: {
32
+ zh: "",
33
+ en: "",
34
+ },
35
+ dest: {
36
+ zh: "",
37
+ en: "",
38
+ },
39
+ co: "hkkf",
40
+ };
41
+ });
42
+ });
43
+ }
44
+ else {
45
+ return Promise.resolve([]);
46
+ }
49
47
  }
50
48
  //# sourceMappingURL=hkkf.js.map