Files
freedavis/web/chttpd.py
2019-08-22 20:54:55 +02:00

66 lines
1.7 KiB
Python
Executable File

#!/usr/bin/python3
import os
import cherrypy
import index
from modules import voltage
from modules import weather
from modules import dynamic
from modules import status
from modules import temphumi
import config
def main_server_loop():
''' Master http server - the main executable / daemon
Contains basic server settings and how the sub-modules
are called and mounted to their respective paths
Args:
*None*
Sets:
*server_config:* dict(), updates cherrypy.config
*conf:* dict(), see Cherrypy docs for more
*cherrypy.config:* dict(), see Cherrypy docs for more
Returns:
*N/A*
Raises:
*Exception* If server is unable to start
'''
server_config={
'server.socket_host': config.Conf.val['_server_bind_ip'],
'server.socket_port': config.Conf.val['_server_port']
}
cherrypy.config.update(server_config)
conf = {
'/': {
'tools.sessions.on': True,
'tools.staticdir.root': os.path.abspath(config.SCRIPT_PATH + '/')
},
'/static': {
'tools.staticdir.on': True,
'tools.staticdir.dir': './static'
}
}
cherrypy.tree.mount(index.landingPage(), "/", conf)
cherrypy.tree.mount(voltage.EnergyInfo(), "/energy", conf)
cherrypy.tree.mount(weather.WeatherInfo(), "/weather", conf)
cherrypy.tree.mount(status.StatusInfo(), "/status", conf)
cherrypy.tree.mount(dynamic.Expose(), "/data", conf)
cherrypy.tree.mount(temphumi.PuerhInfo(), "/temphumi", conf)
cherrypy.engine.start()
cherrypy.engine.block()
if __name__ == '__main__':
try:
main_server_loop()
except Exception as e:
raise e