示例#1
0
        public OxfordResponses.OxfordDefinition DefineOxford(string wordId, string sourceLang = "en")
        {
            string url = string.Empty;

            OxfordResponses.OxfordDefinition defineResults = null;
            try
            {
                url           = $"/entries/{sourceLang}/{wordId}";
                defineResults = JsonConvert.DeserializeObject <OxfordResponses.OxfordDefinition>(GetAPIRequest(url));
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            return(defineResults);
        }
示例#2
0
        public async Task DefineWord([Remainder] string args)
        {
            StringBuilder sb    = new StringBuilder();
            var           embed = new EmbedBuilder();

            embed.WithColor(new Color(0, 255, 0));
            embed.ThumbnailUrl = Context.User.GetAvatarUrl();
            var result = _oxApi.SearchOxford(args);

            OxfordResponses.OxfordDefinition definition = null;
            int limit = 2;

            if (result.metadata.total > 0)
            {
                definition = _oxApi.DefineOxford(result.results[0].id);
            }
            if (definition != null)
            {
                Console.WriteLine(definition.results[0].lexicalEntries.Count());
                embed.Title = $"Definition for: **{definition.results[0].id}**";
                for (int i = 0; i <= definition.results[0].lexicalEntries.Count() - 1 && i < limit; i++)
                {
                    var entries = definition.results[0].lexicalEntries[i].entries.FirstOrDefault();
                    if (entries.senses != null)
                    {
                        var senses = definition.results[0].lexicalEntries[i].entries[0].senses.FirstOrDefault();
                        sb.AppendLine($"**{definition.results[0].lexicalEntries[i].lexicalCategory}**");
                        if (senses.definitions != null)
                        {
                            sb.AppendLine($"{senses.definitions[0]}\n");
                        }
                        else if (senses.crossReferenceMarkers != null)
                        {
                            sb.AppendLine($"{senses.crossReferenceMarkers[0]}");
                        }
                        else
                        {
                            sb.AppendLine($"No definition found :(\n");
                        }
                    }
                    else
                    {
                        sb.AppendLine($"{definition.results[0].lexicalEntries[0].derivativeOf[0].text}");
                        break;
                    }
                }
                var lexicalEntries = definition.results[0].lexicalEntries.FirstOrDefault();
                if (lexicalEntries.pronunciations != null)
                {
                    sb.AppendLine($"[Pronunciation]({lexicalEntries.pronunciations[0].audioFile})");
                }
                //await ReplyAsync(, isTTS: true);
            }
            else
            {
                embed.Title = $"Definition for: **{args}**";
                sb.AppendLine($"No definition found :(");
            }

            embed.Description = sb.ToString();
            await _cc.Reply(Context, embed);
        }