diff service/starArduino/barcodePlayer.py @ 828:a422d875d94d

barcode support on star. triggers mpd song Ignore-this: 1038c3d0501bba595fbf701e30acac6 darcs-hash:20120304114228-312f9-8fc9a9198be2044359f35aebcd1c428a58cb4ea2.gz
author drewp <drewp@bigasterisk.com>
date Sun, 04 Mar 2012 03:42:28 -0800
parents
children bd3604359b98
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/service/starArduino/barcodePlayer.py	Sun Mar 04 03:42:28 2012 -0800
@@ -0,0 +1,42 @@
+#!bin/python
+"""
+receives POSTs about barcodes that are scanned, plays songs on mpd
+"""
+
+from __future__ import division
+
+import cyclone.web, cyclone.httpclient, sys, json
+from twisted.python import log
+from twisted.internet import reactor
+from twisted.internet.defer import inlineCallbacks
+sys.path.append("/my/proj/homeauto/lib")
+from cycloneerr import PrettyErrorHandler
+
+
+
+class Index(PrettyErrorHandler, cyclone.web.RequestHandler):
+    def get(self):
+        
+        self.set_header("Content-Type", "application/xhtml+xml")
+        self.write(open("index.html").read())
+
+class BarcodeScan(PrettyErrorHandler, cyclone.web.RequestHandler):
+    @inlineCallbacks
+    def post(self):
+        print json.loads(self.request.body)
+
+        song = "cd/Kindermusik-The_Best_of_the_Best/14.Fiddle-de-dee.ogg"
+
+        print (yield cyclone.httpclient.fetch(url="http://star:9009/addAndPlay/%s" % song, method="POST")).body
+
+        self.write("ok")
+
+
+if __name__ == '__main__':
+    app = cyclone.web.Application([
+        (r'/', Index),
+        (r'/barcodeScan', BarcodeScan),
+        ], )
+    log.startLogging(sys.stdout)
+    reactor.listenTCP(9011, app)
+    reactor.run()