2022-01-04 17:45:06 +02:00
|
|
|
#nullable enable
|
|
|
|
|
|
|
|
|
|
using System;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using BotFramework;
|
|
|
|
|
using BotFramework.Attributes;
|
|
|
|
|
using BotFramework.Enums;
|
|
|
|
|
using BotFramework.Utils;
|
|
|
|
|
using Kruzya.TelegramBot.Core.Data;
|
|
|
|
|
using Kruzya.TelegramBot.Core.Extensions;
|
|
|
|
|
using Kruzya.TelegramBot.Core.Service;
|
|
|
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
|
using Telegram.Bot;
|
|
|
|
|
using Telegram.Bot.Types.Enums;
|
|
|
|
|
|
|
|
|
|
namespace West.Entertainment.Handler
|
|
|
|
|
{
|
|
|
|
|
public class Common : BotEventHandler
|
|
|
|
|
{
|
|
|
|
|
private readonly UserService _userService;
|
|
|
|
|
private readonly ILogger _logger;
|
|
|
|
|
private readonly CoreContext _db;
|
|
|
|
|
|
2023-07-21 17:14:11 +03:00
|
|
|
public Common(CoreContext db, ILogger<Common> logger, UserService userService)
|
2022-01-04 17:45:06 +02:00
|
|
|
{
|
|
|
|
|
_db = db;
|
|
|
|
|
_logger = logger;
|
|
|
|
|
_userService = userService;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Command(InChat.Public, "cooldowns", CommandParseMode.Both)]
|
|
|
|
|
public async Task HandleCooldowns()
|
|
|
|
|
{
|
|
|
|
|
if (!_userService.IsUserSuper(From))
|
|
|
|
|
{
|
2022-12-14 12:58:12 +02:00
|
|
|
_logger.LogWarning("{User} attempted to use super-user command /cooldowns in {Chat}",
|
|
|
|
|
From.ToLog(),
|
|
|
|
|
Chat.ToLog()
|
|
|
|
|
);
|
2022-01-04 17:45:06 +02:00
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var cds = new[] { "python", "javascript" };
|
|
|
|
|
|
|
|
|
|
var msg = new HtmlString().Bold("Кулдауны:").Br();
|
|
|
|
|
foreach (var cd in cds)
|
|
|
|
|
{
|
2022-01-07 22:30:28 +02:00
|
|
|
var opt = await _db.UserValues.FindOrCreateOption(Chat.Id, $"{cd}NextUse");
|
2022-01-04 17:45:06 +02:00
|
|
|
var val = opt.GetValue<DateTime>();
|
|
|
|
|
if (val == default)
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
msg.Text($"{cd}: ")
|
2022-01-07 15:46:04 +02:00
|
|
|
.Code(DateTime.Now > val ? "Ready" : (val - DateTime.Now).ToString())
|
2022-01-04 17:45:06 +02:00
|
|
|
.Br();
|
|
|
|
|
}
|
|
|
|
|
|
2023-01-02 19:01:03 +02:00
|
|
|
await Bot.SendTextMessageAsync(Chat.Id, msg.ToString(), parseMode: ParseMode.Html);
|
2022-01-04 17:45:06 +02:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|