mas01mj@626: #!/usr/bin/python
mas01mj@626:
mas01mj@631: from pyadb import *
mas01mj@626: import web
mas01mj@626: import json
mas01mj@626: import sys
mas01mj@626: import getopt
mas01mj@626:
mas01mj@626: # DB Path goes here for now!
mas01mj@626: dbPath = "9.adb"
mas01mj@626:
mas01mj@626: urls = (
mas01mj@626: '/', 'index',
mas01mj@626: '/status', 'status',
mas01mj@626: '/query', 'query'
mas01mj@626: )
mas01mj@626:
mas01mj@626: app = web.application(urls, globals())
mas01mj@626: class index:
mas01mj@626: def GET(self):
mas01mj@626: return """
mas01mj@626:
mas01mj@627:
audioDB server
mas01mj@626:
mas01mj@626:
mas01mj@627: Path: """+dbPath+"""
mas01mj@626: - Status
mas01mj@626: - Query
mas01mj@626:
mas01mj@626:
mas01mj@626: """
mas01mj@626:
mas01mj@626:
mas01mj@626: class status:
mas01mj@626: def GET(self):
mas01mj@627: web.header("Content-Type", "application/json")
mas01mj@637:
mas01mj@631: db = Pyadb(path = dbPath, mode = "r")
mas01mj@639: results = db.status()
mas01mj@626: return json.dumps(dict(status = "ok", data = results))
mas01mj@626:
mas01mj@626: class query:
mas01mj@626: def GET(self):
mas01mj@627: web.header("Content-Type", "application/json")
mas01mj@627: params = web.input(key="", ntracks=100, seqStart=0, seqLength=16, npoints=1, radius=1.0, hopSize=1, exhaustive=False, falsePositives=False, accumulation="db", distance="dot", absThres=0, relThres=0, durRatio=0, includeKeys=[], excludeKeys=[])
mas01mj@626: results = dict()
mas01mj@631: db = Pyadb(path = dbPath, mode = "r")
mas01mj@637:
mas01mj@631: if not params.includeKeys == []:
mas01mj@631: db.configQuery["includeKeys"] = map(str, params.includeKeys)
mas01mj@631:
mas01mj@631: if params.excludeKeys:
mas01mj@631: foo = map(str, params.excludeKeys)
mas01mj@631: db.configQuery["excludeKeys"] = foo
mas01mj@626:
mas01mj@631: db.configQuery["ntracks"] = int(params.ntracks)
mas01mj@631: db.configQuery["npoints"] = int(params.npoints)
mas01mj@631: db.configQuery["seqStart"] = int(params.seqStart)
mas01mj@631: db.configQuery["seqLength"] = int(params.seqLength)
mas01mj@631: db.configQuery["hopSize"] = int(params.hopSize)
mas01mj@631: db.configQuery["radius"] = float(params.radius)
mas01mj@631: db.configQuery["absThres"] = float(params.absThres)
mas01mj@631: db.configQuery["relThres"] = float(params.relThres)
mas01mj@631: db.configQuery["durRatio"] = float(params.durRatio)
mas01mj@637: db.configQuery["resFmt"] = "list"
mas01mj@627:
mas01mj@627:
mas01mj@626:
mas01mj@626: try:
mas01mj@631: results = db.query(key = params.key)
mas01mj@626: except Exception as inst:
mas01mj@626: return json.dumps(dict(status = "error", message=str(inst)))
mas01mj@631: return json.dumps(dict(status = "ok", data = results.rawData))
mas01mj@626:
mas01mj@626: if __name__ == "__main__":
mas01mj@626: app.run()