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:
2026-06-15 18:27:35 +02:00
parent 9ce2a4e27c
commit d37ebe201e
48 changed files with 2488 additions and 3630 deletions
+56 -265
View File
@@ -18,7 +18,7 @@
},
"goals2": [
{
"name": "Espárrago",
"name": "Víctor Espárrago",
"minute": 117
}
],
@@ -38,26 +38,26 @@
},
"goals1": [
{
"name": "Guzmán",
"name": "Javier Guzmán",
"minute": 25,
"owngoal": true
},
{
"name": "Riva",
"name": "Gigi Riva",
"minute": 63
},
{
"name": "Riva",
"name": "Gigi Riva",
"minute": 76
},
{
"name": "Rivera",
"name": "Gianni Rivera",
"minute": 70
}
],
"goals2": [
{
"name": "González",
"name": "José Luis González Dávila",
"minute": 13
}
],
@@ -95,11 +95,11 @@
],
"goals2": [
{
"name": "Gallardo",
"name": "Alberto Gallardo",
"minute": 28
},
{
"name": "Cubillas",
"name": "Teófilo Cubillas",
"minute": 70
}
],
@@ -109,7 +109,7 @@
"round": "Quarter-finals",
"date": "1970-06-14",
"time": "12:00",
"team1": "West Germany",
"team1": "Germany",
"team2": "England",
"score": {
"ft": [
@@ -123,25 +123,25 @@
},
"goals1": [
{
"name": "Beckenbauer",
"name": "Franz Beckenbauer",
"minute": 68
},
{
"name": "Seeler",
"name": "Uwe Seeler",
"minute": 82
},
{
"name": "Müller",
"name": "Gerd Müller",
"minute": 108
}
],
"goals2": [
{
"name": "Mullery",
"name": "Alan Mullery",
"minute": 31
},
{
"name": "Peters",
"name": "Martin Peters",
"minute": 49
}
],
@@ -175,7 +175,7 @@
],
"goals2": [
{
"name": "Cubilla",
"name": "Luis Cubilla",
"minute": 19
}
],
@@ -186,7 +186,7 @@
"date": "1970-06-17",
"time": "16:00",
"team1": "Italy",
"team2": "West Germany",
"team2": "Germany",
"score": {
"ft": [
1,
@@ -199,34 +199,34 @@
},
"goals1": [
{
"name": "Boninsegna",
"name": "Roberto Boninsegna",
"minute": 8
},
{
"name": "Burgnich",
"name": "Tarcisio Burgnich",
"minute": 98
},
{
"name": "Riva",
"name": "Gigi Riva",
"minute": 104
},
{
"name": "Rivera",
"name": "Gianni Rivera",
"minute": 111
}
],
"goals2": [
{
"name": "Schnellinger",
"name": "Karl-Heinz Schnellinger",
"minute": 90,
"offset": 2
},
{
"name": "Müller",
"name": "Gerd Müller",
"minute": 94
},
{
"name": "Müller",
"name": "Gerd Müller",
"minute": 110
}
],
@@ -236,7 +236,7 @@
"round": "Third-place match",
"date": "1970-06-20",
"time": "16:00",
"team1": "West Germany",
"team1": "Germany",
"team2": "Uruguay",
"score": {
"ft": [
@@ -246,7 +246,7 @@
},
"goals1": [
{
"name": "Overath",
"name": "Wolfgang Overath",
"minute": 26
}
],
@@ -278,13 +278,13 @@
"minute": 71
},
{
"name": "Carlos Alberto",
"name": "Carlos Alberto Torres",
"minute": 86
}
],
"goals2": [
{
"name": "Boninsegna",
"name": "Roberto Boninsegna",
"minute": 37
}
],
@@ -320,15 +320,15 @@
},
"goals1": [
{
"name": "Van Moer",
"name": "Wilfried Van Moer",
"minute": 12
},
{
"name": "Van Moer",
"name": "Wilfried Van Moer",
"minute": 54
},
{
"name": "Lambert",
"name": "Raoul Lambert",
"minute": 79,
"penalty": true
}
@@ -350,25 +350,25 @@
},
"goals1": [
{
"name": "Byshovets",
"name": "Anatoliy Byshovets",
"minute": 14
},
{
"name": "Byshovets",
"name": "Anatoliy Byshovets",
"minute": 63
},
{
"name": "Asatiani",
"name": "Kakhi Asatiani",
"minute": 57
},
{
"name": "Khmelnytskyi",
"name": "Vitaliy Khmelnytskyi",
"minute": 76
}
],
"goals2": [
{
"name": "Lambert",
"name": "Raoul Lambert",
"minute": 86
}
],
@@ -389,19 +389,19 @@
},
"goals1": [
{
"name": "Valdivia",
"name": "Javier Valdivia",
"minute": 45
},
{
"name": "Valdivia",
"name": "Javier Valdivia",
"minute": 46
},
{
"name": "Fragoso",
"name": "Javier Fragoso",
"minute": 58
},
{
"name": "Basaguren",
"name": "Juan Ignacio Basaguren",
"minute": 83
}
],
@@ -422,11 +422,11 @@
},
"goals1": [
{
"name": "Byshovets",
"name": "Anatoliy Byshovets",
"minute": 51
},
{
"name": "Byshovets",
"name": "Anatoliy Byshovets",
"minute": 74
}
],
@@ -447,7 +447,7 @@
},
"goals1": [
{
"name": "Peña",
"name": "Gustavo Peña",
"minute": 14,
"penalty": true
}
@@ -469,11 +469,11 @@
},
"goals1": [
{
"name": "Maneiro",
"name": "Ildo Maneiro",
"minute": 23
},
{
"name": "Mujica",
"name": "Juan Mujica",
"minute": 50
}
],
@@ -494,7 +494,7 @@
},
"goals1": [
{
"name": "Domenghini",
"name": "Angelo Domenghini",
"minute": 10
}
],
@@ -530,13 +530,13 @@
},
"goals1": [
{
"name": "Turesson",
"name": "Tom Turesson",
"minute": 53
}
],
"goals2": [
{
"name": "Spiegler",
"name": "Mordechai Spiegler",
"minute": 56
}
],
@@ -557,7 +557,7 @@
},
"goals1": [
{
"name": "Grahn",
"name": "Ove Grahn",
"minute": 90
}
],
@@ -593,7 +593,7 @@
},
"goals1": [
{
"name": "Hurst",
"name": "Geoff Hurst",
"minute": 65
}
],
@@ -632,7 +632,7 @@
],
"goals2": [
{
"name": "Petráš",
"name": "Ladislav Petráš",
"minute": 11
}
],
@@ -653,18 +653,18 @@
},
"goals1": [
{
"name": "Neagu",
"name": "Alexandru Neagu",
"minute": 52
},
{
"name": "Dumitrache",
"name": "Florea Dumitrache",
"minute": 75,
"penalty": true
}
],
"goals2": [
{
"name": "Petráš",
"name": "Ladislav Petráš",
"minute": 5
}
],
@@ -720,11 +720,11 @@
],
"goals2": [
{
"name": "Dumitrache",
"name": "Florea Dumitrache",
"minute": 34
},
{
"name": "Dembrovschi",
"name": "Emerich Dembrovschi",
"minute": 84
}
],
@@ -745,221 +745,12 @@
},
"goals1": [
{
"name": "Clarke",
"name": "Allan Clarke",
"minute": 50,
"penalty": true
}
],
"ground": "Estadio Jalisco, Guadalajara"
},
{
"round": "Group stage",
"group": "Group 4",
"date": "1970-06-02",
"time": "16:00",
"team1": "Peru",
"team2": "Bulgaria",
"score": {
"ft": [
3,
2
]
},
"goals1": [
{
"name": "Gallardo",
"minute": 50
},
{
"name": "Chumpitaz",
"minute": 55
},
{
"name": "Cubillas",
"minute": 73
}
],
"goals2": [
{
"name": "Dermendzhiev",
"minute": 13
},
{
"name": "Bonev",
"minute": 49
}
],
"ground": "Estadio Nou Camp, León"
},
{
"round": "Group stage",
"group": "Group 4",
"date": "1970-06-03",
"time": "16:00",
"team1": "West Germany",
"team2": "Morocco",
"score": {
"ft": [
2,
1
]
},
"goals1": [
{
"name": "Seeler",
"minute": 56
},
{
"name": "Müller",
"minute": 80
}
],
"goals2": [
{
"name": "Jarir",
"minute": 21
}
],
"ground": "Estadio Nou Camp, León"
},
{
"round": "Group stage",
"group": "Group 4",
"date": "1970-06-06",
"time": "16:00",
"team1": "Peru",
"team2": "Morocco",
"score": {
"ft": [
3,
0
]
},
"goals1": [
{
"name": "Cubillas",
"minute": 65
},
{
"name": "Cubillas",
"minute": 75
},
{
"name": "Challe",
"minute": 67
}
],
"ground": "Estadio Nou Camp, León"
},
{
"round": "Group stage",
"group": "Group 4",
"date": "1970-06-07",
"time": "12:00",
"team1": "West Germany",
"team2": "Bulgaria",
"score": {
"ft": [
5,
2
]
},
"goals1": [
{
"name": "Libuda",
"minute": 20
},
{
"name": "Müller",
"minute": 27
},
{
"name": "Müller",
"minute": 52,
"penalty": true
},
{
"name": "Müller",
"minute": 88
},
{
"name": "Seeler",
"minute": 70
}
],
"goals2": [
{
"name": "Nikodimov",
"minute": 12
},
{
"name": "Kolev",
"minute": 89
}
],
"ground": "Estadio Nou Camp, León"
},
{
"round": "Group stage",
"group": "Group 4",
"date": "1970-06-10",
"time": "16:00",
"team1": "West Germany",
"team2": "Peru",
"score": {
"ft": [
3,
1
]
},
"goals1": [
{
"name": "Müller",
"minute": 19
},
{
"name": "Müller",
"minute": 26
},
{
"name": "Müller",
"minute": 39
}
],
"goals2": [
{
"name": "Cubillas",
"minute": 44
}
],
"ground": "Estadio Nou Camp, León"
},
{
"round": "Group stage",
"group": "Group 4",
"date": "1970-06-11",
"time": "16:00",
"team1": "Bulgaria",
"team2": "Morocco",
"score": {
"ft": [
1,
1
]
},
"goals1": [
{
"name": "Zhechev",
"minute": 40
}
],
"goals2": [
{
"name": "Ghazouani",
"minute": 61
}
],
"ground": "Estadio Nou Camp, León"
}
]
}