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
         |