sportdb-formats 2.0.1 → 2.0.2
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 +1 -0
- data/Rakefile +1 -1
- data/bin/fbx +146 -0
- data/lib/sportdb/formats/match/match_parser.rb +3 -1
- data/lib/sportdb/formats/version.rb +1 -1
- metadata +7 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 67f0ea27fe2c7a39512eab9728167881fb1b99b919492b3d513cb1a1ff46c787
|
4
|
+
data.tar.gz: a93978a81ec8cb8c9b639ff4842e5eb46d7ebc018031e4b37e8361b7ed80e8af
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 94d114bc6772b18e972449cd7ed0f0a890d737203e8e020655e446e4496e8b8e99985ac33c6da2579e27a52a863602ea561e2275f2e1852762355228b3d9383d
|
7
|
+
data.tar.gz: 4e645afc07ca5c73cda0308fe82211293160e2ebd3857770dc959ea41c684cbc2794e1c514f1fcf9e103f22294cc5d7879446632a9be06d2a04399b11daef5ed
|
data/CHANGELOG.md
CHANGED
data/Manifest.txt
CHANGED
data/Rakefile
CHANGED
data/bin/fbx
ADDED
@@ -0,0 +1,146 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
## tip: to test run:
|
4
|
+
## ruby -I ./lib -I ../parser/lib bin/fbx
|
5
|
+
|
6
|
+
|
7
|
+
## our own code
|
8
|
+
require 'sportdb/formats'
|
9
|
+
|
10
|
+
|
11
|
+
|
12
|
+
require 'optparse'
|
13
|
+
|
14
|
+
##
|
15
|
+
## read textfile
|
16
|
+
## and dump match parse results
|
17
|
+
##
|
18
|
+
## fbt ../openfootball/.../euro.txt
|
19
|
+
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
args = ARGV
|
24
|
+
opts = { debug: false,
|
25
|
+
outline: false }
|
26
|
+
|
27
|
+
parser = OptionParser.new do |parser|
|
28
|
+
parser.banner = "Usage: #{$PROGRAM_NAME} [options]"
|
29
|
+
|
30
|
+
##
|
31
|
+
## check if git has a offline option?? (use same)
|
32
|
+
## check for other tools - why? why not?
|
33
|
+
|
34
|
+
|
35
|
+
parser.on( "--verbose", "--debug",
|
36
|
+
"turn on verbose / debug output (default: #{opts[:debug]})" ) do |debug|
|
37
|
+
opts[:debug] = debug
|
38
|
+
end
|
39
|
+
|
40
|
+
parser.on( "--outline",
|
41
|
+
"turn on outline (only) output (default: #{opts[:outline]})" ) do |outline|
|
42
|
+
opts[:outline] = outline
|
43
|
+
end
|
44
|
+
end
|
45
|
+
parser.parse!( args )
|
46
|
+
|
47
|
+
puts "OPTS:"
|
48
|
+
p opts
|
49
|
+
puts "ARGV:"
|
50
|
+
p args
|
51
|
+
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
|
56
|
+
paths = if args.empty?
|
57
|
+
[
|
58
|
+
'../../../openfootball/euro/2021--europe/euro.txt',
|
59
|
+
'../../../openfootball/euro/2024--germany/euro.txt',
|
60
|
+
]
|
61
|
+
else
|
62
|
+
## check for directories
|
63
|
+
## and auto-expand
|
64
|
+
|
65
|
+
SportDb::Parser::Opts.expand_args( args )
|
66
|
+
end
|
67
|
+
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
|
74
|
+
SportDb::MatchParser.debug = true if opts[:debug]
|
75
|
+
|
76
|
+
|
77
|
+
## errors = []
|
78
|
+
|
79
|
+
|
80
|
+
paths.each_with_index do |path,i|
|
81
|
+
puts "==> [#{i+1}/#{paths.size}] reading >#{path}<..."
|
82
|
+
|
83
|
+
txt = read_text( path )
|
84
|
+
secs = SportDb::LeagueOutlineReader.parse( txt )
|
85
|
+
## pp secs
|
86
|
+
|
87
|
+
secs.each_with_index do |sec,j| ## sec(tion)s
|
88
|
+
season = sec[:season]
|
89
|
+
league = sec[:league]
|
90
|
+
stage = sec[:stage]
|
91
|
+
lines = sec[:lines]
|
92
|
+
|
93
|
+
puts " section #{j+1}/#{secs.size} - #{league.name} #{season}, #{stage} - #{lines.size} line(s)"
|
94
|
+
|
95
|
+
next if opts[:outline]
|
96
|
+
|
97
|
+
=begin
|
98
|
+
### check if event info availabe - use start_date;
|
99
|
+
## otherwise we have to guess (use a "synthetic" start_date)
|
100
|
+
event_info = catalog.events.find_by( season: season,
|
101
|
+
league: league )
|
102
|
+
|
103
|
+
start = if event_info && event_info.start_date
|
104
|
+
puts "event info found:"
|
105
|
+
puts " using start date from event: "
|
106
|
+
pp event_info
|
107
|
+
pp event_info.start_date
|
108
|
+
event_info.start_date
|
109
|
+
else
|
110
|
+
=end
|
111
|
+
start = if season.year?
|
112
|
+
Date.new( season.start_year, 1, 1 )
|
113
|
+
else
|
114
|
+
Date.new( season.start_year, 7, 1 )
|
115
|
+
end
|
116
|
+
|
117
|
+
parser = SportDb::MatchParser.new( lines,
|
118
|
+
start ) ## note: keep season start_at date for now (no need for more specific stage date need for now)
|
119
|
+
|
120
|
+
auto_conf_teams, matches, rounds, groups = parser.parse
|
121
|
+
|
122
|
+
puts ">>> #{auto_conf_teams.size} teams:"
|
123
|
+
pp auto_conf_teams
|
124
|
+
puts ">>> #{matches.size} matches:"
|
125
|
+
## pp matches
|
126
|
+
puts ">>> #{rounds.size} rounds:"
|
127
|
+
pp rounds
|
128
|
+
puts ">>> #{groups.size} groups:"
|
129
|
+
pp groups
|
130
|
+
end # each secs
|
131
|
+
end # each paths
|
132
|
+
|
133
|
+
=begin
|
134
|
+
if errors.size > 0
|
135
|
+
puts
|
136
|
+
pp errors
|
137
|
+
puts
|
138
|
+
puts "!! #{errors.size} parse error(s) in #{paths.size} datafiles(s)"
|
139
|
+
else
|
140
|
+
puts
|
141
|
+
puts "OK no parse errors found in #{paths.size} datafile(s)"
|
142
|
+
end
|
143
|
+
=end
|
144
|
+
|
145
|
+
puts "bye"
|
146
|
+
|
@@ -617,9 +617,11 @@ class GoalStruct
|
|
617
617
|
|
618
618
|
elsif node_type == :'@' ||
|
619
619
|
node_type == :',' ||
|
620
|
-
node_type == :geo
|
620
|
+
node_type == :geo ||
|
621
|
+
node_type == :timezone
|
621
622
|
## e.g.
|
622
623
|
## [:"@"], [:geo, "Stade de France"], [:","], [:geo, "Saint-Denis"]]
|
624
|
+
## [:"@"], [:geo, "Arena de São Paulo"], [:","], [:geo, "São Paulo"], [:timezone, "(UTC-3)"]
|
623
625
|
more << node[1] if node_type == :geo
|
624
626
|
else
|
625
627
|
puts "!! PARSE ERROR - unexpected node type #{node_type} in match line; got:"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sportdb-formats
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.2
|
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-08-
|
11
|
+
date: 2024-08-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sportdb-structs
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.2.
|
33
|
+
version: 0.2.1
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.2.
|
40
|
+
version: 0.2.1
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: sportdb-catalogs
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -144,7 +144,8 @@ dependencies:
|
|
144
144
|
version: '4.1'
|
145
145
|
description: sportdb-formats - sport.db format and text utilities
|
146
146
|
email: gerald.bauer@gmail.com
|
147
|
-
executables:
|
147
|
+
executables:
|
148
|
+
- fbx
|
148
149
|
extensions: []
|
149
150
|
extra_rdoc_files:
|
150
151
|
- CHANGELOG.md
|
@@ -155,6 +156,7 @@ files:
|
|
155
156
|
- Manifest.txt
|
156
157
|
- README.md
|
157
158
|
- Rakefile
|
159
|
+
- bin/fbx
|
158
160
|
- lib/sportdb/formats.rb
|
159
161
|
- lib/sportdb/formats/country/country_reader.rb
|
160
162
|
- lib/sportdb/formats/csv/goal.rb
|