# Class e.p.d.d.DaapResourceProvider(ResourceProvider):

Part of elisa.plugins.daap.daap_resource_provider View In Hierarchy

No class docstring

Line # | Kind | Name | Docs
--- | --- | --- | ---
44 | Method | __init__ | Undocumented
176 | Method | get | This method allows you to get a model for your uri. The

Inherited from ResourceProvider:

Line # | Kind | Name | Docs
--- | --- | --- | ---
94 | Method | post | Update the resource pointed by `uri` with `parameters`.
107 | Method | put | Put one resource into another. Both resources are identified with URIs.
129 | Method | delete | Delete a Resource represented by a URI.

Inherited from Component (via ResourceProvider):

Line # | Kind | Name | Docs
--- | --- | --- | ---
85 | Class | PathDescriptor | Undocumented
97 | Class Method | create | Create and initialize the component.
130 | Method | initialize | Initialize the component.
142 | Method | clean | Clean the component.

def __init__(self):
overrides elisa.core.log.Loggable.__init__
Undocumented
def get(self, uri, context_model=None):
overrides elisa.core.components.resource_provider.ResourceProvider.get

    This method allows you to get a model for your uri. The
    C{context_model} is always ignored. The model has to fit to
    the given URI (see list below). If there is no port given in
    the URI this method uses the default port 3689.

    If there is no open connection to the given combination of server+port,
    this method creates a L{elisa.plugins.daap.daap_connection.DaapConnection},
    tries to login and does the request afterwards.

    You always have to wait for request to be finished because it could
    raise a L{elisa.plugins.daap.daap_connection.LoginFailed} to inform you
    that it needs different login credentials. You should retry again with
    another password.

    For each response you do, the path is used to fetch the data on the
    given server. For each one of them the C{DaapConnection} is fetching all
    informations specified in the corresponding model (including filling all
    the lists). The different models you get for the different path that you
    can have in the URI are:

        /server-info
                L{elisa.plugins.daap.models.DaapServerInfoModel}
        /databases
                L{elisa.plugins.daap.models.DaapDatabaseListModel}
        /databases/<id>/items
                L{elisa.plugins.daap.models.DaapSongListModel}
        /databases/<id>/containers
                L{elisa.plugins.daap.models.DaapPlaylistListModel}
        /databases/<id>/containers/<id>/items
                L{elisa.plugins.daap.models.DaapPlaylistModel}

        /artists
                L{elisa.plugins.daap.models.DaapArtistListModel}
        /artist/name
                L[elisa.plugins.daap.models.DaapArtistModel}
        /album/name
                L{elisa.plugins.daap.models.DaapAlbumModel}

    FIXME: the uri to the media itself is missing :(