view 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 source

#!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()