diff --git a/eventbrite/client.py b/eventbrite/client.py
index 728340e..5a4fa14 100644
--- a/eventbrite/client.py
+++ b/eventbrite/client.py
@@ -1,6 +1,7 @@
"""Simple Eventbrite client for the HTTP-based API
"""
import datetime
+import time
import httplib
import logging
import urllib
@@ -8,10 +9,10 @@
# Input transformations
def _datetime_to_string(incoming_datetime):
- return incoming_datetime.strftime(eventbrite.EventbriteClient.eb_date_string)
+ return time.strftime("%Y-%m-%d %H:%M:%S", incoming_datetime )
def _string_to_datetime(incoming_string):
- return datetime.strptime(incoming_string, eventbrite.EventbriteClient.eb_date_string)
+ return time.strptime(incoming_string, "%Y-%m-%d %H:%M:%S")
def _boolean_one_or_zero(is_true):
return (is_true and '1') or '0'
@@ -108,7 +109,7 @@ def _request(self, method='', params=dict()):
# construct our request url
request_url = self.eventbrite_request_template % dict(host=self.eventbrite_api_endpoint, method=method, arguments=encoded_params)
- self.logger.debug("REQ - %s", request_url)
+ #self.logger.debug("REQ - %s", request_url)
# Send a GET request to Eventbrite
# if using OAuth2.0 for authentication, set additional headers
@@ -119,7 +120,7 @@ def _request(self, method='', params=dict()):
# Read the JSON response
response_data = self._https_connection.getresponse().read()
- self.logger.debug("RES - %s", response_data)
+ #self.logger.debug("RES - %s", response_data)
# decode our response
response = json_lib.loads(response_data)
@@ -128,27 +129,79 @@ def _request(self, method='', params=dict()):
return response
class EventbriteWidgets:
+ @staticmethod
+ def eventList( evnts, callback, options=None ):
+ # a loop for iterating over a collection of events, applying a callback to each element
+ #create our default response envelope
+ html = ['
']
+ #unpack our events list based on the default response format provided by the event_search, user_list_events, or organizer_list_events API methods
+ if( type(evnts) == type(dict()) and 'events' in evnts \
+ and type([]) == type(evnts['events']) and callable(callback)):
+ if options:
+ for evnt in evnts['events']:
+ html.append(callback( evnt['event'], options))
+ else:
+ for evnt in evnts['events']:
+ html.append(callback( evnt['event'] ))
+ else:
+ html.append('No events were found at this time.')
+ html.append('
')
+ return '\n'.join(html)
+
+ @staticmethod
+ def eventListRow( evnt ):
+ #decode the timestamp for start_date
+ start_date = _string_to_datetime( evnt['start_date'] )
+ #find venue name, default to "online"
+ if( 'venue' in evnt and 'name' in evnt['venue'] ):
+ venue_name = evnt['venue']['name']
+ else:
+ venue_name = 'online'
+ #generate and return the HTML for this list item
+ html = u'' % \
+ {"event_id": evnt['id']
+ ,"start_date_str": time.strftime('%a, %B %e', start_date)
+ ,"event_title": evnt['title']
+ ,"start_time_str": time.strftime('%l:%M %P', start_date)
+ ,"event_url": evnt['url']
+ ,"venue_label": venue_name}
+ return html.encode('utf-8')
+
@staticmethod
def ticketWidget(evnt):
- return ''
+ html = u'' % \
+ {'event_id': evnt['id'], 'event_title': evnt['title']}
+ return html.encode('utf-8')
@staticmethod
def registrationWidget(evnt):
- return ''
+ html = u'' % \
+ {'event_id': evnt['id'], 'event_title': evnt['title']}
+ return html.encode('utf-8')
@staticmethod
def calendarWidget(evnt):
- return ''
+ html = u'' % \
+ {'event_id': evnt['id']}
+ return html.encode('utf-8')
@staticmethod
def countdownWidget(evnt):
- return ''
+ html = u'' % \
+ {'event_id': evnt['id'], 'event_title': evnt['title']}
+ return html.encode('utf-8')
@staticmethod
def buttonWidget(evnt):
- return ''
+ html = u'' % \
+ {'event_id': evnt['id'], 'event_title': evnt['title']}
+ return html.encode('utf-8')
@staticmethod
def linkWidget(evnt, text=False, color='#000000'):
text = text if text else evnt['title']
- return '' + text + ''
+ html = u'%(link_text)s' % \
+ {'event_id': evnt['id']
+ ,'link_color': color
+ ,'link_text': text}
+ return html.encode('utf-8')