aboutsummaryrefslogtreecommitdiffstats
path: root/arthur/__main__.py
blob: 6f4a68fbc842a9f144d82526b037ab19f97eea36 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
"""Entrypoint for King Arthur."""

import asyncio

import aiohttp
import discord
from discord.ext import commands

import arthur
from arthur.bot import KingArthur
from arthur.config import CONFIG
from arthur.log import logger


async def main() -> None:
    """Entry async method for starting the bot."""
    intents = discord.Intents.default()
    intents.message_content = True
    intents.dm_typing = False
    intents.dm_reactions = False
    intents.invites = False
    intents.webhooks = False
    intents.integrations = False

    async with aiohttp.ClientSession() as session:
        arthur.instance = KingArthur(
            guild_id=CONFIG.guild_id,
            http_session=session,
            command_prefix=commands.when_mentioned_or(*CONFIG.prefixes),
            allowed_roles=(CONFIG.devops_role,),
            case_insensitive=True,
            intents=intents,
        )
        async with arthur.instance as bot:
            await bot.start(CONFIG.token.get_secret_value())


with logger.catch():
    asyncio.run(main())