СПРОСИ ПРОФИ
👍
−1
👎 -12

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

Бот выполняет роль чат-менеджера в беседах ВК. В боте есть роли «Модератор», «Главный модератор» и «Администратор», пользователь с ролью «Модератор» может исключить с беседы пользователей выше его роли (Главный модератор, администратор), также и пользователь с ролью «Главный модератор» может исключить другого пользователя выше его роли (Администратор). Можете подсказать пример кода, чтобы пользователи с ролями не могли данной командой кикнуть с беседы другого пользователя с вышестоящей ролью.

👍
0
👎 0

А где вы взяли этого бота? Наверное нужно обратиться к программисту, который его писал, чтобы переделал.

👍
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

Задайте свой вопрос программистам –
профессионалам

Сейчас онлайн 75 программистов
Получите ответ профи быстро и бесплатно

Другие вопросы на эту тему:

👍
0
👎 02

Отсортировать информацию по правилу. Java   2 ответа

Отсортировать информацию по правилу: теме теста один раз, далее фамилия тестируемого и результат тестирования.
Ввод производится в список
В формате Фамилия тема_теста/оценка
Пример:
Ввод:
Иванов массивы/5.00,списки/3.49
Сидоров массивы/4.50,классы/5.00
Вывод:
массивы
Иванов 5.00
Сидоров 4.50
списки
Иванов 3.49
классы
Сидоров 5.00
Суть вопроса: Как это можно реализовать что бы тема теста не повторялась

  05 июн 2022 09:51  
👍
0
👎 01

Нужна помощь в решении экономической задачи на Python   1 ответ

Человек копит деньги на депозит. За 3 года он должен собрать 250.000. Для этого он откладывает определенный процент своей зп, который мы должны найти. Как входные данные мы получаем годовую зп и размер суммы, которую он собирает, а также указано, что каждые 6 мес. его зп увеличивается на 7% годовых. Помимо этого он инвестирует свои нынешние накопления (переменная current_savings) как current_savings += (current_savings * 0.04) / 12 и ежемесячно…

  23 май 2022 16:38  
ASK.PROFI.RU © 2020-2024