File size: 1,456 Bytes
c7dfe8b |
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 |
# <============================================== 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 =======================================================>
|