@Dzhigit
Начинающий прогер

Повтор сообщения Python?

import json, random, vk, vk_api
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType

session = vk.Session(access_token='')
vks = vk_api.VkApi(token='')
api = vk.API(session)
invitation = ['H#FHVBFVHV', 'HHGFHFHFF']


while True:
    messages = vks.method("messages.getConversations", {"offset": 0, "count": 20, "filter": "unread"})
    if messages["count"] >= 1:
        id = messages["items"][0]["last_message"]["from_id"]
        mes = messages["items"][0]["last_message"]["text"]

        # Проверка
        for i in invitation:
            if i == mes:
                vks.method("messages.send", {"peer_id": id, "message": 'Инвайт успешно подошел, вот ваша ссылка:', "random_id": random.randint(0, 10000)})
                vks.method("messages.send", {"peer_id": id, "message": 'Ссылка - ', "random_id": random.randint(0, 10000)})
            else:
                vks.method("messages.send", {"peer_id": id, "message": 'Инвайт не подходит!', "random_id": random.randint(0, 10000)})


При обращения отправке сообщения в группу, он дважды повторяет сообщение.
  • Вопрос задан
  • 202 просмотра
Решения вопроса 2
ds_team1
@ds_team1
.py .js
вместо блока проверки:
if mes in investigation:
    print('вы приняты')
else:
    print('Инвайт не подходит!')

так он проверит, есть ли сообщение в предложенных вариантах
Ответ написан
Комментировать
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
Ну да, вы ж его в цикле отправляете. А цикл по списку. А в списке два элемента. Два раза и отправляет.
Вы чего хотели-то?
Имеется в виду негативная ветка внутри цикла. Если оба значения i не равны mes, то будет дважды выполнена ветка else
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы