Example #1
0
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)
Example #2
0
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/')
Example #3
0
	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)
Example #4
0
    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)
Example #5
0
    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)
Example #6
0
	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)