mirror of https://github.com/stijndcl/didier
42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
|
from discord.ext import commands, ipc
|
||
|
from settings import HOST_IPC
|
||
|
import os
|
||
|
|
||
|
|
||
|
class Didier(commands.Bot):
|
||
|
"""
|
||
|
Main Bot class for Didier
|
||
|
"""
|
||
|
def __init__(self, *args, **kwargs):
|
||
|
super().__init__(*args, **kwargs)
|
||
|
|
||
|
self._host_ipc = HOST_IPC
|
||
|
|
||
|
# IPC Server
|
||
|
# TODO secret key
|
||
|
self.ipc = ipc.Server(self, secret_key="SOME_SECRET_KEY") if self._host_ipc else None
|
||
|
|
||
|
# Cogs that should be loaded before the others
|
||
|
self._preload = ("ipc", "utils", "failedchecks", "events",)
|
||
|
|
||
|
# Remove default help command
|
||
|
self.remove_command("help")
|
||
|
|
||
|
self.init_extensions()
|
||
|
|
||
|
def init_extensions(self):
|
||
|
# Load initial extensions
|
||
|
for ext in self._preload:
|
||
|
self.load_extension(f"cogs.{ext}")
|
||
|
|
||
|
# Load all remaining cogs
|
||
|
for file in os.listdir("./cogs"):
|
||
|
if file.endswith(".py") and not (file.startswith(self._preload)):
|
||
|
self.load_extension("cogs.{}".format(file[:-3]))
|
||
|
|
||
|
async def on_ipc_ready(self):
|
||
|
print("IPC server is ready.")
|
||
|
|
||
|
async def on_ipc_error(self, endpoint, error):
|
||
|
print(endpoint, "raised", error)
|