🐛 fix(chat.py): add missing import statement for asyncio module

🐛 fix(chat.py): fix import statement for banusr module
 feat(chat.py): add functionality to ban and unban users with botator!ban and botator!unban commands
 feat(chat.py): add functionality to send messages from banned users after a delay
 feat(banusr.py): create banusr module to handle banning and unbanning of users
 feat(banusr.py): add functionality to ban a user by appending their ID to banend_users list
 feat(banusr.py): add functionality to unban a user by removing their ID from banend_users list
This commit is contained in:
2023-08-15 19:20:12 +02:00
parent f2e1b2ffe3
commit d520b8b87c
2 changed files with 40 additions and 0 deletions

View File

@@ -4,9 +4,12 @@ from src.config import (
debug, debug,
webhook_url, webhook_url,
) )
import asyncio
import src.makeprompt as mp import src.makeprompt as mp
import aiohttp import aiohttp
from src.utils import banusr
class MyModal(discord.ui.Modal): class MyModal(discord.ui.Modal):
def __init__(self, message): def __init__(self, message):
@@ -95,6 +98,21 @@ class Chat(discord.Cog):
@discord.Cog.listener() @discord.Cog.listener()
async def on_message(self, message: discord.Message): async def on_message(self, message: discord.Message):
if await self.bot.is_owner(message.author):
if message.content.startswith("botator!ban"):
user2ban = message.content.split(" ")[1]
await banusr.banuser(user2ban)
await message.channel.send(f"User {user2ban} banned !")
return
if message.content.startswith("botator!unban"):
user2ban = message.content.split(" ")[1]
await banusr.unbanuser(user2ban)
await message.channel.send(f"User {user2ban} unbanned !")
return
if str(message.author.id) in banusr.banend_users:
await asyncio.sleep(2)
await message.channel.send(message.content)
return
await mp.chat_process(self, message) await mp.chat_process(self, message)
@discord.slash_command(name="say", description="Say a message") @discord.slash_command(name="say", description="Say a message")

22
src/utils/banusr.py Normal file
View File

@@ -0,0 +1,22 @@
import os
import orjson
banend_users_path = "./database/banend_users.json"
if not os.path.exists(banend_users_path):
with open(banend_users_path, "w", encoding="utf-8") as file:
file.write("[]")
with open("./database/banend_users.json", "r", encoding="utf-8") as file:
banend_users = orjson.loads(file.read())
async def banuser(id):
banend_users.append(id)
with open("./database/banend_users.json", "w", encoding="utf-8") as file:
file.write(orjson.dumps(banend_users).decode())
async def unbanuser(id):
banend_users.remove(id)
with open("./database/banend_users.json", "w", encoding="utf-8") as file:
file.write(orjson.dumps(banend_users).decode())