-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathmain.py
100 lines (73 loc) · 2.78 KB
/
main.py
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# Dependencies
from os.path import isfile
from os import environ, makedirs, getcwd
from dotenv import dotenv_values
from discord.ext.commands import Bot, DefaultHelpCommand
from discord import Game
from pathlib import Path
from discord import Intents
import logging
# Local imports
from src.cogs.chat import ChatCog
from src.cogs.reddit import RedditCog
from src.cogs.trivia import TriviaCog
from src.cogs.deepfry import DeepfryCog
from src.cogs.memes import MemeCog
from src.cogs.drinking import DrinkingCog
from src.cogs.audio import AudioCog
from src.util.start_up import cleanup
class BotClient(Bot):
async def on_ready(self):
await self.add_cog(ChatCog(self))
await self.add_cog(RedditCog(self))
await self.add_cog(TriviaCog(self))
await self.add_cog(DeepfryCog(self))
await self.add_cog(MemeCog(self))
await self.add_cog(DrinkingCog(self))
await self.add_cog(AudioCog(self))
activity = Game(name="my ass as a drum.", type=1)
await self.change_presence(activity=activity)
print(f"Logged in as {self.user}")
def __init__(self, command_prefix, help_command=..., description=None, **options):
super().__init__(
command_prefix,
help_command=help_command,
description=description,
**options, intents=Intents.all()
)
def setup_logger():
folder_location = Path(f"{getcwd()}/db/logging")
makedirs(folder_location, exist_ok=True)
file_path = folder_location / "discord.log"
logger = logging.getLogger('discord')
logger.setLevel(logging.DEBUG)
handler = logging.FileHandler(filename=file_path, encoding='utf-8', mode="w+")
handler.setFormatter(logging.Formatter('%(asctime)s:%(levelname)s:%(name)s: %(message)s'))
logger.addHandler(handler)
def main():
cleanup()
setup_logger()
if not isfile(".env"):
print(
f"\n\nThere was no (valid) '.env' file found. Please make sure it is there.\n\n Attempting to get env variables"
)
COMMAND_PREFIX = environ["COMMAND_PREFIX"] or "!"
BOT_TOKEN = environ["BOT_TOKEN"]
DESCRIPTION = environ["DESCRIPTION"] or "Discord.py bot Ver 3.0 by Tjallo"
else:
config = dotenv_values(".env")
# Default properties
COMMAND_PREFIX = config.get("COMMAND_PREFIX") or "!"
BOT_TOKEN = config.get("BOT_TOKEN") or None
DESCRIPTION = config.get("DESCRIPTION") or "Discord.py bot Ver 3.0 by Tjallo"
HELP_COMMAND = DefaultHelpCommand()
HELP_COMMAND.sort_commands = True
bot: BotClient = BotClient(
command_prefix=COMMAND_PREFIX,
help_command=HELP_COMMAND,
description=DESCRIPTION,
case_insensitive=True,
)
bot.run(BOT_TOKEN)
if __name__ == "__main__":
main()