def get_authenticated_user(api): data = api._fetch_data({'method': 'user.getInfo'}, sign = True, session = True).find('user') user = User( api, name = data.findtext('name'), url = data.findtext('url'), ) user._language = data.findtext('lang') user._country = Country(api, name = Country.ISO_CODES[data.findtext('country')]) user._age = int(data.findtext('age')) user._gender = data.findtext('gender') user._subscriber = (data.findtext('subscriber') == "1") user._stats = Stats(subject = user, playcount = data.findtext('playcount')) return user
def get_country(self, name, callback = None): """ Get a country object. @param name: the country name @type name: L{str} @param callback: callback function for asynchronous invocation (optional) @type callback: C{function} @return: a country object corresponding to the country name provided @rtype: L{Country} @see: L{async_callback} """ return Country(self, name = name)
def get_info(api, name): data = api._fetch_data({'method' : 'user.getInfo', 'user' : name}).find('user') user = User( api, name = data.findtext('name'), real_name = data.findtext('realname'), image = dict([(i.get('size'), i.text) for i in data.findall('image')]), url = data.findtext('url'), ) user._language = data.findtext('lang') if data.findtext('country'): user._country = Country(api, name = Country.ISO_CODES[data.findtext('country')]) if data.findtext('age'): user._age = int(data.findtext('age')) user._gender = data.findtext('gender') user._subscriber = (data.findtext('subscriber') == "1") user._stats = Stats(subject = user, playcount = data.findtext('playcount')) return user
def _search_yield_func(api, venue): latitude = venue.findtext('location/{%s}point/{%s}lat' % ((Location.XMLNS, ) * 2)) longitude = venue.findtext('location/{%s}point/{%s}long' % ((Location.XMLNS, ) * 2)) return Venue( api, id=int(venue.findtext('id')), name=venue.findtext('name'), location=Location( api, city=venue.findtext('location/city'), country=Country(api, name=venue.findtext('location/country')), street=venue.findtext('location/street'), postal_code=venue.findtext('location/postalcode'), latitude=(latitude.strip() != '') and float(latitude) or None, longitude=(longitude.strip() != '') and float(longitude) or None, ), url=venue.findtext('url'))
def create_from_data(api, data): """ Create the Event object from the provided XML element. @param api: an instance of L{Api} @type api: L{Api} @param data: XML element @type data: C{xml.etree.ElementTree.Element} @return: an Event object corresponding to the provided XML element @rtype: L{Event} @note: Use the L{Api.get_event} method instead of using this method directly. """ start_date = None if data.findtext('startTime') is not None: start_date = datetime(*(time.strptime( "%s %s" % (data.findtext('startDate').strip(), data.findtext('startTime').strip()), '%a, %d %b %Y %H:%M')[0:6])) else: try: start_date = datetime(*(time.strptime( data.findtext('startDate').strip(), '%a, %d %b %Y %H:%M:%S')[0:6])) except ValueError: try: start_date = datetime(*(time.strptime( data.findtext('startDate').strip(), '%a, %d %b %Y') [0:6])) except ValueError: pass latitude = data.findtext('venue/location/{%s}point/{%s}lat' % ((Location.XMLNS, ) * 2)) longitude = data.findtext('venue/location/{%s}point/{%s}long' % ((Location.XMLNS, ) * 2)) return Event( api, id=int(data.findtext('id')), title=data.findtext('title'), artists=[ Artist(api, name=a.text) for a in data.findall('artists/artist') ], headliner=Artist(api, name=data.findtext('artists/headliner')), venue=Venue( api, id=int(data.findtext('venue/url').split('/')[-1]), name=data.findtext('venue/name'), location=Location( api, city=data.findtext('venue/location/city'), country=Country( api, name=data.findtext('venue/location/country')), street=data.findtext('venue/location/street'), postal_code=data.findtext('venue/location/postalcode'), latitude=(latitude.strip() != '') and float(latitude) or None, longitude=(longitude.strip() != '') and float(longitude) or None, #timezone = data.findtext('venue/location/timezone') ), url=data.findtext('venue/url')), start_date=start_date, description=data.findtext('description'), image=dict([(i.get('size'), i.text) for i in data.findall('image')]), url=data.findtext('url'), stats=Stats( subject=int(data.findtext('id')), attendance=int(data.findtext('attendance')), reviews=int(data.findtext('reviews')), ), tag=data.findtext('tag'))