Implemented basic functionality to bring the bot online

This commit is contained in:
2024-10-11 18:32:21 +02:00
parent 6542603771
commit 57282d9c56
4 changed files with 60 additions and 1 deletions
+1
View File
@@ -1,6 +1,7 @@
# Custom additions # Custom additions
logs/* logs/*
config/*.ini config/*.ini
pastebin.txt
# Byte-compiled / optimized / DLL files # Byte-compiled / optimized / DLL files
__pycache__/ __pycache__/
+2
View File
@@ -0,0 +1,2 @@
[DISCORD]
TOKEN = <PLACE YOUR DISCORD TOKEN FROM THE DEV PORTAL HERE>
+51
View File
@@ -0,0 +1,51 @@
from datetime import datetime
startup = datetime.now().timestamp()
# Initialize the logger
from utils.logger.custom_logging import Custom_Logger
Custom_Logger.initialize()
import logging
app_logger = logging.getLogger("app")
from utils.adv_configparser import Advanced_ConfigParser
from utils.datetime_tools import get_elapsed_time_smal, get_elapsed_time_big
import discord
from discord.ext import commands
from pathlib import Path
import re
source_path = Path(__file__).resolve()
base_path = source_path.parents[1]
app_logger.info(f"Using the following path as entrypoint: '{base_path}'")
intents = discord.Intents.default()
intents.messages = True
class MyBot(commands.Bot):
def __init__(self):
super().__init__(command_prefix=None, help_command=None, intents=intents)
bot = MyBot()
bot_config = Advanced_ConfigParser(Path.joinpath(base_path, "config", "bot.ini"))
if re.match(r'[A-Za-z\d]{24}\.[\w-]{6}\.[\w-]{27}', bot_config["DISCORD"]["TOKEN"]):
app_logger.critical("Bot (config/bot.ini) configuration invalid, please set a valid token")
quit(1)
elif bot_config.compare_to_template() not in ("equal", "config_minus"):
app_logger.critical("Bot (config/bot.ini) configuration is missing some parts. Make sure it at least has all the same keys as the template")
quit(1)
else:
app_logger.info("Bot configuration valid, continuing with startup")
@bot.event
async def on_ready():
app_logger.info(f"Successfully logged in (after {get_elapsed_time_smal(datetime.now().timestamp() - startup)}) as {bot.user}")
try:
bot.run(bot_config["DISCORD"]["TOKEN"], log_handler = None)
except discord.errors.LoginFailure:
app_logger.critical("Improper token has been passed. Aborting startup")
quit(1)
app_logger.info("Quitting application ...")
app_logger.info(f"Exiting. Application ran for {get_elapsed_time_big(datetime.now().timestamp() - startup)}")
+6 -1
View File
@@ -13,4 +13,9 @@ def get_elapsed_time_ms(timestamp:float) -> str:
def get_elapsed_time_smal(timestamp:float) -> str: def get_elapsed_time_smal(timestamp:float) -> str:
"""Convert an timestamp into an predefined elapsed time format (00sec 000ms)""" """Convert an timestamp into an predefined elapsed time format (00sec 000ms)"""
time_elapsed = datetime.fromtimestamp(timestamp) time_elapsed = datetime.fromtimestamp(timestamp)
return f"{time_elapsed.second:02}sec {time_elapsed.microsecond // 1000:03}ms" return f"{time_elapsed.second:02}sec {time_elapsed.microsecond // 1000:03}ms"
def get_elapsed_time_big(timestamp:float) -> str:
"""Convert an timestamp into an predefined elapsed time format (00sec 000ms)"""
time_elapsed = datetime.fromtimestamp(timestamp)
return f"{time_elapsed.day - 1}days {time_elapsed.hour - 1}hrs {1 if time_elapsed.minute == 0 else time_elapsed.minute}min"