Пример #1
0
 private async Task <DataFileMember> ExportMember(PKMember member) => new DataFileMember
 {
     Id                                             = member.Hid,
     Name                                           = member.Name,
     Description                                    = member.Description,
     Birthday                                       = member.Birthday != null?Formats.DateExportFormat.Format(member.Birthday.Value) : null,
                                       Pronouns     = member.Pronouns,
                                       Color        = member.Color,
                                       AvatarUrl    = member.AvatarUrl,
                                       Prefix       = member.Prefix,
                                       Suffix       = member.Suffix,
                                       Created      = Formats.TimestampExportFormat.Format(member.Created),
                                       MessageCount = await _members.MessageCount(member)
 };
Пример #2
0
        public async Task <Embed> CreateMemberEmbed(PKSystem system, PKMember member)
        {
            var name = member.Name;

            if (system.Name != null)
            {
                name = $"{member.Name} ({system.Name})";
            }

            Color color;

            try
            {
                color = member.Color?.ToDiscordColor() ?? Color.Default;
            }
            catch (ArgumentException)
            {
                // Bad API use can cause an invalid color string
                // TODO: fix that in the API
                // for now we just default to a blank color, yolo
                color = Color.Default;
            }

            var messageCount = await _members.MessageCount(member);

            var eb = new EmbedBuilder()
                     // TODO: add URL of website when that's up
                     .WithAuthor(name, member.AvatarUrl)
                     .WithColor(color)
                     .WithFooter($"System ID: {system.Hid} | Member ID: {member.Hid}");

            if (member.AvatarUrl != null)
            {
                eb.WithThumbnailUrl(member.AvatarUrl);
            }

            if (member.DisplayName != null)
            {
                eb.AddField("Display Name", member.DisplayName, true);
            }
            if (member.Birthday != null)
            {
                eb.AddField("Birthdate", member.BirthdayString, true);
            }
            if (member.Pronouns != null)
            {
                eb.AddField("Pronouns", member.Pronouns, true);
            }
            if (messageCount > 0)
            {
                eb.AddField("Message Count", messageCount, true);
            }
            if (member.HasProxyTags)
            {
                eb.AddField("Proxy Tags", $"{member.Prefix.EscapeMarkdown()}text{member.Suffix.EscapeMarkdown()}", true);
            }
            if (member.Color != null)
            {
                eb.AddField("Color", $"#{member.Color}", true);
            }
            if (member.Description != null)
            {
                eb.AddField("Description", member.Description, false);
            }

            return(eb.Build());
        }