Discord/cogs/logger.py

68 lines
2.1 KiB
Python
Raw Normal View History

2023-05-06 18:08:35 +03:00
from discord import Member, Message
from discord import utils as ds_utils
from discord.ext import commands
2024-12-16 00:36:48 +02:00
from libbot import config_get
2024-06-23 13:05:03 +03:00
from libbot.pycord.classes import PycordBot
2023-05-06 18:08:35 +03:00
from modules.database import col_users
class Logger(commands.Cog):
2024-06-23 13:05:03 +03:00
def __init__(self, client: PycordBot):
2023-05-06 18:08:35 +03:00
self.client = client
@commands.Cog.listener()
async def on_message(self, message: Message):
if (
(message.author != self.client.user)
2024-12-16 00:21:41 +02:00
and (message.author.bot is False)
and (message.author.system is False)
):
2024-12-16 17:25:35 +02:00
if (await col_users.find_one({"user": message.author.id})) is None:
2023-05-06 18:08:35 +03:00
user = {}
defaults = await config_get("user", "defaults")
2023-05-06 18:08:35 +03:00
user["user"] = message.author.id
for key in defaults:
user[key] = defaults[key]
2024-12-16 17:25:35 +02:00
await col_users.insert_one(document=user)
2023-05-06 18:08:35 +03:00
@commands.Cog.listener()
async def on_member_join(self, member: Member):
welcome_chan = ds_utils.get(
self.client.get_guild(await config_get("guild")).channels,
id=await config_get("welcome", "channels", "text"),
)
rules_chan = ds_utils.get(
self.client.get_guild(await config_get("guild")).channels,
id=await config_get("rules", "channels", "text"),
)
if (
(member != self.client.user)
2024-12-16 00:21:41 +02:00
and (member.bot is False)
and (member.system is False)
):
await welcome_chan.send(
content=(await config_get("welcome", "messages")).format(
mention=member.mention, rules=rules_chan.mention
)
)
2023-05-06 18:08:35 +03:00
2024-12-16 17:25:35 +02:00
if (await col_users.find_one({"user": member.id})) is None:
2023-05-06 18:08:35 +03:00
user = {}
defaults = await config_get("user", "defaults")
2023-05-06 18:08:35 +03:00
user["user"] = member.id
for key in defaults:
2023-05-06 19:31:23 +03:00
user[key] = defaults[key]
2024-12-16 17:25:35 +02:00
await col_users.insert_one(document=user)
2024-06-23 13:05:03 +03:00
def setup(client: PycordBot):
client.add_cog(Logger(client))