Source code for chttpd

#!/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


[docs]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(voltage.EnergyInfo(), "/", 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