def init_file(target_logger): """Adds a file handler to a logger. Args: target_logger (logging.logger): The logger to add the file handler to. """ # Create logging directory if not os.path.isdir(config.LOGS_DIR): os.mkdir(config.LOGS_DIR) # Set log level if "log_level" not in data.cache: data.cache["log_level"] = "INFO" data.push() target_logger.setLevel(data.cache["log_level"]) # Setup format formatter = logging.Formatter(config.LOG_FORMAT, style="{") # Setup handlers handler = logging.FileHandler("{}/{}.log".format(config.LOGS_DIR, time.time()), encoding="UTF-8") handler.setFormatter(formatter) # Add handler target_logger.addHandler(handler)
def guild_update(guild_id): """Updates a guild's info in the database. Args: guild_id (int): The guild to update. """ logger.debug("Updating guild {}".format(guild_id)) # Add the guild to database if it doesn't yet exist if str(guild_id) not in data.cache["guilds"]: logger.debug("Adding guild {} to database".format(guild_id)) data.cache["guilds"][str(guild_id)] = config.GUILD_TEMPLATE # Register slots for per-guild module specific data module_names = moduledb.get_names() for module_name in module_names: info = moduledb.get_import_specific("__info", module_name) try: if info.DATA_GUILD: data.cache["guilds"][str(guild_id)]["modules"][module_name] = info.DATA_GUILD except AttributeError: logger.debug("Guild data slot not requested for " + module_name) print(data) data.push()
def init_print(target_logger): """Adds a print handler to a logger. Args: target_logger (logging.logger): The logger to add the print handler to. """ # Create logging directory if not os.path.isdir(config.LOGS_DIR): os.mkdir(config.LOGS_DIR) # Set log level if "log_level" not in data.cache: data.cache["log_level"] = "INFO" data.push() target_logger.setLevel(data.cache["log_level"]) # Setup format formatter = logging.Formatter(config.LOG_FORMAT, style="{") # Setup handler handler = UnicodeStreamHandler(sys.stdout, sys.stderr) handler.setFormatter(formatter) # Add handler target_logger.addHandler(handler)
def guild_remove(guild_id): """Removes a guild from the database. Args: guild_id (int): The guild to remove. """ logger.debug("Removing guild {} from database".format(guild_id)) try: data.cache["guilds"].pop(str(guild_id)) except KeyError: logger.warning("Guild {} is nonexistent in database".format(guild_id)) else: data.push()
def start(self): """Start Modis and log it into Discord.""" self.button_text.set("Stop Modis") self.state = "on" logger.warning("Starting Modis") statuslog = logging.getLogger("globalstatus") statuslog.info("1") data.cache["keys"]["discord_token"] = self.token.get() data.push() from modis import main loop = asyncio.new_event_loop() asyncio.set_event_loop(loop) self.thread = threading.Thread(target=main.start, args=[loop]) self.thread.start()
def tree_edit(self): if not messagebox.askokcancel(title="Edit value", message="Set {} to:\n{}".format( self.selected_key_var.get(), self.selected_val_var.get())): # User cancelled value edit messagebox.showinfo(title="Edit value", message="Value not changed.") return from modis.tools import data pathstr = "" for item in self.selected_path: pathstr += """["{}"]""".format(item) logger.warning("Updating {} to {}".format( self.selected_key_var.get(), self.selected_val_var.get())) exec("data.cache{} = self.selected_val_var.get()".format(pathstr)) data.push() self.tree_update() messagebox.showinfo(title="Edit value", message="Edit successful.")
def write_volume(self): """Writes the current volume to the data.json""" # Update the volume data.cache["guilds"][str( self.guild_id)]["modules"]["music"]["volume"] = self.volume data.push()