Как пропустить старые сообщения в Telegram.Bot?
Использую c# библиотеку Telegram.Bot. При старте бота в обработку попадают все пришедшие до запуска сообщения. Можно ли обрабатывать только новые обновления? (Например в aiogram можно указать skip_updates=True)
Ответы (2 шт):
Автор решения: User12351259599491
Если сообщение написали больше 5 секунд назад то просто вывожу в консоль
→ Ссылка
Я получал дату сообщения
var date = update.Message!.Date;
Далее сравниваю время.
var datemes = DateTime.Now - (date.AddHours(3));
if (datemes.Seconds > 5)
{
Console.WriteLine("Старое сообщение");
}
"Старое сообщение", бот юзеру ничего не отвечает.
Автор решения: LanceMinecraft
→ Ссылка
TimeSpan times = DateTime.UtcNow - update.Message.Date;
if(times.TotalMinutes > 3)
{
Console.WriteLine("skipping old update");
}
Вот так вот должны мы пропускать старое обновление, получая дату отправки сообщения, делаем переменную times (update.Message.Date в формате UTC), а дальше, если итоговое кол-во минут превышают 3 - скипается старый апдейт