X-Git-Url: https://git.kaliko.me/?p=mpd-goodies.git;a=blobdiff_plain;f=jingle.py;h=3d25dd68731b4383065cc203905a7e063bb97dd7;hp=b0614b0f962a8f54396ae48f8f9c4a43dd9a5c63;hb=1f048f3e8eed3b9aac70dc10394dce0cdf2be98f;hpb=af218e6e9992ba48bd4f53e4459aa75ddc30cb00 diff --git a/jingle.py b/jingle.py index b0614b0..3d25dd6 100755 --- a/jingle.py +++ b/jingle.py @@ -18,7 +18,7 @@ # # }}} -""" +DOC = """ DOC: The script randomly pick up a song to queue from the library. @@ -65,7 +65,7 @@ BUGS: MPD bugs: http://musicpd.org/mantis/view.php?id=498 """ -__version__ = u'0.2' +__version__ = u'0.3' __author__ = u'$Author: kaliko $' __date__ = u'$LastChangedDate: 2009-11-17 19:23:34 +0100 (mar. 17 nov. 2009) $'[18:28] @@ -74,47 +74,21 @@ __date__ = u'$LastChangedDate: 2009-11-17 19:23:34 +0100 (mar. 17 nov. 2009) $'[ import sys from random import choice -from socket import error as SocketError try: - from mpd import (MPDClient, CommandError) + from mpd import (CommandError) except ImportError, err: print 'ERROR: "%s"\n\nPlease install python-mpd module.\n' % err sys.exit(1) try: - from config import (HOST, PORT, PASSWORD, JINGLE_TAG) + from config import JINGLE_TAG except ImportError, err: - print 'ERROR: missing settings in config.py: %s' % err + print 'ERROR: "%s"\n' % err + print '\tPlease set JINGLE_TAG in config.py' sys.exit(1) -#}}} - - -## Formating connection id (do not change this) -CON_ID = {'host': HOST, 'port': PORT} - -## Some functions#{{{ - - -def mpdConnect(client, con_id):#{{{ - """ - Simple wrapper to connect MPD. - """ - try: - client.connect(**con_id) - except SocketError: - return False - return True#}}} - -def mpdAuth(client, secret):#{{{ - """ - Authenticate - """ - try: - client.password(secret) - except CommandError: - return False - return True#}}} +from lib.mpdutils import (mconnect) +#}}} def search(tags):#{{{ @@ -125,29 +99,10 @@ def search(tags):#{{{ for k, v in tags.iteritems(): search_str.extend([str(k), str(v)]) return search_str#}}} -###}}} def main(): - ## MPD object instance - client = MPDClient() - if mpdConnect(client, CON_ID): - #print 'Got connected!' - True - else: - print 'ERROR: fail to connect MPD server.' - sys.exit(1) - - ## Auth if password is set non False - if PASSWORD: - if mpdAuth(client, PASSWORD): - #print 'Pass auth!' - True - else: - print 'ERROR: fail trying to pass auth. Check password?' - client.disconnect() - sys.exit(1) - + client = mconnect() ## List tracks matching JINGLE_TAG and randomly chose one. try: trk = choice(client.search(*search(JINGLE_TAG))) @@ -155,21 +110,22 @@ def main(): print 'Wrong search command, check JINGLE_TAG settings: %s' % err sys.exit(1) except IndexError, err: - print 'Search for "%s" returned nothing: %s' % (' '.join(search(JINGLE_TAG)), - err) + print ('Search for "%s" returned nothing: %s' % + (' '.join(search(JINGLE_TAG)), err)) sys.exit(1) ## Uncomment to print out file added to playlist #print 'add "%s"' % trk.get('file') client.add(trk.get('file', None)) - client.disconnect() - sys.exit(0) # Script starts here if __name__ == "__main__": + if len(sys.argv) > 1: + print DOC + sys.exit(0) main() # VIM MODLINE