Пример #1
0
        public DBLService(LogService log, BotConfig config, DiscordShardedClient client)
        {
            Log    = log;
            Config = config;
            Client = client;

            UnauthAPI = new DiscordBotListApi();
            if (config.Dbl != null)
            {
                AuthAPI = new AuthDiscordBotListApi(client.CurrentUser.Id, Config.Dbl);
            }
            Log.LogString("Connected to DBL");
        }
Пример #2
0
        private async Task Update()
        {
            var botContext = new BotContext();

            var last = botContext.Statistics.ToList().LastOrDefault();

            if (last != null && last.Date.Date == DateTime.Now.Date && last.Guilds == Guilds && last.Channels == Channels && last.Users == Users)
            {
                return;
            }

            var stat = botContext.Statistics.FirstOrDefault(s => s.Date.Equals(DateTime.Now));

            if (stat == null)
            {
                stat = new KuvuStat
                {
                    Date     = DateTime.Now,
                    Guilds   = Guilds,
                    Channels = Channels,
                    Users    = Users
                };

                Program.Client.DebugLogger.LogMessage(LogLevel.Info, nameof(StatisticManager), $"Saving statistics ({stat.Guilds} guilds, {stat.Channels} channels, {stat.Users})", DateTime.Now);
                await botContext.Statistics.AddAsync(stat);

                await botContext.SaveChangesAsync();

                if (DiscordBotListApi != null)
                {
                    try
                    {
                        await DiscordBotListApi.UpdateStats(stat.Guilds);
                    }
                    catch (Exception e)
                    {
                        Program.Client.DebugLogger.LogMessage(LogLevel.Error, nameof(StatisticManager), $"Failed sending stats to top.gg!\n{e}", DateTime.Now);
                    }
                }
            }
        }