Задать вопрос
@IlyaAkt

Почему ВК бот отвечает 2 раза?

Есть такой код
def write_messages(sender, message):
			authorize.method('messages.send', {'chat_id': sender, 'message': message, 'random_id': get_random_id(), 'attachment': ','.join(attachments)})
def write_messages_us(user_id, message):
			authorize.method('messages.send', {'peer_id': user_id, 'message': message, 'random_id': get_random_id(), 'attachment': ','.join(attachments)})
users = [id пользователя, id второго пользователя]
for id in users:
						user_id=id
						if id == 'id пользователя':
							try:
								write_messages_us(id, (re.sub(r'!Рассылка', " ", reseived_message)))
							except Exception as ex:
								print("Ошибка")
						else:
							write_messages(sender, "А у тебя нет прав на эту команду")

Когда человек которому разрешено делает рассылку (!Рассылка) то всё нормально, но когда человек которому запрещено её делать пишет команду !Рассылка, то бот отвечает ДВА раза вот это: "А у тебя нет прав на эту команду". Почему два раза он это говорит и как это исправить?
  • Вопрос задан
  • 308 просмотров
Подписаться 1 Простой 13 комментариев
Решения вопроса 1
@IlyaAkt Автор вопроса
Получилось всё починить вот так:

def write_messages(sender, message):
			authorize.method('messages.send', {'chat_id': sender, 'message': message, 'random_id': get_random_id(), 'attachment': ','.join(attachments)})
		def write_messages_us(id, message):
			authorize.method('messages.send', {'peer_id': id, 'message': message, 'random_id': get_random_id(), 'attachment': ','.join(attachments)})

elif re.findall('!Рассылка', reseived_message):
          if event.object.message['from_id'] in admins:
            for id in users:
              try:
                write_messages_us(id, (re.sub(r'!Рассылка', " ", reseived_message)))
              except Exception as ex:
                print("Ошибка")
          else:
            write_messages(sender, "У вас нет прав")
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Noizefan
@Noizefan
users = [id пользователя, id второго пользователя]
for id in users:

сколько раз выполняется?

write_messages(sender, "А у тебя нет прав на эту команду")


столько раз сендеру и приходит
Ответ написан
Ваш ответ на вопрос

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

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