racenet.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import json
  2. # from pprint import pprint
  3. from model import local_timezones
  4. import arrow
  5. import collections
  6. Data = collections.namedtuple('Data', 'venue state race time horse_no horse flag')
  7. with open('scratchings.json', 'r') as f:
  8. data_all = json.loads(f.read())
  9. data = data_all["MainPageState"]["receivedData"][0]
  10. name = data['name']
  11. print(name)
  12. items = 0
  13. for d in data['data']:
  14. items += 1
  15. # pprint(d)
  16. print('item {}'.format(items))
  17. country = d['venue']['countryId']
  18. is_aus = True if country == 'AUS' else False
  19. timezone = local_timezones[d['venue']['state']] if is_aus else 'Pacific/Auckland'
  20. venue = '{} {}{} {}'.format(d['venue']['name'], d['venue']['countryId'],
  21. '/' + d['venue']['state'] if is_aus else '',
  22. timezone)
  23. print(venue)
  24. races = d['races']
  25. for race in races:
  26. raceNumber = race['raceNumber']
  27. startTimeLocal = race['startTimeLocal'][11:-3]
  28. # print(race['startTimeLocal'])
  29. arrowStartTimeLocal = arrow.get(race['startTimeLocal']+' '+timezone, 'YYYY-MM-DDTHH:mm:ss ZZZ')
  30. # print(arrowStartTimeLocal)
  31. startTimeUtc = race['startTimeUtc']
  32. race_date = race['startTimeLocal'][:10]
  33. # print(race_date)
  34. # print('race {:2d}: {} {}'.format(raceNumber, startTimeLocal, startTimeUtc))
  35. for runner in race['runners']:
  36. if runner['scratched']:
  37. horseDisplayName = runner['horseDisplayName']
  38. horseNumber = runner['horseNumber']
  39. # print('\t{:2d}: {}'.format(horseNumber, horseDisplayName))
  40. data_without_flag = Data(d['venue']['name'], d['venue']['state'] if is_aus else 'NZL',
  41. raceNumber, arrowStartTimeLocal,
  42. horseNumber, horseDisplayName, False)
  43. print(data_without_flag)