Задать вопрос
og_s_lead
@og_s_lead
Студент который только начал в IT

Как написать бота для вк с функциями администрирования беседы, а именно кик, бан, мут и предупреждение?

Если подробнее про команды то после 3 предов участник получает бан, бан это запрет на нахождение участника и даже в случае если его пригласят в беседу то бот его автоматом исключит, возможность снимать преды и баны, с киком думаю всё ясно и мут это запрет писать и чтобы сообщения человека в муте удалялись.
Нигде не могу найти инфу о том как такие функции сделать, помогите пожалуйста
P.S. мне бы ещё как то эти команды ограничить от обычных пользователей (то есть эти кмд только для админов, и админов надо как то назначать)
  • Вопрос задан
  • 2135 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
@RINAMI
Занимаюсь монтажом и дизайном. PSD,AEX,VEG.
Функция кика реализуется очень просто:
def kicker(id):
     vk.method("messages.removeChatUser", {'chat_id': id, 'user_id': mes.split(' ')[1]})
#Вызов
 if mes.split(' ')[0] == 'кик':
    mes = event.object.message['text']
    id = event.chat_id
    kicker(id)

Насчёт бана мута и предупреждений. Чтобы реализовать функцию бана потребуется txt файл, пример:
Добавляете айди пользователя в txt файл и проверяете:
#Функция бана
def ban(id, user_id):
      vk.method("messages.removeChatUser", {'chat_id': id, 'user_id': user_id})
check = open('имя_файла', 'r')
recheck = check.read()
user_id = event.object.message['from_id']
if user_id in recheck :
       ban(id, user_id)

ЛИБО:
Создаём проверку на вступления участника в беседу и новую функцию:
def banagain(id, rinvite_id)
      vk.method("messages.removeChatUser", {'chat_id': id, 'user_id': rinvite_id})
                try:
                    rin = event.message.action['type']
                    rinvite_id = event.message.action['member_id'] 
                except:
                    rinvite_id = -100
                    rin = ''
               if rin == 'chat_invite_user':
                  if rinvite_id in recheck:
                          banagain(id, rinvite_id)

Методы "предов" и мута делаются почти точно также, но там нужен модуль time, да и саму функцию бана можно реализовать с использованием модуля datetime.
P.S с помощью User Long Poll можно сделать так чтобы после бана пользователя уведомляло об этом. Также можно добавлять пользователя в список забаненных с помощью взаимодействия с файлами, можешь почитать тут
Ответ написан
Комментировать
@lob4Noff
Начните с простого, а именно создайте бота, затем постепенно наращивайте функционал бота, тестируйте его в закрытой беседе.

БД можно сделать с помощью csv, куда будут записываться айди пользователей, их статусы на право администрирования и отправки сообщений, количества предупреждений.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы