import tornado.ioloop import tornado.web import tornado.httpserver import tornado.websocket import tornado.options import time import base64 from urllib import urlopen import Settings from tornado.ioloop import PeriodicCallback from session import * from loadConf import * from login import * confAveug = False ficLog = Login() class BaseHandler(tornado.web.RequestHandler): def get_current_user(self): return self.get_secure_cookie("user") class MainHandler(BaseHandler): def get(self): self.render("index.html") def post(self): iden = self.get_argument("id","") mdp = self.get_argument("mdp","") login = Login() autorise = login.connexion(iden, mdp) print 'maison = httplib.HTTPConnection("192.168.16.150", 80)' if autorise == True: ficLog.enregDansLog(iden,"Authorized user connection","IP TO DO") if confAveug == True: print '->Send audio alarm authorized user' print 'maison.request("GET", "micom/say.php?source=toto&text=Connection%20a%20la%20camera%20autorisee")' else: print '->Send visual alarm authorized user' print 'maison.request("GET", "micom/lamp.php?room=salon1&order=1")' print "->Authorized user access" self.set_secure_cookie("user", iden) self.redirect("/video") else: print "->An unauthorized user try to access" self.redirect("/unauthorized") class VideoHandler(BaseHandler): def get(self): if not self.current_user : self.redirect("/") return self.render("video.html") class UnauthorizedHandler(BaseHandler): def get(self): self.render("illegal.html") def post(self): force = self.get_argument("illegalAccess","") if force == "1" : self.set_secure_cookie("user", "illegalUser") ficLog.enregDansLog("IllegalUser","Unauthorized user connection","IP TO DO") if confAveug == True: print '->Send audio alarm unauthorized user' print 'maison.request("GET", "micom/say.php?source=toto&text=Connection%20a%20la%20camera%20non%20autorisee")' else: print '->Send visual alarm unauthorized user' print 'maison.request("GET", "micom/lamp.php?room=salon1&order=1")' self.redirect("/video") else : self.redirect("/") class DisconnectionHandler(BaseHandler): def post(self): if not self.current_user : iden="IllegalUser" ficLog.enregDansLog(iden,"Unauthorized user deconnection","IP TO DO") else : iden = self.current_user ficLog.enregDansLog(iden,"Authorized user deconnection","IP TO DO") if confAveug == True: print '->Send audio alarm deconnection user' print 'maison.request("GET", "micom/say.php?source=toto&text=Connection%20a%20la%20camera%20rompue")' else: print '->Send visual alarm deconnection user' print 'maison.request("GET", "micom/lamp.php?room=salon1&order=0")' print"->"+iden+" Deconnection" self.clear_cookie("user") self.redirect("/") class WSocketHandler(BaseHandler,tornado.websocket.WebSocketHandler): def open(self) : if not self.current_user : self.close() return print "->Websocket opened" try : f = urlopen('http://test:a@192.168.0.13/image.jpg?cidx=791836195') data = f.read() encoded = base64.b64encode(data) self.write_message(encoded) except Exception, e : print e def on_message(self,mesg): pass def on_close(self): print "->Websocket closed" """"dc = httplib.HTTPConnection("127.0.0.1", 80) dc.request("POST", "/disconnection")""" application = tornado.web.Application([ (r"/", MainHandler), (r"/video", VideoHandler), (r"/unauthorized", UnauthorizedHandler), (r"/disconnection", DisconnectionHandler), (r"/socket", WSocketHandler),], settings = { "template_path": Settings.TEMPLATE_PATH, "static_path": Settings.STATIC_PATH, }, cookie_secret="1213215656") if __name__ == "__main__": hand = LoadConf() confAveug = hand.estAveugle() if confAveug == True: print "->Blind unhabitant system configuration" else : print "->Not blind unhabitant system configuration" tornado.options.parse_command_line() http_server = tornado.httpserver.HTTPServer(application) http_server.listen(80) tornado.ioloop.IOLoop.instance().start()