X-Git-Url: https://git.kaliko.me/?a=blobdiff_plain;f=sima%2Flib%2Fplayer.py;h=ea57255f4713c6a6026c78ec11de625839ea31c1;hb=db5532225efcefa95d24960f7ab42360de96a0a4;hp=726b0b632c515de7798017245409c876dbad1ebf;hpb=c660efb577c11bde6229d37550bf197fa6bae3e4;p=mpd-sima.git diff --git a/sima/lib/player.py b/sima/lib/player.py index 726b0b6..ea57255 100644 --- a/sima/lib/player.py +++ b/sima/lib/player.py @@ -1,21 +1,43 @@ # -*- 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? -# standart library import +# standard library import import logging -# local import -#from sima.lib.track import Track - class Player(object): - """Player interface to inherit from. 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): @@ -32,6 +54,10 @@ class Player(object): """ raise NotImplementedError + def clean(self): + """Any cleanup necessary""" + pass + def remove(self, position=0): """Removes the oldest element of the playlist (index 0) """ @@ -50,15 +76,25 @@ 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(self, artist): + def fuzzy_find_artist(self, artist): """ Find artists based on a fuzzy search in the media library - >>> bea = player.fuzzy_find('beatles') + >>> bea = player.fuzzy_find_artist('beatles') >>> print(bea) >>> ['The Beatles']