コード例 #1
0
        protected virtual WebHookData.Embed GetEmbedFrame(Grouping grouping, IEnumerable <ParsedData> values)
        {
            var dates = values.Select(log => log.Log.Date.Date).Distinct().ToList();

            dates.Sort();
            var authorName = GetDateString(dates.First());

            if (dates.Count > 1)
            {
                authorName += " - " + GetDateString(dates.Last());
            }
            var author    = new WebHookData.Author(authorName, "", "");
            var thumbmail = new WebHookData.Thumbmail(grouping.AvatarURL);
            var name      = grouping.Name;

            if (!string.IsNullOrWhiteSpace(grouping.PostFix))
            {
                name += " " + grouping.PostFix;
            }


            var current = new WebHookData.Embed(author, name, ColorDefault, new List <WebHookData.Field>(), thumbmail);

            return(current);
        }
コード例 #2
0
        protected virtual IEnumerable <WebHookData.Embed> GetEmbeds(IEnumerable <KeyValuePair <Grouping, IEnumerable <ParsedData> > > groupedData)
        {
            List <WebHookData.Embed> embeds = new List <WebHookData.Embed>();

            foreach (var group in groupedData)
            {
                var grouping = group.Key;
                var values   = group.Value;

                var current = GetEmbedFrame(grouping, values);
                var color   = GetColor(values.Select(data => data.Log));
                current.Color = color;

                foreach (var data in values)
                {
                    current.Fields.Add(data.Field);
                    var currentLenght = current.ToString().Length;
                    if (current.Fields.Count >= WebHookData.Embed.MAX_FIELDS)
                    {
                        if (currentLenght > WebHookData.Embed.MAX_LENGHT)
                        {
                            current.Fields.RemoveAt(current.Fields.Count - 1);
                        }
                        embeds.Add(current);
                        current = new WebHookData.Embed(null, "", color, new List <WebHookData.Field>(), null);
                        if (currentLenght > WebHookData.Embed.MAX_LENGHT)
                        {
                            current.Fields.Add(data.Field);
                        }
                    }
                }

                embeds.Add(current);
            }
            return(embeds);
        }