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:
+78
-78
@@ -14,7 +14,7 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Hurst",
|
||||
"name": "Geoff Hurst",
|
||||
"minute": 78
|
||||
}
|
||||
],
|
||||
@@ -24,7 +24,7 @@
|
||||
"round": "Quarter-finals",
|
||||
"date": "1966-07-23",
|
||||
"time": "15:00",
|
||||
"team1": "West Germany",
|
||||
"team1": "Germany",
|
||||
"team2": "Uruguay",
|
||||
"score": {
|
||||
"ft": [
|
||||
@@ -34,19 +34,19 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Haller",
|
||||
"name": "Helmut Haller",
|
||||
"minute": 11
|
||||
},
|
||||
{
|
||||
"name": "Haller",
|
||||
"name": "Helmut Haller",
|
||||
"minute": 83
|
||||
},
|
||||
{
|
||||
"name": "Beckenbauer",
|
||||
"name": "Franz Beckenbauer",
|
||||
"minute": 70
|
||||
},
|
||||
{
|
||||
"name": "Seeler",
|
||||
"name": "Uwe Seeler",
|
||||
"minute": 75
|
||||
}
|
||||
],
|
||||
@@ -66,17 +66,17 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Chislenko",
|
||||
"name": "Igor Chislenko",
|
||||
"minute": 5
|
||||
},
|
||||
{
|
||||
"name": "Porkuyan",
|
||||
"name": "Valeriy Porkujan",
|
||||
"minute": 46
|
||||
}
|
||||
],
|
||||
"goals2": [
|
||||
{
|
||||
"name": "Bene",
|
||||
"name": "Ferenc Bene",
|
||||
"minute": 57
|
||||
}
|
||||
],
|
||||
@@ -114,7 +114,7 @@
|
||||
"penalty": true
|
||||
},
|
||||
{
|
||||
"name": "José Augusto",
|
||||
"name": "José Augusto de Almeida",
|
||||
"minute": 80
|
||||
}
|
||||
],
|
||||
@@ -138,7 +138,7 @@
|
||||
"round": "Semi-finals",
|
||||
"date": "1966-07-25",
|
||||
"time": "19:30",
|
||||
"team1": "West Germany",
|
||||
"team1": "Germany",
|
||||
"team2": "Soviet Union",
|
||||
"score": {
|
||||
"ft": [
|
||||
@@ -148,17 +148,17 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Haller",
|
||||
"name": "Helmut Haller",
|
||||
"minute": 43
|
||||
},
|
||||
{
|
||||
"name": "Beckenbauer",
|
||||
"name": "Franz Beckenbauer",
|
||||
"minute": 67
|
||||
}
|
||||
],
|
||||
"goals2": [
|
||||
{
|
||||
"name": "Porkuyan",
|
||||
"name": "Valeriy Porkujan",
|
||||
"minute": 88
|
||||
}
|
||||
],
|
||||
@@ -178,11 +178,11 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "B. Charlton",
|
||||
"name": "Bobby Charlton",
|
||||
"minute": 30
|
||||
},
|
||||
{
|
||||
"name": "B. Charlton",
|
||||
"name": "Bobby Charlton",
|
||||
"minute": 80
|
||||
}
|
||||
],
|
||||
@@ -214,13 +214,13 @@
|
||||
"penalty": true
|
||||
},
|
||||
{
|
||||
"name": "Torres",
|
||||
"name": "José Augusto Torres",
|
||||
"minute": 89
|
||||
}
|
||||
],
|
||||
"goals2": [
|
||||
{
|
||||
"name": "Malofeyev",
|
||||
"name": "Eduard Malofeyev",
|
||||
"minute": 43
|
||||
}
|
||||
],
|
||||
@@ -231,7 +231,7 @@
|
||||
"date": "1966-07-30",
|
||||
"time": "15:00",
|
||||
"team1": "England",
|
||||
"team2": "West Germany",
|
||||
"team2": "Germany",
|
||||
"score": {
|
||||
"ft": [
|
||||
2,
|
||||
@@ -244,29 +244,29 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Hurst",
|
||||
"name": "Geoff Hurst",
|
||||
"minute": 18
|
||||
},
|
||||
{
|
||||
"name": "Hurst",
|
||||
"name": "Geoff Hurst",
|
||||
"minute": 101
|
||||
},
|
||||
{
|
||||
"name": "Hurst",
|
||||
"name": "Geoff Hurst",
|
||||
"minute": 120
|
||||
},
|
||||
{
|
||||
"name": "Peters",
|
||||
"name": "Martin Peters",
|
||||
"minute": 78
|
||||
}
|
||||
],
|
||||
"goals2": [
|
||||
{
|
||||
"name": "Haller",
|
||||
"name": "Helmut Haller",
|
||||
"minute": 12
|
||||
},
|
||||
{
|
||||
"name": "Weber",
|
||||
"name": "Wolfgang Weber",
|
||||
"minute": 89
|
||||
}
|
||||
],
|
||||
@@ -302,13 +302,13 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Hausser",
|
||||
"name": "Gérard Hausser",
|
||||
"minute": 62
|
||||
}
|
||||
],
|
||||
"goals2": [
|
||||
{
|
||||
"name": "Borja",
|
||||
"name": "Enrique Borja",
|
||||
"minute": 48
|
||||
}
|
||||
],
|
||||
@@ -329,17 +329,17 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Rocha",
|
||||
"name": "Pedro Rocha",
|
||||
"minute": 26
|
||||
},
|
||||
{
|
||||
"name": "Cortés",
|
||||
"name": "Julio César Cortés",
|
||||
"minute": 31
|
||||
}
|
||||
],
|
||||
"goals2": [
|
||||
{
|
||||
"name": "De Bourgoing",
|
||||
"name": "Héctor De Bourgoing",
|
||||
"minute": 15,
|
||||
"penalty": true
|
||||
}
|
||||
@@ -361,11 +361,11 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "B. Charlton",
|
||||
"name": "Bobby Charlton",
|
||||
"minute": 37
|
||||
},
|
||||
{
|
||||
"name": "Hunt",
|
||||
"name": "Roger Hunt",
|
||||
"minute": 75
|
||||
}
|
||||
],
|
||||
@@ -401,11 +401,11 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Hunt",
|
||||
"name": "Roger Hunt",
|
||||
"minute": 38
|
||||
},
|
||||
{
|
||||
"name": "Hunt",
|
||||
"name": "Roger Hunt",
|
||||
"minute": 75
|
||||
}
|
||||
],
|
||||
@@ -416,7 +416,7 @@
|
||||
"group": "Group 2",
|
||||
"date": "1966-07-12",
|
||||
"time": "19:30",
|
||||
"team1": "West Germany",
|
||||
"team1": "Germany",
|
||||
"team2": "Switzerland",
|
||||
"score": {
|
||||
"ft": [
|
||||
@@ -426,24 +426,24 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Held",
|
||||
"name": "Sigfried Held",
|
||||
"minute": 16
|
||||
},
|
||||
{
|
||||
"name": "Haller",
|
||||
"name": "Helmut Haller",
|
||||
"minute": 21
|
||||
},
|
||||
{
|
||||
"name": "Haller",
|
||||
"name": "Helmut Haller",
|
||||
"minute": 77,
|
||||
"penalty": true
|
||||
},
|
||||
{
|
||||
"name": "Beckenbauer",
|
||||
"name": "Franz Beckenbauer",
|
||||
"minute": 40
|
||||
},
|
||||
{
|
||||
"name": "Beckenbauer",
|
||||
"name": "Franz Beckenbauer",
|
||||
"minute": 52
|
||||
}
|
||||
],
|
||||
@@ -464,17 +464,17 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Artime",
|
||||
"name": "Luis Artime",
|
||||
"minute": 66
|
||||
},
|
||||
{
|
||||
"name": "Artime",
|
||||
"name": "Luis Artime",
|
||||
"minute": 79
|
||||
}
|
||||
],
|
||||
"goals2": [
|
||||
{
|
||||
"name": "Roma",
|
||||
"name": "Antonio Roma",
|
||||
"minute": 72,
|
||||
"owngoal": true
|
||||
}
|
||||
@@ -496,17 +496,17 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Sanchís",
|
||||
"name": "Manuel Sanchís Martínez",
|
||||
"minute": 57
|
||||
},
|
||||
{
|
||||
"name": "Amancio",
|
||||
"name": "Amancio Amaro",
|
||||
"minute": 75
|
||||
}
|
||||
],
|
||||
"goals2": [
|
||||
{
|
||||
"name": "Quentin",
|
||||
"name": "René-Pierre Quentin",
|
||||
"minute": 31
|
||||
}
|
||||
],
|
||||
@@ -518,7 +518,7 @@
|
||||
"date": "1966-07-16",
|
||||
"time": "15:00",
|
||||
"team1": "Argentina",
|
||||
"team2": "West Germany",
|
||||
"team2": "Germany",
|
||||
"score": {
|
||||
"ft": [
|
||||
0,
|
||||
@@ -542,11 +542,11 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Artime",
|
||||
"name": "Luis Artime",
|
||||
"minute": 52
|
||||
},
|
||||
{
|
||||
"name": "Onega",
|
||||
"name": "Ermindo Onega",
|
||||
"minute": 79
|
||||
}
|
||||
],
|
||||
@@ -557,7 +557,7 @@
|
||||
"group": "Group 2",
|
||||
"date": "1966-07-20",
|
||||
"time": "19:30",
|
||||
"team1": "West Germany",
|
||||
"team1": "Germany",
|
||||
"team2": "Spain",
|
||||
"score": {
|
||||
"ft": [
|
||||
@@ -567,17 +567,17 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Emmerich",
|
||||
"name": "Lothar Emmerich",
|
||||
"minute": 39
|
||||
},
|
||||
{
|
||||
"name": "Seeler",
|
||||
"name": "Uwe Seeler",
|
||||
"minute": 84
|
||||
}
|
||||
],
|
||||
"goals2": [
|
||||
{
|
||||
"name": "Fusté",
|
||||
"name": "Josep Maria Fusté",
|
||||
"minute": 23
|
||||
}
|
||||
],
|
||||
@@ -623,21 +623,21 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "José Augusto",
|
||||
"name": "José Augusto de Almeida",
|
||||
"minute": 2
|
||||
},
|
||||
{
|
||||
"name": "José Augusto",
|
||||
"name": "José Augusto de Almeida",
|
||||
"minute": 67
|
||||
},
|
||||
{
|
||||
"name": "Torres",
|
||||
"name": "José Augusto Torres",
|
||||
"minute": 90
|
||||
}
|
||||
],
|
||||
"goals2": [
|
||||
{
|
||||
"name": "Bene",
|
||||
"name": "Ferenc Bene",
|
||||
"minute": 60
|
||||
}
|
||||
],
|
||||
@@ -658,15 +658,15 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Bene",
|
||||
"name": "Ferenc Bene",
|
||||
"minute": 2
|
||||
},
|
||||
{
|
||||
"name": "Farkas",
|
||||
"name": "János Farkas",
|
||||
"minute": 64
|
||||
},
|
||||
{
|
||||
"name": "Mészöly",
|
||||
"name": "Kálmán Mészöly",
|
||||
"minute": 73,
|
||||
"penalty": true
|
||||
}
|
||||
@@ -694,7 +694,7 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Vutsov",
|
||||
"name": "Ivan Vutsov",
|
||||
"minute": 7,
|
||||
"owngoal": true
|
||||
},
|
||||
@@ -703,7 +703,7 @@
|
||||
"minute": 38
|
||||
},
|
||||
{
|
||||
"name": "Torres",
|
||||
"name": "José Augusto Torres",
|
||||
"minute": 81
|
||||
}
|
||||
],
|
||||
@@ -724,7 +724,7 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Simões",
|
||||
"name": "António Simões",
|
||||
"minute": 15
|
||||
},
|
||||
{
|
||||
@@ -738,7 +738,7 @@
|
||||
],
|
||||
"goals2": [
|
||||
{
|
||||
"name": "Rildo",
|
||||
"name": "Rildo da Costa Menezes",
|
||||
"minute": 73
|
||||
}
|
||||
],
|
||||
@@ -759,22 +759,22 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Davidov",
|
||||
"name": "Ivan Davidov",
|
||||
"minute": 43,
|
||||
"owngoal": true
|
||||
},
|
||||
{
|
||||
"name": "Mészöly",
|
||||
"name": "Kálmán Mészöly",
|
||||
"minute": 45
|
||||
},
|
||||
{
|
||||
"name": "Bene",
|
||||
"name": "Ferenc Bene",
|
||||
"minute": 54
|
||||
}
|
||||
],
|
||||
"goals2": [
|
||||
{
|
||||
"name": "Asparuhov",
|
||||
"name": "Georgi Asparuhov",
|
||||
"minute": 15
|
||||
}
|
||||
],
|
||||
@@ -795,15 +795,15 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Malofeyev",
|
||||
"name": "Eduard Malofeyev",
|
||||
"minute": 31
|
||||
},
|
||||
{
|
||||
"name": "Malofeyev",
|
||||
"name": "Eduard Malofeyev",
|
||||
"minute": 88
|
||||
},
|
||||
{
|
||||
"name": "Banishevskiy",
|
||||
"name": "Anatoliy Banishevskiy",
|
||||
"minute": 33
|
||||
}
|
||||
],
|
||||
@@ -824,11 +824,11 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Mazzola",
|
||||
"name": "Sandro Mazzola",
|
||||
"minute": 8
|
||||
},
|
||||
{
|
||||
"name": "Barison",
|
||||
"name": "Paolo Barison",
|
||||
"minute": 88
|
||||
}
|
||||
],
|
||||
@@ -849,7 +849,7 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Marcos",
|
||||
"name": "Rubén Marcos",
|
||||
"minute": 26,
|
||||
"penalty": true
|
||||
}
|
||||
@@ -877,7 +877,7 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Chislenko",
|
||||
"name": "Igor Chislenko",
|
||||
"minute": 57
|
||||
}
|
||||
],
|
||||
@@ -919,17 +919,17 @@
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Porkuyan",
|
||||
"name": "Valeriy Porkujan",
|
||||
"minute": 28
|
||||
},
|
||||
{
|
||||
"name": "Porkuyan",
|
||||
"name": "Valeriy Porkujan",
|
||||
"minute": 85
|
||||
}
|
||||
],
|
||||
"goals2": [
|
||||
{
|
||||
"name": "Marcos",
|
||||
"name": "Rubén Marcos",
|
||||
"minute": 32
|
||||
}
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user