import logging from persistence import local_io, database logger = logging.getLogger(__name__) class Launcher: """Template for launching collections of modules""" def __init__(self, **modules): """""" self.persistence = local_io.PersistentDict("persistence/prst.json") self.db_utils = database.DatabaseUtils self.modules = modules logger.info(self.__class__.__name__ + " initialized") if len(self.persistence) == 0: self.init_persistence() self.persistence["global"]["reboots"] += 1 self.launch_modules() def launch_modules(self): for module in self.modules.values(): logger.info("Starting module {}".format(module.__class__.__name__)) module.modules = self.modules module.persistence = self.persistence module.db_utils = self.db_utils() module.start() def init_persistence(self): logger.warning("No persistence found, created a new one") self.persistence["global"] ={ "lists" : {}, "reboots": 0 } for m_name in self.modules.keys(): data = {} if m_name == "bot": data = { "send_activity" : {"hour":[], "count":[]}, "receive_activity" : {"hour":[], "count":[]}, "execute_activity" : {"hour":[], "count":[]}, "log": [], "chat_members": {}, "aliases" : {} } if m_name == "clock": data = { "sensors" : { "time" : [], "temperature":[], "humidity":[], "brightness" : [], } } self.persistence[m_name] = data