Fixed kmb again for schedules

This commit is contained in:
2026-02-27 20:07:10 +08:00
parent cda11cef2e
commit 6245ef6290

View File

@@ -4,7 +4,6 @@ import (
"encoding/json"
"fmt"
"io"
"net/http"
"path/filepath"
"time"
@@ -24,36 +23,32 @@ type Schedules struct {
Type string `json:"type"`
Version string `json:"version"`
DateCreated time.Time `json:"generated_timestamp,string"`
Schedules [] *Schedule `json:"data"`
Schedules []*Schedule `json:"data"`
}
func getSchedule( r *RouteStop ) ( *[] *Schedule, error ) {
func getSchedule(r *RouteStop) (*[]*Schedule, error) {
CACHE_PATH := filepath.Join(
utils.WORKDIR,
"kmb-" + r.BusStop.BusStopId + "-" + r.RouteId + "-" + r.ServiceType + ".json",
"kmb-"+r.BusStop.BusStopId+"-"+r.RouteId+"-"+r.ServiceType+".json",
)
QUERY_FUNC := func() ( io.ReadCloser, error ) {
resp, err := http.Get( fmt.Sprintf(
QUERY_FUNC := func() (io.ReadCloser, error) {
return utils.HttpGet(fmt.Sprintf(
"https://data.etabus.gov.hk/v1/transport/kmb/eta/%s/%s/%s",
r.BusStop.BusStopId,
r.RouteId,
r.ServiceType,
) )
if err != nil {
return nil, err
}
return resp.Body, nil
))
}
buff, err := utils.CacheStream( CACHE_PATH, QUERY_FUNC, 60 )
buff, err := utils.CacheStream(CACHE_PATH, QUERY_FUNC, 60)
if err != nil {
return nil, err
}
schedules := Schedules{}
err = json.Unmarshal( buff.Bytes(), &schedules )
err = json.Unmarshal(buff.Bytes(), &schedules)
if err != nil {
return nil, err
}