sportdb-readers 0.4.2 → 0.4.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/sportdb/readers/conf_parser_auto.rb +22 -1
- data/lib/sportdb/readers/match_reader.rb +19 -9
- data/lib/sportdb/readers/version.rb +1 -1
- data/test/test_conf_parser_auto.rb +209 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 935075d2b41927e37e8ccf597d5b3f0dee8e7009
|
4
|
+
data.tar.gz: 5d0e4a742fd769021d9272e6401d1584acfac367
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: af375d0924b115d0ba81bc6b4f52a6e5d4af672c40a56bf922d83fcad4fb57bf8fd16a5cda304f6dff4f34b07c49e23088dd4dc160e0c6336ca02525b5481068
|
7
|
+
data.tar.gz: 3416642226590a5448c4a8f094f3db2e85693d37e0aeda5dff901ca0888977346af99ba9450fe9035cc31c395768d35c6fd13e42bedf6637685f0cea3bd60104
|
@@ -53,12 +53,14 @@ class AutoConfParser
|
|
53
53
|
|
54
54
|
## remove all protected text runs e.g. []
|
55
55
|
## fix: add [ to end-of-line too
|
56
|
+
## todo/fix: move remove protected text runs AFTER find date!! - why? why not?
|
56
57
|
|
57
58
|
line = line.gsub( /\[
|
58
59
|
[^\]]+?
|
59
60
|
\]/x, '' ).strip
|
60
61
|
return true if line.empty? ## note: return true (for valid line with no match/clubs)
|
61
62
|
|
63
|
+
|
62
64
|
## split by geo (@) - remove for now
|
63
65
|
values = line.split( '@' )
|
64
66
|
line = values[0]
|
@@ -71,9 +73,19 @@ class AutoConfParser
|
|
71
73
|
[^\]]+?
|
72
74
|
\]/x, '' ).strip
|
73
75
|
|
74
|
-
|
76
|
+
else
|
77
|
+
## check for leading hours only e.g. 20.30 or 20:30 or 20h30
|
78
|
+
## todo/fix: make language dependent (or move to find_date/hour etc.) - why? why not?
|
79
|
+
line = line.sub( %r{^
|
80
|
+
[12]?[0-9]
|
81
|
+
[h.:]
|
82
|
+
[0-9][0-9]
|
83
|
+
(?=[ ]) ## must be followed by space for now (add end of line too - why? why not?)
|
84
|
+
}x, '' ).strip
|
75
85
|
end
|
76
86
|
|
87
|
+
return true if line.empty? ## note: return true (for valid line with no match/clubs)
|
88
|
+
|
77
89
|
|
78
90
|
scores = find_scores!( line )
|
79
91
|
|
@@ -103,6 +115,15 @@ class AutoConfParser
|
|
103
115
|
values = values.select { |value| !value.empty? } ## remove empty strings
|
104
116
|
|
105
117
|
return true if values.size == 0 ## note: return true (for valid line with no match/clubs)
|
118
|
+
|
119
|
+
if values.size == 1
|
120
|
+
puts "(auto config) try matching clubs separated by spaces (2+):"
|
121
|
+
pp values
|
122
|
+
|
123
|
+
values = values[0].split( /[ ]{2,}/ )
|
124
|
+
pp values
|
125
|
+
end
|
126
|
+
|
106
127
|
return false if values.size != 2
|
107
128
|
|
108
129
|
puts "(auto config) try matching clubs:"
|
@@ -21,6 +21,12 @@ class MatchReaderV2 ## todo/check: rename to MatchReaderV2 (use plural?) why?
|
|
21
21
|
league = Sync::League.find_or_create( rec[:league] )
|
22
22
|
season = Sync::Season.find_or_create( rec[:season] )
|
23
23
|
|
24
|
+
|
25
|
+
## todo/fix:
|
26
|
+
## always auto create
|
27
|
+
## 1) check for clubs count on event/stage - only if count == 0 use autoconf!!!
|
28
|
+
## 2) add lang switch for date/lang too!!!!
|
29
|
+
|
24
30
|
stage = nil
|
25
31
|
auto_conf_clubs = nil
|
26
32
|
if rec[:stage]
|
@@ -49,9 +55,7 @@ class MatchReaderV2 ## todo/check: rename to MatchReaderV2 (use plural?) why?
|
|
49
55
|
## step 1: map/find clubs
|
50
56
|
club_recs = []
|
51
57
|
## note: loop over keys (holding the names); values hold the usage counter!! e.g. 'Arsenal' => 2, etc.
|
52
|
-
country =
|
53
|
-
## todo: check is_a? Country check to respond_to? :key in match in sportdb-clubs !!!!!
|
54
|
-
## todo/fix: just pass in league.country (and NOT key)
|
58
|
+
country = league.country
|
55
59
|
auto_conf_clubs.keys.each do |name|
|
56
60
|
club_rec = config.clubs.find_by!( name: name, country: country )
|
57
61
|
club_recs << club_rec
|
@@ -79,18 +83,24 @@ class MatchReaderV2 ## todo/check: rename to MatchReaderV2 (use plural?) why?
|
|
79
83
|
end
|
80
84
|
|
81
85
|
## hack for now: switch lang
|
82
|
-
if ['
|
86
|
+
if ['de', 'at'].include?( league.country.key )
|
83
87
|
SportDb.lang.lang = 'de'
|
84
|
-
DateFormats.lang
|
88
|
+
DateFormats.lang = 'de'
|
85
89
|
elsif ['fr'].include?( league.country.key )
|
86
90
|
SportDb.lang.lang = 'fr'
|
87
|
-
DateFormats.lang
|
88
|
-
elsif ['
|
91
|
+
DateFormats.lang = 'fr'
|
92
|
+
elsif ['it'].include?( league.country.key )
|
93
|
+
SportDb.lang.lang = 'it'
|
94
|
+
DateFormats.lang = 'it'
|
95
|
+
elsif ['es', 'mx'].include?( league.country.key )
|
89
96
|
SportDb.lang.lang = 'es'
|
90
|
-
DateFormats.lang
|
97
|
+
DateFormats.lang = 'es'
|
98
|
+
elsif ['pt', 'br'].include?( league.country.key )
|
99
|
+
SportDb.lang.lang = 'pt'
|
100
|
+
DateFormats.lang = 'pt'
|
91
101
|
else
|
92
102
|
SportDb.lang.lang = 'en'
|
93
|
-
DateFormats.lang
|
103
|
+
DateFormats.lang = 'en'
|
94
104
|
end
|
95
105
|
|
96
106
|
## todo/fix: set lang for now depending on league country!!!
|
@@ -11,6 +11,162 @@ require 'helper'
|
|
11
11
|
|
12
12
|
class TestAutoConfParser < MiniTest::Test
|
13
13
|
|
14
|
+
def test_at
|
15
|
+
txt = <<TXT
|
16
|
+
29. Runde
|
17
|
+
|
18
|
+
[Sa 7.4.]
|
19
|
+
16.00 RB Salzburg 2:0 Wacker Innsbruck
|
20
|
+
18.30 SV Ried 0:1 Austria Wien
|
21
|
+
Kapfenberger SV 2:3 Admira Wacker
|
22
|
+
Rapid Wien 2:1 Wr. Neustadt
|
23
|
+
[So 8.4.]
|
24
|
+
16.00 SV Mattersburg 0:2 Sturm Graz
|
25
|
+
|
26
|
+
|
27
|
+
30. Runde
|
28
|
+
|
29
|
+
[Sa 14.4.]
|
30
|
+
16.00 Wr. Neustadt 0:0 Kapfenberger SV
|
31
|
+
18.30 Admira Wacker 1:1 Wacker Innsbruck
|
32
|
+
Sturm Graz 2:2 RB Salzburg
|
33
|
+
SV Ried 2:0 SV Mattersburg
|
34
|
+
[So 15.4.]
|
35
|
+
16.00 Austria Wien 0:0 Rapid Wien
|
36
|
+
|
37
|
+
TXT
|
38
|
+
|
39
|
+
clubs = parse( txt, lang: 'de' )
|
40
|
+
|
41
|
+
assert_equal Hash(
|
42
|
+
'RB Salzburg' => 2,
|
43
|
+
'Wacker Innsbruck' => 2,
|
44
|
+
'SV Ried' => 2,
|
45
|
+
'Austria Wien' => 2,
|
46
|
+
'Kapfenberger SV' => 2,
|
47
|
+
'Admira Wacker' => 2,
|
48
|
+
'Rapid Wien' => 2,
|
49
|
+
'Wr. Neustadt' => 2,
|
50
|
+
'SV Mattersburg' => 2,
|
51
|
+
'Sturm Graz' => 2 ), clubs
|
52
|
+
end
|
53
|
+
|
54
|
+
def test_es
|
55
|
+
txt = <<TXT
|
56
|
+
Jornada 1
|
57
|
+
|
58
|
+
18.08.2012 Barcelona R. Sociedad 5-1
|
59
|
+
18.08.2012 Levante Atlético 1-1
|
60
|
+
18.08.2012 Athletic Betis 3-5
|
61
|
+
18.08.2012 Zaragoza Valladolid 0-1
|
62
|
+
18.08.2012 R. Madrid Valencia 1-1
|
63
|
+
18.08.2012 Celta Málaga 0-1
|
64
|
+
18.08.2012 Sevilla Getafe 2-1
|
65
|
+
18.08.2012 Mallorca Espanyol 2-1
|
66
|
+
18.08.2012 Rayo Granada 1-0
|
67
|
+
18.08.2012 Deportivo Osasuna 2-0
|
68
|
+
|
69
|
+
|
70
|
+
Jornada 2
|
71
|
+
|
72
|
+
25.08.2012 Valladolid Levante 2-0
|
73
|
+
25.08.2012 Espanyol Zaragoza 1-2
|
74
|
+
25.08.2012 Málaga Mallorca 1-1
|
75
|
+
25.08.2012 R. Sociedad Celta 2-1
|
76
|
+
25.08.2012 Osasuna Barcelona 1-2
|
77
|
+
25.08.2012 Valencia Deportivo 3-3
|
78
|
+
25.08.2012 Getafe R. Madrid 2-1
|
79
|
+
25.08.2012 Granada Sevilla 1-1
|
80
|
+
25.08.2012 Betis Rayo 1-2
|
81
|
+
25.08.2012 Atlético Athletic 4-0
|
82
|
+
TXT
|
83
|
+
|
84
|
+
clubs = parse( txt, lang: 'es' )
|
85
|
+
|
86
|
+
assert_equal Hash(#
|
87
|
+
'Barcelona' => 2,
|
88
|
+
'R. Sociedad' => 2,
|
89
|
+
'Levante' => 2,
|
90
|
+
'Atlético' => 2,
|
91
|
+
'Athletic' => 2,
|
92
|
+
'Betis' => 2,
|
93
|
+
'Zaragoza' => 2,
|
94
|
+
'Valladolid' => 2,
|
95
|
+
'R. Madrid' => 2,
|
96
|
+
'Valencia' => 2,
|
97
|
+
'Celta' => 2,
|
98
|
+
'Málaga' => 2,
|
99
|
+
'Sevilla' => 2,
|
100
|
+
'Getafe' => 2,
|
101
|
+
'Mallorca' => 2,
|
102
|
+
'Espanyol' => 2,
|
103
|
+
'Rayo' => 2,
|
104
|
+
'Granada' => 2,
|
105
|
+
'Deportivo' => 2,
|
106
|
+
'Osasuna' => 2), clubs
|
107
|
+
end
|
108
|
+
|
109
|
+
|
110
|
+
def test_fr
|
111
|
+
txt = <<TXT
|
112
|
+
Journée 1
|
113
|
+
|
114
|
+
[Ven 8. Août]
|
115
|
+
20h30 Stade de Reims 2-2 Paris SG
|
116
|
+
[Sam 9. Août]
|
117
|
+
21h00 SC Bastia 3-3 Olympique de Marseille
|
118
|
+
Évian TG 0-3 SM Caen
|
119
|
+
EA Guingamp 0-2 AS Saint-Étienne
|
120
|
+
LOSC Lille 0-0 FC Metz
|
121
|
+
Montpellier Hérault SC 0-1 Girondins de Bordeaux
|
122
|
+
FC Nantes 1-0 RC Lens
|
123
|
+
OGC Nice 3-2 Toulouse FC
|
124
|
+
[Dim 10. Août]
|
125
|
+
17h00 Olympique Lyonnais 2-0 Stade Rennais FC
|
126
|
+
21h00 AS Monaco FC 1-2 FC Lorient
|
127
|
+
|
128
|
+
Journée 2
|
129
|
+
|
130
|
+
[Ven 15. Août]
|
131
|
+
20h30 SM Caen 0-1 LOSC Lille
|
132
|
+
[Sam 16. Août]
|
133
|
+
17h00 Paris SG 2-0 SC Bastia
|
134
|
+
20h00 RC Lens 0-1 EA Guingamp
|
135
|
+
FC Lorient 0-0 OGC Nice
|
136
|
+
FC Metz 1-1 FC Nantes
|
137
|
+
Stade Rennais FC 6-2 Évian TG
|
138
|
+
Toulouse FC 2-1 Olympique Lyonnais
|
139
|
+
[Dim 17. Août]
|
140
|
+
17h00 Olympique de Marseille 0-2 Montpellier Hérault SC
|
141
|
+
AS Saint-Étienne 3-1 Stade de Reims
|
142
|
+
21h00 Girondins de Bordeaux 4-1 AS Monaco FC
|
143
|
+
TXT
|
144
|
+
|
145
|
+
clubs = parse( txt, lang: 'fr' )
|
146
|
+
|
147
|
+
assert_equal Hash(
|
148
|
+
'Stade de Reims' => 2,
|
149
|
+
'Paris SG' => 2,
|
150
|
+
'SC Bastia' => 2,
|
151
|
+
'Olympique de Marseille' => 2,
|
152
|
+
'Évian TG' => 2,
|
153
|
+
'SM Caen' => 2,
|
154
|
+
'EA Guingamp' => 2,
|
155
|
+
'AS Saint-Étienne' => 2,
|
156
|
+
'LOSC Lille' => 2,
|
157
|
+
'FC Metz' => 2,
|
158
|
+
'Montpellier Hérault SC' => 2,
|
159
|
+
'Girondins de Bordeaux' => 2,
|
160
|
+
'FC Nantes' => 2,
|
161
|
+
'RC Lens' => 2,
|
162
|
+
'OGC Nice' => 2,
|
163
|
+
'Toulouse FC' => 2,
|
164
|
+
'Olympique Lyonnais' => 2,
|
165
|
+
'Stade Rennais FC' => 2,
|
166
|
+
'AS Monaco FC' => 2,
|
167
|
+
'FC Lorient' => 2), clubs
|
168
|
+
end
|
169
|
+
|
14
170
|
def test_eng
|
15
171
|
txt = <<TXT
|
16
172
|
Matchday 1
|
@@ -70,8 +226,61 @@ TXT
|
|
70
226
|
'Tottenham Hotspur' => 2,
|
71
227
|
'Manchester United' => 2,
|
72
228
|
'West Ham United' => 2 ), clubs
|
229
|
+
|
230
|
+
|
231
|
+
txt =<<TXT
|
232
|
+
Round 38
|
233
|
+
|
234
|
+
May/22 Aston Villa 1-0 Liverpool
|
235
|
+
May/22 Bolton 0-2 Manchester City
|
236
|
+
May/22 Everton 1-0 Chelsea
|
237
|
+
May/22 Fulham 2-2 Arsenal
|
238
|
+
May/22 Manchester United 4-2 Blackpool
|
239
|
+
May/22 Newcastle Utd 3-3 West Brom
|
240
|
+
May/22 Stoke City 0-1 Wigan
|
241
|
+
May/22 Tottenham 2-1 Birmingham
|
242
|
+
May/22 West Ham 0-3 Sunderland
|
243
|
+
May/22 Wolves 2-3 Blackburn
|
244
|
+
|
245
|
+
Round 37
|
246
|
+
|
247
|
+
May/17 Manchester City 3-0 Stoke City
|
248
|
+
May/15 Arsenal 1-2 Aston Villa
|
249
|
+
May/15 Birmingham 0-2 Fulham
|
250
|
+
May/15 Liverpool 0-2 Tottenham
|
251
|
+
May/15 Wigan 3-2 West Ham
|
252
|
+
May/15 Chelsea 2-2 Newcastle Utd
|
253
|
+
May/14 Blackburn 1-1 Manchester United
|
254
|
+
May/14 Blackpool 4-3 Bolton
|
255
|
+
May/14 Sunderland 1-3 Wolves
|
256
|
+
May/14 West Brom 1-0 Everton
|
257
|
+
TXT
|
258
|
+
clubs = parse( txt )
|
259
|
+
|
260
|
+
assert_equal Hash(
|
261
|
+
'Aston Villa' => 2,
|
262
|
+
'Liverpool' => 2,
|
263
|
+
'Bolton' => 2,
|
264
|
+
'Manchester City' => 2,
|
265
|
+
'Everton' => 2,
|
266
|
+
'Chelsea' => 2,
|
267
|
+
'Fulham' => 2,
|
268
|
+
'Arsenal' => 2,
|
269
|
+
'Manchester United' => 2,
|
270
|
+
'Blackpool' => 2,
|
271
|
+
'Newcastle Utd' => 2,
|
272
|
+
'West Brom' => 2,
|
273
|
+
'Stoke City'=> 2,
|
274
|
+
'Wigan' => 2,
|
275
|
+
'Tottenham' => 2,
|
276
|
+
'Birmingham' => 2,
|
277
|
+
'West Ham' => 2,
|
278
|
+
'Sunderland' => 2,
|
279
|
+
'Wolves' => 2,
|
280
|
+
'Blackburn' => 2), clubs
|
73
281
|
end # method test_parse
|
74
282
|
|
283
|
+
|
75
284
|
def test_mauritius
|
76
285
|
txt = <<TXT
|
77
286
|
Preliminary Round
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sportdb-readers
|
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: 2019-
|
11
|
+
date: 2019-12-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sportdb-config
|