# functionality import bot.main import clock.main import dashboard.main # wrapper import wrapper # misc. from threading import Thread import shelve class Launcher(): """Launches all other submodules""" def __init__(self): """""" self.persistence = shelve.open('persistence/prst.db', writeback=True) self.init_persistence() # TODO populate the persistence self.bot_module = bot.main.ChatBot(name="ChatterBot", version="2.1", prst=self.persistence) self.clock_module = clock.main.ClockFace(prst=self.persistence) self.threads = [] self.threads.append(Thread(target=self.chatbot)) self.threads.append(Thread(target=self.clock)) for i in self.threads: i.start() def clock(self): self.clock = wrapper.ClockWrapper(self.clock_module, self.bot_module) def chatbot(self): self.bot = wrapper.BotWrapper(self.bot_module, self.clock_module) def dashboard(self): self.dashboard = wrapper.DashBoardWrapper(self.dashboard_module, self.bot_module) def init_persistence(self): self.persistence["bot"] = { "messages_read": 0, "messages_sent": 0, "commands_executed": 0, "photos_sent": 0, "log": [], "chat_members": {}, "reboots": 0 } self.persistence["clock"] = {} self.persistence["dashboard"] = {} self.persistence["global"] = { "lists" : {} } ######################################################################## ## Aand liftoff! Launcher()