Exemple #1
0
        public async Task Find(ulong chanId, ulong quoteId)
        {
            var quotes = await _dataStore.LoadRecordsAsync <Quote>(x => x.MessageId == quoteId, TableName);

            if (quotes is null || !quotes.Any())
            {
                await _discordMessage.SendDiscordMessageAsync(chanId, "Quote with that ID was not found.");

                return;
            }

            var selectedQuote = quotes.FirstOrDefault();
            var quoteUrl      = $"https://discordapp.com/channels/{selectedQuote?.ServerId}/{selectedQuote?.ChanId}/{selectedQuote?.MessageId}";

            if (!IsCodeblock(selectedQuote?.Message))
            {
                var embed = new DisukuEmbed
                {
                    Description = $"\n**Quote:** {selectedQuote?.Message}\n\n" +
                                  $"Jump: [Click Here]({quoteUrl})",
                    Author = new Author(selectedQuote?.AuthorUsername, selectedQuote?.AuthorAvatarUrl, $"Id {selectedQuote?.MessageId}")
                };

                await _discordMessage.SendDiscordEmbedAsync(chanId, embed);
            }
            else
            {
                var sb = new StringBuilder();
                sb.Append($"{selectedQuote.AuthorUsername} : Id: <{selectedQuote.MessageId}>");
                sb.Append($"{selectedQuote.Message}");
                await _discordMessage.SendDiscordMessageAsync(chanId, $"{sb}");
            }
        }
Exemple #2
0
        public async Task GetCharacterInfoAsync(ulong chanId, string name, string realm, string region)
        {
            Region definedRegion;

            switch (region.ToLower())
            {
            case "eu":
                definedRegion = Region.EU;
                break;

            case "us":
                definedRegion = Region.US;
                break;

            case "kr":
                definedRegion = Region.KR;
                break;

            case "tw":
                definedRegion = Region.TW;
                break;

            default:
                definedRegion = Region.EU;
                break;
            }

            var client        = new RaiderIOClient(definedRegion, realm, name);
            var characterData = await client.GetCharacterStatsAsync();

            var armoryURL     = $"https://worldofwarcraft.com/en-gb/character/{realm}/{name}/";
            var wowanalyzeURL = $"https://www.wowanalyzer.com/character/EU/{realm}/{name}/";

            var embed = new DisukuEmbed
            {
                Title       = $"{characterData.Name} {characterData.Realm} | Character Info",
                Description = $"**Name**: {characterData.Name}\n" +
                              $"**Links**: [Raider.IO]({characterData.Url}) | [Armory]({armoryURL}) | [WowAnalzyer]({wowanalyzeURL})\n" +
                              $"**Class**: {characterData.Race}, {characterData.SpecName} {characterData.Class}\n" +
                              $"**Item Level**: Equipped: {characterData.Gear.ItemLevelEquiped} | Overall: {characterData.Gear.ItemLevelAverage}\n" +
                              $"**Raid Progression (Uldir)**: {characterData.GetRaidProgression.Uldir.Summary}\n" +
                              $"**Mythic+**: {characterData.GetMythicPlusScores.Overall}",
                Thumbnail = characterData.Thumbnail
            };

            await _discordMessage.SendDiscordEmbedAsync(chanId, embed);
        }
Exemple #3
0
        public async Task ReplyMovieAsync(ulong chanId, string name)
        {
            var search = await _client.SearchMovieAsync(name);

            var result = search?.Results.First();

            var movieEmbed = new DisukuEmbed
            {
                Title       = result.Title,
                Description = result.Overview,
                Thumbnail   = $"http://image.tmdb.org/t/p/w500{result.PosterPath}",
                Url         = $"https://www.themoviedb.org/movie/{result.Id}",
                ImageUrl    = $"http://image.tmdb.org/t/p/w500{result.BackdropPath}",
                Footer      = $"Release: {result.ReleaseDate?.ToShortDateString()}"
            };

            await _discordMessage.SendDiscordEmbedAsync(chanId, movieEmbed);
        }