mirror of
https://github.com/Bubuni-Team/telegram-bot.git
synced 2026-07-31 00:29:24 +03:00
[entertainment] cleanup callbackquery handler, show guessed number
This commit is contained in:
@@ -81,29 +81,27 @@ public class Guess : CommonHandler
|
||||
[Update(InChat.Public, UpdateFlag.CallbackQuery)]
|
||||
public async Task HandleGuessResponse()
|
||||
{
|
||||
// TODO: i know, there is a lot things to improve...
|
||||
var guessDict = _guessCache.GetOr(Chat.Id, new ConcurrentDictionary<int, GuessData>());
|
||||
var messageId = CallbackQuery.Message?.MessageId;
|
||||
|
||||
if (messageId == null
|
||||
|| CallbackQuery.Data == null
|
||||
|| !guessDict.TryGetValue((int) messageId, out var data))
|
||||
if (messageId == null || CallbackQuery.Data == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
var fromUser = CallbackQuery.From;
|
||||
var fromId = fromUser.Id;
|
||||
var callbackData = CallbackQuery.Data.Split('|');
|
||||
|
||||
if (fromId != data.UserId || callbackData.Length < 4)
|
||||
if (callbackData.Length < 4
|
||||
|| callbackData[0] != "guess"
|
||||
|| callbackData[1] != fromId.ToString()
|
||||
|| callbackData[2] != "answer")
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (callbackData[0] != "guess"
|
||||
|| callbackData[1] != fromId.ToString()
|
||||
|| callbackData[2] != "answer")
|
||||
var guessDict = _guessCache.GetOr(Chat.Id, new ConcurrentDictionary<int, GuessData>());
|
||||
if (!guessDict.TryGetValue((int) messageId, out var data)
|
||||
|| fromId != data.UserId)
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -129,14 +127,14 @@ public class Guess : CommonHandler
|
||||
}
|
||||
else
|
||||
{
|
||||
message = $"{fromUser.ToHtml()} не угадал!";
|
||||
message = $"{fromUser.ToHtml()} не угадал!\nЗагаданное число: {data.Number}.";
|
||||
}
|
||||
|
||||
await Bot.EditMessageTextAsync(Chat, (int) messageId, message + postFix, parseMode: ParseMode.Html);
|
||||
|
||||
var cooldownOption = await _db.UserValues.FindOrCreateOption(Chat.Id, From.Id, "guessCooldown");
|
||||
cooldownOption.SetValue(nextUse);
|
||||
|
||||
|
||||
_db.AddOrUpdate(cooldownOption);
|
||||
|
||||
await Bot.EditMessageTextAsync(Chat, (int) messageId, message + postFix, parseMode: ParseMode.Html);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user