1
0
This repository has been archived on 2023-08-03. You can view files and clone it, but cannot push or open issues or pull requests.
budet-cho-bot/Budet-cho-bot/Modules/ReminderModule.cs

69 lines
2.3 KiB
C#

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<SocketCommandContext>
{
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());
}
}
}