Exemple #1
0
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
Exemple #2
0
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