Exemple #1
0
    def render_GET(self, request):
        try:
            request.setHeader('Content-Type', 'application/json')
            request.setHeader('Cache-Control', 'no-cache')
            request.setHeader('Connection', 'close')
            if len(request.postpath) > 0 and len(request.postpath[0])>0:
                address=request.postpath[0].replace("_", ":")
                if len(request.args) == 0:
                    return json.dumps(CameraFactory.getCamera(address))
                camera = settings.getCamera(address)
                for key in request.args:
                        settings.setCameraSetting(address, key, request.args[key][-1])
                settings.save()
                cli = CameraFactory.getConnected(address)
                if cli:
                    cli.updateSettings()
                return json.dumps(CameraFactory.getCamera(address))
            request.setResponseCode(500, "invalid address")
            return "Invalid address"

        except Exception, err:
            print err
            CameraFactory.connect(address, 1, "RFCOMM")
            CameraFactory.registerListener(address, ConnectionTest(request))
            return server.NOT_DONE_YET
Exemple #2
0
    def render_GET(self, request):
        try:
            request.setHeader('Content-Type', 'application/json')
            request.setHeader('Cache-Control', 'no-cache')
            request.setHeader('Connection', 'close')
            if len(request.postpath) > 0 and len(request.postpath[0]) > 0:
                address = request.postpath[0].replace("_", ":")
                if len(request.args) == 0:
                    return json.dumps(CameraFactory.getCamera(address))
                camera = settings.getCamera(address)
                for key in request.args:
                    settings.setCameraSetting(address, key,
                                              request.args[key][-1])
                settings.save()
                cli = CameraFactory.getConnected(address)
                if cli:
                    cli.updateSettings()
                return json.dumps(CameraFactory.getCamera(address))
            request.setResponseCode(500, "invalid address")
            return "Invalid address"

        except Exception, err:
            print err
            CameraFactory.connect(address, 1, "RFCOMM")
            CameraFactory.registerListener(address, ConnectionTest(request))
            return server.NOT_DONE_YET
Exemple #3
0
 def stream(self, request):
   if "address" not in request.args:
     raise Exception("You need to provide with an address")
   return {
     "isChrome": "chrome" in request.requestHeaders.getRawHeaders("user-agent")[0].lower(),
     "address": request.args["address"][0],
     "camera": CameraFactory.getCamera(request.args["address"][0], True)
   }
Exemple #4
0
 def getCamera(address):
     out = {}
     try:
         out.update(CameraFactory.getCamera(address))
     except UnknownDevice, err:
         out["address"] = address
         out["name"] = resolve_name(address)
         out["new_device"] = True
         out["types"] = CameraFactory.getTypes()
Exemple #5
0
 def getCamera(address):
     out = {}
     try:
         out.update(CameraFactory.getCamera(address))
     except UnknownDevice, err:
         out["address"] = address
         out["name"] = resolve_name(address)
         out["new_device"] = True
         out["types"] = CameraFactory.getTypes()
Exemple #6
0
 def render_GET(self, request):
     try:
         request.setHeader('Content-Type', 'application/json')
         request.setHeader('Cache-Control', 'no-cache')
         request.setHeader('Connection', 'close')
         if len(request.postpath) > 0 and len(request.postpath[0])>0:
             address=request.postpath[0].replace("_", ":")
             cli = CameraFactory.getCamera(address, silent=True)
             if cli or not request.args.get("test", None):
                 return json.dumps(CameraFactory.getCamera(address))
             CameraFactory.connect(address, 1, "RFCOMM")
             CameraFactory.registerListener(address, ConnectionTest(request))
             return server.NOT_DONE_YET
         else:
             return json.dumps(self.render_all(request))
     except Exception, err:
         request.setHeader('Content-Type', 'text/html')
         request.setHeader('Cache-Control', 'no-cache')
         request.setHeader('Connection', 'close')
         request.setResponseCode(500, str(err))
         return "<html><h1>ERROR:</h1>\n<pre>%s</pre></html>" % (traceback.format_exc())
