X-Git-Url: http://git.kaliko.me/?p=python-musicpd.git;a=blobdiff_plain;f=mpd.py;h=3a5d8675ba195f617bd8c0e37880da071e4c8bf2;hp=5acc575e8794c661dfe36bcd18274d166f511e7b;hb=c465a35a2b587e14f3f86be3d983d5b074ed375d;hpb=8ab007756785772039ccbc4b650366e4a191bd58 diff --git a/mpd.py b/mpd.py index 5acc575..3a5d867 100644 --- a/mpd.py +++ b/mpd.py @@ -51,75 +51,79 @@ class MPDClient(object): self.iterate = False self._reset() self._commands = { - # Admin Commands - "disableoutput": self._getnone, - "enableoutput": self._getnone, - "kill": None, - "update": self._getitem, - # Informational Commands + # Status Commands + "clearerror": self._getnone, + "currentsong": self._getobject, "status": self._getobject, "stats": self._getobject, - "outputs": self._getoutputs, - "commands": self._getlist, - "notcommands": self._getlist, - "tagtypes": self._getlist, - "urlhandlers": self._getlist, - # Database Commands - "find": self._getsongs, - "list": self._getlist, - "listall": self._getdatabase, - "listallinfo": self._getdatabase, - "lsinfo": self._getdatabase, - "search": self._getsongs, - "count": self._getobject, + # Playback Option Commands + "crossfade": self._getnone, + "random": self._getnone, + "repeat": self._getnone, + "setvol": self._getnone, + "volume": self._getnone, + # Playback Control Commands + "next": self._getnone, + "pause": self._getnone, + "play": self._getnone, + "playid": self._getnone, + "previous": self._getnone, + "seek": self._getnone, + "seekid": self._getnone, + "stop": self._getnone, # Playlist Commands "add": self._getnone, "addid": self._getitem, "clear": self._getnone, - "currentsong": self._getobject, "delete": self._getnone, "deleteid": self._getnone, - "load": self._getnone, - "rename": self._getnone, "move": self._getnone, "moveid": self._getnone, "playlist": self._getplaylist, - "playlistinfo": self._getsongs, + "playlistfind": self._getsongs, "playlistid": self._getsongs, + "playlistinfo": self._getsongs, + "playlistsearch": self._getsongs, "plchanges": self._getsongs, "plchangesposid": self._getchanges, - "rm": self._getnone, - "save": self._getnone, "shuffle": self._getnone, "swap": self._getnone, "swapid": self._getnone, + # Stored Playlist Commands "listplaylist": self._getlist, "listplaylistinfo": self._getsongs, + "listplaylists": self._getplaylists, + "load": self._getnone, "playlistadd": self._getnone, "playlistclear": self._getnone, "playlistdelete": self._getnone, "playlistmove": self._getnone, - "playlistfind": self._getsongs, - "playlistsearch": self._getsongs, - # Playback Commands - "crossfade": self._getnone, - "next": self._getnone, - "pause": self._getnone, - "play": self._getnone, - "playid": self._getnone, - "previous": self._getnone, - "random": self._getnone, - "repeat": self._getnone, - "seek": self._getnone, - "seekid": self._getnone, - "setvol": self._getnone, - "stop": self._getnone, - "volume": self._getnone, - # Miscellaneous Commands - "clearerror": self._getnone, + "rename": self._getnone, + "rm": self._getnone, + "save": self._getnone, + # Database Commands + "count": self._getobject, + "find": self._getsongs, + "list": self._getlist, + "listall": self._getdatabase, + "listallinfo": self._getdatabase, + "lsinfo": self._getdatabase, + "search": self._getsongs, + "update": self._getitem, + # Connection Commands "close": None, + "kill": None, "password": self._getnone, "ping": self._getnone, + # Audio Output Commands + "disableoutput": self._getnone, + "enableoutput": self._getnone, + "outputs": self._getoutputs, + # Reflection Commands + "commands": self._getlist, + "notcommands": self._getlist, + "tagtypes": self._getlist, + "urlhandlers": self._getlist, } def __getattr__(self, attr): @@ -259,6 +263,9 @@ class MPDClient(object): def _getsongs(self): return self._getobjects(["file"]) + def _getplaylists(self): + return self._getobjects(["playlist"]) + def _getdatabase(self): return self._getobjects(["file", "directory", "playlist"]) @@ -291,9 +298,13 @@ class MPDClient(object): if self._sock: raise ConnectionError("Already connected") msg = "getaddrinfo returns an empty list" + try: + flags = socket.AI_ADDRCONFIG + except AttributeError: + flags = 0 for res in socket.getaddrinfo(host, port, socket.AF_UNSPEC, socket.SOCK_STREAM, socket.IPPROTO_TCP, - socket.AI_ADDRCONFIG): + flags): af, socktype, proto, canonname, sa = res try: self._sock = socket.socket(af, socktype, proto)