From 6f65ae0d91abc118820a24d03e4197291ed6f81c Mon Sep 17 00:00:00 2001 From: imcompiling Date: Wed, 19 Mar 2025 08:44:51 -0400 Subject: [PATCH] Update template to be more python-module like. --- $REPO_NAME_SNAKE/__main__.py | 14 ++++++++++++++ $REPO_NAME_SNAKE/{main.py => app.py} | 17 +++-------------- .vscode/launch.json | 7 +++---- Dockerfile | 2 +- 4 files changed, 21 insertions(+), 19 deletions(-) create mode 100644 $REPO_NAME_SNAKE/__main__.py rename $REPO_NAME_SNAKE/{main.py => app.py} (69%) diff --git a/$REPO_NAME_SNAKE/__main__.py b/$REPO_NAME_SNAKE/__main__.py new file mode 100644 index 0000000..083e452 --- /dev/null +++ b/$REPO_NAME_SNAKE/__main__.py @@ -0,0 +1,14 @@ +"""Starts the app for off_cooldown_bot.""" + +import logging + +from .app import run + +nextcord_logger = logging.getLogger("nextcord") +nextcord_logger.setLevel(logging.DEBUG) +nextcord_handler = logging.FileHandler(filename="nextcord.log", encoding="utf-8", mode="w") +nextcord_handler.setFormatter(logging.Formatter("%(asctime)s:%(levelname)s:%(name)s: %(message)s")) +nextcord_logger.addHandler(nextcord_handler) + +if __name__ == "__main__": + run() diff --git a/$REPO_NAME_SNAKE/main.py b/$REPO_NAME_SNAKE/app.py similarity index 69% rename from $REPO_NAME_SNAKE/main.py rename to $REPO_NAME_SNAKE/app.py index 6b06dc2..fc99cfb 100644 --- a/$REPO_NAME_SNAKE/main.py +++ b/$REPO_NAME_SNAKE/app.py @@ -1,6 +1,5 @@ """Main file for bot.""" -import logging import os import nextcord @@ -8,14 +7,8 @@ from nextcord.ext import commands from .settings import settings -nextcord_logger = logging.getLogger("nextcord") -nextcord_logger.setLevel(logging.DEBUG) -nextcord_handler = logging.FileHandler(filename="nextcord.log", encoding="utf-8", mode="w") -nextcord_handler.setFormatter(logging.Formatter("%(asctime)s:%(levelname)s:%(name)s: %(message)s")) -nextcord_logger.addHandler(nextcord_handler) - -def main() -> None: +def run() -> None: """Set config, intents, then connects the bot to discord.""" # Allows privileged intents for monitoring members joining, roles editing, and role assignments # These need to be enabled in the developer portal as well @@ -33,8 +26,8 @@ def main() -> None: bot = commands.Bot(intents=intents) # Get the modules of all cogs whose directory structure is ./cogs/ - for folder in os.listdir("cogs"): - bot.load_extension(f"cogs.{folder}") + for folder in os.listdir(f"${REPO_NAME_SNAKE}/cogs"): + bot.load_extension(f"${REPO_NAME_SNAKE}.cogs.{folder}") @bot.listen() async def on_ready() -> None: @@ -46,7 +39,3 @@ def main() -> None: # Run Discord bot bot.run(settings.params.discord_token) - - -if __name__ == "__main__": - main() diff --git a/.vscode/launch.json b/.vscode/launch.json index 1168456..6f513c6 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -8,9 +8,8 @@ "name": "Python: Module", "type": "debugpy", "request": "launch", - "module": "main", - "justMyCode": true, - "cwd": "$${workspaceFolder}/${REPO_NAME_SNAKE}" + "module": "${REPO_NAME_SNAKE}", + "justMyCode": true } ] -} \ No newline at end of file +} diff --git a/Dockerfile b/Dockerfile index 8702727..8560397 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,4 +9,4 @@ COPY . /home WORKDIR /home RUN uv sync --frozen --no-dev -CMD ["uv", "run", "./${REPO_NAME_SNAKE}/main.py"] +CMD ["uv", "run", "--frozen", "--no-dev", "-m", "${REPO_NAME_SNAKE}"]