fix: suppress park-page weather-delay flag during wind-down too
Build and Deploy / Lint, typecheck, test (push) Successful in 30s
Build and Deploy / Build & Push (push) Successful in 1m15s

Same root cause as 52f7efd — the /rides endpoint also used
isWithinOperatingWindow, which includes the post-close buffer. Switch
to getOperatingStatus and gate the badge on status === "open" so the
park page matches the calendar.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-31 20:54:05 -04:00
parent 52f7efd21a
commit 301ed797ea
+11 -5
View File
@@ -2,7 +2,7 @@ import { Hono } from "hono";
import { PARK_MAP } from "../../../lib/parks";
import { QUEUE_TIMES_IDS } from "../../../lib/queue-times-map";
import { getCoasterSet } from "../../../lib/coaster-data";
import { getTodayLocal, isWithinOperatingWindow } from "../../../lib/env";
import { getTodayLocal, getOperatingStatus } from "../../../lib/env";
import { fetchLiveRides } from "../../../lib/scrapers/queuetimes";
import { scrapeRidesForDay } from "../../../lib/scrapers/sixflags";
import { fetchFastLaneWaits, lookupFastLane } from "../../../lib/scrapers/sixflags-waittimes";
@@ -21,9 +21,10 @@ app.get("/:id/rides", async (c) => {
const today = getTodayLocal();
const todayData = getDayData(id, today);
const withinWindow = todayData?.hoursLabel
? isWithinOperatingWindow(todayData.hoursLabel, park.timezone)
: false;
const operatingStatus = todayData?.hoursLabel
? getOperatingStatus(todayData.hoursLabel, park.timezone)
: "closed";
const withinWindow = operatingStatus !== "closed";
const queueTimesId = QUEUE_TIMES_IDS[id];
let liveRides: LiveRidesResult | null = null;
@@ -90,8 +91,13 @@ app.get("/:id/rides", async (c) => {
}
}
// Only flag weather delay during scheduled hours — during the post-close
// wind-down buffer, all-rides-closed is just normal closing, not weather.
const isWeatherDelay =
withinWindow && liveRides !== null && liveRides.rides.length > 0 && liveRides.rides.every((r) => !r.isOpen);
operatingStatus === "open" &&
liveRides !== null &&
liveRides.rides.length > 0 &&
liveRides.rides.every((r) => !r.isOpen);
let scheduleFallback = null;
if (!liveRides) {