feat: scrape tournament meta from Wikipedia, drop world_cup.csv
Add worldcup.meta.json per year with host, teams_count, winner, runner_up, third_place, fourth_place — derived from match results (Final/Third-place match) with infobox as fallback for edge cases like 1950's round-robin final. Fix infobox host extraction to handle <br>-separated multi-host entries (2002: Japan / South Korea). Fix squad scraper to filter out zero-player phantom sections that Wikipedia appends (References, Captains, etc.). Drop app/data/world_cup.csv and the PLACEMENTS/parseCsv code in seed.ts — all tournament metadata now comes from the scraped JSON files. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"host": "Uruguay",
|
||||
"teams_count": 13,
|
||||
"winner": "Uruguay",
|
||||
"runner_up": "Argentina",
|
||||
"third_place": "United States",
|
||||
"fourth_place": "Yugoslavia"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"host": "Italy",
|
||||
"teams_count": 16,
|
||||
"winner": "Italy",
|
||||
"runner_up": "Czechoslovakia",
|
||||
"third_place": "Germany",
|
||||
"fourth_place": "Austria"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"host": "France",
|
||||
"teams_count": 15,
|
||||
"winner": "Italy",
|
||||
"runner_up": "Hungary",
|
||||
"third_place": "Brazil",
|
||||
"fourth_place": "Sweden"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"host": "Brazil",
|
||||
"teams_count": 13,
|
||||
"winner": "Uruguay",
|
||||
"runner_up": "Brazil",
|
||||
"third_place": "Sweden",
|
||||
"fourth_place": "Spain"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"host": "Switzerland",
|
||||
"teams_count": 16,
|
||||
"winner": "West Germany",
|
||||
"runner_up": "Hungary",
|
||||
"third_place": "Austria",
|
||||
"fourth_place": "Uruguay"
|
||||
}
|
||||
@@ -2178,21 +2178,5 @@
|
||||
"date_of_birth": "1929-01-07"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Age",
|
||||
"players": []
|
||||
},
|
||||
{
|
||||
"name": "Player representation by club",
|
||||
"players": []
|
||||
},
|
||||
{
|
||||
"name": "Player representation by league system",
|
||||
"players": []
|
||||
},
|
||||
{
|
||||
"name": "Coaches representation by country",
|
||||
"players": []
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"host": "Sweden",
|
||||
"teams_count": 16,
|
||||
"winner": "Brazil",
|
||||
"runner_up": "Sweden",
|
||||
"third_place": "France",
|
||||
"fourth_place": "West Germany"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"host": "Chile",
|
||||
"teams_count": 16,
|
||||
"winner": "Brazil",
|
||||
"runner_up": "Czechoslovakia",
|
||||
"third_place": "Chile",
|
||||
"fourth_place": "Yugoslavia"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"host": "England",
|
||||
"teams_count": 16,
|
||||
"winner": "England",
|
||||
"runner_up": "West Germany",
|
||||
"third_place": "Portugal",
|
||||
"fourth_place": "Soviet Union"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"host": "Mexico",
|
||||
"teams_count": 16,
|
||||
"winner": "Brazil",
|
||||
"runner_up": "Italy",
|
||||
"third_place": "West Germany",
|
||||
"fourth_place": "Uruguay"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"host": "West Germany",
|
||||
"teams_count": 16,
|
||||
"winner": "West Germany",
|
||||
"runner_up": "Netherlands",
|
||||
"third_place": "Poland",
|
||||
"fourth_place": "Brazil"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"host": "Argentina",
|
||||
"teams_count": 16,
|
||||
"winner": "Argentina",
|
||||
"runner_up": "Netherlands",
|
||||
"third_place": "Brazil",
|
||||
"fourth_place": "Italy"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"host": "Spain",
|
||||
"teams_count": 24,
|
||||
"winner": "Italy",
|
||||
"runner_up": "West Germany",
|
||||
"third_place": "Poland",
|
||||
"fourth_place": "France"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"host": "Mexico",
|
||||
"teams_count": 24,
|
||||
"winner": "Argentina",
|
||||
"runner_up": "West Germany",
|
||||
"third_place": "France",
|
||||
"fourth_place": "Belgium"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"host": "Italy",
|
||||
"teams_count": 24,
|
||||
"winner": "West Germany",
|
||||
"runner_up": "Argentina",
|
||||
"third_place": "Italy",
|
||||
"fourth_place": "England"
|
||||
}
|
||||
@@ -3298,17 +3298,5 @@
|
||||
"date_of_birth": "1956-05-20"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Player",
|
||||
"players": []
|
||||
},
|
||||
{
|
||||
"name": "Captains",
|
||||
"players": []
|
||||
},
|
||||
{
|
||||
"name": "Goalkeepers",
|
||||
"players": []
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"host": "United States",
|
||||
"teams_count": 24,
|
||||
"winner": "Brazil",
|
||||
"runner_up": "Italy",
|
||||
"third_place": "Sweden",
|
||||
"fourth_place": "Bulgaria"
|
||||
}
|
||||
@@ -3286,13 +3286,5 @@
|
||||
"date_of_birth": "1972-08-18"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Captains",
|
||||
"players": []
|
||||
},
|
||||
{
|
||||
"name": "Goalkeepers",
|
||||
"players": []
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"host": "France",
|
||||
"teams_count": 32,
|
||||
"winner": "France",
|
||||
"runner_up": "Brazil",
|
||||
"third_place": "Croatia",
|
||||
"fourth_place": "Netherlands"
|
||||
}
|
||||
@@ -4388,17 +4388,5 @@
|
||||
"date_of_birth": "1974-07-15"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Players",
|
||||
"players": []
|
||||
},
|
||||
{
|
||||
"name": "Captains",
|
||||
"players": []
|
||||
},
|
||||
{
|
||||
"name": "Goalkeepers",
|
||||
"players": []
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"host": "Japan / South Korea",
|
||||
"teams_count": 32,
|
||||
"winner": "Brazil",
|
||||
"runner_up": "Germany",
|
||||
"third_place": "Turkey",
|
||||
"fourth_place": "South Korea"
|
||||
}
|
||||
@@ -4574,25 +4574,5 @@
|
||||
"date_of_birth": "1974-03-21"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Players",
|
||||
"players": []
|
||||
},
|
||||
{
|
||||
"name": "Captains",
|
||||
"players": []
|
||||
},
|
||||
{
|
||||
"name": "Goalkeepers",
|
||||
"players": []
|
||||
},
|
||||
{
|
||||
"name": "General references",
|
||||
"players": []
|
||||
},
|
||||
{
|
||||
"name": "Citations and notes",
|
||||
"players": []
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"host": "Germany",
|
||||
"teams_count": 32,
|
||||
"winner": "Italy",
|
||||
"runner_up": "France",
|
||||
"third_place": "Germany",
|
||||
"fourth_place": "Portugal"
|
||||
}
|
||||
@@ -4574,17 +4574,5 @@
|
||||
"date_of_birth": "1986-03-04"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Players",
|
||||
"players": []
|
||||
},
|
||||
{
|
||||
"name": "Goalkeeper",
|
||||
"players": []
|
||||
},
|
||||
{
|
||||
"name": "Captains",
|
||||
"players": []
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"host": "South Africa",
|
||||
"teams_count": 32,
|
||||
"winner": "Spain",
|
||||
"runner_up": "Netherlands",
|
||||
"third_place": "Germany",
|
||||
"fourth_place": "Uruguay"
|
||||
}
|
||||
@@ -4574,25 +4574,5 @@
|
||||
"date_of_birth": "1991-10-10"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Player representation by age",
|
||||
"players": []
|
||||
},
|
||||
{
|
||||
"name": "Player representation by club",
|
||||
"players": []
|
||||
},
|
||||
{
|
||||
"name": "Player representation by league",
|
||||
"players": []
|
||||
},
|
||||
{
|
||||
"name": "Average age of squads",
|
||||
"players": []
|
||||
},
|
||||
{
|
||||
"name": "Coaches representation by country",
|
||||
"players": []
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"host": "Brazil",
|
||||
"teams_count": 32,
|
||||
"winner": "Germany",
|
||||
"runner_up": "Argentina",
|
||||
"third_place": "Netherlands",
|
||||
"fourth_place": "Brazil"
|
||||
}
|
||||
@@ -4574,21 +4574,5 @@
|
||||
"date_of_birth": "1989-04-02"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Player representation by age",
|
||||
"players": []
|
||||
},
|
||||
{
|
||||
"name": "Player representation by league system",
|
||||
"players": []
|
||||
},
|
||||
{
|
||||
"name": "Player representation by club",
|
||||
"players": []
|
||||
},
|
||||
{
|
||||
"name": "Coaches representation by country",
|
||||
"players": []
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"host": "Russia",
|
||||
"teams_count": 32,
|
||||
"winner": "France",
|
||||
"runner_up": "Croatia",
|
||||
"third_place": "Belgium",
|
||||
"fourth_place": "England"
|
||||
}
|
||||
@@ -4574,25 +4574,5 @@
|
||||
"date_of_birth": "1993-09-05"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Age",
|
||||
"players": []
|
||||
},
|
||||
{
|
||||
"name": "Player representation by league system",
|
||||
"players": []
|
||||
},
|
||||
{
|
||||
"name": "Player representation by club",
|
||||
"players": []
|
||||
},
|
||||
{
|
||||
"name": "Player representation by club confederation",
|
||||
"players": []
|
||||
},
|
||||
{
|
||||
"name": "Coaches representation by country",
|
||||
"players": []
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"host": "Qatar",
|
||||
"teams_count": 32,
|
||||
"winner": "Argentina",
|
||||
"runner_up": "France",
|
||||
"third_place": "Croatia",
|
||||
"fourth_place": "Morocco"
|
||||
}
|
||||
@@ -5144,33 +5144,5 @@
|
||||
"date_of_birth": "1997-03-14"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Age",
|
||||
"players": []
|
||||
},
|
||||
{
|
||||
"name": "Players",
|
||||
"players": []
|
||||
},
|
||||
{
|
||||
"name": "Player representation by league system",
|
||||
"players": []
|
||||
},
|
||||
{
|
||||
"name": "Player representation by club",
|
||||
"players": []
|
||||
},
|
||||
{
|
||||
"name": "Player representation by club confederation",
|
||||
"players": []
|
||||
},
|
||||
{
|
||||
"name": "Average age of squads",
|
||||
"players": []
|
||||
},
|
||||
{
|
||||
"name": "Coaches representation by country",
|
||||
"players": []
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user