messy marvin
hisoka
python
3 years ago
3.5 kB
15
Indexable
import asyncio
import sqlite3
import contextlib
import json
import logging
import os
import platform
import random
import string
import time
import traceback
from pathlib import Path
import pathlib
import discord
from colorama import Back, Fore, Style
from discord import app_commands, ui
from discord.ext import commands
import settings
logger = settings.logging.getLogger("bot")
def run():
class PersistentViewBot(commands.Bot):
def __init__(self):
super().__init__(
command_prefix="-",
intents=discord.Intents().all(),
activity=discord.Activity(
type=discord.ActivityType.listening, name="xxx"
),
status=discord.Status.do_not_disturb,
)
# VERIFY BUTTON WILL ALWAYS BE ACTIVE
async def setup_hook(self) -> None:
self.add_view(VerifyButton())
bot = PersistentViewBot()
@bot.event
async def on_ready():
global verify_config
global verify_channel
global verify_role
global verify_guild
prfx = (
Fore.BLUE
+ time.strftime("%H:%M:%S PST", time.localtime())
+ Back.RESET
+ Fore.WHITE
+ Style.BRIGHT
)
print(f"{Fore.WHITE} --------------------------------------------------- ")
print(f"{prfx} Loading config... ")
# db = sqlite3.connect("blank.sqlite")
# cursor = db.cursor()
# cursor.execute("CREATE TABLE IF NOT EXISTS")
# LOAD COGS
# for cog_file in settings.COGS_DIR.glob("*.py"):
# if cog_file != "__init__.py":
# await bot.load_extension(f"cogs.{cog_file.name[:-3]}")
for filepath in Path("./cogs").glob("**/*.py"):
cog_name = Path(filepath).stem
try:
await bot.load_extension(f"cogs.{cog_name}")
except:
print(f"Error loading cog {cog_name}")
# LOAD COMMANDS
for cmd_file in settings.CMDS_DIR.glob("*.py"):
if cmd_file.name != "__init__.py":
await bot.load_extension(f"cmds.{cmd_file.name[:-3]}")
synced = await bot.tree.sync()
try:
verify_config = json.loads(open("verify_config.json", "r").read())
except Exception:
print(f"{prfx} No config found! Run -setup in your server!")
else:
verify_guild = bot.get_guild(verify_config["guild"])
verify_channel = bot.get_channel(verify_config["channel"])
verify_role = verify_guild.get_role(verify_config["role"])
print(f"{prfx} Config loaded! ")
print(f"{prfx} Discord Version {Fore.LIGHTYELLOW_EX}{discord.__version__}")
print(
f"{prfx} Python Version {Fore.LIGHTYELLOW_EX}{str(platform.python_version())}"
)
print(f"{prfx} Synced {Fore.LIGHTYELLOW_EX}{len(synced)} Slash Command(s)")
print(
f"{prfx} Logged in as {Fore.LIGHTMAGENTA_EX}{bot.user}{Fore.WHITE} | {Fore.LIGHTRED_EX}(ID: #{bot.user.id})"
)
print(f"{prfx}{Fore.GREEN} Bot is ready to go!")
print(f"{Fore.WHITE} --------------------------------------------------- ")
bot.run(settings.DISCORD_TOKEN, root_logger=True)
if __name__ == "__main__":
run()
Editor is loading...