69 lines
2.3 KiB
C#
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());
|
|
}
|
|
}
|
|
} |