Esempio n. 1
0
        public async Task GetRunsUser(string game, string username)
        {
            var requester = new RequestHandler();
            var message   = await ReplyAsync("Gathering Data...");

            try
            {
                var user    = requester.GetUser(username).data;
                var runs    = requester.GetRunsPerUserPerGame(user.id, game);
                var builder = Builders.BaseBuilder(user.names["international"],
                                                   "Runs done in game " + runs[0].game.data.names["international"], Color.Blue, null,
                                                   runs[0].game.data.assets["icon"].uri);
                string runText = "";
                foreach (var run in runs)
                {
                    if (run.level?.data == null)
                    {
                        runText +=
                            $"**{run.category.data.name} {PlaceConverter.Ordinal(run.place)} place:** {ConvertToTime(run.run.times.primary)}\n";
                    }
                    else
                    {
                        runText +=
                            $"**(IL) {run.level.data.name} {PlaceConverter.Ordinal(run.place)} place:** {ConvertToTime(run.run.times.primary)}\n";
                    }
                }
                builder.AddInlineField("Runs", runText);
                await message.DeleteAsync();
                await ReplyAsync("", embed : builder.Build());
            }
            catch
            {
                await message.DeleteAsync();
                await ReplyAsync("User or Game not found");
            }
        }
Esempio n. 2
0
        public async Task GetUserData([Remainder] string name)
        {
            var message = await ReplyAsync("Gathering data...");

            try
            {
                var user    = new RequestHandler().GetUser(name).data;
                var builder = Builders.BaseBuilder(user.names["international"], "", Color.Blue, null, null);
                builder.AddInlineField("Information",
                                       $"**Name:** {user.names["international"]}\n" +
                                       $"**Country:** {user.location.country.names["international"]}");
                string links = "";
                if (user.twitch != null)
                {
                    links += user.twitch.uri + "\n";
                }
                if (user.twitter != null)
                {
                    links += user.twitter.uri + "\n";
                }
                if (user.hitbox != null)
                {
                    links += user.hitbox + "\n";
                }
                if (user.speedrunslive != null)
                {
                    links += user.speedrunslive.uri + "\n";
                }
                if (user.youtube != null)
                {
                    links += user.youtube.uri + "\n";
                }
                if (!string.IsNullOrEmpty(links))
                {
                    builder.AddInlineField("Links", links);
                }
                builder.WithUrl(user.weblink);
                var    wrRuns       = new RequestHandler().GetWorldRecordsPerUser(user.id).OrderBy(x => x.game.data.names["international"]).ToList();
                string worldrecords = "";
                for (int i = 0; i < wrRuns.Count; i++)
                {
                    if (wrRuns[i].level?.data == null)
                    {
                        worldrecords +=
                            $"**{wrRuns[i].game.data.names["international"]} {wrRuns[i].category.data.name}: **{ConvertToTime(wrRuns[i].run.times.primary)}\n";
                    }
                    else
                    {
                        worldrecords +=
                            $"**{wrRuns[i].game.data.names["international"]} (IL) {wrRuns[i].level.data.name}: **{ConvertToTime(wrRuns[i].run.times.primary)}\n";
                    }
                }
                if (!string.IsNullOrEmpty(worldrecords))
                {
                    builder.AddInlineField("World Records", worldrecords);
                }
                var    recentRuns = new RequestHandler().GetLatestRunsPerUser(user.id);
                string runs       = "";
                for (int i = 0; i < 10; i++)
                {
                    if (recentRuns[i].level?.data == null)
                    {
                        runs +=
                            $"**{recentRuns[i].game.data.names["international"]} {recentRuns[i].category.data.name} {PlaceConverter.Ordinal(recentRuns[i].place)} place:** " +
                            $"{/*recentRuns[i].run.times.primary.Replace("PT", "").Replace("H", ":").Replace("M", ":").Replace("S", "")*/ ConvertToTime(recentRuns[i].run.times.primary)}\n";
                    }
                    else
                    {
                        runs +=
                            $"**{recentRuns[i].game.data.names["international"]} (IL) {recentRuns[i].level.data.name} {PlaceConverter.Ordinal(recentRuns[i].place)} place:** {ConvertToTime(recentRuns[i].run.times.primary)}\n";
                    }
                }
                if (!string.IsNullOrEmpty(runs))
                {
                    builder.AddInlineField("Recent PBs", runs);
                }
                await message.DeleteAsync();
                await ReplyAsync("", embed : builder.Build());
            }
            catch
            {
                await message.DeleteAsync();
                await ReplyAsync("User not found");
            }
        }