Esempio n. 1
0
        public static async void Timer_Voters2(object sender, ElapsedEventArgs e)
        {
            if (Interlocked.Exchange(ref VoteLock, 1) == 0)
            {
                try
                {
                    var voters = await WebUtil.GetVotersAsync();

                    var old = await VoteDb.GetVoters(500);

                    var votersParsed = voters.Select(x => x.Id).ToList();
                    votersParsed.Reverse();

                    List <ulong> add = NewEntries(old, votersParsed);

                    if (add.Count > 500)
                    {
                        var ch = await Program.GetClient().GetUser(AppSettings.OwnerId).CreateDMChannelAsync();

                        string er = "```\n";
                        foreach (var id in voters.Take(10))
                        {
                            er += $"{id.Id}\n";
                        }
                        er += "...\n";
                        foreach (var id in voters.Skip(add.Count - 10))
                        {
                            er += $"{id.Id}\n";
                        }
                        er += "```";
                        await ch.SendMessageAsync($"Found {add.Count} new voters.\n {er}");

                        return;
                    }

                    await VoteDb.AddVoters(add);
                    await SendRewards(add);

                    if (add.Count > 0)
                    {
                        Console.WriteLine($"{DateTime.Now.ToString("HH:mm:ss")} Shipped {add.Count} lootboxes.");
                    }
                }
                catch (Exception ex)
                {
                    SentrySdk.CaptureException(ex);
                }
                finally
                {
                    VoteLock = 0;
                }
            }
        }