Code improvements

This commit is contained in:
dboerlage 2017-04-13 13:22:30 +02:00
parent d3662b9934
commit ec5d403597
No known key found for this signature in database
GPG key ID: BDA07B7D3FCF147F
5 changed files with 53 additions and 14 deletions

View file

@ -10,6 +10,9 @@
<PackageReference Include="RestSharp.NetCore"> <PackageReference Include="RestSharp.NetCore">
<Version>105.2.4-rc4-24214-01</Version> <Version>105.2.4-rc4-24214-01</Version>
</PackageReference> </PackageReference>
<PackageReference Include="StackExchange.Redis">
<Version>1.2.1</Version>
</PackageReference>
<PackageReference Include="System.Net.Http"> <PackageReference Include="System.Net.Http">
<Version>4.3.1</Version> <Version>4.3.1</Version>
</PackageReference> </PackageReference>

View file

@ -0,0 +1,24 @@
using System;
using System.Threading.Tasks;
using Discord;
using Discord.Commands;
using RestSharp;
namespace Geekbot.net.Modules
{
public interface ICatClient
{
IRestClient Client { get; set; }
}
public class CatClient : ICatClient
{
//Manage a restClient
public CatClient()
{
Client = new RestClient("http://random.cat");
}
public IRestClient Client { get; set; }
}
}

View file

@ -7,20 +7,24 @@ namespace Geekbot.net.Lib
public class StatsRecorder public class StatsRecorder
{ {
public static async Task Record(SocketMessage message) private SocketMessage message;
public StatsRecorder(SocketMessage message)
{ {
await UpdateUserRecordTask(message); this.message = message;
} }
private static Task UpdateUserRecordTask(SocketMessage message) public async Task UpdateUserRecordAsync()
{
return Task.Run(() => UpdateUserRecord(message));
}
private static void UpdateUserRecord(SocketMessage message)
{ {
Console.WriteLine(message.Author.Username + " earned a point"); Console.WriteLine(message.Author.Username + " earned a point");
await Task.FromResult(true);
}
public async Task UpdateGuildRecordAsync()
{
var channel = (SocketGuildChannel) message.Channel;
Console.WriteLine(channel.Guild.Name + " earned a point");
await Task.FromResult(true);
} }
} }
} }

View file

@ -7,14 +7,18 @@ namespace Geekbot.net.Modules
{ {
public class Cat : ModuleBase public class Cat : ModuleBase
{ {
private readonly ICatClient catClient;
public Cat(ICatClient catClient)
{
this.catClient = catClient;
}
[Command("cat"), Summary("Return a random image of a cat.")] [Command("cat"), Summary("Return a random image of a cat.")]
public async Task Say() public async Task Say()
{ {
var client = new RestClient("http://random.cat");
var request = new RestRequest("meow.php", Method.GET); var request = new RestRequest("meow.php", Method.GET);
var response = client.Execute<CatObject>(request); var response = catClient.Client.Execute<CatObject>(request);
await ReplyAsync(response.Data.file); await ReplyAsync(response.Data.file);
} }
} }

View file

@ -5,6 +5,7 @@ using Discord;
using Discord.Commands; using Discord.Commands;
using Discord.WebSocket; using Discord.WebSocket;
using Geekbot.net.Lib; using Geekbot.net.Lib;
using Geekbot.net.Modules;
namespace Geekbot.net namespace Geekbot.net
{ {
@ -23,7 +24,7 @@ namespace Geekbot.net
Console.WriteLine(" \\____|_____|_____|_|\\_\\____/ \\___/ |_|"); Console.WriteLine(" \\____|_____|_____|_|\\_\\____/ \\___/ |_|");
Console.WriteLine("========================================="); Console.WriteLine("=========================================");
Console.WriteLine("Starting..."); Console.WriteLine("Starting...");
new Program().MainAsync().GetAwaiter().GetResult(); Task.WaitAll(new Program().MainAsync());
} }
public async Task MainAsync() public async Task MainAsync()
@ -34,6 +35,7 @@ namespace Geekbot.net
const string token = "MTgxMDkyOTgxMDUzNDU2Mzg0.C8_UTw.PvXLAVOTccbrWKLMeyvN9WqRPlU"; const string token = "MTgxMDkyOTgxMDUzNDU2Mzg0.C8_UTw.PvXLAVOTccbrWKLMeyvN9WqRPlU";
map = new DependencyMap(); map = new DependencyMap();
map.Add<ICatClient>(new CatClient());
await InstallCommands(); await InstallCommands();
Console.WriteLine("Connecting to Discord..."); Console.WriteLine("Connecting to Discord...");
@ -75,7 +77,9 @@ namespace Geekbot.net
Console.WriteLine(channel.Guild.Name + " - " + message.Channel + " - " + message.Author.Username + " - " + message.Content); Console.WriteLine(channel.Guild.Name + " - " + message.Channel + " - " + message.Author.Username + " - " + message.Content);
await StatsRecorder.Record(message); var statsRecorder = new StatsRecorder(message);
var updateUserRecordAsync = statsRecorder.UpdateUserRecordAsync();
var updateGuildRecordAsync = statsRecorder.UpdateGuildRecordAsync();
} }
} }
} }