X-Git-Url: http://git.kaliko.me/?a=blobdiff_plain;f=sima%2Flib%2Fplayer.py;h=ddba0a9bea46357e94ec2f5bc6a1ebef7b19f6fd;hb=24993cd99b847733894f57fd004ed52b5390244a;hp=9f2910d048548bd3a1544b1c6ef4a85a7242b269;hpb=611f98994247324793027cae02d77e5a8efd0f42;p=mpd-sima.git diff --git a/sima/lib/player.py b/sima/lib/player.py index 9f2910d..ddba0a9 100644 --- a/sima/lib/player.py +++ b/sima/lib/player.py @@ -1,8 +1,29 @@ # -*- 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? +# standard library import +import logging + # local import #from sima.lib.track import Track @@ -13,11 +34,19 @@ class Player(object): 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 @@ -47,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 @@ -64,4 +114,3 @@ class Player(object): # VIM MODLINE # vim: ai ts=4 sw=4 sts=4 expandtab -