From 13bf6eee75c03f6a786fcb0d0a3ec86cf32bd593 Mon Sep 17 00:00:00 2001 From: Marshall Hallenbeck Date: Thu, 16 May 2024 17:31:58 -0400 Subject: [PATCH] feat(modules): add module helper for logging and loot saving --- nxc/helpers/modules.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 nxc/helpers/modules.py diff --git a/nxc/helpers/modules.py b/nxc/helpers/modules.py new file mode 100644 index 00000000..fe415912 --- /dev/null +++ b/nxc/helpers/modules.py @@ -0,0 +1,35 @@ +from nxc.paths import NXC_PATH +from os import makedirs +import logging +import datetime + + +def create_log_dir(module_name): + makedirs(f"{NXC_PATH}/logs/{module_name}", exist_ok=True) + +def create_loot_dir(module_name): + makedirs(f"{NXC_PATH}/loot/{module_name}", exist_ok=True) + +def generate_module_log_file(module_name): + create_log_dir(module_name) + return f"{NXC_PATH}/logs/{module_name}/{datetime.now().strftime('%Y-%m-%d')}.log" + +def create_module_logger(module_name): + create_log_dir(module_name) + log_file = generate_module_log_file(module_name) + module_logger = logging.getLogger(module_name) + module_logger.propagate = False + module_logger.setLevel(logging.INFO) + module_file_handler = logging.FileHandler(log_file) + module_file_handler.setFormatter(logging.Formatter("%(asctime)s [%(levelname)s] %(message)s")) + module_logger.addHandler(module_file_handler) + return module_logger + +def add_loot_data(module_name, filename, data): + create_loot_dir(module_name) + loot_file = get_loot_data_filepath(module_name, filename) + with open(loot_file, "a") as file: + file.write(data) + +def get_loot_data_filepath(module_name, filename): + return f"{NXC_PATH}/loot/{module_name}/{filename}"