コード例 #1
0
ファイル: log.py プロジェクト: ModisWorks/modis
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)
コード例 #2
0
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()
コード例 #3
0
ファイル: log.py プロジェクト: ModisWorks/modis
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)
コード例 #4
0
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()
コード例 #5
0
ファイル: core.py プロジェクト: ModisWorks/modis
        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()
コード例 #6
0
        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.")
コード例 #7
0
 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()