hk-bus-eta-skpracta
Version:
Query the ETA (Estimated Time of Arrival) of HK Bus/Minibus/MTR/Lightrail (skpracta flavored)
123 lines (103 loc) • 3.07 kB
Markdown
Bus ETAs in Hong Kong is now available as open data in Hong Kong, while there is no format normalization across different transport provider. This package is a js package (typescript supported) for querying normalized public traffic ETA (Estimated Time of Arrival) in Hong Kong. The ETA data structure is based on [hkbus/hk-bus-crawling](https://github.com/hkbus/hk-bus-crawling) and a well-established open-source project is known as [hkbus.app](https://hkbus.app/).
A Python version package is available [here](https://pypi.org/project/hk-bus-eta/) and the source code is available [here](https://github.com/hkbus/hk-bus-crawling).
## Demo
Live demo is available [here](https://hk-bus-eta.chunlaw.io/).
## Install
`npm install hk-bus-eta`
or
`yarn add hk-bus-eta`
## Usage
__Crawling traffic database:__
```ts
import { fetchEtaObj } from "hk-bus-eta";
import type { BusDb } from "hk-bus-eta";
fetchEtaDb().then((db: BusDb) => {
console.log(db)
})
```
__Crawling ETA__
```ts
import { fetchEtas } from "hk-bus-eta";
import tyep { Eta } from "hk-bus-eta";
// busDb is the BusDb object fetched by fetchEtaObj
fetchEtas({
...busDb.routeList["1+1+CHUK YUEN ESTATE+STAR FERRY"],
seq: 0,
language: "en",
}).then(etas => {
console.log(etas)
})
```
The data structure of _EtaDb_ is as follows:
```ts
{
holidays: string[];
routeList: {
[]: {
route: string,
co: Company[],
orig: {
en: string,
zh: string
},
dest: {
en: string,
zh: string
},
fares: string[] | null,
faresHoliday: string[] | null,
freq: {
[]: {
[]: [string, string] | null
}
} | null,
jt: string | null,
seq: number,
serviceType: string,
stops: {
[]: string[]
},
bound: {
[]: "O" | "I" | "OI" | "IO"
},
gtfsId: string,
nlbId: string
}
}
stopList: {
[]: {
location: {
lat: number,
lng: number,
},
name: {
en: string,
zh: string
}
}
}
stopMap: {
[]: Array<{
[]: string
}>
}
}
```
The data structure of _Eta_ is as follows:
```ts
{
eta: string,
remark: {
zh: string,
en: string
},
co: string
}
```
Project owner [chunlaw](https://github.com/chunlaw) is the initiator of the whole project. Everyone is welcome to contribute.
Modified by [skpracta](https://github.com/skpracta) to include https://hkbus-data.skpracta.info as a data source and intended for use by https://hkbus.skpracta.info as a fork of HKBUS.
GPL-3.0 license