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:
@@ -0,0 +1,76 @@
|
||||
{
|
||||
"groups": [
|
||||
{
|
||||
"name": "Group A",
|
||||
"teams": [
|
||||
"Brazil",
|
||||
"Scotland",
|
||||
"Morocco",
|
||||
"Norway"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Group B",
|
||||
"teams": [
|
||||
"Italy",
|
||||
"Chile",
|
||||
"Cameroon",
|
||||
"Austria"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Group C",
|
||||
"teams": [
|
||||
"Saudi Arabia",
|
||||
"Denmark",
|
||||
"France",
|
||||
"South Africa"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Group D",
|
||||
"teams": [
|
||||
"Paraguay",
|
||||
"Bulgaria",
|
||||
"Spain",
|
||||
"Nigeria"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Group E",
|
||||
"teams": [
|
||||
"South Korea",
|
||||
"Mexico",
|
||||
"Netherlands",
|
||||
"Belgium"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Group F",
|
||||
"teams": [
|
||||
"FR Yugoslavia",
|
||||
"Iran",
|
||||
"Germany",
|
||||
"United States"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Group G",
|
||||
"teams": [
|
||||
"England",
|
||||
"Tunisia",
|
||||
"Romania",
|
||||
"Colombia"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Group H",
|
||||
"teams": [
|
||||
"Argentina",
|
||||
"Japan",
|
||||
"Jamaica",
|
||||
"Croatia"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"stadiums": [
|
||||
{
|
||||
"name": "Stade Vélodrome",
|
||||
"city": "Marseille"
|
||||
},
|
||||
{
|
||||
"name": "Parc des Princes",
|
||||
"city": "Paris"
|
||||
},
|
||||
{
|
||||
"name": "Stade Félix-Bollaert",
|
||||
"city": "Lens"
|
||||
},
|
||||
{
|
||||
"name": "Stade de France",
|
||||
"city": "Saint-Denis"
|
||||
},
|
||||
{
|
||||
"name": "Stade de la Mosson",
|
||||
"city": "Montpellier"
|
||||
},
|
||||
{
|
||||
"name": "Stade de Toulouse",
|
||||
"city": "Toulouse"
|
||||
},
|
||||
{
|
||||
"name": "Parc Lescure",
|
||||
"city": "Bordeaux"
|
||||
},
|
||||
{
|
||||
"name": "Stade Geoffroy-Guichard",
|
||||
"city": "Saint-Étienne"
|
||||
},
|
||||
{
|
||||
"name": "Stade de la Beaujoire",
|
||||
"city": "Nantes"
|
||||
},
|
||||
{
|
||||
"name": "Stade de Gerland",
|
||||
"city": "Lyon"
|
||||
},
|
||||
{
|
||||
"name": "Stade Gerland",
|
||||
"city": "Lyon"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user