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,58 @@
{
"groups": [
{
"name": "Group A",
"teams": [
"Italy",
"Austria",
"United States",
"Czechoslovakia"
]
},
{
"name": "Group B",
"teams": [
"Argentina",
"Cameroon",
"Soviet Union",
"Romania"
]
},
{
"name": "Group C",
"teams": [
"Brazil",
"Sweden",
"Costa Rica",
"Scotland"
]
},
{
"name": "Group D",
"teams": [
"United Arab Emirates",
"Colombia",
"West Germany",
"Yugoslavia"
]
},
{
"name": "Group E",
"teams": [
"Belgium",
"South Korea",
"Uruguay",
"Spain"
]
},
{
"name": "Group F",
"teams": [
"England",
"Republic of Ireland",
"Netherlands",
"Egypt"
]
}
]
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,56 @@
{
"stadiums": [
{
"name": "Stadio San Paolo",
"city": "Naples"
},
{
"name": "Stadio San Nicola",
"city": "Bari"
},
{
"name": "Stadio Delle Alpi",
"city": "Turin"
},
{
"name": "San Siro",
"city": "Milan"
},
{
"name": "Stadio Luigi Ferraris",
"city": "Genoa"
},
{
"name": "Stadio Olimpico",
"city": "Rome"
},
{
"name": "Stadio Marc'Antonio Bentegodi",
"city": "Verona"
},
{
"name": "Stadio Renato Dall'Ara",
"city": "Bologna"
},
{
"name": "Stadio Comunale",
"city": "Florence"
},
{
"name": "Stadio delle Alpi",
"city": "Turin"
},
{
"name": "Stadio Friuli",
"city": "Udine"
},
{
"name": "Stadio Sant'Elia",
"city": "Cagliari"
},
{
"name": "Stadio La Favorita",
"city": "Palermo"
}
]
}