From 916612311b77aada972f0e2f879272d7eeae3421 Mon Sep 17 00:00:00 2001 From: Kwoth Date: Tue, 25 Oct 2016 13:06:37 +0200 Subject: [PATCH] Fixed carbonitex data sending, fixed v+t haveing duplicate channels --- .../Commands/VoicePlusTextCommands.cs | 8 +++--- src/NadekoBot/Services/Impl/BotCredentials.cs | 3 +++ src/NadekoBot/Services/Impl/StatsService.cs | 27 +++++++++++++++++++ src/NadekoBot/credentials_example.json | 1 + 4 files changed, 35 insertions(+), 4 deletions(-) diff --git a/src/NadekoBot/Modules/Administration/Commands/VoicePlusTextCommands.cs b/src/NadekoBot/Modules/Administration/Commands/VoicePlusTextCommands.cs index d74b7a9f..2779ea6f 100644 --- a/src/NadekoBot/Modules/Administration/Commands/VoicePlusTextCommands.cs +++ b/src/NadekoBot/Modules/Administration/Commands/VoicePlusTextCommands.cs @@ -70,7 +70,7 @@ namespace NadekoBot.Modules.Administration var beforeVch = before.VoiceChannel; if (beforeVch != null) { - var textChannel = guild.GetTextChannels().Where(t => t.Name == GetChannelName(beforeVch.Name)).FirstOrDefault(); + var textChannel = guild.GetTextChannels().Where(t => t.Name == GetChannelName(beforeVch.Name).ToLowerInvariant()).FirstOrDefault(); if (textChannel != null) await textChannel.AddPermissionOverwriteAsync(user, new OverwritePermissions(readMessages: PermValue.Deny, @@ -80,11 +80,11 @@ namespace NadekoBot.Modules.Administration if (afterVch != null && guild.AFKChannelId != afterVch.Id) { var textChannel = guild.GetTextChannels() - .Where(t => t.Name == GetChannelName(afterVch.Name)) + .Where(t => t.Name == GetChannelName(afterVch.Name).ToLowerInvariant()) .FirstOrDefault(); if (textChannel == null) { - textChannel = (await guild.CreateTextChannelAsync(GetChannelName(afterVch.Name)).ConfigureAwait(false)); + textChannel = (await guild.CreateTextChannelAsync(GetChannelName(afterVch.Name).ToLowerInvariant()).ConfigureAwait(false)); await textChannel.AddPermissionOverwriteAsync(guild.EveryoneRole, new OverwritePermissions(readMessages: PermValue.Deny, sendMessages: PermValue.Deny)).ConfigureAwait(false); @@ -163,7 +163,7 @@ namespace NadekoBot.Modules.Administration } var allTxtChannels = guild.GetTextChannels().Where(c => c.Name.EndsWith("-voice")); - var validTxtChannelNames = guild.GetVoiceChannels().Select(c => GetChannelName(c.Name)); + var validTxtChannelNames = guild.GetVoiceChannels().Select(c => GetChannelName(c.Name).ToLowerInvariant()); var invalidTxtChannels = allTxtChannels.Where(c => !validTxtChannelNames.Contains(c.Name)); diff --git a/src/NadekoBot/Services/Impl/BotCredentials.cs b/src/NadekoBot/Services/Impl/BotCredentials.cs index a37e4a05..d52e8ad7 100644 --- a/src/NadekoBot/Services/Impl/BotCredentials.cs +++ b/src/NadekoBot/Services/Impl/BotCredentials.cs @@ -29,6 +29,7 @@ namespace NadekoBot.Services.Impl public DB Db { get; } public int TotalShards { get; } + public string CarbonKey { get; } public BotCredentials() { @@ -48,6 +49,7 @@ namespace NadekoBot.Services.Impl BotId = cm.BotId ?? cm.ClientId; ClientId = cm.ClientId; SoundCloudClientId = cm.SoundCloudClientId; + CarbonKey = cm.CarbonKey; if (cm.Db == null) Db = new DB("sqlite", ""); else @@ -72,6 +74,7 @@ namespace NadekoBot.Services.Impl public string MashapeKey { get; set; } = ""; public string OsuApiKey { get; set; } = ""; public string SoundCloudClientId { get; set; } = ""; + public string CarbonKey { get; set; } = ""; public DB Db { get; set; } public int TotalShards { get; set; } = 1; } diff --git a/src/NadekoBot/Services/Impl/StatsService.cs b/src/NadekoBot/Services/Impl/StatsService.cs index 6a5c12c6..ea80f41d 100644 --- a/src/NadekoBot/Services/Impl/StatsService.cs +++ b/src/NadekoBot/Services/Impl/StatsService.cs @@ -5,7 +5,9 @@ using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; +using System.Net.Http; using System.Text; +using System.Threading; using System.Threading.Tasks; namespace NadekoBot.Services.Impl @@ -21,6 +23,8 @@ namespace NadekoBot.Services.Impl public string Heap => Math.Round((double)GC.GetTotalMemory(false) / 1.MiB(), 2).ToString(); + Timer carbonitexTimer { get; } + public StatsService(ShardedDiscordClient client, CommandHandler cmdHandler) { @@ -32,6 +36,29 @@ namespace NadekoBot.Services.Impl cmdHandler.CommandExecuted += (_, e) => commandsRan++; this.client.Disconnected += _ => Reset(); + + this.carbonitexTimer = new Timer(async (state) => + { + if (string.IsNullOrWhiteSpace(NadekoBot.Credentials.CarbonKey)) + return; + try + { + using (var http = new HttpClient()) + { + using (var content = new FormUrlEncodedContent( + new Dictionary { + { "servercount", this.client.GetGuilds().Count.ToString() }, + { "key", NadekoBot.Credentials.CarbonKey }})) + { + content.Headers.Clear(); + content.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); + + var res = await http.PostAsync("https://www.carbonitex.net/discord/data/botdata.php", content).ConfigureAwait(false); + } + }; + } + catch { } + }, null, TimeSpan.FromHours(1), TimeSpan.FromHours(1)); } public async Task Print() { diff --git a/src/NadekoBot/credentials_example.json b/src/NadekoBot/credentials_example.json index 31a9414f..34925301 100644 --- a/src/NadekoBot/credentials_example.json +++ b/src/NadekoBot/credentials_example.json @@ -10,6 +10,7 @@ "MashapeKey": "", "OsuApiKey": "", "SoundCloudClientId": "", + "CarbonKey": "", "Db": null, "TotalShards": 1 } \ No newline at end of file