Exemple #7
0
 def render_GET(self, request):
     try:
         request.setHeader('Content-Type', 'application/json')
         request.setHeader('Cache-Control', 'no-cache')
         request.setHeader('Connection', 'close')
         if len(request.postpath) > 0 and len(request.postpath[0]) > 0:
             address = request.postpath[0].replace("_", ":")
             cli = CameraFactory.getCamera(address, silent=True)
             if cli or not request.args.get("test", None):
                 return json.dumps(CameraFactory.getCamera(address))
             CameraFactory.connect(address, 1, "RFCOMM")
             CameraFactory.registerListener(address,
                                            ConnectionTest(request))
             return server.NOT_DONE_YET
         else:
             return json.dumps(self.render_all(request))
     except Exception, err:
         request.setHeader('Content-Type', 'text/html')
         request.setHeader('Cache-Control', 'no-cache')
         request.setHeader('Connection', 'close')
         request.setResponseCode(500, str(err))
         return "<html><h1>ERROR:</h1>\n<pre>%s</pre></html>" % (
             traceback.format_exc())
Exemple #8
0
 def stream(self, request):
     if "address" not in request.args:
         raise Exception("You need to provide with an address")
     camera = CameraFactory.getCamera(request.args["address"][0], True)
     if camera["enable_pincode"]:
         camera["pincode"] = "************"
     return {
         "isChrome":
         "chrome"
         in request.requestHeaders.getRawHeaders("user-agent")[0].lower(),
         "address":
         request.args["address"][0],
         "camera":
         camera
     }
Exemple #9
0
 def render_GET(self, request):
     address = request.path.split("/",2)[-1].replace("_", ":")
     request.transport.socket.settimeout(5)
     multipart = MultiPartStream(request)
     multipart.process()
     multipart.target = address
     if len(address) == 17:
         ready = CameraFactory.isConnected(address) or CameraFactory.isPending(address)
         if multipart.thumbnail and not ready:
             multipart.sendPart("")
             return server.NOT_DONE_YET
         if not ready:
             method = CameraFactory.getCamera(address).get("transport", "rfcomm")
             method = request.args.get("method", [method,])[-1].upper()
             try:
                 CameraFactory.connect(address, method=method)
             except Exception, err:
                 log.msg("Failed while trying to connect")
                 log.err(err)
Exemple #10
0
 def render_GET(self, request):
     address = request.path.split("/", 2)[-1].replace("_", ":")
     request.transport.socket.settimeout(5)
     multipart = MultiPartStream(request)
     multipart.process()
     multipart.target = address
     if len(address) == 17:
         ready = CameraFactory.isConnected(
             address) or CameraFactory.isPending(address)
         if multipart.thumbnail and not ready:
             multipart.sendPart("")
             return server.NOT_DONE_YET
         if not ready:
             method = CameraFactory.getCamera(address).get(
                 "transport", "rfcomm")
             method = request.args.get("method", [
                 method,
             ])[-1].upper()
             try:
                 CameraFactory.connect(address, method=method)
             except Exception, err:
                 log.msg("Failed while trying to connect")
                 log.err(err)
Exemple #11
0
 def gotFrame(self, frame, address):
     print "ConnectionTest.gotFrame", address
     cli = CameraFactory.getCamera(address)
     self.request.write(json.dumps(cli))
     self.cleanup(address)
Exemple #12
0
 def render_all(self, request):
     out = {}
     for addr, cli in CameraFactory.getConnected().iteritems():
         out[addr] = CameraFactory.getCamera(addr)
     return out
Exemple #13
0
 def gotFrame(self, frame, address):
     print "ConnectionTest.gotFrame", address
     cli = CameraFactory.getCamera(address)
     self.request.write(json.dumps(cli))
     self.cleanup(address)
Exemple #14
0
 def render_all(self, request):
     out = {}
     for addr, cli in CameraFactory.getConnected().iteritems():
         out[addr] = CameraFactory.getCamera(addr)
     return out