Fixes for cleanup all messages

This commit is contained in:
2023-01-29 10:11:55 +03:00
parent ee1f1cf30c
commit acc619a21e
2 changed files with 33 additions and 8 deletions
+25 -8
View File
@@ -11,6 +11,7 @@ using Kruzya.TelegramBot.Core.Data;
using Kruzya.TelegramBot.Core.Extensions;
using Kruzya.TelegramBot.Core.Service;
using Telegram.Bot;
using Telegram.Bot.Types;
using Telegram.Bot.Types.Enums;
using Telegram.Bot.Types.ReplyMarkups;
@@ -36,6 +37,14 @@ public class Guess : CommonHandler
[Command(InChat.Public, "guess", CommandParseMode.Both)]
public async Task HandleGuess()
{
// Drop user message.
_requests.Add(new DeleteRequest
{
ChatId = Chat.Id,
DeleteAt = DateTime.UtcNow.AddSeconds(20),
MessageId = Message.MessageId
});
var cooldownOption = await _db.UserValues.FindOrCreateOption(Chat.Id, From.Id, "guessCooldown");
var cooldown = cooldownOption.GetValue<DateTime>();
if (cooldown > DateTime.Now)
@@ -79,14 +88,6 @@ public class Guess : CommonHandler
return;
}
_guessCache.SetValue(Chat.Id, guessDict, -1);
// Drop user message.
_requests.Add(new DeleteRequest
{
ChatId = Chat.Id,
DeleteAt = DateTime.UtcNow.AddSeconds(20),
MessageId = messageId
});
}
[Update(InChat.Public, UpdateFlag.CallbackQuery)]
@@ -157,4 +158,20 @@ public class Guess : CommonHandler
MessageId = (int) messageId
});
}
protected override async Task<Message> Reply(string text)
{
// TODO: move feature with autocleaning to Core CommonHandler.
var message = await Bot.SendTextMessageAsync(Chat.Id, text,
replyToMessageId: Message?.MessageId, parseMode: ParseMode.Html);
_requests.Add(new DeleteRequest
{
ChatId = Chat.Id,
DeleteAt = DateTime.UtcNow.AddSeconds(20),
MessageId = message.MessageId
});
return message;
}
}
+8
View File
@@ -39,6 +39,14 @@ public class Roll : CommonHandler
cd
);
// Drop user message.
_requests.Add(new DeleteRequest
{
ChatId = Chat.Id,
DeleteAt = DateTime.UtcNow.AddSeconds(20),
MessageId = Message.MessageId
});
if (cd > DateTime.Now)
{
await Reply($"Следующее использование через {cd - DateTime.Now:hh\\:mm\\:ss}.");