Fixed carbonitex data sending, fixed v+t haveing duplicate channels

This commit is contained in:
Kwoth 2016-10-25 13:06:37 +02:00
parent f82b3633f1
commit 916612311b
4 changed files with 35 additions and 4 deletions

View File

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

View File

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

View File

@ -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<string, string> {
{ "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<string> Print()
{

View File

@ -10,6 +10,7 @@
"MashapeKey": "",
"OsuApiKey": "",
"SoundCloudClientId": "",
"CarbonKey": "",
"Db": null,
"TotalShards": 1
}