dragon-bot/app/trackdays.py

44 lines
1.4 KiB
Python
Executable File

from datetime import datetime
import json
import pprint
import requests
import xmltodict
def get_msreg():
base_url = 'https://api.motorsportreg.com/rest/calendars/organization'
orgs = {
'speeddistrict': '2E22740B-E8C9-9FB9-21406A496429A28B',
'ongrid' : '06277C99-00C9-23EB-FD08FE5275BCC0C5',
'speedsf' : '072A885E-AD68-6F64-E88C19E4D0D21DFB',
'turn8' : 'F3469266-BEFF-E329-4FD6C4B189ACE2A8',
'speedventures': 'DF7453ED-BF33-DC17-2C9BFD84C1F05E86',
#'corsaclub' : 'CE6E69CF-BAEC-DBB6-303EE7D3EC69B8A3',
}
events = {}
for org_name, org_id in orgs.items():
xml_blob = requests.get("%s/%s?exclude_cancelled=true&postalcode=95035&radius=500" % (base_url, org_id)).text
json_blob = json.loads(json.dumps(xmltodict.parse(xml_blob)['response']['events']))
pp = pprint.PrettyPrinter(indent=4)
for event in json_blob['event']:
event_object = {
'event_name': event['name'],
'event_url': event['detailuri'].split('?utm')[0],
'event_date': event['start'],
}
track = event['venue']['name']
if track not in events:
events[track] = []
events[track].append(event_object)
# sort track events by date
def date_to_datettime(input):
return datetime.strptime(input['event_date'], '%Y-%m-%d')
for races in events.values():
sorted(races, key=date_to_datettime)
return events
# if __name__ == '__main__':
# get_msreg()