You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
exclamation-mark-charity/exclamation_mark_charity/runner.py

59 lines
1.7 KiB
Python

import os
from pathlib import Path
import interactions
from dotenv import load_dotenv
from interactions import Client, Intents, ClientPresence, PresenceActivity, PresenceActivityType
from interactions.ext import wait_for
from exclamation_mark_charity.constants import TWITCH_CHANNEL
from exclamation_mark_charity.logger_factory import LoggerFactory
def main():
logger = LoggerFactory.get_logger(__name__)
# Setup dotenv()
logger.info("---------------------------------------------------------------")
logger.debug("Loading Environment Variables...")
load_dotenv()
logger.debug("Finished Loading Environment Variables!")
# Setup Bot
logger.debug("Registering Client...")
bot = Client(
token=os.environ.get("CHARITY_BOT_TOKEN"),
intents=Intents.ALL,
presence=ClientPresence(
activities=[
PresenceActivity(
name="!charity",
type=PresenceActivityType.STREAMING,
url=TWITCH_CHANNEL
)
],
status=interactions.StatusType.ONLINE
)
)
logger.debug("Finished Registering Client!")
# Apply hooks to the class - wait_for(), wait_for_component()
# setup(bot, add_method=True)
wait_for.setup(bot, add_method=True)
# Load cogs
logger.debug("Loading Cogs...")
for folder in os.listdir("exclamation_mark_charity/modules"):
if os.path.exists(Path("exclamation_mark_charity/modules", folder, "cog.py")):
bot.load(f"modules.{folder}.cog")
logger.debug(f"Cog '{folder}' Successfully Loaded!")
logger.debug("All Cogs Loaded!")
# Run
logger.info("Bot Online!")
bot.start()
if __name__ == '__main__':
main()