From 924bf210f2187398afe664830e77e628b66a7ab7 Mon Sep 17 00:00:00 2001 From: Firepup Sixfifty Date: Wed, 5 Feb 2025 08:31:40 -0600 Subject: [PATCH] add funcs.py, small formatting changes, debug only logs --- funcs.py | 4 ++++ logs.py | 3 +-- main.py | 14 ++++++++++++-- 3 files changed, 17 insertions(+), 4 deletions(-) create mode 100644 funcs.py diff --git a/funcs.py b/funcs.py new file mode 100644 index 0000000..8b696b0 --- /dev/null +++ b/funcs.py @@ -0,0 +1,4 @@ +def toBool(thing: any) -> bool: + if type(thing) == str: + return thing.lower() in ["yes", "true", "on", "one", "1", "y", "t"] + return bool(thing) diff --git a/logs.py b/logs.py index e391b48..86d93dd 100644 --- a/logs.py +++ b/logs.py @@ -9,7 +9,7 @@ def log( level: str = "LOG", origin: str = None, # pyright: ignore[reportArgumentType] time: Union[dt, str] = "now", -) -> bytes: +) -> None: message = message.strip() if level in ["EXIT", "CRASH", "FATAL", "ERROR"]: stream = stderr @@ -43,4 +43,3 @@ def log( file=stream, flush=True, ) - return (log[5:] + "\r\n").encode("utf8") diff --git a/main.py b/main.py index 73a4167..64f31ea 100644 --- a/main.py +++ b/main.py @@ -4,6 +4,7 @@ from slack_bolt.adapter.socket_mode import SocketModeHandler from dotenv import load_dotenv from logs import log from traceback import format_exc +from funcs import toBool load_dotenv() @@ -13,12 +14,17 @@ for requiredVar in ["SLACK_BOT_TOKEN", "SLACK_SIGNING_SECRET", "PORT"]: f'Missing required environment variable "{requiredVar}". Please create a .env file in the same directory as this script and define the missing variable.' ) -print("[INFO] Establishing a connection to slack...", flush=True) +debug = toBool(os.environ.get("DEBUG")) +if debug: + logging.basicConfig(level=logging.DEBUG) + +log("Establishing a connection to slack...") app = App( token=os.environ.get("SLACK_BOT_TOKEN"), signing_secret=os.environ.get("SLACK_SIGNING_SECRET"), ) client = app.client +log("Connected to slack") @app.function("convert_user_to_channel") @@ -28,6 +34,8 @@ def useridToChannel( try: ids = [inputs["user_id"], inputs["workflow_id"]] channel_id = client.conversations_open(users=ids)["channel"]["id"] + if debug: + log(f"{ids} -> {channel_id}", "DEBUG") complete({"channel_id": channel_id}) except: log(format_exc(), "ERROR") @@ -47,8 +55,9 @@ def getMessageContent( oldest=inputs["message_ts"], limit=1, ) - message = result["messages"][0]["text"] + if debug: + log(f"{inputs['channel_id']} + {inputs['message_ts']} ->\n" + message) complete({"message_content": message}) except: log(format_exc(), "ERROR") @@ -58,4 +67,5 @@ def getMessageContent( if __name__ == "__main__": + log(f"Starting bot on port {os.environ.get('PORT')}") app.start(port=int(os.environ.get("PORT")))