sportdb-writers 0.2.3 → 0.3.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/CHANGELOG.md +1 -1
- data/Manifest.txt +0 -5
- data/README.md +0 -1
- data/Rakefile +0 -1
- data/config/leagues_america.csv +14 -1
- data/config/leagues_europe.csv +64 -8
- data/config/leagues_world.csv +16 -1
- data/lib/sportdb/writers/version.rb +2 -2
- data/lib/sportdb/writers.rb +0 -78
- metadata +2 -22
- data/bin/fbup +0 -13
- data/config/openfootball.csv +0 -67
- data/lib/sportdb/fbup/github.rb +0 -83
- data/lib/sportdb/fbup/github_config.rb +0 -97
- data/lib/sportdb/fbup/main.rb +0 -162
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 10b19eac6f6a70a144de7201b0b72f60628e169e91ca51880cfde5bcc6b52690
|
|
4
|
+
data.tar.gz: 371f70efc9ffb6fd2ce77eb8087acfbdda68b2ced50019a3fd85ce9582331104
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 69d5f4ce4d13bdb73c3b5a96fd92583f043c15fecaa2209ffa81c56c4204adfb3d042b25edfd28e19c8cf89461d01f5847d563819841d8fb810d1673de15784b
|
|
7
|
+
data.tar.gz: cfb92a600bafc109e13f12bf8d513be4ce3003b358aef32581a9880719a47644d9308d129c8e808c39a1678d065789cfc0ed2bd4a3f57f5f8f0c00691ddb11f5
|
data/CHANGELOG.md
CHANGED
data/Manifest.txt
CHANGED
|
@@ -4,16 +4,11 @@ README.md
|
|
|
4
4
|
Rakefile
|
|
5
5
|
bin/fbgen
|
|
6
6
|
bin/fbtxt
|
|
7
|
-
bin/fbup
|
|
8
7
|
config/leagues_america.csv
|
|
9
8
|
config/leagues_europe.csv
|
|
10
9
|
config/leagues_world.csv
|
|
11
|
-
config/openfootball.csv
|
|
12
10
|
lib/sportdb/fbgen/main.rb
|
|
13
11
|
lib/sportdb/fbtxt/main.rb
|
|
14
|
-
lib/sportdb/fbup/github.rb
|
|
15
|
-
lib/sportdb/fbup/github_config.rb
|
|
16
|
-
lib/sportdb/fbup/main.rb
|
|
17
12
|
lib/sportdb/writers.rb
|
|
18
13
|
lib/sportdb/writers/goals.rb
|
|
19
14
|
lib/sportdb/writers/league_config.rb
|
data/README.md
CHANGED
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
* bugs :: [github.com/sportdb/sport.db/issues](https://github.com/sportdb/sport.db/issues)
|
|
5
5
|
* gem :: [rubygems.org/gems/sportdb-writers](https://rubygems.org/gems/sportdb-writers)
|
|
6
6
|
* rdoc :: [rubydoc.info/gems/sportdb-writers](http://rubydoc.info/gems/sportdb-writers)
|
|
7
|
-
* forum :: [groups.google.com/group/opensport](https://groups.google.com/group/opensport)
|
|
8
7
|
|
|
9
8
|
|
|
10
9
|
|
data/Rakefile
CHANGED
data/config/leagues_america.csv
CHANGED
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
key, name, basename, start_season, end_season, comments
|
|
2
2
|
|
|
3
3
|
ar.1, Argentina Primera Division, 1-primeradivision,,,
|
|
4
|
+
|
|
4
5
|
br.1, Brasileiro Série A, 1-seriea,,,
|
|
5
|
-
br.2, Brasileiro Série B,
|
|
6
|
+
br.2, Brasileiro Série B, 2-serieb,,,
|
|
7
|
+
br.3, Brasileiro Série C, 3-seriec,,,
|
|
8
|
+
br.4, Brasileiro Série D, 4-seried,,,
|
|
9
|
+
br.cup, Copa do Brasil, cup,,,
|
|
10
|
+
|
|
11
|
+
br.carioca, Campeonato Carioca, carioca,,,
|
|
12
|
+
br.gauchao, Campeonato Gaúcho, gauchao,,,
|
|
13
|
+
br.mineiro, Campeonato Mineiro, mineiro,,,
|
|
14
|
+
br.paranaense, Campeonato Paranaense, paranaense,,,
|
|
15
|
+
br.paulistao, Campeonato Paulista, paulistao,,,
|
|
16
|
+
|
|
17
|
+
co.1, Colombia Primera A, 1-primeraa,,,
|
|
18
|
+
|
|
6
19
|
|
|
7
20
|
copa.l, Copa Libertadores, libertadores,,,
|
|
8
21
|
copa.s, Copa Sudamericana, sudamericana,,,
|
data/config/leagues_europe.csv
CHANGED
|
@@ -3,7 +3,8 @@ key, name, basename, start_season, end_season, co
|
|
|
3
3
|
at.1, Österr. Bundesliga, 1-bundesliga,,,
|
|
4
4
|
at.2, Österr. 2. Liga, 2-liga2, 2018/19,,
|
|
5
5
|
at.2, Österr. Erste Liga, 2-liga1, , 2017/18,
|
|
6
|
-
at.3.o, Österr. Regionalliga Ost,
|
|
6
|
+
at.3.o, Österr. Regionalliga Ost, 3-regionalliga-ost,,,
|
|
7
|
+
at.3.m, Österr. Regionalliga Mitte, 3-regionalliga-mitte,,,
|
|
7
8
|
at.cup, ÖFB Cup, cup,,,
|
|
8
9
|
|
|
9
10
|
|
|
@@ -21,27 +22,44 @@ de.cup, DFB Pokal, cup,,,
|
|
|
21
22
|
|
|
22
23
|
it.1, Italian Serie A, 1-seriea,,,
|
|
23
24
|
it.2, Italian Serie B, 2-serieb,,,
|
|
25
|
+
it.cup, Coppa Italia, cup,,,
|
|
26
|
+
|
|
24
27
|
|
|
25
28
|
es.1, Primera División de España, 1-liga,,,
|
|
26
29
|
es.2, Segunda División de España, 2-liga2,,,
|
|
30
|
+
es.cup, Copa del Rey de España, cup,,,
|
|
31
|
+
|
|
27
32
|
|
|
28
33
|
fr.1, French Ligue 1, 1-ligue1,,,
|
|
29
34
|
fr.2, French Ligue 2, 2-ligue2,,,
|
|
30
35
|
|
|
31
36
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
37
|
+
##
|
|
38
|
+
## note - starting with the 2004/05 season
|
|
39
|
+
# the Football League's Division 1, Division 2 and Division 3
|
|
40
|
+
## changed to Championship, League One and League Two.
|
|
35
41
|
|
|
36
42
|
eng.2, English Championship, 2-championship, 2004/05,, ## rebranding divsion 1 => championship
|
|
43
|
+
eng.3, English League One, 3-league1, 2004/05,,
|
|
44
|
+
eng.4, English League Two, 4-league2, 2004/05,,
|
|
45
|
+
|
|
46
|
+
eng.1, English Premier League, 1-premierleague, 1992/93,,
|
|
37
47
|
eng.2, English Division One, 2-division1, 1992/93, 2003/04, ## start of premier league
|
|
48
|
+
eng.3, English Division Two, 3-division2, 1992/93, 2003/04,
|
|
49
|
+
eng.4, English Division Three, 4-division3, 1992/93, 2003/04,
|
|
50
|
+
eng.5, English National League, 5-nationalleague, 1992/93,,
|
|
51
|
+
|
|
52
|
+
eng.1, English Division One, 1-division1, 1892/93, 1991/92, ## start of division 1 & 2
|
|
38
53
|
eng.2, English Division Two, 2-division2, 1892/93, 1991/92, ## or use English Football League Second Division ???
|
|
54
|
+
eng.3, English Division Three, 3-division3, , 1991/92,
|
|
55
|
+
|
|
56
|
+
eng.1, English Football League, 1-footballleague, 1888/89, 1891/92, ## single league (no divisions)
|
|
57
|
+
|
|
39
58
|
|
|
40
|
-
eng.3, English League One, 3-league1,,,
|
|
41
|
-
eng.4, English League Two, 4-league2,,,
|
|
42
|
-
eng.5, English National League, 5-nationalleague,,,
|
|
43
59
|
eng.cup, English FA Cup, facup,,,
|
|
44
60
|
|
|
61
|
+
wal.1, Welsh Premier League, 1-premierleague,,,
|
|
62
|
+
nir.1, Northern Irish Premiership, 1-premiership,,,
|
|
45
63
|
|
|
46
64
|
hu.1, Hungarian NB I, 1-nbi,,,
|
|
47
65
|
|
|
@@ -91,14 +109,52 @@ ua.1, Ukraine Premier League, 1-premierleague,,,
|
|
|
91
109
|
ru.1, Russian Premier League, 1-premierliga,,,
|
|
92
110
|
ru.2, Russian 1. Division, 2-division1,,,
|
|
93
111
|
|
|
112
|
+
by.1, Belarusian Premier League, 1-premierleague,,,
|
|
113
|
+
|
|
114
|
+
al.1, Albanian Super League, 1-superleague,,,
|
|
115
|
+
ad.1, Andorran Premier Division, 1-premierdisvision,,,
|
|
116
|
+
|
|
117
|
+
ba.1, Bosnian-Herzegovinian Premier League, 1-premierleague,,,
|
|
118
|
+
bg.1, Bulgarian A League, 1-aleague,,,
|
|
119
|
+
|
|
120
|
+
cy.1, Cypriot First Division, 1-firstdivision,,,
|
|
121
|
+
|
|
122
|
+
ee.1, Estonian First League, 1-firstleague,,,
|
|
123
|
+
lv.1, Latvian First Division, 1-firstdivision,,,
|
|
124
|
+
lt.1, Lithuanian First Division, 1-firstdivision,,,
|
|
125
|
+
|
|
126
|
+
li.cup, Liechtensteiner Cup, cup,,,
|
|
127
|
+
|
|
128
|
+
mk.1, Macedonian First League, 1-firstleague,,,
|
|
129
|
+
mt.1, Macedonian First League, 1-firstleague,,,
|
|
130
|
+
md.1, Moldovan First Division, 1-firstdivision,,,
|
|
131
|
+
me.1, Montenegrin First League, 1-firstleague,,,
|
|
132
|
+
|
|
133
|
+
sm.1, San Marinese Championship, 1-championship,,,
|
|
134
|
+
rs.1, Serbian Super League, 1-superleague,,,
|
|
135
|
+
si.1, Slovene First League, 1-firstleague,,,
|
|
136
|
+
|
|
137
|
+
kos.1, Kosovan Superliga, 1-superliga,,,
|
|
138
|
+
xk.1, Kosovan Superliga, 1-superliga,,,
|
|
139
|
+
|
|
140
|
+
am.1, Armenian Premier League, 1-premierleague,,,
|
|
141
|
+
az.1, Azerbaijani Premier League, 1-premierleague,,,
|
|
142
|
+
ge.1, Georgian Premier League, 1-premierleague,,,
|
|
143
|
+
|
|
144
|
+
fo.1, Faroese Premier Division, 1-premierdivision,,,
|
|
145
|
+
gi.1, Gibraltarian Premier League, 1-premierleague,,,
|
|
146
|
+
|
|
94
147
|
|
|
95
148
|
|
|
96
149
|
## use uefa.1 - why? why not?
|
|
97
150
|
## uefa.2,
|
|
98
151
|
## uefa.3
|
|
99
152
|
uefa.cl, UEFA Champions League, cl,,, ### use champs or such?
|
|
100
|
-
uefa.
|
|
153
|
+
uefa.champs, UEFA Champions League, champs,,,
|
|
154
|
+
uefa.el, UEFA Europa League, el,,, ### use europa?
|
|
155
|
+
uefa.europa, UEFA Europa League, europa,,,
|
|
101
156
|
uefa.conf, UEFA Conference League, conf,,, ### use con (conf - confusion with config files?)
|
|
157
|
+
uefa.con, UEFA Conference League, con,,,
|
|
102
158
|
|
|
103
159
|
uefa.nl, UEFA Nations League, nl,,,
|
|
104
160
|
euro, Euro, euro,,,
|
data/config/leagues_world.csv
CHANGED
|
@@ -5,4 +5,19 @@ jp.1, Japan J1 League, 1-j1league,,,
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
kz.1, Kazakh Premier League, 1-premierleague,,,
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
il.1, Israeli Premier League, 1-premierleague,,,
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
eg.1, Egypt Premiership, 1-premiership,,,
|
|
15
|
+
ma.1, Morocco Botola Pro 1, 1-botolapro1,,,
|
|
16
|
+
dz.1, Algeria Ligue 1, 1-ligue1,,,
|
|
17
|
+
|
|
18
|
+
afl, African Football League, afl,,,
|
|
19
|
+
caf.cl, CAF Champions League, cl,,,
|
|
20
|
+
caf.champs, CAF Champions League, champs,,, ## use alternate code - why? why not?
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
world, World Cup, cup,,,
|
data/lib/sportdb/writers.rb
CHANGED
|
@@ -56,83 +56,5 @@ require_relative 'fbgen/main'
|
|
|
56
56
|
|
|
57
57
|
|
|
58
58
|
|
|
59
|
-
########################
|
|
60
|
-
# push & pull github scripts
|
|
61
|
-
require 'gitti' ## note - requires git machinery
|
|
62
|
-
|
|
63
|
-
require_relative 'fbup/github_config'
|
|
64
|
-
require_relative 'fbup/github' ## github helpers/update machinery
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
module Fbup
|
|
68
|
-
class GitHubSync
|
|
69
|
-
REPOS = GitHubConfig.new
|
|
70
|
-
recs = read_csv( "#{SportDb::Module::Writers.root}/config/openfootball.csv" )
|
|
71
|
-
REPOS.add( recs )
|
|
72
|
-
|
|
73
|
-
## todo/check: find a better name for helper?
|
|
74
|
-
## note: datasets of format
|
|
75
|
-
##
|
|
76
|
-
## DATASETS = [
|
|
77
|
-
## ['it.1', %w[2020/21 2019/20]],
|
|
78
|
-
## ['it.2', %w[2019/20]],
|
|
79
|
-
## ['es.1', %w[2019/20]],
|
|
80
|
-
## ['es.2', %w[2019/20]],
|
|
81
|
-
## ]
|
|
82
|
-
|
|
83
|
-
def self.find_repos( datasets )
|
|
84
|
-
repos = []
|
|
85
|
-
datasets.each do |dataset|
|
|
86
|
-
league_key = dataset[0]
|
|
87
|
-
repo = REPOS[ league_key ]
|
|
88
|
-
## pp repo
|
|
89
|
-
if repo.nil?
|
|
90
|
-
puts "!! ERROR - no repo config/path found for league >#{league_key}<; sorry"
|
|
91
|
-
exit 1
|
|
92
|
-
end
|
|
93
|
-
|
|
94
|
-
repos << "#{repo['owner']}/#{repo['name']}"
|
|
95
|
-
end
|
|
96
|
-
|
|
97
|
-
pp repos
|
|
98
|
-
repos.uniq ## note: remove duplicates (e.g. europe or world or such)
|
|
99
|
-
end
|
|
100
|
-
end # class GitHubSync
|
|
101
|
-
end # module Fbup
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
require_relative 'fbup/main'
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
###
|
|
109
|
-
## todo/fix: move more code into tool class or such? - why? why not?
|
|
110
|
-
|
|
111
|
-
## todo/check: find a better name for helper?
|
|
112
|
-
## find_all_datasets, filter_datatsets - add alias(es???
|
|
113
|
-
## queries (lik ARGV) e.g. ['at'] or ['eng', 'de'] etc. list of strings
|
|
114
|
-
def filter_datasets( datasets, queries=[] )
|
|
115
|
-
## find all matching leagues (that is, league keys)
|
|
116
|
-
if queries.empty? ## no filter - get all league keys
|
|
117
|
-
datasets
|
|
118
|
-
else
|
|
119
|
-
datasets.find_all do |dataset|
|
|
120
|
-
found = false
|
|
121
|
-
## note: normalize league key (remove dot and downcase)
|
|
122
|
-
league_key = dataset[0].gsub( '.', '' )
|
|
123
|
-
queries.each do |query|
|
|
124
|
-
q = query.gsub( '.', '' ).downcase
|
|
125
|
-
if league_key.start_with?( q )
|
|
126
|
-
found = true
|
|
127
|
-
break
|
|
128
|
-
end
|
|
129
|
-
end
|
|
130
|
-
found
|
|
131
|
-
end
|
|
132
|
-
end
|
|
133
|
-
end
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
59
|
|
|
138
60
|
puts SportDb::Module::Writers.banner # say hello
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sportdb-writers
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.3.0
|
|
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-
|
|
11
|
+
date: 2024-10-06 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: football-timezones
|
|
@@ -38,20 +38,6 @@ dependencies:
|
|
|
38
38
|
- - ">="
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
40
|
version: '0'
|
|
41
|
-
- !ruby/object:Gem::Dependency
|
|
42
|
-
name: gitti
|
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
|
44
|
-
requirements:
|
|
45
|
-
- - ">="
|
|
46
|
-
- !ruby/object:Gem::Version
|
|
47
|
-
version: '0'
|
|
48
|
-
type: :runtime
|
|
49
|
-
prerelease: false
|
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
-
requirements:
|
|
52
|
-
- - ">="
|
|
53
|
-
- !ruby/object:Gem::Version
|
|
54
|
-
version: '0'
|
|
55
41
|
- !ruby/object:Gem::Dependency
|
|
56
42
|
name: rdoc
|
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -92,7 +78,6 @@ email: gerald.bauer@gmail.com
|
|
|
92
78
|
executables:
|
|
93
79
|
- fbgen
|
|
94
80
|
- fbtxt
|
|
95
|
-
- fbup
|
|
96
81
|
extensions: []
|
|
97
82
|
extra_rdoc_files:
|
|
98
83
|
- CHANGELOG.md
|
|
@@ -105,16 +90,11 @@ files:
|
|
|
105
90
|
- Rakefile
|
|
106
91
|
- bin/fbgen
|
|
107
92
|
- bin/fbtxt
|
|
108
|
-
- bin/fbup
|
|
109
93
|
- config/leagues_america.csv
|
|
110
94
|
- config/leagues_europe.csv
|
|
111
95
|
- config/leagues_world.csv
|
|
112
|
-
- config/openfootball.csv
|
|
113
96
|
- lib/sportdb/fbgen/main.rb
|
|
114
97
|
- lib/sportdb/fbtxt/main.rb
|
|
115
|
-
- lib/sportdb/fbup/github.rb
|
|
116
|
-
- lib/sportdb/fbup/github_config.rb
|
|
117
|
-
- lib/sportdb/fbup/main.rb
|
|
118
98
|
- lib/sportdb/writers.rb
|
|
119
99
|
- lib/sportdb/writers/goals.rb
|
|
120
100
|
- lib/sportdb/writers/league_config.rb
|
data/bin/fbup
DELETED
data/config/openfootball.csv
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
key, path
|
|
2
|
-
|
|
3
|
-
at, austria
|
|
4
|
-
|
|
5
|
-
de, deutschland
|
|
6
|
-
eng, england
|
|
7
|
-
es, espana
|
|
8
|
-
it, italy
|
|
9
|
-
|
|
10
|
-
fr, europe/france
|
|
11
|
-
|
|
12
|
-
hu, europe/hungary
|
|
13
|
-
gr, europe/greece
|
|
14
|
-
pt, europe/portugal
|
|
15
|
-
|
|
16
|
-
ch, europe/switzerland
|
|
17
|
-
|
|
18
|
-
tr, europe/turkey
|
|
19
|
-
|
|
20
|
-
is, europe/iceland
|
|
21
|
-
sco, europe/scotland
|
|
22
|
-
ie, europe/ireland
|
|
23
|
-
|
|
24
|
-
fi, europe/finland
|
|
25
|
-
se, europe/sweden
|
|
26
|
-
no, europe/norway
|
|
27
|
-
dk, europe/denmark
|
|
28
|
-
|
|
29
|
-
lu, europe/luxembourg
|
|
30
|
-
be, europe/belgium
|
|
31
|
-
nl, europe/netherlands
|
|
32
|
-
cz, europe/czech-republic
|
|
33
|
-
|
|
34
|
-
sk, europe/slovakia
|
|
35
|
-
hr, europe/croatia
|
|
36
|
-
pl, europe/poland
|
|
37
|
-
|
|
38
|
-
ro, europe/romania
|
|
39
|
-
|
|
40
|
-
ua, europe/ukraine
|
|
41
|
-
|
|
42
|
-
ru, europe/russia
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
uefa.cl, europe-champions-league
|
|
46
|
-
uefa.el, europe-champions-league
|
|
47
|
-
uefa.conf, europe-champions-league
|
|
48
|
-
|
|
49
|
-
euro, euro
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
mx, mexico
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
ar, south-america/argentina
|
|
57
|
-
br, south-america/brazil
|
|
58
|
-
|
|
59
|
-
copa.l, south-america/copa-libertadores
|
|
60
|
-
copa.s, south-america/copa-libertadores
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
cn, world/asia/china
|
|
64
|
-
jp, world/asia/japan
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
world, worldcup
|
data/lib/sportdb/fbup/github.rb
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
module Fbup
|
|
3
|
-
|
|
4
|
-
###
|
|
5
|
-
## todo/fix:
|
|
6
|
-
## add -i/--interactive flag
|
|
7
|
-
## will prompt yes/no before git operations (with consequences)!!!
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
class GitHubSync
|
|
12
|
-
|
|
13
|
-
########
|
|
14
|
-
## (auto)default to Writer.config.out_dir - why? why not?
|
|
15
|
-
##
|
|
16
|
-
## note - is monotree (that is, requires openfootball/england etc.
|
|
17
|
-
## for repo pathspecs)
|
|
18
|
-
def self.root() @root || "/sports"; end
|
|
19
|
-
def self.root=( dir ) @root = dir; end
|
|
20
|
-
## use root_dir (alias) - why? why not?
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
def initialize( repos )
|
|
24
|
-
@repos = repos
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
def git_push_if_changes
|
|
29
|
-
message = "auto-update week #{Date.today.cweek}" ## add /#{Date.today.cday - why? why not?
|
|
30
|
-
puts message
|
|
31
|
-
|
|
32
|
-
@repos.each do |pathspec|
|
|
33
|
-
_git_push_if_changes( pathspec, message: message )
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def git_fast_forward_if_clean
|
|
38
|
-
@repos.each do |pathspec|
|
|
39
|
-
_git_fast_forward_if_clean( pathspec )
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
## todo/fix: rename to something like
|
|
46
|
-
## git_(auto_)commit_and_push_if_changes/if_dirty()
|
|
47
|
-
|
|
48
|
-
def _git_push_if_changes( pathspec, message: )
|
|
49
|
-
path = "#{self.class.root}/#{pathspec}"
|
|
50
|
-
|
|
51
|
-
Gitti::GitProject.open( path ) do |proj|
|
|
52
|
-
puts ''
|
|
53
|
-
puts "###########################################"
|
|
54
|
-
puts "## trying to commit & push repo in path >#{path}<"
|
|
55
|
-
puts "Dir.getwd: #{Dir.getwd}"
|
|
56
|
-
output = proj.changes
|
|
57
|
-
if output.empty?
|
|
58
|
-
puts "no changes found; skipping commit & push"
|
|
59
|
-
else
|
|
60
|
-
proj.add( '.' )
|
|
61
|
-
proj.commit( message )
|
|
62
|
-
proj.push
|
|
63
|
-
end
|
|
64
|
-
end
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
def _git_fast_forward_if_clean( pathspec )
|
|
69
|
-
path = "#{self.class.root}/#{pathspec}"
|
|
70
|
-
|
|
71
|
-
Gitti::GitProject.open( path ) do |proj|
|
|
72
|
-
output = proj.changes
|
|
73
|
-
unless output.empty?
|
|
74
|
-
puts "FAIL - cannot git pull (fast-forward) - working tree has changes:"
|
|
75
|
-
puts output
|
|
76
|
-
exit 1
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
proj.fast_forward
|
|
80
|
-
end
|
|
81
|
-
end
|
|
82
|
-
end # class GitHub
|
|
83
|
-
end # module Fbup
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
module Fbup
|
|
3
|
-
class GitHubConfig
|
|
4
|
-
|
|
5
|
-
## map leagues to repo+path
|
|
6
|
-
## e.g. fr.1 => europe/france
|
|
7
|
-
## eng..1 => england
|
|
8
|
-
##
|
|
9
|
-
## for other than openfootball (default)
|
|
10
|
-
## use @
|
|
11
|
-
## e.g. myorg@austria
|
|
12
|
-
## austria@myorg ??
|
|
13
|
-
##
|
|
14
|
-
## myorg@europe/france
|
|
15
|
-
## europe/france@myorg
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
def self.read( path )
|
|
19
|
-
recs = read_csv( path )
|
|
20
|
-
new( recs )
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def initialize( recs=nil )
|
|
24
|
-
@table = {}
|
|
25
|
-
add( recs ) if recs
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
def add( recs )
|
|
30
|
-
recs.each do |rec|
|
|
31
|
-
path = rec['path'] ## use pathspec - why? why not?
|
|
32
|
-
## or repospec or such
|
|
33
|
-
|
|
34
|
-
## auto-expand to openfootball as default org if no @ specified
|
|
35
|
-
owner, path = if path.index( '@')
|
|
36
|
-
path.split( '@', 2 )
|
|
37
|
-
else
|
|
38
|
-
['openfootball', path ]
|
|
39
|
-
end
|
|
40
|
-
name, path = path.split( '/', 2 )
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
## openfootball@europe/france
|
|
44
|
-
## =>
|
|
45
|
-
## owner: openfootball
|
|
46
|
-
## name: europe
|
|
47
|
-
## path: france
|
|
48
|
-
##
|
|
49
|
-
## openfootball@austria
|
|
50
|
-
## =>
|
|
51
|
-
## owner: openfootball
|
|
52
|
-
## name: austria
|
|
53
|
-
## path: nil
|
|
54
|
-
@table[ rec['key'] ] = { 'owner' => owner, ## (required)
|
|
55
|
-
'name' => name, ## (required)
|
|
56
|
-
'path' => path ## extra/inner/inside/local path (optional)
|
|
57
|
-
}
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
##
|
|
63
|
-
## todo/fix:
|
|
64
|
-
## make key lookup more flexible
|
|
65
|
-
## auto-add more variants!!!
|
|
66
|
-
## e.g. at.1 AT1, AT or such
|
|
67
|
-
##
|
|
68
|
-
|
|
69
|
-
## find (full) record by key
|
|
70
|
-
def find( key )
|
|
71
|
-
key = key.to_s.downcase
|
|
72
|
-
|
|
73
|
-
## first check for 1:1 match
|
|
74
|
-
rec = @table[key]
|
|
75
|
-
if rec.nil?
|
|
76
|
-
## try match by (country / first) code
|
|
77
|
-
## split by .
|
|
78
|
-
key, _ = key.split( '.' )
|
|
79
|
-
rec = @table[key]
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
rec
|
|
83
|
-
end
|
|
84
|
-
alias_method :[], :find ## keep alias - why? why not?
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
def find_repo( key )
|
|
88
|
-
rec = _find( key )
|
|
89
|
-
|
|
90
|
-
rec ? "#{rec['owner']}/#{rec['name']}" : nil
|
|
91
|
-
end
|
|
92
|
-
|
|
93
|
-
end # class GitHubConfig
|
|
94
|
-
end # module Fbup
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
data/lib/sportdb/fbup/main.rb
DELETED
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
module Fbup
|
|
3
|
-
def self.main( args=ARGV )
|
|
4
|
-
|
|
5
|
-
opts = {
|
|
6
|
-
source_path: [],
|
|
7
|
-
push: false,
|
|
8
|
-
ffwd: false,
|
|
9
|
-
dry: false, ## dry run (no write)
|
|
10
|
-
test: true, ## sets push & ffwd to false
|
|
11
|
-
debug: true,
|
|
12
|
-
file: nil,
|
|
13
|
-
test_dir: './o',
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
parser = OptionParser.new do |parser|
|
|
18
|
-
parser.banner = "Usage: #{$PROGRAM_NAME} [options] [args]"
|
|
19
|
-
|
|
20
|
-
parser.on( "-p", "--[no-]push",
|
|
21
|
-
"fast forward sync and commit & push changes to git repo - default is (#{opts[:push]})" ) do |push|
|
|
22
|
-
opts[:push] = push
|
|
23
|
-
if opts[:push] ## note: autoset ffwd too if push == true
|
|
24
|
-
opts[:ffwd] = true
|
|
25
|
-
opts[:test] = false
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
## todo/check - add a --ffwd flag too - why? why not?
|
|
29
|
-
|
|
30
|
-
parser.on( "-t", "--test",
|
|
31
|
-
"test run; writing output to #{opts[:test_dir]} - default is #{opts[:test]}" ) do |test|
|
|
32
|
-
opts[:test] = true
|
|
33
|
-
opts[:push] = false
|
|
34
|
-
opts[:ffwd] = false
|
|
35
|
-
end
|
|
36
|
-
parser.on( "--dry",
|
|
37
|
-
"dry run; do NOT write - default is (#{opts[:dry]})" ) do |dry|
|
|
38
|
-
opts[:dry] = dry
|
|
39
|
-
opts[:push] = false ### autoset push & ffwd - why? why not?
|
|
40
|
-
opts[:ffwd] = false
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
parser.on( "-q", "--quiet",
|
|
44
|
-
"less debug output/messages - default is (#{!opts[:debug]})" ) do |debug|
|
|
45
|
-
opts[:debug] = false
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
parser.on( "-I DIR", "--include DIR",
|
|
49
|
-
"add directory to (source) search path - default is (#{opts[:source_path].join(',')})") do |dir|
|
|
50
|
-
opts[:source_path] += path
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
parser.on( "-f FILE", "--file FILE",
|
|
54
|
-
"read leagues (and seasons) via .csv file") do |file|
|
|
55
|
-
opts[:file] = file
|
|
56
|
-
end
|
|
57
|
-
end
|
|
58
|
-
parser.parse!( args )
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
if opts[:source_path].empty? &&
|
|
62
|
-
File.exist?( '/sports/cache.api.fbdat') &&
|
|
63
|
-
File.exist?( '/sports/cache.wfb' )
|
|
64
|
-
opts[:source_path] << '/sports/cache.api.fbdat'
|
|
65
|
-
opts[:source_path] << '/sports/cache.wfb'
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
if opts[:source_path].empty?
|
|
69
|
-
opts[:source_path] = ['.'] ## use ./ as default
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
puts "OPTS:"
|
|
75
|
-
p opts
|
|
76
|
-
puts "ARGV:"
|
|
77
|
-
p args
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
datasets = if opts[:file]
|
|
81
|
-
read_datasets( opts[:file] )
|
|
82
|
-
else
|
|
83
|
-
parse_datasets_args( args )
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
puts "datasets:"
|
|
87
|
-
pp datasets
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
source_path = opts[:source_path]
|
|
91
|
-
|
|
92
|
-
root_dir = if opts[:test]
|
|
93
|
-
opts[:test_dir]
|
|
94
|
-
else
|
|
95
|
-
GitHubSync.root # e.g. "/sports"
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
puts " (output) root_dir: >#{root_dir}<"
|
|
99
|
-
|
|
100
|
-
repos = GitHubSync.find_repos( datasets )
|
|
101
|
-
puts " #{repos.size} repo(s):"
|
|
102
|
-
pp repos
|
|
103
|
-
sync = GitHubSync.new( repos )
|
|
104
|
-
|
|
105
|
-
puts " sync:"
|
|
106
|
-
pp sync
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
sync.git_fast_forward_if_clean if opts[:ffwd]
|
|
110
|
-
|
|
111
|
-
### step 0 - validate and fill-in seasons etc.
|
|
112
|
-
## reuse from Fbgen tool
|
|
113
|
-
Fbgen.validate_datasets!( datasets, source_path: source_path )
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
datasets.each do |league_key, seasons|
|
|
117
|
-
puts "==> gen #{league_key} - #{seasons.size} seasons(s)..."
|
|
118
|
-
|
|
119
|
-
league_info = Writer::LEAGUES[ league_key ]
|
|
120
|
-
pp league_info
|
|
121
|
-
|
|
122
|
-
seasons.each do |season|
|
|
123
|
-
filename = "#{season.to_path}/#{league_key}.csv"
|
|
124
|
-
path = Fbgen.find_file( filename, path: source_path )
|
|
125
|
-
|
|
126
|
-
### get matches
|
|
127
|
-
puts " ---> reading matches in #{path} ..."
|
|
128
|
-
matches = SportDb::CsvMatchParser.read( path )
|
|
129
|
-
puts " #{matches.size} matches"
|
|
130
|
-
|
|
131
|
-
## build
|
|
132
|
-
txt = SportDb::TxtMatchWriter.build( matches )
|
|
133
|
-
puts txt if opts[:debug]
|
|
134
|
-
|
|
135
|
-
league_name = league_info[ :name ] # e.g. Brasileiro Série A
|
|
136
|
-
basename = league_info[ :basename] #.e.g 1-seriea
|
|
137
|
-
|
|
138
|
-
league_name = league_name.call( season ) if league_name.is_a?( Proc ) ## is proc/func - name depends on season
|
|
139
|
-
basename = basename.call( season ) if basename.is_a?( Proc ) ## is proc/func - name depends on season
|
|
140
|
-
|
|
141
|
-
buf = String.new
|
|
142
|
-
buf << "= #{league_name} #{season}\n\n"
|
|
143
|
-
buf << txt
|
|
144
|
-
|
|
145
|
-
repo = GitHubSync::REPOS[ league_key ]
|
|
146
|
-
repo_path = "#{repo['owner']}/#{repo['name']}"
|
|
147
|
-
repo_path << "/#{repo['path']}" if repo['path'] ## note: do NOT forget to add optional extra path!!!
|
|
148
|
-
|
|
149
|
-
outpath = "#{root_dir}/#{repo_path}/#{season.to_path}/#{basename}.txt"
|
|
150
|
-
|
|
151
|
-
if opts[:dry]
|
|
152
|
-
puts " (dry) writing to >#{outpath}<..."
|
|
153
|
-
else
|
|
154
|
-
write_text( outpath, buf )
|
|
155
|
-
end
|
|
156
|
-
end
|
|
157
|
-
end
|
|
158
|
-
|
|
159
|
-
sync.git_push_if_changes if opts[:push]
|
|
160
|
-
|
|
161
|
-
end # method self.main
|
|
162
|
-
end # module Fbgen
|