nouveau fichier: Doxyfile
nouveau fichier: doc/html/annotated.html nouveau fichier: doc/html/annotated.js nouveau fichier: doc/html/bc_s.png nouveau fichier: doc/html/bdwn.png nouveau fichier: doc/html/classes.html nouveau fichier: doc/html/classm_1_1load_conf_1_1_config_error-members.html nouveau fichier: doc/html/classm_1_1load_conf_1_1_config_error.html nouveau fichier: doc/html/classm_1_1load_conf_1_1_config_error.js nouveau fichier: doc/html/classm_1_1load_conf_1_1_config_error.png nouveau fichier: doc/html/classm_1_1load_conf_1_1_load_conf-members.html nouveau fichier: doc/html/classm_1_1load_conf_1_1_load_conf.html nouveau fichier: doc/html/classm_1_1load_conf_1_1_load_conf.js nouveau fichier: doc/html/classm_1_1load_conf_1_1_load_conf.png nouveau fichier: doc/html/classm_1_1log_1_1_log-members.html nouveau fichier: doc/html/classm_1_1log_1_1_log.html nouveau fichier: doc/html/classm_1_1log_1_1_log.js nouveau fichier: doc/html/classm_1_1log_1_1_log.png nouveau fichier: doc/html/classm_1_1log_1_1_single_level_filter-members.html nouveau fichier: doc/html/classm_1_1log_1_1_single_level_filter.html nouveau fichier: doc/html/classm_1_1log_1_1_single_level_filter.js nouveau fichier: doc/html/classm_1_1log_1_1_single_level_filter.png nouveau fichier: doc/html/classm_1_1log_1_1bcolors-members.html nouveau fichier: doc/html/classm_1_1log_1_1bcolors.html nouveau fichier: doc/html/classm_1_1log_1_1lvl-members.html nouveau fichier: doc/html/classm_1_1log_1_1lvl.html nouveau fichier: doc/html/classm_1_1login_1_1_login-members.html nouveau fichier: doc/html/classm_1_1login_1_1_login.html nouveau fichier: doc/html/classm_1_1login_1_1_login.js nouveau fichier: doc/html/classm_1_1login_1_1_login.png nouveau fichier: doc/html/classsuper_tornado_1_1_base_handler-members.html nouveau fichier: doc/html/classsuper_tornado_1_1_base_handler.html nouveau fichier: doc/html/classsuper_tornado_1_1_base_handler.js nouveau fichier: doc/html/classsuper_tornado_1_1_base_handler.png nouveau fichier: doc/html/classsuper_tornado_1_1_disconnection_handler-members.html nouveau fichier: doc/html/classsuper_tornado_1_1_disconnection_handler.html nouveau fichier: doc/html/classsuper_tornado_1_1_disconnection_handler.js nouveau fichier: doc/html/classsuper_tornado_1_1_disconnection_handler.png nouveau fichier: doc/html/classsuper_tornado_1_1_global_vars-members.html nouveau fichier: doc/html/classsuper_tornado_1_1_global_vars.html nouveau fichier: doc/html/classsuper_tornado_1_1_main_handler-members.html nouveau fichier: doc/html/classsuper_tornado_1_1_main_handler.html nouveau fichier: doc/html/classsuper_tornado_1_1_main_handler.js nouveau fichier: doc/html/classsuper_tornado_1_1_main_handler.png nouveau fichier: doc/html/classsuper_tornado_1_1_unauthorized_handler-members.html nouveau fichier: doc/html/classsuper_tornado_1_1_unauthorized_handler.html nouveau fichier: doc/html/classsuper_tornado_1_1_unauthorized_handler.js nouveau fichier: doc/html/classsuper_tornado_1_1_unauthorized_handler.png nouveau fichier: doc/html/classsuper_tornado_1_1_video_handler-members.html nouveau fichier: doc/html/classsuper_tornado_1_1_video_handler.html nouveau fichier: doc/html/classsuper_tornado_1_1_video_handler.js nouveau fichier: doc/html/classsuper_tornado_1_1_video_handler.png nouveau fichier: doc/html/classsuper_tornado_1_1_w_socket_handler-members.html nouveau fichier: doc/html/classsuper_tornado_1_1_w_socket_handler.html nouveau fichier: doc/html/classsuper_tornado_1_1_w_socket_handler.js nouveau fichier: doc/html/classsuper_tornado_1_1_w_socket_handler.png nouveau fichier: doc/html/closed.png nouveau fichier: doc/html/dir_060e062f70a4a7965197b0046a5699c1.html nouveau fichier: doc/html/dir_b9f9e361513c934f24957ae0a3633a41.html nouveau fichier: doc/html/dir_cc95ad066e2e041bbee057a78f4a0df2.html nouveau fichier: doc/html/doxygen.css nouveau fichier: doc/html/doxygen.png nouveau fichier: doc/html/dynsections.js nouveau fichier: doc/html/ftv2blank.png nouveau fichier: doc/html/ftv2cl.png nouveau fichier: doc/html/ftv2doc.png nouveau fichier: doc/html/ftv2folderclosed.png nouveau fichier: doc/html/ftv2folderopen.png nouveau fichier: doc/html/ftv2lastnode.png nouveau fichier: doc/html/ftv2link.png nouveau fichier: doc/html/ftv2mlastnode.png nouveau fichier: doc/html/ftv2mnode.png nouveau fichier: doc/html/ftv2mo.png nouveau fichier: doc/html/ftv2node.png nouveau fichier: doc/html/ftv2ns.png nouveau fichier: doc/html/ftv2plastnode.png nouveau fichier: doc/html/ftv2pnode.png nouveau fichier: doc/html/ftv2splitbar.png nouveau fichier: doc/html/ftv2vertline.png nouveau fichier: doc/html/functions.html nouveau fichier: doc/html/functions_func.html nouveau fichier: doc/html/hierarchy.html nouveau fichier: doc/html/hierarchy.js nouveau fichier: doc/html/index.html nouveau fichier: doc/html/jquery.js nouveau fichier: doc/html/link lol.gif nouveau fichier: doc/html/md__r_e_a_d_m_e.html nouveau fichier: doc/html/namespaces.html nouveau fichier: doc/html/namespaces.js nouveau fichier: doc/html/namespacesuper_tornado.html nouveau fichier: doc/html/namespacesuper_tornado.js nouveau fichier: doc/html/nav_f.png nouveau fichier: doc/html/nav_g.png nouveau fichier: doc/html/nav_h.png nouveau fichier: doc/html/navtree.css nouveau fichier: doc/html/navtree.js nouveau fichier: doc/html/navtreeindex0.js nouveau fichier: doc/html/open.png nouveau fichier: doc/html/pages.html nouveau fichier: doc/html/resize.js nouveau fichier: doc/html/search/all_0.html nouveau fichier: doc/html/search/all_0.js nouveau fichier: doc/html/search/all_1.html nouveau fichier: doc/html/search/all_1.js nouveau fichier: doc/html/search/all_2.html nouveau fichier: doc/html/search/all_2.js nouveau fichier: doc/html/search/all_3.html nouveau fichier: doc/html/search/all_3.js nouveau fichier: doc/html/search/all_4.html nouveau fichier: doc/html/search/all_4.js nouveau fichier: doc/html/search/all_5.html nouveau fichier: doc/html/search/all_5.js nouveau fichier: doc/html/search/all_6.html nouveau fichier: doc/html/search/all_6.js nouveau fichier: doc/html/search/all_7.html nouveau fichier: doc/html/search/all_7.js nouveau fichier: doc/html/search/all_8.html nouveau fichier: doc/html/search/all_8.js nouveau fichier: doc/html/search/all_9.html nouveau fichier: doc/html/search/all_9.js nouveau fichier: doc/html/search/all_a.html nouveau fichier: doc/html/search/all_a.js nouveau fichier: doc/html/search/all_b.html nouveau fichier: doc/html/search/all_b.js nouveau fichier: doc/html/search/all_c.html nouveau fichier: doc/html/search/all_c.js nouveau fichier: doc/html/search/all_d.html nouveau fichier: doc/html/search/all_d.js nouveau fichier: doc/html/search/classes_0.html nouveau fichier: doc/html/search/classes_0.js nouveau fichier: doc/html/search/classes_1.html nouveau fichier: doc/html/search/classes_1.js nouveau fichier: doc/html/search/classes_2.html nouveau fichier: doc/html/search/classes_2.js nouveau fichier: doc/html/search/classes_3.html nouveau fichier: doc/html/search/classes_3.js nouveau fichier: doc/html/search/classes_4.html nouveau fichier: doc/html/search/classes_4.js nouveau fichier: doc/html/search/classes_5.html nouveau fichier: doc/html/search/classes_5.js nouveau fichier: doc/html/search/classes_6.html nouveau fichier: doc/html/search/classes_6.js nouveau fichier: doc/html/search/classes_7.html nouveau fichier: doc/html/search/classes_7.js nouveau fichier: doc/html/search/classes_8.html nouveau fichier: doc/html/search/classes_8.js nouveau fichier: doc/html/search/classes_9.html nouveau fichier: doc/html/search/classes_9.js nouveau fichier: doc/html/search/close.png nouveau fichier: doc/html/search/functions_0.html nouveau fichier: doc/html/search/functions_0.js nouveau fichier: doc/html/search/functions_1.html nouveau fichier: doc/html/search/functions_1.js nouveau fichier: doc/html/search/functions_2.html nouveau fichier: doc/html/search/functions_2.js nouveau fichier: doc/html/search/functions_3.html nouveau fichier: doc/html/search/functions_3.js nouveau fichier: doc/html/search/functions_4.html nouveau fichier: doc/html/search/functions_4.js nouveau fichier: doc/html/search/functions_5.html nouveau fichier: doc/html/search/functions_5.js nouveau fichier: doc/html/search/functions_6.html nouveau fichier: doc/html/search/functions_6.js nouveau fichier: doc/html/search/functions_7.html nouveau fichier: doc/html/search/functions_7.js nouveau fichier: doc/html/search/mag_sel.png nouveau fichier: doc/html/search/namespaces_0.html nouveau fichier: doc/html/search/namespaces_0.js nouveau fichier: doc/html/search/nomatches.html nouveau fichier: doc/html/search/pages_0.html nouveau fichier: doc/html/search/pages_0.js nouveau fichier: doc/html/search/search.css nouveau fichier: doc/html/search/search.js nouveau fichier: doc/html/search/search_l.png nouveau fichier: doc/html/search/search_m.png nouveau fichier: doc/html/search/search_r.png nouveau fichier: doc/html/sync_off.png nouveau fichier: doc/html/sync_on.png nouveau fichier: doc/html/tab_a.png nouveau fichier: doc/html/tab_b.png nouveau fichier: doc/html/tab_h.png nouveau fichier: doc/html/tab_s.png nouveau fichier: doc/html/tabs.css nouveau fichier: doc/latex/Makefile nouveau fichier: doc/latex/annotated.tex nouveau fichier: doc/latex/classm_1_1load_conf_1_1_config_error.eps nouveau fichier: doc/latex/classm_1_1load_conf_1_1_config_error.pdf nouveau fichier: doc/latex/classm_1_1load_conf_1_1_config_error.tex nouveau fichier: doc/latex/classm_1_1load_conf_1_1_load_conf.eps nouveau fichier: doc/latex/classm_1_1load_conf_1_1_load_conf.pdf nouveau fichier: doc/latex/classm_1_1load_conf_1_1_load_conf.tex nouveau fichier: doc/latex/classm_1_1log_1_1_log.eps nouveau fichier: doc/latex/classm_1_1log_1_1_log.pdf nouveau fichier: doc/latex/classm_1_1log_1_1_log.tex nouveau fichier: doc/latex/classm_1_1log_1_1_single_level_filter.eps nouveau fichier: doc/latex/classm_1_1log_1_1_single_level_filter.pdf nouveau fichier: doc/latex/classm_1_1log_1_1_single_level_filter.tex nouveau fichier: doc/latex/classm_1_1log_1_1bcolors.tex nouveau fichier: doc/latex/classm_1_1log_1_1lvl.tex nouveau fichier: doc/latex/classm_1_1login_1_1_login.eps nouveau fichier: doc/latex/classm_1_1login_1_1_login.pdf nouveau fichier: doc/latex/classm_1_1login_1_1_login.tex nouveau fichier: doc/latex/classsuper_tornado_1_1_base_handler.eps nouveau fichier: doc/latex/classsuper_tornado_1_1_base_handler.pdf nouveau fichier: doc/latex/classsuper_tornado_1_1_base_handler.tex nouveau fichier: doc/latex/classsuper_tornado_1_1_disconnection_handler.eps nouveau fichier: doc/latex/classsuper_tornado_1_1_disconnection_handler.pdf nouveau fichier: doc/latex/classsuper_tornado_1_1_disconnection_handler.tex nouveau fichier: doc/latex/classsuper_tornado_1_1_global_vars.tex nouveau fichier: doc/latex/classsuper_tornado_1_1_main_handler.eps nouveau fichier: doc/latex/classsuper_tornado_1_1_main_handler.pdf nouveau fichier: doc/latex/classsuper_tornado_1_1_main_handler.tex nouveau fichier: doc/latex/classsuper_tornado_1_1_unauthorized_handler.eps nouveau fichier: doc/latex/classsuper_tornado_1_1_unauthorized_handler.pdf nouveau fichier: doc/latex/classsuper_tornado_1_1_unauthorized_handler.tex nouveau fichier: doc/latex/classsuper_tornado_1_1_video_handler.eps nouveau fichier: doc/latex/classsuper_tornado_1_1_video_handler.pdf nouveau fichier: doc/latex/classsuper_tornado_1_1_video_handler.tex nouveau fichier: doc/latex/classsuper_tornado_1_1_w_socket_handler.eps nouveau fichier: doc/latex/classsuper_tornado_1_1_w_socket_handler.pdf nouveau fichier: doc/latex/classsuper_tornado_1_1_w_socket_handler.tex nouveau fichier: doc/latex/dir_060e062f70a4a7965197b0046a5699c1.tex nouveau fichier: doc/latex/dir_b9f9e361513c934f24957ae0a3633a41.tex nouveau fichier: doc/latex/dir_cc95ad066e2e041bbee057a78f4a0df2.tex nouveau fichier: doc/latex/doxygen.sty nouveau fichier: doc/latex/hierarchy.tex nouveau fichier: doc/latex/md__r_e_a_d_m_e.tex nouveau fichier: doc/latex/namespaces.tex nouveau fichier: doc/latex/namespacesuper_tornado.tex nouveau fichier: doc/latex/refman.tex nouveau fichier: doc/link lol.gif nouveau fichier: doc/man/man3/_home_sidya_Documents_iut_ptut_m_.3 nouveau fichier: doc/man/man3/_home_sidya_Documents_iut_ptut_v_.3 nouveau fichier: doc/man/man3/_home_sidya_Documents_iut_ptut_v_js_.3 nouveau fichier: doc/man/man3/m_loadConf_ConfigError.3 nouveau fichier: doc/man/man3/m_loadConf_LoadConf.3 nouveau fichier: doc/man/man3/m_log_Log.3 nouveau fichier: doc/man/man3/m_log_SingleLevelFilter.3 nouveau fichier: doc/man/man3/m_log_bcolors.3 nouveau fichier: doc/man/man3/m_log_lvl.3 nouveau fichier: doc/man/man3/m_login_Login.3 nouveau fichier: doc/man/man3/md__r_e_a_d_m_e.3 nouveau fichier: doc/man/man3/superTornado.3 nouveau fichier: doc/man/man3/superTornado_BaseHandler.3 nouveau fichier: doc/man/man3/superTornado_DisconnectionHandler.3 nouveau fichier: doc/man/man3/superTornado_GlobalVars.3 nouveau fichier: doc/man/man3/superTornado_MainHandler.3 nouveau fichier: doc/man/man3/superTornado_UnauthorizedHandler.3 nouveau fichier: doc/man/man3/superTornado_VideoHandler.3 nouveau fichier: doc/man/man3/superTornado_WSocketHandler.3 renommé: m/fichier/autorise -> m/fichier/allow supprimé: m/fichier/log modifié: m/loadConf.py modifié: m/log.py modifié: m/login.py modifié: superTornado.py modifié: v/index.html modifié: v/video.html
This commit is contained in:
@ -1 +0,0 @@
|
||||
|
@ -1,8 +1,13 @@
|
||||
class LoadConf(object):
|
||||
"""Loading configuration file"""
|
||||
def loadValue(self, key):
|
||||
"""
|
||||
Return the value associate to the key into conf file (fichier/conf)
|
||||
Else return "error"
|
||||
"""
|
||||
with open("m/fichier/conf", "r") as source :
|
||||
for ligne in source:
|
||||
data = ligne.rstrip('\n\r').split('=')
|
||||
data = ligne.rstrip('\r\n').split('=')
|
||||
if data[0] == key :
|
||||
source.close()
|
||||
return data[1]
|
||||
@ -10,6 +15,10 @@ class LoadConf(object):
|
||||
return "error"
|
||||
|
||||
def isBlind(self):
|
||||
"""
|
||||
Return true if configuration is for Blind
|
||||
Else false
|
||||
"""
|
||||
rep = self.loadValue("blind")
|
||||
if rep == "1" :
|
||||
return True
|
||||
@ -18,19 +27,38 @@ class LoadConf(object):
|
||||
else :
|
||||
return rep
|
||||
|
||||
"""
|
||||
Return ipCamera configuration
|
||||
Else "error"
|
||||
"""
|
||||
def ipCamera(self) :
|
||||
return self.loadValue("camera")
|
||||
|
||||
"""
|
||||
Return portCamera configuration
|
||||
Else "error"
|
||||
"""
|
||||
def portCamera(self) :
|
||||
return self.loadValue("portCamera")
|
||||
|
||||
"""
|
||||
Return ipServ configuration
|
||||
Else "error"
|
||||
"""
|
||||
def ipServ(self) :
|
||||
return self.loadValue("serv")
|
||||
|
||||
"""
|
||||
Return portServ configuration
|
||||
Else "error"
|
||||
"""
|
||||
def portServ(self) :
|
||||
return self.loadValue("portServ")
|
||||
|
||||
|
||||
|
||||
class ConfigError(Exception):
|
||||
"""Exception : error loading configuration"""
|
||||
def __init__(self, value):
|
||||
self.value = value
|
||||
def __str__(self):
|
||||
|
40
m/log.py
40
m/log.py
@ -2,6 +2,9 @@ import logging
|
||||
from logging.handlers import RotatingFileHandler
|
||||
|
||||
class bcolors:
|
||||
"""
|
||||
Define constant value color for different level
|
||||
"""
|
||||
DEBUG = '\033[94m'
|
||||
INFO = '\033[95m'
|
||||
SUCCESS = '\033[92m'
|
||||
@ -10,6 +13,9 @@ class bcolors:
|
||||
ENDC = '\033[0m'
|
||||
|
||||
class lvl:
|
||||
"""
|
||||
Define constant value for level log
|
||||
"""
|
||||
NOTSET = 0
|
||||
DEBUG = 10
|
||||
INFO = 20
|
||||
@ -18,37 +24,46 @@ class lvl:
|
||||
FAIL = 40
|
||||
|
||||
class SingleLevelFilter(logging.Filter):
|
||||
"""Filter for one level"""
|
||||
def __init__(self, passlevel, reject):
|
||||
"""
|
||||
Constructor
|
||||
passlevel : level to filter
|
||||
reject : true on reject state
|
||||
"""
|
||||
self.passlevel = passlevel
|
||||
self.reject = reject
|
||||
|
||||
def filter(self, record):
|
||||
if self.reject:
|
||||
return (record.levelno != self.passlevel)
|
||||
else:
|
||||
return (record.levelno == self.passlevel)
|
||||
|
||||
class Log(object):
|
||||
"""
|
||||
Log Manager
|
||||
"""
|
||||
def __init__(self) :
|
||||
|
||||
"""
|
||||
Define 3 differents log :
|
||||
activity.log -> all activity server
|
||||
warning.log -> only warning server (including illegal acess)
|
||||
error.log' -> error server
|
||||
Write all message on terminal too
|
||||
"""
|
||||
logging.addLevelName(lvl.SUCCESS, "SUCCESS")
|
||||
|
||||
self.logger = logging.getLogger()
|
||||
self.logger.setLevel(logging.DEBUG)
|
||||
formatter = logging.Formatter('%(asctime)-15s :: %(levelname)s :: %(message)s')
|
||||
|
||||
file_handler = RotatingFileHandler('activity.log', 'a', 1000000, 1)
|
||||
file_handler = RotatingFileHandler('log/activity.log', 'a', 1000000, 1)
|
||||
file_handler.setLevel(logging.DEBUG)
|
||||
file_handler.setFormatter(formatter)
|
||||
self.logger.addHandler(file_handler)
|
||||
|
||||
file_handler_warning = RotatingFileHandler('warning.log', 'a', 1000000, 1)
|
||||
file_handler_warning = RotatingFileHandler('log/warning.log', 'a', 1000000, 1)
|
||||
f1 = SingleLevelFilter(logging.WARNING, False)
|
||||
file_handler_warning.addFilter(f1)
|
||||
file_handler_warning.setFormatter(formatter)
|
||||
self.logger.addHandler(file_handler_warning)
|
||||
|
||||
file_handler_error = RotatingFileHandler('error.log', 'a', 1000000, 1)
|
||||
file_handler_error = RotatingFileHandler('log/error.log', 'a', 1000000, 1)
|
||||
file_handler_error.setLevel(logging.ERROR)
|
||||
file_handler_error.setFormatter(formatter)
|
||||
self.logger.addHandler(file_handler_error)
|
||||
@ -59,6 +74,11 @@ class Log(object):
|
||||
|
||||
|
||||
def printL(self,pMsg,pLvl):
|
||||
"""
|
||||
Add color and write in log with an define level
|
||||
pMsg : message to write in log
|
||||
pLvl : level of log message
|
||||
"""
|
||||
if pLvl == lvl.DEBUG :
|
||||
pMsg = bcolors.DEBUG + pMsg + bcolors.ENDC
|
||||
elif pLvl == lvl.INFO :
|
||||
|
25
m/login.py
25
m/login.py
@ -3,24 +3,29 @@ import httplib
|
||||
|
||||
|
||||
class Login(object):
|
||||
def verifLogin(self,pLog,pMdp):
|
||||
hashMdp = hashlib.sha224(pMdp).hexdigest()
|
||||
with open("m/fichier/autorise", "r") as source :
|
||||
"""
|
||||
Login manager
|
||||
"""
|
||||
def checkLogin(self,pLog,pPasswd):
|
||||
"""
|
||||
Check if login and password are correct (in file fichier/allow)
|
||||
password in File are hash (sha224)
|
||||
pLog : id login
|
||||
pPasswd : password
|
||||
return : true if correct login
|
||||
false else
|
||||
"""
|
||||
hashMdp = hashlib.sha224(pPasswd).hexdigest()
|
||||
with open("m/fichier/allow", "r") as source :
|
||||
for ligne in source :
|
||||
data = ligne.rstrip('\n\r').split(',')
|
||||
if data[0] == pLog :
|
||||
if data[1] in hashMdp :
|
||||
if data[1] == hashMdp :
|
||||
source.close()
|
||||
return True
|
||||
source.close()
|
||||
return False
|
||||
|
||||
def connexion(self,pLog,pMdp):
|
||||
if self.verifLogin(pLog,pMdp) == True :
|
||||
return True
|
||||
else :
|
||||
return False
|
||||
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user