1 from xml.dom.minidom import parseString
2 from datetime import datetime, date
7 def parse_json(json, lat, lng):
8 """ Parse json into usable format """
11 def parse_xml(xml, lat, lng):
12 """ Parse xml into a dict """
15 dom = parseString(xml)
17 events = dom.getElementsByTagName('event')
19 start_date = parse_date(event.getElementsByTagName('startDate')[0]\
21 if start_date.date() == today:
22 title = event.getElementsByTagName('title')[0].childNodes[0].data
24 artists_element = event.getElementsByTagName('artists')[0]
26 for artist in artists_element.getElementsByTagName('artist'):
27 artist_list.append(artist.childNodes[0].data)
28 artists = ', '.join(artist_list)
30 v_details = event.getElementsByTagName('venue')[0]
31 venue_name = v_details.getElementsByTagName('name')[0]\
33 address = get_address(v_details.getElementsByTagName('location')[0])
34 geo_data = v_details.getElementsByTagName('geo:point')[0]
35 venue_lat = geo_data.getElementsByTagName('geo:lat')[0]\
37 venue_long = geo_data.getElementsByTagName('geo:long')[0]\
39 distance = location.distance_between(float(lat),
44 events_list.append({'title': title,
52 def get_address(location_element):
53 """ Return the venues address details from the xml element """
58 if location_element.getElementsByTagName('street')[0].childNodes:
59 street = location_element.getElementsByTagName('street')[0]\
61 if location_element.getElementsByTagName('city')[0].childNodes:
62 city = location_element.getElementsByTagName('city')[0]\
64 if location_element.getElementsByTagName('country')[0].childNodes:
65 country = location_element.getElementsByTagName('country')[0]\
67 if location_element.getElementsByTagName('postalcode')[0].childNodes:
68 postalcode = location_element.getElementsByTagName('postalcode')[0]\
70 return '\n'.join([street, city, country, postalcode])
72 def parse_date(date_string):
73 """ Parse date string into datetime object """
74 fmt = "%a, %d %b %Y %H:%M:%S"
75 result = time.strptime(date_string, fmt)
76 return datetime(result.tm_year,