hk-bus-eta 3.8.0 → 3.8.2
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 +1 -1
- package/dist/lightRail.js +20 -11
- package/dist/lightRail.js.map +1 -1
- package/dist/lrtfeeder.js +3 -3
- package/dist/lrtfeeder.js.map +1 -1
- package/esm/lightRail.js +20 -11
- package/esm/lightRail.js.map +1 -1
- package/esm/lrtfeeder.js +3 -3
- package/esm/lrtfeeder.js.map +1 -1
- package/package.json +1 -1
- package/src/lightRail.ts +78 -46
- package/src/lrtfeeder.ts +3 -3
package/README.md
CHANGED
package/dist/lightRail.js
CHANGED
|
@@ -23,16 +23,16 @@ function fetchEtas({ stopId, route, dest, }) {
|
|
|
23
23
|
},
|
|
24
24
|
];
|
|
25
25
|
}
|
|
26
|
-
// How should `end_service_status` for only some platforms be handled? Would a light rail line stop at different platforms?
|
|
27
26
|
return platform_list.reduce((acc, { route_list, platform_id }) => {
|
|
28
27
|
return [
|
|
29
28
|
...acc,
|
|
30
|
-
// route_list is null when there are no ETAs available
|
|
31
29
|
...(route_list !== null && route_list !== void 0 ? route_list : [])
|
|
32
|
-
.filter(({ route_no, dest_ch, dest_en, stop }) =>
|
|
30
|
+
.filter(({ route_no, additionalInfo1, dest_ch, dest_en, stop, }) =>
|
|
31
|
+
// match route number OR additionalInfo1 to the requested route
|
|
32
|
+
(route === route_no || route === additionalInfo1) &&
|
|
33
33
|
(dest_ch === dest.zh || dest_en.includes("Circular")) &&
|
|
34
34
|
stop === 0)
|
|
35
|
-
.map(({ time_en, train_length }) => {
|
|
35
|
+
.map(({ time_en, train_length, routeRemarkEng2, routeRemarkChi2, }) => {
|
|
36
36
|
let waitTime = 0;
|
|
37
37
|
switch (time_en.toLowerCase()) {
|
|
38
38
|
case "arriving":
|
|
@@ -45,16 +45,25 @@ function fetchEtas({ stopId, route, dest, }) {
|
|
|
45
45
|
break;
|
|
46
46
|
}
|
|
47
47
|
const etaDate = new Date(Date.now() + waitTime * 60 * 1000 + 8 * 3600000);
|
|
48
|
+
const platformText = `${platform_id}號月台 - ${Array(train_length)
|
|
49
|
+
.fill("▭")
|
|
50
|
+
.join("")}`;
|
|
51
|
+
const platformTextEn = `Platform ${platform_id} - ${Array(train_length)
|
|
52
|
+
.fill("▭")
|
|
53
|
+
.join("")}`;
|
|
54
|
+
// Append routeRemarkEng2 / routeRemarkChi2 if present
|
|
55
|
+
const remarkZh = routeRemarkChi2
|
|
56
|
+
? `${platformText} - ${routeRemarkChi2}`
|
|
57
|
+
: platformText;
|
|
58
|
+
const remarkEn = routeRemarkEng2
|
|
59
|
+
? `${platformTextEn} - ${routeRemarkEng2}`
|
|
60
|
+
: platformTextEn;
|
|
48
61
|
return {
|
|
49
62
|
eta: `${etaDate.getUTCFullYear()}-${`0${etaDate.getUTCMonth() + 1}`.slice(-2)}-${`0${etaDate.getUTCDate()}`.slice(-2)}` +
|
|
50
63
|
`T${`0${etaDate.getUTCHours()}`.slice(-2)}:${`0${etaDate.getMinutes()}`.slice(-2)}:${`0${etaDate.getSeconds()}`.slice(-2)}+08:00`,
|
|
51
64
|
remark: {
|
|
52
|
-
zh:
|
|
53
|
-
|
|
54
|
-
.join("")}`,
|
|
55
|
-
en: `Platform ${platform_id} - ${Array(train_length)
|
|
56
|
-
.fill("▭")
|
|
57
|
-
.join("")}`,
|
|
65
|
+
zh: remarkZh,
|
|
66
|
+
en: remarkEn,
|
|
58
67
|
},
|
|
59
68
|
dest: {
|
|
60
69
|
zh: "",
|
|
@@ -62,7 +71,7 @@ function fetchEtas({ stopId, route, dest, }) {
|
|
|
62
71
|
},
|
|
63
72
|
co: "lightRail",
|
|
64
73
|
};
|
|
65
|
-
}
|
|
74
|
+
}),
|
|
66
75
|
];
|
|
67
76
|
}, []);
|
|
68
77
|
})
|
package/dist/lightRail.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lightRail.js","sourceRoot":"","sources":["../src/lightRail.ts"],"names":[],"mappings":";;AACA,mCAAmC;AAQnC,SAAwB,SAAS,CAAC,EAChC,MAAM,EACN,KAAK,EACL,IAAI,GACW;IACf,OAAO,KAAK,CACV,sEAAsE,MAAM,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"lightRail.js","sourceRoot":"","sources":["../src/lightRail.ts"],"names":[],"mappings":"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"}
|
package/dist/lrtfeeder.js
CHANGED
|
@@ -35,7 +35,7 @@ function fetchEtas({ stopId, route, language, }) {
|
|
|
35
35
|
}
|
|
36
36
|
return busStop
|
|
37
37
|
.filter(({ busStopId }) => busStopId === stopId)
|
|
38
|
-
.reduce((ret, { bus: buses }) => [
|
|
38
|
+
.reduce((ret, { bus: buses, busStopRemark }) => [
|
|
39
39
|
...ret,
|
|
40
40
|
...buses.reduce((etas, bus) => {
|
|
41
41
|
// hackily use +8 hours and use UTC hour to resolve timezone issue
|
|
@@ -51,8 +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
|
-
zh: bus.busRemark || (bus.isScheduled === "1" ? "預定班次" : ""),
|
|
55
|
-
en: bus.busRemark || (bus.isScheduled === "1" ? "Scheduled" : ""),
|
|
54
|
+
zh: busStopRemark || bus.busRemark || (bus.isScheduled === "1" ? "預定班次" : ""),
|
|
55
|
+
en: busStopRemark || bus.busRemark || (bus.isScheduled === "1" ? "Scheduled" : ""),
|
|
56
56
|
},
|
|
57
57
|
dest: {
|
|
58
58
|
zh: "",
|
package/dist/lrtfeeder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lrtfeeder.js","sourceRoot":"","sources":["../src/lrtfeeder.ts"],"names":[],"mappings":";;AACA,mCAAmC;AAQnC,SAAwB,SAAS,CAAC,EAChC,MAAM,EACN,KAAK,EACL,QAAQ,GACO;IACf,OAAO,KAAK,CAAC,yDAAyD,EAAE;QACtE,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,gBAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;QACxC,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,QAAQ,EAAE,QAAQ;YAClB,SAAS,EAAE,KAAK;SACjB,CAAC;KACH,CAAC;SACC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACnC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,EAAE,EAAE;QAC5C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB,IACE,sBAAsB;gBACtB,OAAO,sBAAsB,KAAK,QAAQ,EAC1C;gBACA,OAAO;oBACL;wBACE,GAAG,EAAE,EAAE;wBACP,MAAM,EAAE;4BACN,CAAC,QAAQ,CAAC,EAAE,sBAAsB;yBACnC;wBACD,IAAI,EAAE;4BACJ,EAAE,EAAE,EAAE;4BACN,EAAE,EAAE,EAAE;yBACP;wBACD,EAAE,EAAE,WAAW;qBAChB;iBACF,CAAC;aACH;SACF;QAED,OAAO,OAAO;aACX,MAAM,CAAC,CAAC,EAAE,SAAS,EAAO,EAAE,EAAE,CAAC,SAAS,KAAK,MAAM,CAAC;aACpD,MAAM,CACL,CAAC,GAAQ,EAAE,EAAE,GAAG,EAAE,KAAK,EAAO,EAAE,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"lrtfeeder.js","sourceRoot":"","sources":["../src/lrtfeeder.ts"],"names":[],"mappings":"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"}
|
package/esm/lightRail.js
CHANGED
|
@@ -21,16 +21,16 @@ export default function fetchEtas({ stopId, route, dest, }) {
|
|
|
21
21
|
},
|
|
22
22
|
];
|
|
23
23
|
}
|
|
24
|
-
// How should `end_service_status` for only some platforms be handled? Would a light rail line stop at different platforms?
|
|
25
24
|
return platform_list.reduce((acc, { route_list, platform_id }) => {
|
|
26
25
|
return [
|
|
27
26
|
...acc,
|
|
28
|
-
// route_list is null when there are no ETAs available
|
|
29
27
|
...(route_list !== null && route_list !== void 0 ? route_list : [])
|
|
30
|
-
.filter(({ route_no, dest_ch, dest_en, stop }) =>
|
|
28
|
+
.filter(({ route_no, additionalInfo1, dest_ch, dest_en, stop, }) =>
|
|
29
|
+
// match route number OR additionalInfo1 to the requested route
|
|
30
|
+
(route === route_no || route === additionalInfo1) &&
|
|
31
31
|
(dest_ch === dest.zh || dest_en.includes("Circular")) &&
|
|
32
32
|
stop === 0)
|
|
33
|
-
.map(({ time_en, train_length }) => {
|
|
33
|
+
.map(({ time_en, train_length, routeRemarkEng2, routeRemarkChi2, }) => {
|
|
34
34
|
let waitTime = 0;
|
|
35
35
|
switch (time_en.toLowerCase()) {
|
|
36
36
|
case "arriving":
|
|
@@ -43,16 +43,25 @@ export default function fetchEtas({ stopId, route, dest, }) {
|
|
|
43
43
|
break;
|
|
44
44
|
}
|
|
45
45
|
const etaDate = new Date(Date.now() + waitTime * 60 * 1000 + 8 * 3600000);
|
|
46
|
+
const platformText = `${platform_id}號月台 - ${Array(train_length)
|
|
47
|
+
.fill("▭")
|
|
48
|
+
.join("")}`;
|
|
49
|
+
const platformTextEn = `Platform ${platform_id} - ${Array(train_length)
|
|
50
|
+
.fill("▭")
|
|
51
|
+
.join("")}`;
|
|
52
|
+
// Append routeRemarkEng2 / routeRemarkChi2 if present
|
|
53
|
+
const remarkZh = routeRemarkChi2
|
|
54
|
+
? `${platformText} - ${routeRemarkChi2}`
|
|
55
|
+
: platformText;
|
|
56
|
+
const remarkEn = routeRemarkEng2
|
|
57
|
+
? `${platformTextEn} - ${routeRemarkEng2}`
|
|
58
|
+
: platformTextEn;
|
|
46
59
|
return {
|
|
47
60
|
eta: `${etaDate.getUTCFullYear()}-${`0${etaDate.getUTCMonth() + 1}`.slice(-2)}-${`0${etaDate.getUTCDate()}`.slice(-2)}` +
|
|
48
61
|
`T${`0${etaDate.getUTCHours()}`.slice(-2)}:${`0${etaDate.getMinutes()}`.slice(-2)}:${`0${etaDate.getSeconds()}`.slice(-2)}+08:00`,
|
|
49
62
|
remark: {
|
|
50
|
-
zh:
|
|
51
|
-
|
|
52
|
-
.join("")}`,
|
|
53
|
-
en: `Platform ${platform_id} - ${Array(train_length)
|
|
54
|
-
.fill("▭")
|
|
55
|
-
.join("")}`,
|
|
63
|
+
zh: remarkZh,
|
|
64
|
+
en: remarkEn,
|
|
56
65
|
},
|
|
57
66
|
dest: {
|
|
58
67
|
zh: "",
|
|
@@ -60,7 +69,7 @@ export default function fetchEtas({ stopId, route, dest, }) {
|
|
|
60
69
|
},
|
|
61
70
|
co: "lightRail",
|
|
62
71
|
};
|
|
63
|
-
}
|
|
72
|
+
}),
|
|
64
73
|
];
|
|
65
74
|
}, []);
|
|
66
75
|
})
|
package/esm/lightRail.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lightRail.js","sourceRoot":"","sources":["../src/lightRail.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAQnC,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,MAAM,EACN,KAAK,EACL,IAAI,GACW;IACf,OAAO,KAAK,CACV,sEAAsE,MAAM,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"lightRail.js","sourceRoot":"","sources":["../src/lightRail.ts"],"names":[],"mappings":"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"}
|
package/esm/lrtfeeder.js
CHANGED
|
@@ -33,7 +33,7 @@ export default function fetchEtas({ stopId, route, language, }) {
|
|
|
33
33
|
}
|
|
34
34
|
return busStop
|
|
35
35
|
.filter(({ busStopId }) => busStopId === stopId)
|
|
36
|
-
.reduce((ret, { bus: buses }) => [
|
|
36
|
+
.reduce((ret, { bus: buses, busStopRemark }) => [
|
|
37
37
|
...ret,
|
|
38
38
|
...buses.reduce((etas, bus) => {
|
|
39
39
|
// hackily use +8 hours and use UTC hour to resolve timezone issue
|
|
@@ -49,8 +49,8 @@ export default function fetchEtas({ stopId, route, language, }) {
|
|
|
49
49
|
eta: `${etaDate.getUTCFullYear()}-${`0${etaDate.getUTCMonth() + 1}`.slice(-2)}-${`0${etaDate.getUTCDate()}`.slice(-2)}` +
|
|
50
50
|
`T${`0${etaDate.getUTCHours()}`.slice(-2)}:${`0${etaDate.getMinutes()}`.slice(-2)}:${`0${etaDate.getSeconds()}`.slice(-2)}+08:00`,
|
|
51
51
|
remark: {
|
|
52
|
-
zh: bus.busRemark || (bus.isScheduled === "1" ? "預定班次" : ""),
|
|
53
|
-
en: bus.busRemark || (bus.isScheduled === "1" ? "Scheduled" : ""),
|
|
52
|
+
zh: busStopRemark || bus.busRemark || (bus.isScheduled === "1" ? "預定班次" : ""),
|
|
53
|
+
en: busStopRemark || bus.busRemark || (bus.isScheduled === "1" ? "Scheduled" : ""),
|
|
54
54
|
},
|
|
55
55
|
dest: {
|
|
56
56
|
zh: "",
|
package/esm/lrtfeeder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lrtfeeder.js","sourceRoot":"","sources":["../src/lrtfeeder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAQnC,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,MAAM,EACN,KAAK,EACL,QAAQ,GACO;IACf,OAAO,KAAK,CAAC,yDAAyD,EAAE;QACtE,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;QACxC,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,QAAQ,EAAE,QAAQ;YAClB,SAAS,EAAE,KAAK;SACjB,CAAC;KACH,CAAC;SACC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACnC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,EAAE,EAAE;QAC5C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB,IACE,sBAAsB;gBACtB,OAAO,sBAAsB,KAAK,QAAQ,EAC1C;gBACA,OAAO;oBACL;wBACE,GAAG,EAAE,EAAE;wBACP,MAAM,EAAE;4BACN,CAAC,QAAQ,CAAC,EAAE,sBAAsB;yBACnC;wBACD,IAAI,EAAE;4BACJ,EAAE,EAAE,EAAE;4BACN,EAAE,EAAE,EAAE;yBACP;wBACD,EAAE,EAAE,WAAW;qBAChB;iBACF,CAAC;aACH;SACF;QAED,OAAO,OAAO;aACX,MAAM,CAAC,CAAC,EAAE,SAAS,EAAO,EAAE,EAAE,CAAC,SAAS,KAAK,MAAM,CAAC;aACpD,MAAM,CACL,CAAC,GAAQ,EAAE,EAAE,GAAG,EAAE,KAAK,EAAO,EAAE,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"lrtfeeder.js","sourceRoot":"","sources":["../src/lrtfeeder.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/lightRail.ts
CHANGED
|
@@ -13,7 +13,9 @@ export default function fetchEtas({
|
|
|
13
13
|
dest,
|
|
14
14
|
}: fetchEtasProps): Promise<Eta[]> {
|
|
15
15
|
return fetch(
|
|
16
|
-
`https://rt.data.gov.hk/v1/transport/mtr/lrt/getSchedule?station_id=${stopId.slice(
|
|
16
|
+
`https://rt.data.gov.hk/v1/transport/mtr/lrt/getSchedule?station_id=${stopId.slice(
|
|
17
|
+
2,
|
|
18
|
+
)}&with_special=1`,
|
|
17
19
|
{
|
|
18
20
|
cache: isSafari ? "default" : "no-store",
|
|
19
21
|
},
|
|
@@ -38,62 +40,92 @@ export default function fetchEtas({
|
|
|
38
40
|
},
|
|
39
41
|
];
|
|
40
42
|
}
|
|
41
|
-
|
|
43
|
+
|
|
42
44
|
return platform_list.reduce(
|
|
43
45
|
(acc: Eta[], { route_list, platform_id }: any) => {
|
|
44
46
|
return [
|
|
45
47
|
...acc,
|
|
46
|
-
// route_list is null when there are no ETAs available
|
|
47
48
|
...(route_list ?? [])
|
|
48
49
|
.filter(
|
|
49
|
-
({
|
|
50
|
-
|
|
50
|
+
({
|
|
51
|
+
route_no,
|
|
52
|
+
additionalInfo1,
|
|
53
|
+
dest_ch,
|
|
54
|
+
dest_en,
|
|
55
|
+
stop,
|
|
56
|
+
}: any) =>
|
|
57
|
+
// match route number OR additionalInfo1 to the requested route
|
|
58
|
+
(route === route_no || route === additionalInfo1) &&
|
|
51
59
|
(dest_ch === dest.zh || dest_en.includes("Circular")) &&
|
|
52
60
|
stop === 0,
|
|
53
61
|
)
|
|
54
|
-
.map(
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
62
|
+
.map(
|
|
63
|
+
({
|
|
64
|
+
time_en,
|
|
65
|
+
train_length,
|
|
66
|
+
routeRemarkEng2,
|
|
67
|
+
routeRemarkChi2,
|
|
68
|
+
}: any) => {
|
|
69
|
+
let waitTime = 0;
|
|
70
|
+
switch (time_en.toLowerCase()) {
|
|
71
|
+
case "arriving":
|
|
72
|
+
case "departing":
|
|
73
|
+
case "-":
|
|
74
|
+
waitTime = 0;
|
|
75
|
+
break;
|
|
76
|
+
default:
|
|
77
|
+
waitTime = parseInt(time_en, 10);
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
const etaDate = new Date(
|
|
81
|
+
Date.now() + waitTime * 60 * 1000 + 8 * 3600000,
|
|
82
|
+
);
|
|
83
|
+
|
|
84
|
+
const platformText = `${platform_id}號月台 - ${Array(
|
|
85
|
+
train_length,
|
|
86
|
+
)
|
|
87
|
+
.fill("▭")
|
|
88
|
+
.join("")}`;
|
|
89
|
+
|
|
90
|
+
const platformTextEn = `Platform ${platform_id} - ${Array(
|
|
91
|
+
train_length,
|
|
92
|
+
)
|
|
93
|
+
.fill("▭")
|
|
94
|
+
.join("")}`;
|
|
95
|
+
|
|
96
|
+
// Append routeRemarkEng2 / routeRemarkChi2 if present
|
|
97
|
+
const remarkZh = routeRemarkChi2
|
|
98
|
+
? `${platformText} - ${routeRemarkChi2}`
|
|
99
|
+
: platformText;
|
|
100
|
+
const remarkEn = routeRemarkEng2
|
|
101
|
+
? `${platformTextEn} - ${routeRemarkEng2}`
|
|
102
|
+
: platformTextEn;
|
|
103
|
+
|
|
104
|
+
return {
|
|
105
|
+
eta:
|
|
106
|
+
`${etaDate.getUTCFullYear()}-${`0${
|
|
107
|
+
etaDate.getUTCMonth() + 1
|
|
108
|
+
}`.slice(-2)}-${`0${etaDate.getUTCDate()}`.slice(-2)}` +
|
|
109
|
+
`T${`0${etaDate.getUTCHours()}`.slice(
|
|
110
|
+
-2,
|
|
111
|
+
)}:${`0${etaDate.getMinutes()}`.slice(
|
|
112
|
+
-2,
|
|
113
|
+
)}:${`0${etaDate.getSeconds()}`.slice(-2)}+08:00`,
|
|
114
|
+
remark: {
|
|
115
|
+
zh: remarkZh,
|
|
116
|
+
en: remarkEn,
|
|
117
|
+
},
|
|
118
|
+
dest: {
|
|
119
|
+
zh: "",
|
|
120
|
+
en: "",
|
|
121
|
+
},
|
|
122
|
+
co: "lightRail",
|
|
123
|
+
};
|
|
124
|
+
},
|
|
125
|
+
),
|
|
94
126
|
];
|
|
95
127
|
},
|
|
96
|
-
[]
|
|
128
|
+
[],
|
|
97
129
|
);
|
|
98
130
|
})
|
|
99
131
|
.catch((e) => {
|
package/src/lrtfeeder.ts
CHANGED
|
@@ -49,7 +49,7 @@ export default function fetchEtas({
|
|
|
49
49
|
return busStop
|
|
50
50
|
.filter(({ busStopId }: any) => busStopId === stopId)
|
|
51
51
|
.reduce(
|
|
52
|
-
(ret: any, { bus: buses }: any) => [
|
|
52
|
+
(ret: any, { bus: buses, busStopRemark }: any) => [
|
|
53
53
|
...ret,
|
|
54
54
|
...buses.reduce((etas: Eta[], bus: any) => {
|
|
55
55
|
// hackily use +8 hours and use UTC hour to resolve timezone issue
|
|
@@ -78,8 +78,8 @@ export default function fetchEtas({
|
|
|
78
78
|
-2,
|
|
79
79
|
)}:${`0${etaDate.getSeconds()}`.slice(-2)}+08:00`,
|
|
80
80
|
remark: {
|
|
81
|
-
zh: bus.busRemark || (bus.isScheduled === "1" ? "預定班次" : ""),
|
|
82
|
-
en: bus.busRemark || (bus.isScheduled === "1" ? "Scheduled" : ""),
|
|
81
|
+
zh: busStopRemark || bus.busRemark || (bus.isScheduled === "1" ? "預定班次" : ""),
|
|
82
|
+
en: busStopRemark || bus.busRemark || (bus.isScheduled === "1" ? "Scheduled" : ""),
|
|
83
83
|
},
|
|
84
84
|
dest: {
|
|
85
85
|
zh: "",
|