feat: replace Kaggle CSV with Wikipedia scraper for historical match data

Add scripts/scrape-wikipedia.ts that fetches all 22 World Cups (1930–2022)
from English Wikipedia via MediaWiki API, handles group sub-pages, AET/penalty
detection, and goal parsing, writing openfootball-format JSON to app/data/openfootball/.

Rewrite scripts/seed.ts to read these local JSON files instead of the Kaggle
CSV, producing 965 matches and 2716 goals with per-group assignments for all
historical tournaments (enabling group standings on tournament pages).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-15 11:39:53 +02:00
parent 83b1ad3e35
commit 5dcd22ad22
88 changed files with 95625 additions and 127 deletions
@@ -0,0 +1,80 @@
{
"stadiums": [
{
"name": "Camp Nou",
"city": "Barcelona"
},
{
"name": "Ramón Sánchez Pizjuán Stadium",
"city": "Seville"
},
{
"name": "Estadio José Rico Pérez",
"city": "Alicante"
},
{
"name": "Santiago Bernabéu",
"city": "Madrid"
},
{
"name": "Balaídos",
"city": "Vigo"
},
{
"name": "Estadio de Riazor",
"city": "A Coruña"
},
{
"name": "El Molinón",
"city": "Gijón"
},
{
"name": "Estadio Carlos Tartiere",
"city": "Oviedo"
},
{
"name": "Nuevo Estadio",
"city": "Elche"
},
{
"name": "San Mamés",
"city": "Bilbao"
},
{
"name": "Estadio José Zorrilla",
"city": "Valladolid"
},
{
"name": "Estadio Luis Casanova",
"city": "Valencia"
},
{
"name": "La Romareda",
"city": "Zaragoza"
},
{
"name": "Ramón Sánchez Pizjuán",
"city": "Seville"
},
{
"name": "La Rosaleda Stadium",
"city": "Málaga"
},
{
"name": "Estadio Benito Villamarín",
"city": "Seville"
},
{
"name": "Sarrià Stadium",
"city": "Barcelona"
},
{
"name": "Estadio Sarriá",
"city": "Barcelona"
},
{
"name": "Vicente Calderón",
"city": "Madrid"
}
]
}