]> kaliko git repositories - mpd-goodies.git/blobdiff - lib/mpdclass.py
* start working on MPDClass and new crop command.
[mpd-goodies.git] / lib / mpdclass.py
diff --git a/lib/mpdclass.py b/lib/mpdclass.py
new file mode 100755 (executable)
index 0000000..40765fb
--- /dev/null
@@ -0,0 +1,74 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+
+from socket import error as SocketError
+
+try:
+    from mpd import (MPDClient, CommandError)
+except ImportError, err:
+    print 'ERROR: "%s"\n\nPlease install python-mpd module.\n' % err
+    sys.exit(1)
+
+
+def get_mpd_environ():#{{{
+    """
+    Retrieve MPD env. var.
+    """
+    con_id = dict({'host': 'localhost',
+                   'port': int(6600)})
+    passwd = None
+    mpd_host_env = environ.get('MPD_HOST')
+    if mpd_host_env:
+        # If password is set:
+        # mpd_host_env = ['pass', 'host'] because MPD_HOST=pass@host
+        mpd_host_env = mpd_host_env.split('@')
+        mpd_host_env.reverse()
+        con_id.update({'host': mpd_host_env[0]})
+        if len(mpd_host_env) > 1:
+            print 'passwd set in MPD_HOST'
+            passwd = mpd_host_env[1]
+
+    con_id.update({'port': int(environ.get('MPD_PORT', con_id.get('port')))})
+    return (con_id, passwd)#}}}
+
+
+class MPDClass(object):
+    """Connect to MPD server
+    """
+
+    def __init__(self):
+        self.client = MPDClient()
+
+    def mpdConnect(self, con_id):#{{{
+        """
+        Simple wrapper to connect MPD.
+        """
+        try:
+            self.client.connect(**con_id)
+        except SocketError:
+            return False
+        return True#}}}
+
+    def mpdAuth(self, secret):#{{{
+        """ Authenticate"""
+        try:
+            self.client.password(secret)
+        except CommandError:
+            return False
+        return True#}}}
+
+    def connect(self):
+        """Connect & auth"""
+        pass
+
+def main():
+    pass
+
+# Script starts here
+if __name__ == '__main__':
+    main()
+
+# VIM MODLINE
+# vim: ai ts=4 sw=4 sts=4 expandtab
+