refactor: consolidate data/ into single root directory, fix historical player names
Merge data/wikipedia/{year}/ into data/{year}/ so there is a single
canonical location for World Cup JSON files. Update scrape and seed
scripts to use data/ instead of data/wikipedia/.
Re-scraped all 22 years (1930-2022) with fixed player name extraction
(full name from <a title="..."> rather than abbreviated display text)
so historical goals now show e.g. "Thomas Müller" not "Müller".
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -14,7 +14,7 @@
|
||||
"teams": [
|
||||
"Chile",
|
||||
"Switzerland",
|
||||
"West Germany",
|
||||
"Germany",
|
||||
"Italy"
|
||||
]
|
||||
},
|
||||
|
||||
+83
-83
@@ -14,17 +14,17 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "L. Sánchez",
|
||||
"name": "Leonel Sánchez",
|
||||
"minute": 11
|
||||
},
|
||||
{
|
||||
"name": "Rojas",
|
||||
"name": "Eladio Rojas",
|
||||
"minute": 29
|
||||
}
|
||||
],
|
||||
"goals2": [
|
||||
{
|
||||
"name": "Chislenko",
|
||||
"name": "Igor Chislenko",
|
||||
"minute": 26
|
||||
}
|
||||
],
|
||||
@@ -44,7 +44,7 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Scherer",
|
||||
"name": "Adolf Scherer",
|
||||
"minute": 13
|
||||
}
|
||||
],
|
||||
@@ -78,7 +78,7 @@
|
||||
],
|
||||
"goals2": [
|
||||
{
|
||||
"name": "Hitchens",
|
||||
"name": "Gerry Hitchens",
|
||||
"minute": 38
|
||||
}
|
||||
],
|
||||
@@ -89,7 +89,7 @@
|
||||
"date": "1962-06-10",
|
||||
"time": "14:30",
|
||||
"team1": "Yugoslavia",
|
||||
"team2": "West Germany",
|
||||
"team2": "Germany",
|
||||
"score": {
|
||||
"ft": [
|
||||
1,
|
||||
@@ -98,7 +98,7 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Radaković",
|
||||
"name": "Petar Radaković",
|
||||
"minute": 85
|
||||
}
|
||||
],
|
||||
@@ -118,22 +118,22 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Kadraba",
|
||||
"name": "Josef Kadraba",
|
||||
"minute": 48
|
||||
},
|
||||
{
|
||||
"name": "Scherer",
|
||||
"name": "Adolf Scherer",
|
||||
"minute": 80
|
||||
},
|
||||
{
|
||||
"name": "Scherer",
|
||||
"name": "Adolf Scherer",
|
||||
"minute": 84,
|
||||
"penalty": true
|
||||
}
|
||||
],
|
||||
"goals2": [
|
||||
{
|
||||
"name": "Jerković",
|
||||
"name": "Dražan Jerković",
|
||||
"minute": 69
|
||||
}
|
||||
],
|
||||
@@ -171,11 +171,11 @@
|
||||
],
|
||||
"goals2": [
|
||||
{
|
||||
"name": "Toro",
|
||||
"name": "Jorge Toro",
|
||||
"minute": 42
|
||||
},
|
||||
{
|
||||
"name": "L. Sánchez",
|
||||
"name": "Leonel Sánchez",
|
||||
"minute": 61,
|
||||
"penalty": true
|
||||
}
|
||||
@@ -196,7 +196,7 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Rojas",
|
||||
"name": "Eladio Rojas",
|
||||
"minute": 90
|
||||
}
|
||||
],
|
||||
@@ -216,7 +216,7 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Amarildo",
|
||||
"name": "Amarildo Tavares da Silveira",
|
||||
"minute": 17
|
||||
},
|
||||
{
|
||||
@@ -230,7 +230,7 @@
|
||||
],
|
||||
"goals2": [
|
||||
{
|
||||
"name": "Masopust",
|
||||
"name": "Josef Masopust",
|
||||
"minute": 15
|
||||
}
|
||||
],
|
||||
@@ -251,17 +251,17 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Cubilla",
|
||||
"name": "Luis Cubilla",
|
||||
"minute": 56
|
||||
},
|
||||
{
|
||||
"name": "Sasía",
|
||||
"name": "José Sasía",
|
||||
"minute": 75
|
||||
}
|
||||
],
|
||||
"goals2": [
|
||||
{
|
||||
"name": "Zuluaga",
|
||||
"name": "Francisco Zuluaga",
|
||||
"minute": 19,
|
||||
"penalty": true
|
||||
}
|
||||
@@ -283,11 +283,11 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Ivanov",
|
||||
"name": "Valentin Kozmich Ivanov",
|
||||
"minute": 51
|
||||
},
|
||||
{
|
||||
"name": "Ponedelnik",
|
||||
"name": "Viktor Ponedelnik",
|
||||
"minute": 83
|
||||
}
|
||||
],
|
||||
@@ -308,22 +308,22 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Skoblar",
|
||||
"name": "Josip Skoblar",
|
||||
"minute": 25,
|
||||
"penalty": true
|
||||
},
|
||||
{
|
||||
"name": "Galić",
|
||||
"name": "Milan Galić",
|
||||
"minute": 29
|
||||
},
|
||||
{
|
||||
"name": "Jerković",
|
||||
"name": "Dražan Jerković",
|
||||
"minute": 49
|
||||
}
|
||||
],
|
||||
"goals2": [
|
||||
{
|
||||
"name": "Cabrera",
|
||||
"name": "Ángel Cabrera",
|
||||
"minute": 19
|
||||
}
|
||||
],
|
||||
@@ -344,37 +344,37 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Ivanov",
|
||||
"name": "Valentin Kozmich Ivanov",
|
||||
"minute": 8
|
||||
},
|
||||
{
|
||||
"name": "Ivanov",
|
||||
"name": "Valentin Kozmich Ivanov",
|
||||
"minute": 11
|
||||
},
|
||||
{
|
||||
"name": "Chislenko",
|
||||
"name": "Igor Chislenko",
|
||||
"minute": 10
|
||||
},
|
||||
{
|
||||
"name": "Ponedelnik",
|
||||
"name": "Viktor Ponedelnik",
|
||||
"minute": 56
|
||||
}
|
||||
],
|
||||
"goals2": [
|
||||
{
|
||||
"name": "Aceros",
|
||||
"name": "Germán Aceros",
|
||||
"minute": 21
|
||||
},
|
||||
{
|
||||
"name": "Coll",
|
||||
"name": "Marcos Coll",
|
||||
"minute": 68
|
||||
},
|
||||
{
|
||||
"name": "Rada",
|
||||
"name": "Antonio Rada",
|
||||
"minute": 72
|
||||
},
|
||||
{
|
||||
"name": "Klinger",
|
||||
"name": "Marino Klinger",
|
||||
"minute": 86
|
||||
}
|
||||
],
|
||||
@@ -395,17 +395,17 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Mamykin",
|
||||
"name": "Aleksei Mamykin",
|
||||
"minute": 38
|
||||
},
|
||||
{
|
||||
"name": "Ivanov",
|
||||
"name": "Valentin Kozmich Ivanov",
|
||||
"minute": 89
|
||||
}
|
||||
],
|
||||
"goals2": [
|
||||
{
|
||||
"name": "Sasía",
|
||||
"name": "José Sasía",
|
||||
"minute": 54
|
||||
}
|
||||
],
|
||||
@@ -426,23 +426,23 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Galić",
|
||||
"name": "Milan Galić",
|
||||
"minute": 20
|
||||
},
|
||||
{
|
||||
"name": "Galić",
|
||||
"name": "Milan Galić",
|
||||
"minute": 61
|
||||
},
|
||||
{
|
||||
"name": "Jerković",
|
||||
"name": "Dražan Jerković",
|
||||
"minute": 25
|
||||
},
|
||||
{
|
||||
"name": "Jerković",
|
||||
"name": "Dražan Jerković",
|
||||
"minute": 87
|
||||
},
|
||||
{
|
||||
"name": "Melić",
|
||||
"name": "Vojislav Melić",
|
||||
"minute": 82
|
||||
}
|
||||
],
|
||||
@@ -463,21 +463,21 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "L. Sánchez",
|
||||
"name": "Leonel Sanchez",
|
||||
"minute": 44
|
||||
},
|
||||
{
|
||||
"name": "L. Sánchez",
|
||||
"name": "Leonel Sanchez",
|
||||
"minute": 55
|
||||
},
|
||||
{
|
||||
"name": "Ramírez",
|
||||
"name": "Jaime Ramírez",
|
||||
"minute": 51
|
||||
}
|
||||
],
|
||||
"goals2": [
|
||||
{
|
||||
"name": "Wüthrich",
|
||||
"name": "Rolf Wüthrich",
|
||||
"minute": 6
|
||||
}
|
||||
],
|
||||
@@ -488,7 +488,7 @@
|
||||
"group": "Group 2",
|
||||
"date": "1962-05-31",
|
||||
"time": "15:00",
|
||||
"team1": "West Germany",
|
||||
"team1": "Germany",
|
||||
"team2": "Italy",
|
||||
"score": {
|
||||
"ft": [
|
||||
@@ -513,11 +513,11 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Ramírez",
|
||||
"name": "Jaime Ramírez",
|
||||
"minute": 73
|
||||
},
|
||||
{
|
||||
"name": "Toro",
|
||||
"name": "Jorge Toro",
|
||||
"minute": 87
|
||||
}
|
||||
],
|
||||
@@ -528,7 +528,7 @@
|
||||
"group": "Group 2",
|
||||
"date": "1962-06-03",
|
||||
"time": "15:00",
|
||||
"team1": "West Germany",
|
||||
"team1": "Germany",
|
||||
"team2": "Switzerland",
|
||||
"score": {
|
||||
"ft": [
|
||||
@@ -538,17 +538,17 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Brülls",
|
||||
"name": "Albert Brülls",
|
||||
"minute": 45
|
||||
},
|
||||
{
|
||||
"name": "Seeler",
|
||||
"name": "Uwe Seeler",
|
||||
"minute": 59
|
||||
}
|
||||
],
|
||||
"goals2": [
|
||||
{
|
||||
"name": "Schneiter",
|
||||
"name": "Heinz Schneiter",
|
||||
"minute": 73
|
||||
}
|
||||
],
|
||||
@@ -559,7 +559,7 @@
|
||||
"group": "Group 2",
|
||||
"date": "1962-06-06",
|
||||
"time": "15:00",
|
||||
"team1": "West Germany",
|
||||
"team1": "Germany",
|
||||
"team2": "Chile",
|
||||
"score": {
|
||||
"ft": [
|
||||
@@ -569,12 +569,12 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Szymaniak",
|
||||
"name": "Horst Szymaniak",
|
||||
"minute": 21,
|
||||
"penalty": true
|
||||
},
|
||||
{
|
||||
"name": "Seeler",
|
||||
"name": "Uwe Seeler",
|
||||
"minute": 82
|
||||
}
|
||||
],
|
||||
@@ -595,15 +595,15 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Mora",
|
||||
"name": "Bruno Mora",
|
||||
"minute": 2
|
||||
},
|
||||
{
|
||||
"name": "Bulgarelli",
|
||||
"name": "Giacomo Bulgarelli",
|
||||
"minute": 65
|
||||
},
|
||||
{
|
||||
"name": "Bulgarelli",
|
||||
"name": "Giacomo Bulgarelli",
|
||||
"minute": 67
|
||||
}
|
||||
],
|
||||
@@ -624,7 +624,7 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Zagallo",
|
||||
"name": "Mário Zagallo",
|
||||
"minute": 56
|
||||
},
|
||||
{
|
||||
@@ -649,7 +649,7 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Štibrányi",
|
||||
"name": "Jozef Štibrányi",
|
||||
"minute": 80
|
||||
}
|
||||
],
|
||||
@@ -685,7 +685,7 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Peiró",
|
||||
"name": "Joaquín Peiró",
|
||||
"minute": 90
|
||||
}
|
||||
],
|
||||
@@ -706,17 +706,17 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Amarildo",
|
||||
"name": "Amarildo Tavares da Silveira",
|
||||
"minute": 72
|
||||
},
|
||||
{
|
||||
"name": "Amarildo",
|
||||
"name": "Amarildo Tavares da Silveira",
|
||||
"minute": 86
|
||||
}
|
||||
],
|
||||
"goals2": [
|
||||
{
|
||||
"name": "Adelardo",
|
||||
"name": "Adelardo Rodríguez",
|
||||
"minute": 35
|
||||
}
|
||||
],
|
||||
@@ -737,22 +737,22 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Díaz",
|
||||
"name": "Isidoro Díaz",
|
||||
"minute": 12
|
||||
},
|
||||
{
|
||||
"name": "Del Águila",
|
||||
"name": "Alfredo del Águila",
|
||||
"minute": 29
|
||||
},
|
||||
{
|
||||
"name": "Hernández",
|
||||
"name": "Héctor Hernández",
|
||||
"minute": 90,
|
||||
"penalty": true
|
||||
}
|
||||
],
|
||||
"goals2": [
|
||||
{
|
||||
"name": "Mašek",
|
||||
"name": "Václav Mašek",
|
||||
"minute": 1
|
||||
}
|
||||
],
|
||||
@@ -773,7 +773,7 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Facundo",
|
||||
"name": "Héctor Facundo",
|
||||
"minute": 4
|
||||
}
|
||||
],
|
||||
@@ -794,17 +794,17 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Tichy",
|
||||
"name": "Lajos Tichy",
|
||||
"minute": 17
|
||||
},
|
||||
{
|
||||
"name": "Albert",
|
||||
"name": "Flórián Albert",
|
||||
"minute": 71
|
||||
}
|
||||
],
|
||||
"goals2": [
|
||||
{
|
||||
"name": "Flowers",
|
||||
"name": "Ron Flowers",
|
||||
"minute": 60,
|
||||
"penalty": true
|
||||
}
|
||||
@@ -826,22 +826,22 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Flowers",
|
||||
"name": "Ron Flowers",
|
||||
"minute": 17,
|
||||
"penalty": true
|
||||
},
|
||||
{
|
||||
"name": "Charlton",
|
||||
"name": "Bobby Charlton",
|
||||
"minute": 42
|
||||
},
|
||||
{
|
||||
"name": "Greaves",
|
||||
"name": "Jimmy Greaves",
|
||||
"minute": 67
|
||||
}
|
||||
],
|
||||
"goals2": [
|
||||
{
|
||||
"name": "Sanfilippo",
|
||||
"name": "José Sanfilippo",
|
||||
"minute": 81
|
||||
}
|
||||
],
|
||||
@@ -862,33 +862,33 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Albert",
|
||||
"name": "Flórián Albert",
|
||||
"minute": 1
|
||||
},
|
||||
{
|
||||
"name": "Albert",
|
||||
"name": "Flórián Albert",
|
||||
"minute": 6
|
||||
},
|
||||
{
|
||||
"name": "Albert",
|
||||
"name": "Flórián Albert",
|
||||
"minute": 53
|
||||
},
|
||||
{
|
||||
"name": "Tichy",
|
||||
"name": "Lajos Tichy",
|
||||
"minute": 8
|
||||
},
|
||||
{
|
||||
"name": "Tichy",
|
||||
"name": "Lajos Tichy",
|
||||
"minute": 70
|
||||
},
|
||||
{
|
||||
"name": "Solymosi",
|
||||
"name": "Ernő Solymosi",
|
||||
"minute": 12
|
||||
}
|
||||
],
|
||||
"goals2": [
|
||||
{
|
||||
"name": "Sokolov",
|
||||
"name": "Georgi Sokolov",
|
||||
"minute": 64
|
||||
}
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user