@Surv16893

Как в цикле выводить сообщение один раз?

Добрый день! Я новичок в программировании и столкнулся со следующей проблемой. У меня есть функция, которая отправляет запрос в ВКонтакте с целью получить и вывести входящее сообщение(пока вывожу по конкретному id), но она будет выводить входящее сообщение бесконечно, пока не придет новое сообщение, которое также будет выводится до прихода другого. Как мне сделать так, чтобы сообщение выводилось один раз?
def recv():
    while True:
        file = vk.messages.getHistory(user_id=93084902, rev=0, count=1)
        for i in file['items']:
            print(i['text'])


variable = Thread(target=recv, args=())
variable.start()
  • Вопрос задан
  • 342 просмотра
Решения вопроса 1
ri_gilfanov
@ri_gilfanov
Web- and desktop-developer
def recv():
    last_id = 0
    while True:
        file = vk.messages.getHistory(user_id=93084902, rev=0, count=1)
        for i in file['items']:
            if i['id'] > last_id:
                last_date = i['id']
                print(i['text'])


variable = Thread(target=recv, args=())
variable.start()


Update. Заменил i['date'] на i['id']. Если сообщения пишут очень часто, так правильнее и надёжнее. Мне показалось, что id сообщений имеют случайный характер, но edward_freedom ткнул меня носом в мою невнимательность))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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