123456789101112131415161718192021222324252627282930313233343536373839404142 |
- # This script pulls offensive/defensive ratings stats from stats.nba.com and
- # our app (production by default, or qa if invoked with
- # `ruby test-stats.rb qa`) and compares them, noting any differences.
-
- require 'json'
- require 'net/http'
-
- env = ARGV.first ? "-#{ARGV.first}" : ""
-
- stats_url = URI('https://stats.nba.com/partnerutilities/leagueteamstats?Conference=&DateFrom=&DateTo=&Division=&GameScope=&GameSegment=&LastNGames=0&LeagueID=00&Location=&MeasureType=Advanced&Month=0&OpponentTeamID=0&Outcome=&PORound=0&PaceAdjust=N&PerMode=PerGame&Period=0&PlayerExperience=&PlayerPosition=&PlusMinus=N&Rank=N&Season=2019-20&SeasonSegment=&SeasonType=Regular+Season&ShotClockRange=&StarterBench=&TeamID=0&TwoWay=0&VsConference=&VsDivision')
- game_url = URI("https://picks#{env}.nba.com/api/static-v1/nbapicksix/game.json")
-
- stats = JSON.parse(Net::HTTP.get_response(stats_url).body)
- game = JSON.parse(Net::HTTP.get_response(game_url).body)
-
- all_match = true
-
- stats["resultSets"][0]["rowSet"].each do |stats_record|
- left = {
- offrtg: stats_record[8],
- defrtg: stats_record[10],
- offrtg_rank: stats_record[32],
- defrtg_rank: stats_record[33]
- }
-
- game_record = game['teams'].find { |team| "#{team['place_name']} #{team['team_name']}" == stats_record[1] }
- right = {
- offrtg: game_record['offensive_rating']['value'].to_f,
- defrtg: game_record['defensive_rating']['value'].to_f,
- offrtg_rank: game_record['offensive_rating']['rank'],
- defrtg_rank: game_record['defensive_rating']['rank']
- }
-
- unless left == right
- all_match = false
- puts game_record["team_name"]
- puts " NBA\n " + left.inspect
- puts " Us\n " + right.inspect
- end
- end
-
- puts "All good" if all_match
|