def monitor(request): if not get_cache(request.META['REMOTE_ADDR']): return HttpResponseRedirect('/webvideo/') l_video_port = 0 if request.has_key('last_port'): # handle logout videoserver message l_video_port = request.GET['last_port'] s = controller.init_socket() controller.handle(s, 'stop:%s\r' % l_video_port) time.sleep(1) java_script_on = False video_port = 0 if request.has_key('port'): video_port = request.GET['port'] java_script_on = True # handle login videoserver message s = controller.init_socket() controller.handle(s, 'start:%s\r' % video_port) f = lambda x:('MSIE' in x and 'ie') or 'firefox' OS = f(request.META['HTTP_USER_AGENT']) sites = load_file() d = {'sites':sites, 'os':OS, 'localhttp':config.LOCAL_HTTP, 'serverip':config.VIDEO_SERVER_IP.split(':')[0], 'jsp':java_script_on, 'serverport':video_port } return render_to_response('video_monitor.html', d)
def logout(request): del_cache(request.META['REMOTE_ADDR']) l_video_port = 0 if request.has_key('last_port'): # handle logout videoserver message s = controller.init_socket() l_video_port = request.GET['last_port'] controller.handle(s, 'stop:%s\r' % l_video_port) return HttpResponseRedirect('/webvideo/')
def POST(self): data = web.input() try: if data.Text: agent = 'plivo' res = controller.handle(data.From, data.Text.lower(), data.Type) except AttributeError: agent = 'twilio' res = controller.handle(data.From[1:], data.Body.lower()) web.header('Content-Type', 'text/xml') if agent == 'plivo': return render.response(data.From, res) elif agent == 'twilio': return render.twilio(data.From, res)
def handleNode(self, request, node): submodelName = node.attributes.get('model') if submodelName is None: submodelName = "" model = self.getNodeModel(request, node, submodelName) view = self.getNodeView(request, node, submodelName, model) controller = self.getNodeController(request, node, submodelName, model) if view or controller: if model is None: model = peek(self.modelStack) if not view or not isinstance(view, View): view = widgets.DefaultWidget(model) if not controller: controller = input.DefaultHandler(model) prevView, stack = self.viewStack while isinstance(prevView, widgets.DefaultWidget) and stack is not None: prevView, stack = stack if prevView is None: prevMod = None else: prevMod = prevView.model if model is not prevMod and not isinstance(view, widgets.DefaultWidget): model.addView(view) submodelList = [ x.name for x in filterStack(self.modelStack) if x.name ] submodelList.reverse() submodelName = '/'.join(submodelList) if not getattr(view, 'submodel', None): view.submodel = submodelName theId = node.attributes.get("id") if self.livePage and not theId: theId = "woven_id_%d" % id(view) view.setupMethods.append(utils.createSetIdFunction(theId)) view.outgoingId = theId #print "SET AN ID", theId self.subviews[theId] = view view.parent = peek(self.viewStack) view.parent.subviews[theId] = view # If a Widget was constructed directly with a model that so far # is not in modelspace, we should put it on the stack so other # Widgets below this one can find it. if view.model is not peek(self.modelStack): self.modelStack = poke(self.modelStack, view.model) cParent = peek(self.controllerStack) if controller._parent is None or cParent != controller: controller._parent = cParent self.controllerStack = (controller, self.controllerStack) self.viewStack = (view, self.viewStack) view.viewStack = self.viewStack view.controllerStack = self.controllerStack view.modelStack = self.modelStack view.setController(controller) view.setNode(node) if not getattr(controller, 'submodel', None): controller.setSubmodel(submodelName) controller.setView(view) controller.setNode(node) controllerResult = controller.handle(request) if controllerResult is not None: ## It's a deferred controller self.outstandingCallbacks += 1 controllerResult.addCallback(self.handleControllerResults, request, node, controller, view) controllerResult.addErrback(self.renderFailure, request) else: viewResult = view.generate(request, node) returnNode = self.dispatchResult(request, node, viewResult) self.handleNewNode(request, returnNode) else: self.controllerStack = (controller, self.controllerStack) self.viewStack = (view, self.viewStack)
def handleNode(self, request, node): submodelName = node.attributes.get('model') if submodelName is None: submodelName = "" model = self.getNodeModel(request, node, submodelName) view = self.getNodeView(request, node, submodelName, model) controller = self.getNodeController(request, node, submodelName, model) if view or controller: if model is None: model = peek(self.modelStack) if not view or not isinstance(view, View): view = widgets.DefaultWidget(model) if not controller: controller = input.DefaultHandler(model) prevView, stack = self.viewStack while isinstance(prevView, widgets.DefaultWidget) and stack is not None: prevView, stack = stack if prevView is None: prevMod = None else: prevMod = prevView.model if model is not prevMod and not isinstance(view, widgets.DefaultWidget): model.addView(view) submodelList = [x.name for x in filterStack(self.modelStack) if x.name] submodelList.reverse() submodelName = '/'.join(submodelList) if not getattr(view, 'submodel', None): view.submodel = submodelName theId = node.attributes.get("id") if self.livePage and not theId: theId = "woven_id_%d" % id(view) view.setupMethods.append(utils.createSetIdFunction(theId)) view.outgoingId = theId #print "SET AN ID", theId self.subviews[theId] = view view.parent = peek(self.viewStack) view.parent.subviews[theId] = view # If a Widget was constructed directly with a model that so far # is not in modelspace, we should put it on the stack so other # Widgets below this one can find it. if view.model is not peek(self.modelStack): self.modelStack = poke(self.modelStack, view.model) cParent = peek(self.controllerStack) if controller._parent is None or cParent != controller: controller._parent = cParent self.controllerStack = (controller, self.controllerStack) self.viewStack = (view, self.viewStack) view.viewStack = self.viewStack view.controllerStack = self.controllerStack view.modelStack = self.modelStack view.setController(controller) view.setNode(node) if not getattr(controller, 'submodel', None): controller.setSubmodel(submodelName) controller.setView(view) controller.setNode(node) controllerResult = controller.handle(request) if controllerResult is not None: ## It's a deferred controller self.outstandingCallbacks += 1 controllerResult.addCallback( self.handleControllerResults, request, node, controller, view) controllerResult.addErrback(self.renderFailure, request) else: viewResult = view.generate(request, node) returnNode = self.dispatchResult(request, node, viewResult) self.handleNewNode(request, returnNode) else: self.controllerStack = (controller, self.controllerStack) self.viewStack = (view, self.viewStack)
def POST(self): data = web.input() res = controller.handle(data.From, data.Text.lower(), data.Type) web.header('Content-Type', 'text/xml') return render.response(data.From, res)