This commit is contained in:
2019-02-20 21:54:21 +01:00
parent 70d91a84f3
commit 0b6433ce1d
7 changed files with 120 additions and 20 deletions

View File

@@ -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
}
}
}
}

View File

@@ -5,7 +5,7 @@ using DSharpPlus.CommandsNext.Attributes;
namespace LaDOSE.DiscordBot.Command
{
[RequireRolesAttribute("SuperAdmin")]
internal class Shutdown
public class Shutdown
{
private readonly Dependencies dep;
@@ -15,7 +15,6 @@ namespace LaDOSE.DiscordBot.Command
}
[Command("shutdown")]
public async Task ShutDownAsync(CommandContext ctx)
{

View File

@@ -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} ");
}
}
}

View File

@@ -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
{
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");
}
}
}
}

View File

@@ -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; }
}
}

View File

@@ -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<Result>();
_cnext.RegisterCommands<Twitch>();
_cnext.RegisterCommands<Shutdown>();
_cnext.RegisterCommands<Todo>();
//discord.MessageCreated += async e =>

View File

@@ -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;
}
}
}