refactor: hardcode API IDs and coaster lists, remove Playwright discovery
Embed Six Flags API IDs directly in the park registry and snapshot coaster lists from park-meta.json into a TypeScript module. This eliminates the Playwright-based discovery script, RCDB scraper, and runtime dependency on park-meta.json — preparing for the backend API transition. - Add apiId field to Park type and all 24 park entries - Create lib/coaster-data.ts with hardcoded coaster lists - Update page components to use park.apiId and new getCoasterSet() - Remove scripts/discover.ts, lib/scrapers/rcdb.ts, lib/park-meta.ts - Remove data/park-meta.json from shared volume - Remove playwright devDependency and discover npm script - Simplify scripts/scrape.ts (no RCDB, no discovery checks) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,332 @@
|
||||
import { normalizeForMatch } from "./coaster-match";
|
||||
|
||||
export const COASTER_LISTS: Record<string, string[]> = {
|
||||
greatadventure: [
|
||||
"Superman - Ultimate Flight",
|
||||
"El Toro",
|
||||
"Dark Knight",
|
||||
"Joker",
|
||||
"Jersey Devil Coaster",
|
||||
"Lil' Devil Coaster",
|
||||
"Flash: Vertical Velocity",
|
||||
"Batman The Ride",
|
||||
"Skull Mountain",
|
||||
"Runaway Mine Train",
|
||||
"Medusa",
|
||||
"Harley Quinn Crazy Train",
|
||||
"Nitro",
|
||||
],
|
||||
magicmountain: [
|
||||
"Ninja",
|
||||
"New Revolution",
|
||||
"Batman The Ride",
|
||||
"Viper",
|
||||
"Gold Rusher",
|
||||
"Riddler's Revenge",
|
||||
"Canyon Blaster",
|
||||
"Goliath",
|
||||
"X2",
|
||||
"Scream!",
|
||||
"Tatsu",
|
||||
"Apocalypse the Ride",
|
||||
"Road Runner Express",
|
||||
"Speedy Gonzales Hot Rod Racers",
|
||||
"Full Throttle",
|
||||
"Twisted Colossus",
|
||||
"West Coast Racers",
|
||||
"Wonder Woman Flight of Courage",
|
||||
],
|
||||
greatamerica: [
|
||||
"Demon",
|
||||
"Batman The Ride",
|
||||
"American Eagle",
|
||||
"Viper",
|
||||
"Whizzer",
|
||||
"Sprocket Rockets",
|
||||
"Raging Bull",
|
||||
"Flash: Vertical Velocity",
|
||||
"Superman - Ultimate Flight",
|
||||
"Dark Knight",
|
||||
"Little Dipper",
|
||||
"Goliath",
|
||||
"X-Flight",
|
||||
"Joker",
|
||||
"Maxx Force",
|
||||
"Wrath of Rakshasa",
|
||||
],
|
||||
overgeorgia: [
|
||||
"Blue Hawk",
|
||||
"Great American Scream Machine",
|
||||
"Dahlonega Mine Train",
|
||||
"Batman The Ride",
|
||||
"Georgia Scorcher",
|
||||
"Superman - Ultimate Flight",
|
||||
"Joker Funhouse Coaster",
|
||||
"Goliath",
|
||||
"Dare Devil Dive",
|
||||
"Twisted Cyclone",
|
||||
"Riddler Mindbender",
|
||||
"Georgia Gold Rusher",
|
||||
],
|
||||
overtexas: [
|
||||
"Pandemonium",
|
||||
"New Texas Giant",
|
||||
"Joker",
|
||||
"Aquaman: Power Wave",
|
||||
"Shock Wave",
|
||||
"Judge Roy Scream",
|
||||
"Runaway Mine Train",
|
||||
"Runaway Mountain",
|
||||
"Mini Mine Train",
|
||||
"Mr. Freeze",
|
||||
"Batman The Ride",
|
||||
"Titan",
|
||||
"Wile E. Coyote's Grand Canyon Blaster",
|
||||
],
|
||||
stlouis: [
|
||||
"Ninja",
|
||||
"River King Mine Train",
|
||||
"Mr. Freeze Reverse Blast",
|
||||
"Batman The Ride",
|
||||
"Screamin' Eagle",
|
||||
"Boss",
|
||||
"Pandemonium",
|
||||
"American Thunder",
|
||||
"Boomerang",
|
||||
"Rookie Racer",
|
||||
],
|
||||
fiestatexas: [
|
||||
"Batgirl Coaster Chase",
|
||||
"Road Runner Express",
|
||||
"Poltergeist",
|
||||
"Boomerang Coast to Coaster",
|
||||
"Superman Krypton Coaster",
|
||||
"Pandemonium",
|
||||
"Chupacabra",
|
||||
"Iron Rattler",
|
||||
"Batman The Ride",
|
||||
"Wonder Woman Golden Lasso Coaster",
|
||||
"Dr. Diabolical's Cliffhanger",
|
||||
],
|
||||
newengland: [
|
||||
"Joker",
|
||||
"Thunderbolt",
|
||||
"Great Chase",
|
||||
"Riddler Revenge",
|
||||
"Superman the Ride",
|
||||
"Flashback",
|
||||
"Catwoman's Whip",
|
||||
"Pandemonium",
|
||||
"Batman - The Dark Knight",
|
||||
"Wicked Cyclone",
|
||||
"Gotham City Gauntlet Escape from Arkham Asylum",
|
||||
],
|
||||
discoverykingdom: [
|
||||
"Roadrunner Express",
|
||||
"Medusa",
|
||||
"Cobra",
|
||||
"Flash: Vertical Velocity",
|
||||
"Kong",
|
||||
"Boomerang",
|
||||
"Superman Ultimate Flight",
|
||||
"Joker",
|
||||
"Batman The Ride",
|
||||
"Sidewinder Safari",
|
||||
],
|
||||
mexico: [
|
||||
"Tsunami",
|
||||
"Superman Krypton Coaster",
|
||||
"Batgirl Batarang",
|
||||
"Batman The Ride",
|
||||
"Superman el Último Escape",
|
||||
"Dark Knight",
|
||||
"Joker",
|
||||
"Medusa Steel Coaster",
|
||||
"Wonder Woman",
|
||||
"Speedway Stunt Coaster",
|
||||
],
|
||||
greatescape: [
|
||||
"Comet",
|
||||
"Steamin' Demon",
|
||||
"Flashback",
|
||||
"Canyon Blaster",
|
||||
"Frankie's Mine Train",
|
||||
"Bobcat",
|
||||
],
|
||||
darienlake: [
|
||||
"Predator",
|
||||
"Viper",
|
||||
"Mind Eraser",
|
||||
"Boomerang",
|
||||
"Ride of Steel",
|
||||
"Hoot N Holler",
|
||||
"Moto Coaster",
|
||||
"Tantrum",
|
||||
],
|
||||
cedarpoint: [
|
||||
"Raptor",
|
||||
"Rougarou",
|
||||
"Magnum XL-200",
|
||||
"Blue Streak",
|
||||
"Corkscrew",
|
||||
"Gemini",
|
||||
"Wilderness Run",
|
||||
"Woodstock Express",
|
||||
"Millennium Force",
|
||||
"Iron Dragon",
|
||||
"Cedar Creek Mine Ride",
|
||||
"Maverick",
|
||||
"GateKeeper",
|
||||
"Valravn",
|
||||
"Steel Vengeance",
|
||||
"Top Thrill 2",
|
||||
"Wild Mouse",
|
||||
"Siren's Curse",
|
||||
],
|
||||
knotts: [
|
||||
"Jaguar!",
|
||||
"GhostRider",
|
||||
"Xcelerator",
|
||||
"Silver Bullet",
|
||||
"Sierra Sidewinder",
|
||||
"Pony Express",
|
||||
"Coast Rider",
|
||||
"HangTime",
|
||||
"Snoopy's Tenderpaw Twister Coaster",
|
||||
],
|
||||
canadaswonderland: [
|
||||
"Flight Deck",
|
||||
"Dragon Fyre",
|
||||
"Mighty Canadian Minebuster",
|
||||
"Wilde Beast",
|
||||
"Ghoster Coaster",
|
||||
"Thunder Run",
|
||||
"Bat",
|
||||
"Vortex",
|
||||
"Taxi Jam",
|
||||
"Fly",
|
||||
"Silver Streak",
|
||||
"Backlot Stunt Coaster",
|
||||
"Behemoth",
|
||||
"Leviathan",
|
||||
"Wonder Mountain's Guardian",
|
||||
"Yukon Striker",
|
||||
"Snoopy's Racing Railway",
|
||||
"AlpenFury",
|
||||
],
|
||||
carowinds: [
|
||||
"Carolina Cyclone",
|
||||
"Woodstock Express",
|
||||
"Carolina Goldrusher",
|
||||
"Hurler",
|
||||
"Vortex",
|
||||
"Wilderness Run",
|
||||
"Afterburn",
|
||||
"Flying Cobras",
|
||||
"Thunder Striker",
|
||||
"Fury 325",
|
||||
"Copperhead Strike",
|
||||
"Snoopy's Racing Railway",
|
||||
"Ricochet",
|
||||
"Kiddy Hawk",
|
||||
],
|
||||
kingsdominion: [
|
||||
"Racer 75",
|
||||
"Woodstock Express",
|
||||
"Grizzly",
|
||||
"Flight of Fear",
|
||||
"Reptilian",
|
||||
"Great Pumpkin Coaster",
|
||||
"Apple Zapple",
|
||||
"Backlot Stunt Coaster",
|
||||
"Dominator",
|
||||
"Pantherian",
|
||||
"Twisted Timbers",
|
||||
"Tumbili",
|
||||
"Rapterra",
|
||||
],
|
||||
kingsisland: [
|
||||
"Flight of Fear",
|
||||
"Beast",
|
||||
"Racer",
|
||||
"Adventure Express",
|
||||
"Woodstock Express",
|
||||
"Bat",
|
||||
"Great Pumpkin Coaster",
|
||||
"Invertigo",
|
||||
"Diamondback",
|
||||
"Banshee",
|
||||
"Orion",
|
||||
"Mystic Timbers",
|
||||
"Snoopy's Soap Box Racers",
|
||||
"Woodstock's Air Rail",
|
||||
"Queen City Stunt Coaster",
|
||||
],
|
||||
valleyfair: [
|
||||
"High Roller",
|
||||
"Corkscrew",
|
||||
"Excalibur",
|
||||
"Wild Thing",
|
||||
"Mad Mouse",
|
||||
"Steel Venom",
|
||||
"Renegade",
|
||||
"Cosmic Coaster",
|
||||
],
|
||||
worldsoffun: [
|
||||
"Timber Wolf",
|
||||
"Cosmic Coaster",
|
||||
"Mamba",
|
||||
"Spinning Dragons",
|
||||
"Patriot",
|
||||
"Prowler",
|
||||
"Zambezi Zinger",
|
||||
"Boomerang",
|
||||
],
|
||||
miadventure: [
|
||||
"Corkscrew",
|
||||
"Wolverine Wildcat",
|
||||
"Zach's Zoomer",
|
||||
"Shivering Timbers",
|
||||
"Mad Mouse",
|
||||
"Thunderhawk",
|
||||
"Woodstock Express",
|
||||
],
|
||||
dorneypark: [
|
||||
"Thunderhawk",
|
||||
"Steel Force",
|
||||
"Wild Mouse",
|
||||
"Woodstock Express",
|
||||
"Talon",
|
||||
"Hydra the Revenge",
|
||||
"Possessed",
|
||||
"Iron Menace",
|
||||
],
|
||||
cagreatamerica: [
|
||||
"Demon",
|
||||
"Grizzly",
|
||||
"Woodstock Express",
|
||||
"Patriot",
|
||||
"Flight Deck",
|
||||
"Lucy's Crabbie Cabbies",
|
||||
"Psycho Mouse",
|
||||
"Gold Striker",
|
||||
"RailBlazer",
|
||||
],
|
||||
frontiercity: [
|
||||
"Silver Bullet",
|
||||
"Wildcat",
|
||||
"Diamondback",
|
||||
"Steel Lasso",
|
||||
"Frankie's Mine Train",
|
||||
],
|
||||
};
|
||||
|
||||
export function getCoasterSet(parkId: string): Set<string> | null {
|
||||
const coasters = COASTER_LISTS[parkId];
|
||||
if (!coasters || coasters.length === 0) return null;
|
||||
return new Set(coasters.map(normalizeForMatch));
|
||||
}
|
||||
|
||||
export function hasCoasterData(): boolean {
|
||||
return Object.values(COASTER_LISTS).some((list) => list.length > 0);
|
||||
}
|
||||
Reference in New Issue
Block a user