- new cog commands - new voice cog - new requirements.txt - adjusted readme - added Dockerfile for faster deployment (still WIP) - other general things
87 lines
2.2 KiB
Python
87 lines
2.2 KiB
Python
"""
|
|
AquaBot created by Marc.
|
|
|
|
This project uses discordpy:
|
|
https://discordpy.readthedocs.io/en/latest/intro.html
|
|
"""
|
|
|
|
# IMPORTS - external
|
|
import discord
|
|
from discord.ext import commands
|
|
import logging
|
|
|
|
# IMPORTS - internal
|
|
import loadconfig
|
|
|
|
# LOGGING
|
|
logger = logging.getLogger("discord")
|
|
# https://docs.python.org/3/library/logging.html#levels
|
|
logger.setlevel(logging.INFO)
|
|
handler = logging.FileHandler(
|
|
filename="discord_%(asctime)s.log",
|
|
encoding="utf-8",
|
|
mode="w"
|
|
)
|
|
handler.setFormatter(
|
|
logging.Formatter("%(asctime)s:%(levelname)s:%(name)s: %(message)s")
|
|
)
|
|
logger.addHandler(handler)
|
|
|
|
# SOME DATA THAT CAN BE USED LATER
|
|
metadata = {
|
|
"name": f"{bot.user.name} - {bot.user.id}",
|
|
"admin": f"{self.bot.AppInfo.owner}",
|
|
"prefix": f"{loadconfig.__token__}",
|
|
"discordpy_version": f"{discord.__version__}",
|
|
"python_version": f"{platform.python_version}",
|
|
"os": f"{platform.system()} {platform.release()} {platform.version()}"
|
|
}
|
|
|
|
# INIT THE BOT
|
|
bot = commands.Bot(
|
|
command_prefix=loadconfig.__prefix__,
|
|
description="Holy Goddess Aqua!"
|
|
)
|
|
|
|
# LOAD COGS SPECIFIED IN 'config/cogs.py'
|
|
for cog in loadconfig.__cogs__:
|
|
try:
|
|
bot.load_extension(cog)
|
|
except Exception as e:
|
|
print(f"ERROR: {type(e).__name__} - {e}")
|
|
else:
|
|
print(f"SUCCESS: Loaded {cog}")
|
|
|
|
# BOT STARTING EVENT
|
|
@bot.event
|
|
async def on_ready():
|
|
"""
|
|
This prints some information about the bot, while starting up
|
|
|
|
Inspired by:
|
|
https://gist.github.com/EvieePy/d78c061a4798ae81be9825468fe146be
|
|
"""
|
|
|
|
startup = f"""
|
|
Bot Name: {metadata["name"]}\n
|
|
Admin: {metadata["admin"]}\n
|
|
Command Prefix: {metadata["prefix"]}\n
|
|
discord.py Version: {metadata["discordpy_version"]}\n
|
|
python Version: {metadata["python_version"]}\n
|
|
OS: {metadata["os"]}\n
|
|
"""
|
|
print(startup)
|
|
|
|
status = f"Hentai | {loadconfig.__prefix__}aquabot"
|
|
activity = discord.Activity(name=status, type=discord.ActivityType.watching)
|
|
await bot.change_presence(activity=activity)
|
|
|
|
print(f"AquaBot is ready!\n")
|
|
|
|
# START BOT
|
|
bot.run(
|
|
loadconfig.__token__,
|
|
bot=True,
|
|
reconnect=True
|
|
)
|