football-sources 0.0.1 → 0.1.0
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/Manifest.txt +6 -15
- data/README.md +142 -1
- data/Rakefile +1 -1
- data/lib/football-sources.rb +26 -15
- data/lib/football-sources/apis.rb +1 -77
- data/lib/football-sources/apis/mods.rb +20 -0
- data/lib/football-sources/fbref.rb +4 -0
- data/lib/football-sources/fbref/build.rb +96 -0
- data/lib/football-sources/fbref/config.rb +16 -0
- data/lib/football-sources/fbref/convert.rb +95 -0
- data/lib/football-sources/version.rb +2 -2
- data/lib/football-sources/worldfootball.rb +1 -6
- data/lib/football-sources/worldfootball/jobs.rb +76 -0
- metadata +10 -19
- data/lib/football-sources/apis/download.rb +0 -11
- data/lib/football-sources/worldfootball/download.rb +0 -61
- data/lib/football-sources/worldfootball/leagues.rb +0 -200
- data/lib/football-sources/worldfootball/leagues/asia.rb +0 -53
- data/lib/football-sources/worldfootball/leagues/europe--british_isles.rb +0 -59
- data/lib/football-sources/worldfootball/leagues/europe--central.rb +0 -127
- data/lib/football-sources/worldfootball/leagues/europe--eastern.rb +0 -82
- data/lib/football-sources/worldfootball/leagues/europe--northern.rb +0 -57
- data/lib/football-sources/worldfootball/leagues/europe--southern.rb +0 -86
- data/lib/football-sources/worldfootball/leagues/europe--western.rb +0 -38
- data/lib/football-sources/worldfootball/leagues/europe.rb +0 -13
- data/lib/football-sources/worldfootball/leagues/north_america.rb +0 -44
- data/lib/football-sources/worldfootball/leagues/pacific.rb +0 -21
- data/lib/football-sources/worldfootball/leagues/south_america.rb +0 -11
- data/lib/football-sources/worldfootball/tool.rb +0 -100
@@ -1,38 +0,0 @@
|
|
1
|
-
|
2
|
-
module Worldfootball
|
3
|
-
|
4
|
-
LEAGUES_EUROPE.merge!({
|
5
|
-
'fr.1' => { pages: 'fra-ligue-1' },
|
6
|
-
'fr.2' => { pages: 'fra-ligue-2' },
|
7
|
-
|
8
|
-
# e.g. /lux-nationaldivision-2020-2021/
|
9
|
-
'lu.1' => { pages: 'lux-nationaldivision' },
|
10
|
-
|
11
|
-
# e.g. /ned-eredivisie-2020-2021/
|
12
|
-
'nl.1' => { pages: 'ned-eredivisie' },
|
13
|
-
# Championship play-offs
|
14
|
-
# Europa League play-offs (Group A + Group B / Finals )
|
15
|
-
|
16
|
-
# e.g. /bel-eerste-klasse-a-2020-2021/
|
17
|
-
# /bel-europa-league-playoffs-2018-2019-playoff/
|
18
|
-
# - Halbfinale
|
19
|
-
# - Finale
|
20
|
-
'be.1' => {
|
21
|
-
pages: {
|
22
|
-
'bel-eerste-klasse-a-{season}' => 'Regular Season',
|
23
|
-
'bel-eerste-klasse-a-{season}-playoff-i' => 'Playoffs - Championship',
|
24
|
-
'bel-europa-league-playoffs-{season}' => 'Playoffs - Europa League', ## note: missing groups (A & B)
|
25
|
-
'bel-europa-league-playoffs-{season}-playoff' => 'Playoffs - Europa League - Finals',
|
26
|
-
},
|
27
|
-
season: ->( season ) {
|
28
|
-
case season
|
29
|
-
when Season('2020/21') then [1] # just getting started
|
30
|
-
when Season('2019/20') then [1] # covid-19 - no championship & europa
|
31
|
-
when Season('2018/19') then [1,2,3,4]
|
32
|
-
end
|
33
|
-
}
|
34
|
-
},
|
35
|
-
|
36
|
-
})
|
37
|
-
|
38
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
|
2
|
-
module Worldfootball
|
3
|
-
LEAGUES_EUROPE = {}
|
4
|
-
end
|
5
|
-
|
6
|
-
|
7
|
-
require_relative 'europe--western'
|
8
|
-
require_relative 'europe--british_isles'
|
9
|
-
require_relative 'europe--northern'
|
10
|
-
require_relative 'europe--central'
|
11
|
-
require_relative 'europe--eastern'
|
12
|
-
require_relative 'europe--southern'
|
13
|
-
|
@@ -1,44 +0,0 @@
|
|
1
|
-
module Worldfootball
|
2
|
-
|
3
|
-
LEAGUES_NORTH_AMERICA = {
|
4
|
-
|
5
|
-
# todo/fix: adjust date/time by -6 or 7 hours!!!
|
6
|
-
# /can-canadian-championship-2020/
|
7
|
-
# - Qual. 1. Runde
|
8
|
-
# - Qual. 2. Runde
|
9
|
-
# - Qual. 3. Runde
|
10
|
-
# todo/fix: check for leagues - premier league? championship? soccer league?
|
11
|
-
# 'ca.1' => { slug: 'can-canadian-championship' },
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
# todo/fix: adjust date/time by -7 hours!!!
|
16
|
-
## e.g. 25.07.2020 02:30 => 24.07.2020 19.30
|
17
|
-
# 11.01.2020 04:00 => 10.01.2020 21.00
|
18
|
-
#
|
19
|
-
# e.g. /mex-primera-division-2020-2021-apertura/
|
20
|
-
# /mex-primera-division-2019-2020-clausura/
|
21
|
-
# /mex-primera-division-2019-2020-apertura-playoffs/
|
22
|
-
# - Viertelfinale
|
23
|
-
# - Halbfinale
|
24
|
-
# - Finale
|
25
|
-
# /mex-primera-division-2018-2019-clausura-playoffs/
|
26
|
-
'mx.1' => {
|
27
|
-
pages: {
|
28
|
-
'mex-primera-division-{season}-apertura' => 'Apertura', # 1
|
29
|
-
'mex-primera-division-{season}-apertura-playoffs' => 'Apertura - Liguilla', # 2
|
30
|
-
'mex-primera-division-{season}-clausura' => 'Clausura', # 3
|
31
|
-
'mex-primera-division-{season}-clausura-playoffs' => 'Clausura - Liguilla', # 4
|
32
|
-
},
|
33
|
-
season: ->( season ) {
|
34
|
-
case season
|
35
|
-
when Season('2020/21') then [1] # just getting started
|
36
|
-
when Season('2019/20') then [1,2,3] # covid-19 - no liguilla
|
37
|
-
when Season('2010/11')..Season('2018/19') then [1,2,3,4]
|
38
|
-
end
|
39
|
-
}
|
40
|
-
},
|
41
|
-
}
|
42
|
-
|
43
|
-
end # module Worldfootball
|
44
|
-
|
@@ -1,21 +0,0 @@
|
|
1
|
-
module Worldfootball
|
2
|
-
|
3
|
-
LEAGUES_PACIFIC = {
|
4
|
-
|
5
|
-
# /nzl-nz-football-championship-2019-2020/
|
6
|
-
# /nzl-nz-football-championship-2018-2019-playoffs/
|
7
|
-
'nz.1' => {
|
8
|
-
pages: {
|
9
|
-
'nzl-nz-football-championship-{season}' => 'Regular Season', # 1
|
10
|
-
'nzl-nz-football-championship-{season}-playoffs' => 'Playoff Finals', # 2
|
11
|
-
},
|
12
|
-
season: ->( season ) {
|
13
|
-
case season
|
14
|
-
when Season('2019/20') then [1] ## covid-19 - no playoffs/finals
|
15
|
-
when Season('2018/19') then [1,2]
|
16
|
-
end
|
17
|
-
}
|
18
|
-
},
|
19
|
-
}
|
20
|
-
|
21
|
-
end # module Worldfootball
|
@@ -1,100 +0,0 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
module Worldfootball
|
4
|
-
################################
|
5
|
-
# add more helpers
|
6
|
-
# move upstream for (re)use - why? why not?
|
7
|
-
|
8
|
-
## todo/check: what to do: if league is both included and excluded?
|
9
|
-
## include forces include? or exclude has the last word? - why? why not?
|
10
|
-
## Excludes match before includes,
|
11
|
-
## meaning that something that has been excluded cannot be included again
|
12
|
-
|
13
|
-
## todo - find "proper/classic" timezone ("winter time")
|
14
|
-
|
15
|
-
## Brasilia - Distrito Federal, Brasil (GMT-3) -- summer time?
|
16
|
-
## Ciudad de México, CDMX, México (GMT-5) -- summer time?
|
17
|
-
## Londres, Reino Unido (GMT+1)
|
18
|
-
## Madrid -- ?
|
19
|
-
## Lisboa -- ?
|
20
|
-
## Moskow -- ?
|
21
|
-
##
|
22
|
-
## todo/check - quick fix timezone offsets for leagues for now
|
23
|
-
## - find something better - why? why not?
|
24
|
-
## note: assume time is in GMT+1
|
25
|
-
OFFSETS = {
|
26
|
-
'eng.1' => -1,
|
27
|
-
'eng.2' => -1,
|
28
|
-
'eng.3' => -1,
|
29
|
-
'eng.4' => -1,
|
30
|
-
'eng.5' => -1,
|
31
|
-
|
32
|
-
'es.1' => -1,
|
33
|
-
'es.2' => -1,
|
34
|
-
|
35
|
-
'pt.1' => -1,
|
36
|
-
'pt.2' => -1,
|
37
|
-
|
38
|
-
'br.1' => -5,
|
39
|
-
'mx.1' => -7,
|
40
|
-
}
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
class Tool
|
46
|
-
def initialize( includes: nil,
|
47
|
-
excludes: nil )
|
48
|
-
## quick fix: move/handle empty array upstream!!!!
|
49
|
-
includes = nil if includes.is_a?(Array) && includes.empty?
|
50
|
-
|
51
|
-
@includes = includes
|
52
|
-
@excludes = excludes
|
53
|
-
end
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
def download( datasets )
|
58
|
-
datasets.each do |dataset|
|
59
|
-
league = dataset[0]
|
60
|
-
seasons = dataset[1]
|
61
|
-
|
62
|
-
with_filter( league ) do
|
63
|
-
seasons.each do |season|
|
64
|
-
puts "downloading #{league} #{season}..."
|
65
|
-
|
66
|
-
Worldfootball.schedule( league: league,
|
67
|
-
season: season )
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
def convert( datasets )
|
74
|
-
datasets.each do |dataset|
|
75
|
-
league = dataset[0]
|
76
|
-
seasons = dataset[1]
|
77
|
-
|
78
|
-
with_filter( league ) do
|
79
|
-
seasons.each do |season|
|
80
|
-
Worldfootball.convert( league: league,
|
81
|
-
season: season,
|
82
|
-
offset: OFFSETS[ league ] )
|
83
|
-
end
|
84
|
-
end
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
|
89
|
-
#########################################
|
90
|
-
# more helpers
|
91
|
-
def with_filter( league, &blk )
|
92
|
-
return if @excludes && @excludes.find { |q| league.start_with?( q.downcase ) }
|
93
|
-
return if @includes && @includes.find { |q| league.start_with?( q.downcase ) }.nil?
|
94
|
-
blk.call()
|
95
|
-
end
|
96
|
-
|
97
|
-
end # class Tool
|
98
|
-
end # module Worldfootball
|
99
|
-
|
100
|
-
|