# Class e.p.y.y.YesfmResource(ResourceProvider):

Part of elisa.plugins.yesfm.yesfm_resource View In Hierarchy

This resource provider makes the Content of Yes.FM available inside elisa. It uses the public JSON-RPC-API. See #FIXME: ADD PATH for more informations.

Line # | Kind | Name | Docs
--- | --- | --- | ---
121 | Method | __init__ | Undocumented
127 | Method | initialize | Initialize the component.
140 | Method | clean | Clean the component.
157 | Method | login | Undocumented
201 | Method | get | Return a resource that `uri` is pointing to. A URI can point to
225 | Method | post | Post certain data to the YesfmResource provider. Currently only two uris
284 | Method | get_model_for_uri_path | Create the model corresponding to the given URI path.
327 | Method | parse_data_into_model | Parse the data into the given model.

Inherited from ResourceProvider:

Line # | Kind | Name | Docs
--- | --- | --- | ---
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.

def __init__(self):
overrides elisa.core.log.Loggable.__init__
Undocumented
def initialize(self):
overrides elisa.core.component.Component.initialize

Initialize the component.

This method is called by `Component.create` to finish the initialization of a component.

Returns | a deferred called when a component is fully initialized (type: `twisted.internet.defer.Deferred` )

def clean(self):
overrides elisa.core.component.Component.clean

Clean the component.

This method is called when a component is not needed anymore to clean its state.

Returns | a deferred called when the component has finished cleaning its state (type: `twisted.internet.defer.Deferred` )

def login(self, user=None, password=None, userkey=None):
Undocumented
def get(self, uri, context_model):
overrides elisa.core.components.resource_provider.ResourceProvider.get

Return a resource that `uri` is pointing to. A URI can point to any kind of resource. Resources are returned as models.

The model that is returned does not always already contain all the resource. The deferred is fired when the resource loading is complete.

Parameters | uri | URI pointing to the resource (type: `elisa.core.media_uri.MediaUri` )
| context_model | the URI often comes from a certain context. For example a URI pointing to a MusicAlbum can come from a Model that could contain the album cover or the album name. If the context_model is provided the resource_provider should try to reuse its data if possible. (type: `elisa.core.components.model.Model` )
Returns | a new model and a deferred fired when the model is fully loaded (type: tuple of `elisa.core.components.model.Model` `elisa.core.utils.defer.Deferred` )

def post(self, uri, **postdata):
overrides elisa.core.components.resource_provider.ResourceProvider.post

    Post certain data to the YesfmResource provider. Currently only two uris
    are supported:
        /v1/auth/login - to try a login. the keyword for that need to be:
                         user and password. returns you a
                         L{elisa.plugins.search.models.LoginModel}
        /              - allows you to set 'sessionkey' and/or 'userkey'.
                         Returns nothing.

def get_model_for_uri_path(self, uri_path):

Create the model corresponding to the given URI path.

*Attention*: the uri_path is meant to start with /v1/. The next word after that decides about the model. See `PATH_TO_MODEL` to find out for which one. A sepcial case is the 'search' keyword as it has sub-classes. For search/artist/.. a `ArtistsSearchResultModel` will be created. For search/albums/.. a `AlbumsSearchResultModel` will be created.

Parameters | uri_path | the path to the resource on the API-Server (type: `str` )

def parse_data_into_model(self, data, model):
Parse the data into the given model.

Parameters | data | (type: dictionary )
| model | the model to parse the data into (type: Subclass of `elisa.core.compontents.model.Model` )