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,40 @@
{
"groups": [
{
"name": "Group 1",
"teams": [
"Brazil",
"Mexico",
"Yugoslavia",
"France"
]
},
{
"name": "Group 2",
"teams": [
"West Germany",
"Turkey",
"Hungary",
"South Korea"
]
},
{
"name": "Group 3",
"teams": [
"Uruguay",
"Czechoslovakia",
"Austria",
"Scotland"
]
},
{
"name": "Group 4",
"teams": [
"Switzerland",
"Italy",
"England",
"Belgium"
]
}
]
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,28 @@
{
"stadiums": [
{
"name": "Charmilles Stadium",
"city": "Geneva"
},
{
"name": "Stade Olympique de la Pontaise",
"city": "Lausanne"
},
{
"name": "Wankdorf Stadium",
"city": "Bern"
},
{
"name": "Hardturm Stadium",
"city": "Zürich"
},
{
"name": "St. Jakob Stadium",
"city": "Basel"
},
{
"name": "Cornaredo Stadium",
"city": "Lugano"
}
]
}