def startYowsup(self):
		if RequestHandler.core.status==Constants.INSTANCESTATUS_RUNNING and RequestHandler.core.session.authStatus==Constants.AUTHSTATUS_LOGGEDIN:
			self.headers.append(("Location","/inbox"))
			self.responseCode ="302 Moved Temporarily"
			return
		
		s= self.HTTPSession
		if s["phone"]==None or s["AESKey"]==None:
			self.badRequest()
			return
		else:
			RequestHandler.core.initListener()
			RequestHandler.core.initSender()
			RequestHandler.core.initSession(self.HTTPSession["phone"], self.HTTPSession["AESKey"])
			
			timeToSleep = 3 #Just so that the callbacks are completed?
			while RequestHandler.core.session.authStatus!=Constants.AUTHSTATUS_LOGGEDIN and RequestHandler.core.session.authStatus!=Constants.AUTHSTATUS_IDLE and timeToSleep>0:
				time.sleep(1)
				timeToSleep = timeToSleep-1
			
			
			if Constants.AUTHSTATUS_LOGGEDIN == RequestHandler.core.session.authStatus:
				self.response = Skin.completeHTML("Logged in successfully. Proceed to <a href='/inbox'>inbox</a>")
			else:
				if Constants.AUTHSTATUS_IDLE == RequestHandler.core.session.authStatus :
					self.response = "Looks like it failed. Try again in some time?"
				else:
					self.response = "Logging in is taking longer than usual. Proceed to<a href='/checkStatus'>Check status to see status.</a>"
	def send(self):
		
		self.headers.append(('Content-type','text/html'))
		if self.requestMethod!="POST":
			self.responseCode= "400 Bad Request"	#Should actually be 405
			self.response = "This page can be accessed by POST only"
		
		
		self.responseCode = "200 OK"
		
		if RequestHandler.core.yowsupStarted==0:
			self.response = Skin.completeHTML("Yowsup has not been started. Can't send messages till it has. <a href='/startYowsup'>Start Yowsup</a>")
			return
		
		phone = self.HTTPSession["phone"]
		messagearg = self.post.get("message",None)
		recipientarg = self.post.get("recipient",None)
		if messagearg==None or recipientarg==None or phone==None:
			self.response = "Invalid arguments"
		else:
			recipient = recipientarg[0]
			message = {"recipient":recipient, "messageText":messagearg[0],"sender":phone}
			
			RequestHandler.core.sender.sendMessage(message)
			
			url = 'chat?with=%s'%(recipient)
			self.response = Skin.metaRedirect(url,"Sending... Redirecting you to the chat page.")
Beispiel #3
0
    def startYowsup(self):
        if RequestHandler.core.status == Constants.INSTANCESTATUS_RUNNING and RequestHandler.core.session.authStatus == Constants.AUTHSTATUS_LOGGEDIN:
            self.headers.append(("Location", "/inbox"))
            self.responseCode = "302 Moved Temporarily"
            return

        s = self.HTTPSession
        if s["phone"] == None or s["AESKey"] == None:
            self.badRequest()
            return
        else:
            RequestHandler.core.initListener()
            RequestHandler.core.initSender()
            RequestHandler.core.initSession(self.HTTPSession["phone"],
                                            self.HTTPSession["AESKey"])

            timeToSleep = 3  #Just so that the callbacks are completed?
            while RequestHandler.core.session.authStatus != Constants.AUTHSTATUS_LOGGEDIN and RequestHandler.core.session.authStatus != Constants.AUTHSTATUS_IDLE and timeToSleep > 0:
                time.sleep(1)
                timeToSleep = timeToSleep - 1

            if Constants.AUTHSTATUS_LOGGEDIN == RequestHandler.core.session.authStatus:
                self.response = Skin.completeHTML(
                    "Logged in successfully. Proceed to <a href='/inbox'>inbox</a>"
                )
            else:
                if Constants.AUTHSTATUS_IDLE == RequestHandler.core.session.authStatus:
                    self.response = "Looks like it failed. Try again in some time?"
                else:
                    self.response = "Logging in is taking longer than usual. Proceed to<a href='/checkStatus'>Check status to see status.</a>"
Beispiel #4
0
    def siteLogin(self):
        self.headers.append(('Content-type', 'text/html'))
        if self.requestMethod != "POST":
            self.response = "This page can only be accessed by POST. Please go back to the index"
        else:
            self.responseCode = "200 OK"

            phone = self.post.get("phone")[0]
            password = self.post.get("password")[0]
            hash = hashlib.md5(password).hexdigest()

            with BlockingDBICursor(RequestHandler.core.dbi) as dbiCursor:
                dbiCursor.execute(
                    "SELECT phone FROM users WHERE phone=%s AND password=%s",
                    (phone, hash))
                if dbiCursor.rowcount > 0:
                    row = dbiCursor.fetchone()
                    self.HTTPSession["phone"] = row.get("phone")
                    self.HTTPSession["AESKey"] = RequestHandler.core.genAESKey(
                        password)
                    self.response = Skin.completeHTML(
                        "SUCCESS! <a href='startYowsup'>Start yowsup</a>")
                else:
                    self.response = "Login failed"

            RequestHandler.core.dbi.done()
