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,60 @@
{
"stadiums": [
{
"name": "Estádio Mineirão",
"city": "Belo Horizonte"
},
{
"name": "Estádio do Maracanã",
"city": "Rio de Janeiro"
},
{
"name": "Estádio Castelão",
"city": "Fortaleza"
},
{
"name": "Itaipava Arena Pernambuco",
"city": "Recife"
},
{
"name": "Estádio Nacional Mané Garrincha",
"city": "Brasília"
},
{
"name": "Estádio Beira-Rio",
"city": "Porto Alegre"
},
{
"name": "Arena Corinthians",
"city": "São Paulo"
},
{
"name": "Itaipava Arena Fonte Nova",
"city": "Salvador"
},
{
"name": "Maracanã Stadium",
"city": "Rio de Janeiro"
},
{
"name": "Arena de São Paulo",
"city": "São Paulo"
},
{
"name": "Arena das Dunas",
"city": "Natal"
},
{
"name": "Arena da Amazônia",
"city": "Manaus"
},
{
"name": "Arena Pantanal",
"city": "Cuiabá"
},
{
"name": "Arena da Baixada",
"city": "Curitiba"
}
]
}