diff --git a/LaDOSE.Src/LaDOSE.DiscordBot/Command/Result.cs b/LaDOSE.Src/LaDOSE.DiscordBot/Command/Result.cs index cd12cf4..c1985d4 100644 --- a/LaDOSE.Src/LaDOSE.DiscordBot/Command/Result.cs +++ b/LaDOSE.Src/LaDOSE.DiscordBot/Command/Result.cs @@ -4,8 +4,7 @@ using DSharpPlus.CommandsNext.Attributes; namespace LaDOSE.DiscordBot.Command { - public partial class Twitch - { + internal class Result { Dependencies dep; @@ -32,5 +31,5 @@ namespace LaDOSE.DiscordBot.Command } } - } + } \ No newline at end of file diff --git a/LaDOSE.Src/LaDOSE.DiscordBot/Command/Shutdown.cs b/LaDOSE.Src/LaDOSE.DiscordBot/Command/Shutdown.cs index 19f2333..49e6a4d 100644 --- a/LaDOSE.Src/LaDOSE.DiscordBot/Command/Shutdown.cs +++ b/LaDOSE.Src/LaDOSE.DiscordBot/Command/Shutdown.cs @@ -5,7 +5,7 @@ using DSharpPlus.CommandsNext.Attributes; namespace LaDOSE.DiscordBot.Command { [RequireRolesAttribute("SuperAdmin")] - internal class Shutdown + public class Shutdown { private readonly Dependencies dep; @@ -14,7 +14,6 @@ namespace LaDOSE.DiscordBot.Command dep = d; } - [Command("shutdown")] public async Task ShutDownAsync(CommandContext ctx) diff --git a/LaDOSE.Src/LaDOSE.DiscordBot/Command/Todo.cs b/LaDOSE.Src/LaDOSE.DiscordBot/Command/Todo.cs new file mode 100644 index 0000000..6d63181 --- /dev/null +++ b/LaDOSE.Src/LaDOSE.DiscordBot/Command/Todo.cs @@ -0,0 +1,41 @@ +using System.Threading.Tasks; +using DSharpPlus.CommandsNext; +using DSharpPlus.CommandsNext.Attributes; + +namespace LaDOSE.DiscordBot.Command +{ + public class Todo + { + private readonly Dependencies dep; + + public Todo(Dependencies d) + { + dep = d; + } + + [Command("todo")] + public async Task TwitchAsync(CommandContext ctx, string command,params string[] todo) + { + await ctx.TriggerTypingAsync(); + switch (command.ToUpperInvariant()) + { + case "ADD": + dep.TodoService.Add(todo[0]); + break; + case "LIST": + await ctx.RespondAsync($"{dep.TodoService.List()}"); + break; + case "DEL": + int id; + if (int.TryParse(todo[0], out id)) + { + await ctx.RespondAsync($"{dep.TodoService.Delete(id)}"); + break; + }; + await ctx.RespondAsync($"invalid id"); + break; + } + await ctx.RespondAsync($"command : {command}, todo: {todo} "); + } + } +} \ No newline at end of file diff --git a/LaDOSE.Src/LaDOSE.DiscordBot/Command/Twitch.cs b/LaDOSE.Src/LaDOSE.DiscordBot/Command/Twitch.cs index fa502aa..1076738 100644 --- a/LaDOSE.Src/LaDOSE.DiscordBot/Command/Twitch.cs +++ b/LaDOSE.Src/LaDOSE.DiscordBot/Command/Twitch.cs @@ -4,23 +4,19 @@ using DSharpPlus.CommandsNext.Attributes; namespace LaDOSE.DiscordBot.Command { - public class Result + public class Twitch { + private readonly Dependencies dep; - internal class Twitch + public Twitch(Dependencies d) { - Dependencies dep; - public Twitch(Dependencies d) - { - this.dep = d; - } + dep = d; + } - [Command("twitch")] - public async Task TwitchAsync(CommandContext ctx) - { - await ctx.RespondAsync("https://www.twitch.tv/LaDOSETV"); - - } + [Command("twitch")] + public async Task TwitchAsync(CommandContext ctx) + { + await ctx.RespondAsync("https://www.twitch.tv/LaDOSETV"); } } } \ No newline at end of file diff --git a/LaDOSE.Src/LaDOSE.DiscordBot/Dependencies.cs b/LaDOSE.Src/LaDOSE.DiscordBot/Dependencies.cs index 20cd3ca..7877c2e 100644 --- a/LaDOSE.Src/LaDOSE.DiscordBot/Dependencies.cs +++ b/LaDOSE.Src/LaDOSE.DiscordBot/Dependencies.cs @@ -4,10 +4,12 @@ using LaDOSE.DiscordBot.Service; namespace LaDOSE.DiscordBot { - internal class Dependencies + public class Dependencies { internal InteractivityModule Interactivity { get; set; } internal CancellationTokenSource Cts { get; set; } public ChallongeService ChallongeService { get; set; } + public TodoService TodoService { get; set; } + } } \ No newline at end of file diff --git a/LaDOSE.Src/LaDOSE.DiscordBot/Program.cs b/LaDOSE.Src/LaDOSE.DiscordBot/Program.cs index 4abc574..d58a890 100644 --- a/LaDOSE.Src/LaDOSE.DiscordBot/Program.cs +++ b/LaDOSE.Src/LaDOSE.DiscordBot/Program.cs @@ -44,6 +44,7 @@ namespace LaDOSE.DiscordBot var challongeService = new ChallongeService(challongeToken); + var todoService = new TodoService(); var cts = new CancellationTokenSource(); DependencyCollection dep = null; @@ -53,7 +54,8 @@ namespace LaDOSE.DiscordBot { Cts = cts, - ChallongeService = challongeService + ChallongeService = challongeService, + TodoService = todoService, }); dep = d.Build(); } @@ -72,6 +74,7 @@ namespace LaDOSE.DiscordBot _cnext.RegisterCommands(); _cnext.RegisterCommands(); _cnext.RegisterCommands(); + _cnext.RegisterCommands(); //discord.MessageCreated += async e => diff --git a/LaDOSE.Src/LaDOSE.DiscordBot/Service/TodoService.cs b/LaDOSE.Src/LaDOSE.DiscordBot/Service/TodoService.cs new file mode 100644 index 0000000..dd0d37c --- /dev/null +++ b/LaDOSE.Src/LaDOSE.DiscordBot/Service/TodoService.cs @@ -0,0 +1,60 @@ +using System.IO; + +namespace LaDOSE.DiscordBot.Service +{ + public class TodoService + { + private const string db = "todo.txt"; + + public TodoService() + { + } + + public bool Add(string text) + { + if (!string.IsNullOrEmpty(text)) { + using (var textWriter =File.AppendText(db)) + { + textWriter.WriteLine(text); + } + return true; + } + + return false; + + } + public bool Delete(int id) + { + string returnText = ""; + var text = File.ReadAllText(db); + var i = 0; + foreach (var line in text.Split('\n')) + { + ++i; + if (i != id) + { + returnText += $"{line}\n"; + } + + } + + File.WriteAllText(db,returnText); + return true; + + } + + public string List() + { + string returnText = ""; + var text = File.ReadAllText(db); + var i = 0; + foreach (var line in text.Split('\n')) + { + if(!string.IsNullOrEmpty(line)) + returnText += $"{++i}. {line}"; + } + + return returnText; + } + } +} \ No newline at end of file