footballdata-api 0.4.2 → 0.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +1 -1
- data/README.md +3 -4
- data/Rakefile +1 -0
- data/lib/footballdata/convert.rb +54 -11
- data/lib/footballdata/version.rb +1 -1
- data/lib/footballdata.rb +1 -0
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6712b00c0f67e3c23fbdd0cd9f5436e9683dedc75fa53028cc72a07fa36437e2
|
4
|
+
data.tar.gz: 8d9ae9147cba11203f2f9755ad1d0a79b52715dab2d03027bdc340a6e4e50d87
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b4a5f064656d889e36b352dcedfc77cd503c6f5f2f9ce8fc25a84ac3ece1ecb8acab941a3f21a647e1278f9f87b8e232e1958acca8138b50a6f073351c677856
|
7
|
+
data.tar.gz: f9bdb77161614d3d381e187aad999f5f0ff67835b920bdd0d31ea553cdab89ab849489f59cb95c98f78088a79cb39a4e9f94d673914048f83b179b6a207dbbc5
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# footballdata-api - get football data via Daniel Freitag's football-data.org api v4
|
1
|
+
# footballdata-api - get football data via Daniel Freitag's football-data.org api v4
|
2
2
|
|
3
3
|
|
4
4
|
* home :: [github.com/sportdb/sport.db](https://github.com/sportdb/sport.db)
|
@@ -48,14 +48,13 @@ Footballdata.schedule( league: 'eng.2', season: '2020/21' )
|
|
48
48
|
|
49
49
|
Footballdata.schedule( league: 'de.1', season: '2020/21' )
|
50
50
|
Footballdata.schedule( league: 'es.1', season: '2020/21' )
|
51
|
-
|
52
51
|
Footballdata.schedule( league: 'fr.1', season: '2020/21' )
|
53
52
|
Footballdata.schedule( league: 'it.1', season: '2020/21' )
|
54
53
|
|
55
54
|
Footballdata.schedule( league: 'nl.1', season: '2020/21' )
|
56
55
|
Footballdata.schedule( league: 'pt.1', season: '2020/21' )
|
57
56
|
|
58
|
-
Footballdata.schedule( league: 'cl',
|
57
|
+
Footballdata.schedule( league: 'uefa.cl', season: '2020/21' )
|
59
58
|
|
60
59
|
# note: Brasileirão - season is a calendar year (NOT an academic year)
|
61
60
|
Footballdata.schedule( league: 'br.1', season: '2020' )
|
@@ -83,7 +82,7 @@ require 'footballdata'
|
|
83
82
|
'it.1',
|
84
83
|
'nl.1',
|
85
84
|
'pt.1',
|
86
|
-
'cl',
|
85
|
+
'uefa.cl',
|
87
86
|
].each do |league|
|
88
87
|
Footballdata.convert( league: league, season: '2020/21' )
|
89
88
|
end
|
data/Rakefile
CHANGED
data/lib/footballdata/convert.rb
CHANGED
@@ -3,6 +3,8 @@ module Footballdata
|
|
3
3
|
|
4
4
|
#######
|
5
5
|
## map round-like to higher-level stages
|
6
|
+
## fix - map by league codes
|
7
|
+
## or * (all)
|
6
8
|
STAGES = {
|
7
9
|
'REGULAR_SEASON' => ['Regular'],
|
8
10
|
|
@@ -36,6 +38,31 @@ STAGES = {
|
|
36
38
|
|
37
39
|
|
38
40
|
|
41
|
+
def self.team_autofill( name, teams: )
|
42
|
+
## note - no country for place holder teams
|
43
|
+
return name if name == 'N.N.'
|
44
|
+
|
45
|
+
## add (fifa) country code e.g.
|
46
|
+
## Liverpool FC => Liverpool FC (ENG)
|
47
|
+
## or Liverpool FC => Liverpool FC (URU)
|
48
|
+
rec = teams[ name ]
|
49
|
+
if rec.nil?
|
50
|
+
puts "!! ERROR - no team record found in teams.json for #{name}"
|
51
|
+
pp teams.keys
|
52
|
+
exit 1
|
53
|
+
end
|
54
|
+
|
55
|
+
country_name = rec['area']['name']
|
56
|
+
country = Fifa.world.find_by_name( country_name )
|
57
|
+
if country.nil?
|
58
|
+
puts "!! ERROR - no country record found for #{country_name}"
|
59
|
+
exit 1
|
60
|
+
end
|
61
|
+
|
62
|
+
"#{name} (#{country.code})"
|
63
|
+
end
|
64
|
+
|
65
|
+
|
39
66
|
|
40
67
|
def self.convert( league:, season: )
|
41
68
|
|
@@ -50,6 +77,14 @@ def self.convert( league:, season: )
|
|
50
77
|
data_teams = Webcache.read_json( teams_url )
|
51
78
|
|
52
79
|
|
80
|
+
## note - for internation club tournaments
|
81
|
+
## auto-add (fifa) country code e.g.
|
82
|
+
## Liverpool FC => Liverpool FC (ENG)
|
83
|
+
##
|
84
|
+
## todo/fix - move flag to league_info via .csv config - why? why not?
|
85
|
+
clubs_intl = ['uefa.cl',
|
86
|
+
'copa.l'].include?(league.downcase) ? true : false
|
87
|
+
|
53
88
|
|
54
89
|
## check for time zone
|
55
90
|
tz = find_zone!( league: league,
|
@@ -94,10 +129,17 @@ matches.each do |m|
|
|
94
129
|
team1 = m['homeTeam']['name'] || 'N.N.'
|
95
130
|
team2 = m['awayTeam']['name'] || 'N.N.'
|
96
131
|
|
97
|
-
|
132
|
+
## auto-fix copa.l 2024
|
133
|
+
## !! ERROR: unsupported match status >IN_PLAY< - sorry:
|
134
|
+
if m['status'] == 'IN_PLAY' &&
|
135
|
+
team1 == 'Club Aurora' && team2 == 'FBC Melgar'
|
136
|
+
m['status'] = 'FINISHED'
|
137
|
+
end
|
98
138
|
|
99
139
|
|
100
140
|
|
141
|
+
score = m['score']
|
142
|
+
|
101
143
|
group = m['group']
|
102
144
|
## GROUP_A
|
103
145
|
## shorten group to A|B|C etc.
|
@@ -151,8 +193,16 @@ matches.each do |m|
|
|
151
193
|
end
|
152
194
|
|
153
195
|
|
154
|
-
|
155
|
-
|
196
|
+
teams[ team1 ] += 1
|
197
|
+
teams[ team2 ] += 1
|
198
|
+
|
199
|
+
####
|
200
|
+
# auto-add (fifa) country code if int'l club tournament
|
201
|
+
if clubs_intl
|
202
|
+
team1 = team_autofill( team1, teams: teams_by_name )
|
203
|
+
team2 = team_autofill( team2, teams: teams_by_name )
|
204
|
+
end
|
205
|
+
|
156
206
|
|
157
207
|
### mods - rename club names
|
158
208
|
unless mods.nil? || mods.empty?
|
@@ -161,13 +211,6 @@ matches.each do |m|
|
|
161
211
|
end
|
162
212
|
|
163
213
|
|
164
|
-
## auto-fix copa.l 2024
|
165
|
-
## !! ERROR: unsupported match status >IN_PLAY< - sorry:
|
166
|
-
if m['status'] == 'IN_PLAY' &&
|
167
|
-
team1 == 'Club Aurora' && team2 == 'FBC Melgar'
|
168
|
-
m['status'] = 'FINISHED'
|
169
|
-
end
|
170
|
-
|
171
214
|
|
172
215
|
comments = ''
|
173
216
|
ft = ''
|
@@ -178,7 +221,7 @@ matches.each do |m|
|
|
178
221
|
stats['status'][m['status']] += 1 ## track status counts
|
179
222
|
|
180
223
|
case m['status']
|
181
|
-
when 'SCHEDULED', 'TIMED' ## , 'IN_PLAY'
|
224
|
+
when 'SCHEDULED', 'TIMED' ## , 'IN_PLAY', 'PAUSED'
|
182
225
|
ft = ''
|
183
226
|
ht = ''
|
184
227
|
when 'FINISHED'
|
data/lib/footballdata/version.rb
CHANGED
data/lib/footballdata.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: footballdata-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gerald Bauer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-09-
|
11
|
+
date: 2024-09-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: football-timezones
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: fifa
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: webget
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|