@gggggooooooooooood

Как сделать, чтобы бот реагировал только на команды определённого человека?

import vk_api
import time
import codecs


vk = vk_api.VkApi(login = 'log', password='pass')
vk.auth()
while True:
        messages = vk.method('messages.getConversations', {'offset': 0, "count": 20, 'filter': 'unread'})
        if messages["count"] >= 1:
            id = messages['items'][0]['last_message']["from_id"]
            body = messages["items"][0]['last_message']['text']
            if body.lower() == "!crush":
                for i in range(10):
                    file = open('f.txt')
                    f = file.read()
                    vk.method('messages.send', {'peer_id': id, 'message': f})
                    file.close()
            elif body.lower() == "...":
                vk.method('messages.send', {'peer_id': id, 'message': "..."})
            else:
                vk.method('messages.send', {'peer_id': id, 'message': "text"})
            time.sleep(1)


Вот код, собственно. Он реагирует на команды, но "text" зацикливается, то есть если написать что-то левое бот будет спамить пока его не настигнет капча.
Бот, даже если ему дать команду в беседе, начинает писать в лс, очевидно, это из-за id, но я не знаю как это исправить, ибо занялся этим 2 дня назад, так что я вообще баклан, прошу помочь развёрнуто. В идеале нужно чтобы бот: реагировал на команды определённого человека в беседе, по команде начинал спамить и по команде останавливался, также чтобы принимал id пользователя, которому нужно наспамить в лс, это тоже только от 1-го человека. Спасибо, если кто поможет.
  • Вопрос задан
  • 1649 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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