using Budet_cho_bot.Helpers; using Budet_cho_bot.Models; using Budet_cho_bot.Services; using Discord.Commands; using Discord.Commands.Builders; using Newtonsoft.Json.Linq; using System.Text; namespace Discord_Bot { public class ReminderModule : ModuleBase { private ReminderService _reminderService = new ReminderService(); protected override void OnModuleBuilding(CommandService commandService, ModuleBuilder builder) { base.OnModuleBuilding(commandService, builder); Console.WriteLine($"{DateTime.Now.TimeOfDay:hh\\:mm\\:ss} | hello world "); } [Command("remind")] public async Task CreateTask(string users, DateTime startsAt, string? repeat) { bool oneShot = repeat == null; var now = DateTime.Now; TimeSpan rep; TimeSpan.TryParse(repeat, out rep); var record = new CronRecord() { Period = oneShot ? startsAt - now : rep, LastRun = oneShot ? now : startsAt, IsOneShot = oneShot }; var created = await _reminderService.CreateTask(record); await ReplyAsync($"Заебись: {created}"); } [Command("sequence")] private async Task SetSequence(string message = "") { //_reminderService.SaveToConfig("sequence", message); await ReplyAsync($"Заебись"); } [Command("users")] private async Task Users([Remainder]string message = "") { //_reminderService.SaveToConfig("users", message); await ReplyAsync($"Заебись"); } [Command("list")] private async Task List() { var cron = await _reminderService.GetTasks(); var sb = new StringBuilder(); sb.AppendLine("Last Run | Period | Is one shot"); sb.AppendLine("-------------------------------"); foreach (var cr in cron) { sb.AppendLine($"{cr.LastRun.ToString("o")} | {cr.Period.ToString("c")} | {cr.IsOneShot}"); } sb.AppendLine("-------------------------------"); await ReplyAsync(sb.ToString()); } } }