СПРОСИ ПРОФИ

Ликсонов Павел Александрович

Системные администраторы, программисты, тестировщики, IT-аутсорсинг, разработка на Python, …
Выполнено заказов: 4, отзывов: 3, оценка: 5,00
Россия, Санкт-Петербург
Вопросов0
Ответов 2
Рейтинг 0

Ответы:


👍
0
👎

Ответ на «Как сделать, чтобы бот ВК не мог кикать вышестоящую роль в беседах?»

roles = {
«простой пользователь»: 0,
«Модератор»: 1,
«Главный модератор»: 2,
«Администратор»: 3,
«Создатель»: 4
}


def get_user_role(user: str) → str:
"""возвращает идентификатор роли пользователя по пользовательскому идентификатору"""
pass


def do_kick_user(user: str):
"""собственно само выпинывания пользователя по пользовательскоу иду"""
pass


def kick_user(user: str, by_user: str) → bool:
role_u1 = get_user_role(user)
role_u2 = get_user_role(by_user)

if role_u2 not in roles:
return False # у пользователя нет подходящей роли для совершения чего либо

if role_u1 not in roles:
role_u1 = «простой пользователь» # как вариант дефолного значения в этом случае

if roles[role_u1] >= roles[role_u2]:
# пользователь хочет кикнуть другого пользователя с такой же ролью
# или кого то с превосходящей ролью
# не даем ему этого сделать
return False

# роли обоих пользователей на данный момент определены и пользватель два имеет право кикнуть ппользователя один
# вызываем соответсвенно то что совершает непосредстенно это действие
do_kick_user(user)
return True

ASK.PROFI.RU © 2020-2025