# <============================================== IMPORTS =========================================================> from typing import Callable from pyrogram.enums import ChatMemberStatus from pyrogram.types import Message from Mikobot import DEV_USERS, app # <=======================================================================================================> # <================================================ FUNCTION =======================================================> def can_restrict(func: Callable) -> Callable: async def non_admin(_, message: Message): if message.from_user.id in DEV_USERS: return await func(_, message) check = await app.get_chat_member(message.chat.id, message.from_user.id) if check.status not in [ChatMemberStatus.OWNER, ChatMemberStatus.ADMINISTRATOR]: return await message.reply_text( "ยป You're not an admin, Please stay in your limits." ) admin = ( await app.get_chat_member(message.chat.id, message.from_user.id) ).privileges if admin.can_restrict_members: return await func(_, message) else: return await message.reply_text( "`You don't have permissions to restrict users in this chat." ) return non_admin # <================================================ END =======================================================>