From ff3c151e9dab85b8d7e6bd99d9c604f162d7fb88 Mon Sep 17 00:00:00 2001 From: Caleb Denio Date: Mon, 16 Feb 2026 22:44:51 -0700 Subject: [PATCH] stufffffffff --- cmd/main.go | 25 +++++++++++++++++++------ static/index.html | 10 +++++++--- static/js/main.js | 15 ++++++++++++--- 3 files changed, 38 insertions(+), 12 deletions(-) diff --git a/cmd/main.go b/cmd/main.go index 0730453..ed9c515 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -73,13 +73,26 @@ func getStationForVehicle(vehicle *pb.VehiclePosition) *pb.VehicleFeed_Station { return nearestStop } -func getVehicles() ([]*pb.VehiclePosition, *pb.FeedHeader, error) { - resp, err := http.Get("https://apps.rideuta.com/tms/gtfs/Vehicle") - if err != nil { - return nil, nil, err - } +func fetchVehicleFeed() ([]byte, error) { + if os.Getenv("PRETEND_FEED") == "true" { + return os.ReadFile("pretend-feed.bin") + } else { + resp, err := http.Get("https://apps.rideuta.com/tms/gtfs/Vehicle") + if err != nil { + return nil, err + } - bytes, err := io.ReadAll(resp.Body) + bytes, err := io.ReadAll(resp.Body) + if err != nil { + return nil, err + } + + return bytes, nil + } +} + +func getVehicles() ([]*pb.VehiclePosition, *pb.FeedHeader, error) { + bytes, err := fetchVehicleFeed() if err != nil { return nil, nil, err } diff --git a/static/index.html b/static/index.html index 636ec06..bb214ea 100644 --- a/static/index.html +++ b/static/index.html @@ -51,18 +51,22 @@ } #banner { - grid-column-start: 1; - grid-column-end: 3; + grid-column: span 2; background-color: #ef4444; color: white; display: flex; align-items: center; justify-content: center; + height: 40px; } #banner.hidden { display: none; } + + #map, #sidebar { + grid-row: 2 / 3; + } @@ -71,7 +75,7 @@ style=" display: grid; grid-template-columns: auto 300px; - grid-template-rows: 40px 1fr; + grid-template-rows: auto 1fr; height: 100vh; " > diff --git a/static/js/main.js b/static/js/main.js index 1b6fb4b..e20e9db 100644 --- a/static/js/main.js +++ b/static/js/main.js @@ -85,6 +85,8 @@ protobuf.load("/schema.proto").then((root) => { document.getElementById("count-frontrunner").innerText = totals.frontrunner.toString() } + let bannerVisible = false + async function reload() { const bin = await fetch("/api").then((r) => r.arrayBuffer()); const { vehicles, info } = root @@ -96,10 +98,17 @@ protobuf.load("/schema.proto").then((root) => { populateTotals(vehicles) if (vehicles.length == 0) { - document.getElementById("banner").classList.remove("hidden") - map.invalidateSize() + if (!bannerVisible) { + document.getElementById("banner").classList.remove("hidden") + bannerVisible = true + map.invalidateSize() + } } else { - document.getElementById("banner").classList.add("hidden") + if (bannerVisible) { + document.getElementById("banner").classList.add("hidden") + bannerVisible = false + map.invalidateSize() + } } // render vehicles on map