Beispiel #5
0
    def send(self):

        self.headers.append(('Content-type', 'text/html'))
        if self.requestMethod != "POST":
            self.responseCode = "400 Bad Request"  #Should actually be 405
            self.response = "This page can be accessed by POST only"

        self.responseCode = "200 OK"

        if RequestHandler.core.yowsupStarted == 0:
            self.response = Skin.completeHTML(
                "Yowsup has not been started. Can't send messages till it has. <a href='/startYowsup'>Start Yowsup</a>"
            )
            return

        phone = self.HTTPSession["phone"]
        messagearg = self.post.get("message", None)
        recipientarg = self.post.get("recipient", None)
        if messagearg == None or recipientarg == None or phone == None:
            self.response = "Invalid arguments"
        else:
            recipient = recipientarg[0]
            message = {
                "recipient": recipient,
                "messageText": messagearg[0],
                "sender": phone
            }

            RequestHandler.core.sender.sendMessage(message)

            url = 'chat?with=%s' % (recipient)
            self.response = Skin.metaRedirect(
                url, "Sending... Redirecting you to the chat page.")
	def wrapUp(self):
		self.responseCode="200 OK"

		if self.requestMethod=="POST":
			confirm = self.post.get("confirmWrapUp",False)
			if confirm:
				RequestHandler.core.wrapUp("User requested wrap up")
				self.response = Skin.completeHTML("Wrapped up.")
				RequestHandler.core.dbi.close()
				#RequestHandler.startShutdownSequence() #if you want to shutdown after this.
		else:
			self.response = Skin.confirmWrapUpForm()
Beispiel #7
0
    def wrapUp(self):
        self.responseCode = "200 OK"

        if self.requestMethod == "POST":
            confirm = self.post.get("confirmWrapUp", False)
            if confirm:
                RequestHandler.core.wrapUp("User requested wrap up")
                self.response = Skin.completeHTML("Wrapped up.")
                RequestHandler.core.dbi.close()
                #RequestHandler.startShutdownSequence() #if you want to shutdown after this.
        else:
            self.response = Skin.confirmWrapUpForm()
Beispiel #8
0
    def shutdownRequest(self):
        self.responseCode = "200 OK"
        if RequestHandler.core.status == Constants.INSTANCESTATUS_RUNNING:
            self.response = "The python instance must be wrapped up ( or atleast, Not running )before you can shut it down"
            return

        if self.requestMethod == "POST":
            confirm = self.post.get("confirmShutdown", False)
            if confirm:
                RequestHandler.startShutdownSequence()
                self.response = Skin.completeHTML("Shutting down. Bye :)")
        else:
            self.response = Skin.confirmShutdownForm()
	def shutdownRequest(self):
		self.responseCode = "200 OK"
		if RequestHandler.core.status==Constants.INSTANCESTATUS_RUNNING:
			self.response = "The python instance must be wrapped up ( or atleast, Not running )before you can shut it down"
			return
		
		
		if self.requestMethod=="POST":
			confirm = self.post.get("confirmShutdown",False)
			if confirm:
				RequestHandler.startShutdownSequence()
				self.response = Skin.completeHTML("Shutting down. Bye :)")
		else:
			self.response = Skin.confirmShutdownForm()
Beispiel #10
0
	def siteLogin(self):
		self.headers.append(('Content-type','text/html'))
		if self.requestMethod!="POST":
			self.response="This page can only be accessed by POST. Please go back to the index"
		else:
			self.responseCode = "200 OK"
			
			phone= self.post.get("phone")[0]
			password = self.post.get("password")[0]
			hash = hashlib.md5(password).hexdigest()
			
			with BlockingDBICursor(RequestHandler.core.dbi) as dbiCursor:
				dbiCursor.execute( "SELECT phone FROM users WHERE phone=%s AND password=%s", (phone,hash) )
				if dbiCursor.rowcount>0:
					row = dbiCursor.fetchone()
					self.HTTPSession["phone"] = row.get("phone")
					self.HTTPSession["AESKey"] = RequestHandler.core.genAESKey(password)
					self.response= Skin.completeHTML("SUCCESS! <a href='startYowsup'>Start yowsup</a>")
				else:
					self.response ="Login failed"
				
			RequestHandler.core.dbi.done()