diff --git a/program/utils/chat_author.py b/program/utils/chat_author.py new file mode 100644 index 0000000..b28b9df --- /dev/null +++ b/program/utils/chat_author.py @@ -0,0 +1,40 @@ +""" chat utilities """ + +from functools import wraps + +from driver.veez import bot +from config import SUDO_USERS +from pyrogram.types import Message +from program.admins import member_permissions +from pyrogram.errors.exceptions.forbidden_403 import ChatWriteForbidden + + +async def authorised(m: Message): + chatID = message.chat.id + return 0 + + +async def unauthorised(m: Message): + chatID = m.chat.id + text = ( + "You're missing admin rights to use this command." + + f"\n\n» ❌ can_manage_voice_chats" + ) + try: + await m.reply_text(text) + except ChatWriteForbidden: + await bot.leave_chat(chatID) + return 1 + + +async def adminsOnly(permission, m: Message): + chatID = m.chat.id + if not m.from_user: + if m.sender_chat: + return await authorised(m) + return await unauthorised(m) + userID = m.from_user.id + permissions = await member_permissions(chatID, userID) + if userID not in SUDO_USERS and permission not in permissions: + return await unauthorised(m) + return await authorised(m)