Example #1
0
        public string GetTtsString()
        {
            StringBuilder builder = new StringBuilder();
            var           defGrp  = this.DefinitionGroups.FirstOrDefault();
            var           def     = defGrp.Definitions.FirstOrDefault();

            if (!string.IsNullOrWhiteSpace(defGrp.Etymology))
            {
                builder.AppendFormat("{0}. ", defGrp.Etymology);
            }

            if (def.DefinitionProperties != null && def.DefinitionProperties.Count != 0)
            {
                builder.AppendJoin(", ", def.DefinitionProperties.Select(p => p.Name).ToList());
                builder.Append(". ");
            }

            builder.AppendFormat("{0}. ", def.Content);

            if (def.DefinitionExamples != null && def.DefinitionExamples.Count != 0)
            {
                DefinitionExample example = def.DefinitionExamples.FirstOrDefault();
                builder.Append(example.Content);
                if (example.Author != null && example.Author.Count != 0)
                {
                    builder.AppendFormat(" {0}", example.Author.FirstOrDefault().FullName);
                }
            }
            return(builder.ToString());
        }
Example #2
0
        public DiscordEmbed GetEmbed()
        {
            DiscordEmbedBuilder builder = new DiscordEmbedBuilder();
            string title = this.ToString();

            if (!string.IsNullOrWhiteSpace(GetSuffix()))
            {
                title += GetSuffix();
            }
            builder.WithTitle(title);
            builder.WithUrl("https://sozluk.gov.tr/?kelime=" + this.ToString());
            builder.WithColor(new DiscordColor("ea1c23"));
            int groupOrder = 0;
            int maxGroup   = 3;
            int maxDef     = 5;

            foreach (DefinitionGroup group in this.DefinitionGroups)
            {
                string groupName  = $"({++groupOrder})";
                string groupValue = "--------------------------------------------------------------------------";
                if (!string.IsNullOrWhiteSpace(group.Etymology))
                {
                    groupValue = "-----   " + group.Etymology + "   ";
                    for (int i = 0; i < 70 - (groupValue.Length); i++)
                    {
                        groupValue += "-";
                    }
                }
                builder.AddField($"**{groupName}**", groupValue);
                int definitionOrder = 0;
                foreach (Definition definition in group.Definitions)
                {
                    string defName = (++definitionOrder).ToString() + ". ";
                    if (definition.DefinitionProperties != null && definition.DefinitionProperties.Count != 0)
                    {
                        defName += "_";
                        foreach (DefinitionProperty property in definition.DefinitionProperties)
                        {
                            defName += property.Name + ", ";
                        }
                        defName  = defName.Remove(defName.Length - 2, 2);
                        defName += "_ ";
                    }
                    if (definition.DefinitionExamples != null && definition.DefinitionExamples.Count != 0)
                    {
                        DefinitionExample example = definition.DefinitionExamples.FirstOrDefault();
                        defName += "" + example.Content; // TODO
                        if (example.Author != null && example.Author.Count != 0)
                        {
                            defName += " - " + example.Author.FirstOrDefault().FullName;
                        }
                    }

                    string defValue = definition.Content;
                    builder.AddField(defName, defValue);
                    if (definitionOrder == maxDef)
                    {
                        break;
                    }
                }
                if (groupOrder == maxGroup)
                {
                    break;
                }
            }

            return(builder.Build());
        }