def do_xml_user_response(context, provider, xml): result = [] root = ET.fromstring(xml) do_xml_error(context, provider, root) contacts = root.find('contacts') if contacts is not None: for contact in contacts: user_id = contact.get('id') username = contact.get('username') display_name = contact.get('display_name') contact_item = DirectoryItem(display_name, context.create_uri(['user', user_id])) # portraits portraits = contact.find('portraits') if portraits is not None: for portrait in portraits: height = int(portrait.get('height')) if height >= 256: contact_item.set_image(portrait.text) break pass pass contact_item.set_fanart(provider.get_fanart(context)) result.append(contact_item) pass # add next page _do_next_page(result, contacts, context, provider) pass return result
def do_xml_album_response(user_id, context, provider, album): if isinstance(album, basestring): album = ET.fromstring(album) do_xml_error(context, provider, album) album = album.find('album') pass album_id = album.get('id') album_name = album.find('title').text album_item = DirectoryItem(album_name, context.create_uri(['user', user_id, 'album', album_id])) thumbnail_video = album.find('thumbnail_video') if thumbnail_video is not None: thumbnails = thumbnail_video.find('thumbnails') if thumbnails is not None: for thumbnail in thumbnails: height = int(thumbnail.get('height')) if height >= 360: album_item.set_image(thumbnail.text) break pass pass pass return album_item