From e97ebf86efeb282796134a2966304e93961e28b5 Mon Sep 17 00:00:00 2001 From: Runebaas Date: Thu, 14 Sep 2017 20:24:04 +0200 Subject: [PATCH] Upgrading Dependencies and start restructure --- Geekbot.net/Geekbot.net.csproj | 74 ++++++++++-------- .../Lib/IClients/FourChanBoardClient.cs | 38 --------- Geekbot.net/Program.cs | 20 +++-- Geekbot.net/derp.ico | Bin 0 -> 370070 bytes derp.ico | Bin 0 -> 370070 bytes 5 files changed, 54 insertions(+), 78 deletions(-) delete mode 100644 Geekbot.net/Lib/IClients/FourChanBoardClient.cs create mode 100644 Geekbot.net/derp.ico create mode 100644 derp.ico diff --git a/Geekbot.net/Geekbot.net.csproj b/Geekbot.net/Geekbot.net.csproj index f943a96..5e543ab 100755 --- a/Geekbot.net/Geekbot.net.csproj +++ b/Geekbot.net/Geekbot.net.csproj @@ -1,33 +1,43 @@ - - - Exe - netcoreapp1.1 - - - - - 1.0.0-rc - - - 1.25.0.760 - - - 1.5.0.1 - - - 105.2.4-rc4-24214-01 - - - 1.2.1 - - - 4.3.1 - - - 4.3.0 - - - 4.3.0 - - + + + Exe + netcoreapp2.0 + derp.ico + 1.1.0 + Pizza and Coffee Studios + Pizza and Coffee Studios + A Discord bot + https://github.com/pizzaandcoffee/Geekbot.net + + + + 1.0.2 + + + 1.29.1.976 + + + 1.5.0.1 + + + + + + + 105.2.3 + + + 1.2.6 + + + 4.3.2 + + + + 4.3.0 + + + 4.3.0 + + \ No newline at end of file diff --git a/Geekbot.net/Lib/IClients/FourChanBoardClient.cs b/Geekbot.net/Lib/IClients/FourChanBoardClient.cs deleted file mode 100644 index 49fdc8d..0000000 --- a/Geekbot.net/Lib/IClients/FourChanBoardClient.cs +++ /dev/null @@ -1,38 +0,0 @@ -using RestSharp; -using System; -using System.Collections.Generic; -using static Geekbot.net.Lib.Dtos.FourChanDto; - -namespace Geekbot.net.Lib.IClients -{ - - class FourChanBoardClient - { - private BoardList boards; - private static FourChanBoardClient instace; - - private FourChanBoardClient() - { - Console.WriteLine("Fetching Boards"); - var boardClient = new RestClient("https://a.4cdn.org"); - var boardRequest = new RestRequest("boards.json", Method.GET); - var boardResult = boardClient.Execute(boardRequest); - this.boards = boardResult.Data; - } - - public static FourChanBoardClient Boards() - { - if (instace == null) - { - instace = new FourChanBoardClient(); - } - - return instace; - } - - public List getBoards() - { - return this.boards.Boards; - } - } -} diff --git a/Geekbot.net/Program.cs b/Geekbot.net/Program.cs index cf0487c..c5e31f1 100755 --- a/Geekbot.net/Program.cs +++ b/Geekbot.net/Program.cs @@ -2,6 +2,10 @@ using System.Reflection; using System.Runtime.InteropServices.ComTypes; using System.Threading.Tasks; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; using Discord; using Discord.Commands; using Discord.WebSocket; @@ -16,9 +20,9 @@ namespace Geekbot.net { private CommandService commands; private DiscordSocketClient client; - private DependencyMap map; private IRedisClient redis; private RedisValue token; + private ServiceCollection services; private static void Main(string[] args) { @@ -30,7 +34,7 @@ namespace Geekbot.net Console.WriteLine("========================================="); Console.WriteLine("Starting..."); - Task.WaitAll(new Program().MainAsync()); + new Program().MainAsync().GetAwaiter().GetResult(); } public async Task MainAsync() @@ -52,11 +56,11 @@ namespace Geekbot.net redis.Client.StringSet("botOwner", ownerId); } - map = new DependencyMap(); - map.Add(new CatClient()); - map.Add(new DogClient()); - map.Add(redis); - map.Add(new RandomClient()); + services = new ServiceCollection(); + services.AddSingleton(new CatClient()); + services.AddSingleton(new DogClient()); + services.AddSingleton(new RandomClient()); + services.AddSingleton(redis); Console.WriteLine("Connecting to Discord..."); @@ -127,7 +131,7 @@ namespace Geekbot.net // } if (!(message.HasCharPrefix('!', ref argPos) || message.HasMentionPrefix(client.CurrentUser, ref argPos))) return; var context = new CommandContext(client, message); - Task.Run(async () => await commands.ExecuteAsync(context, argPos, map)); + Task.Run(async () => await commands.ExecuteAsync(context, argPos, services)); } public async Task HandleMessageReceived(SocketMessage messsageParam) diff --git a/Geekbot.net/derp.ico b/Geekbot.net/derp.ico new file mode 100644 index 0000000000000000000000000000000000000000..bf7cde6107c7f01be02d4d4809fdf15e4db7b4c6 GIT binary patch literal 370070 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 z?)twp!liDXO7;0)$DjYJ>jq}~-}}%h(r{`I`p@_Mnl9Qu`Y-YJ|FtzS`fr>SME@?* zXQsZF)$h@N{`Ftk)}XHceK)7;5WzPtiqU`5X<_t_{%vCb{TD$0trqkjHP51P{*V4` zW8Z4qSq|Ihtp7JT|Iar5l@|0LdjDG5f7<)J<-FYWAN%{ijQ^z`1Gc39->#3+zZ(BP zZA9K!$TpwFub0#K|0g%`{7(twHS}NF{r}K!Hw@^1JNl2$J-kod?quT|^zS77_o?>3 zOve9c|4X7DhyER=|8lwi=i?jc|2w(=zh`ZvU&{SI>HA<6&2~PnX{y- zqp>7(YnR`BD-J0wA1gn%E*Mo-KDH}XuG&v2>R+*0)!9&1Y@+`XZwE`@oW3Y|2mKc$ z&!B(wUle_3%4_H!{byo??+e06vGRle>2uXs+eHPi3)L~AOg$r~=j=`Y-Eq=x9AT z?R8Q0Py3(8egW;j)3jKO@)lM9ZaM#_{ippe(d#JapZNHGs#ucUZx>jMhRjM!j{FunC(m00S@p126ys zFaQHE00S@p126ysFaQHE00S@p126ysFaQHE00S@p126ysFaQHE00S@p126ysFaQHE z00S@p126ysFaQHE00S@p126ysFaQHE00S@p126ysFaQHE00S@p126ysFaQHE00S@p z126ysFaQHE00S@p126ysFaQHE00S@p126ysFaQHE00S@p126ysFaQHE00S@p126ys zFaQHE00S@p126ysFaQHE00S@p126ysFaQHE00S@p126ysFaQHE00S@p126ysFaQHE z00S@p126ysFaQHE00S@p126ysFaQHE00S@p126ysFaQHE00S@p126ysFaQHE00S@p z126ysFaQHE00S@p126ysFaQHE00S@p126ysFaQHE00S@p126ysFaQHE00S@p126ys zFaQHE00S@p126ysFaQHE00S@p126ysFaQHE00S@p126ysFaQHE00S@p126ysFaQHE z00S@p126ysFaQIEV8Fv49>4>501w~+Jb(xA03N^tcmNOJ0X%>Q@Bkjb19$)r-~l{< U2k-zMzyo*y58wej;A{{4KR^n?YybcN literal 0 HcmV?d00001 diff --git a/derp.ico b/derp.ico new file mode 100644 index 0000000000000000000000000000000000000000..bf7cde6107c7f01be02d4d4809fdf15e4db7b4c6 GIT binary patch literal 370070 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 z?)twp!liDXO7;0)$DjYJ>jq}~-}}%h(r{`I`p@_Mnl9Qu`Y-YJ|FtzS`fr>SME@?* zXQsZF)$h@N{`Ftk)}XHceK)7;5WzPtiqU`5X<_t_{%vCb{TD$0trqkjHP51P{*V4` zW8Z4qSq|Ihtp7JT|Iar5l@|0LdjDG5f7<)J<-FYWAN%{ijQ^z`1Gc39->#3+zZ(BP zZA9K!$TpwFub0#K|0g%`{7(twHS}NF{r}K!Hw@^1JNl2$J-kod?quT|^zS77_o?>3 zOve9c|4X7DhyER=|8lwi=i?jc|2w(=zh`ZvU&{SI>HA<6&2~PnX{y- zqp>7(YnR`BD-J0wA1gn%E*Mo-KDH}XuG&v2>R+*0)!9&1Y@+`XZwE`@oW3Y|2mKc$ z&!B(wUle_3%4_H!{byo??+e06vGRle>2uXs+eHPi3)L~AOg$r~=j=`Y-Eq=x9AT z?R8Q0Py3(8egW;j)3jKO@)lM9ZaM#_{ippe(d#JapZNHGs#ucUZx>jMhRjM!j{FunC(m00S@p126ys zFaQHE00S@p126ysFaQHE00S@p126ysFaQHE00S@p126ysFaQHE00S@p126ysFaQHE z00S@p126ysFaQHE00S@p126ysFaQHE00S@p126ysFaQHE00S@p126ysFaQHE00S@p z126ysFaQHE00S@p126ysFaQHE00S@p126ysFaQHE00S@p126ysFaQHE00S@p126ys zFaQHE00S@p126ysFaQHE00S@p126ysFaQHE00S@p126ysFaQHE00S@p126ysFaQHE z00S@p126ysFaQHE00S@p126ysFaQHE00S@p126ysFaQHE00S@p126ysFaQHE00S@p z126ysFaQHE00S@p126ysFaQHE00S@p126ysFaQHE00S@p126ysFaQHE00S@p126ys zFaQHE00S@p126ysFaQHE00S@p126ysFaQHE00S@p126ysFaQHE00S@p126ysFaQHE z00S@p126ysFaQIEV8Fv49>4>501w~+Jb(xA03N^tcmNOJ0X%>Q@Bkjb19$)r-~l{< U2k-zMzyo*y58wej;A{{4KR^n?YybcN literal 0 HcmV?d00001