X-Git-Url: http://git.kaliko.me/?a=blobdiff_plain;f=sima%2Flib%2Fplayer.py;h=ddba0a9bea46357e94ec2f5bc6a1ebef7b19f6fd;hb=24993cd99b847733894f57fd004ed52b5390244a;hp=c5c69f86a29f44f57eed9ee6b892a37c24a767f2;hpb=1cc879f39941fc302f9a841a532c9f749797cca4;p=mpd-sima.git diff --git a/sima/lib/player.py b/sima/lib/player.py index c5c69f8..ddba0a9 100644 --- a/sima/lib/player.py +++ b/sima/lib/player.py @@ -1,22 +1,52 @@ # -*- coding: utf-8 -*- +# Copyright (c) 2009-2014 Jack Kaliko +# +# This file is part of sima +# +# sima is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# sima is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with sima. If not, see . +# +# # TODO: # Add decorator to filter through history? -from sima.lib.track import Track +# standard library import +import logging + +# local import +#from sima.lib.track import Track class Player(object): """Player interface to inherit from. - When querying palyer music library for tracks, Player instance *must* return + When querying player music library for tracks, Player instance *must* return Track objects (usually a list of them) + + Player instance should expose the following immutable attributes: + * artists + * state + * current + * queue + * playlist + * """ def __init__(self): - self.state = {} - self.current = {} + super().__init__() + self.log = logging.getLogger('sima') def monitor(self): """Monitor player for change @@ -46,10 +76,31 @@ class Player(object): def find_album(self, artist, album): """ Find tracks by track's album name - >>> player.find_track('Nirvana', 'Nevermind') + >>> player.find_album('Nirvana', 'Nevermind') Returns a list of Track objects """ + raise NotImplementedError + + def find_albums(self, artist): + """ + Find albums by artist's name + >>> player.find_alums('Nirvana') + + Returns a list of string objects + """ + raise NotImplementedError + + def fuzzy_find_artist(self, artist): + """ + Find artists based on a fuzzy search in the media library + >>> bea = player.fuzzy_find_artist('beatles') + >>> print(bea) + >>> ['The Beatles'] + + Returns a list of strings (artist names) + """ + raise NotImplementedError def disconnect(self): """Closing client connection with the Player @@ -63,4 +114,3 @@ class Player(object): # VIM MODLINE # vim: ai ts=4 sw=4 sts=4 expandtab -