From fc3c56176ab7c34079df8261dc2a7a241b8ba34a Mon Sep 17 00:00:00 2001 From: mctaylors Date: Mon, 4 Dec 2023 14:58:43 +0300 Subject: [PATCH] Add StringBuilder extensions Signed-off-by: mctaylors --- src/Commands/BanCommandGroup.cs | 8 ++--- src/Commands/MuteCommandGroup.cs | 4 +-- src/Commands/RemindCommandGroup.cs | 15 ++++---- src/Commands/ToolsCommandGroup.cs | 44 +++++++++++------------ src/Extensions/StringBuilderExtensions.cs | 21 +++++++++++ 5 files changed, 55 insertions(+), 37 deletions(-) create mode 100644 src/Extensions/StringBuilderExtensions.cs diff --git a/src/Commands/BanCommandGroup.cs b/src/Commands/BanCommandGroup.cs index 575e709..bfc60c5 100644 --- a/src/Commands/BanCommandGroup.cs +++ b/src/Commands/BanCommandGroup.cs @@ -135,11 +135,10 @@ public class BanCommandGroup : CommandGroup return await _feedback.SendContextualEmbedResultAsync(errorEmbed, ct); } - var builder = new StringBuilder().Append("- ") - .AppendLine(string.Format(Messages.DescriptionActionReason, reason)); + var builder = new StringBuilder().AppendLineWithBullet(string.Format(Messages.DescriptionActionReason, reason)); if (duration is not null) { - builder.Append("- ").Append( + builder.AppendWithBullet( string.Format( Messages.DescriptionActionExpiresAt, Markdown.Timestamp(DateTimeOffset.UtcNow.Add(duration.Value)))); @@ -274,8 +273,7 @@ public class BanCommandGroup : CommandGroup .WithColour(ColorsList.Green).Build(); var title = string.Format(Messages.UserUnbanned, target.GetTag()); - var description = new StringBuilder().Append("- ") - .Append(string.Format(Messages.DescriptionActionReason, reason)); + var description = new StringBuilder().AppendWithBullet(string.Format(Messages.DescriptionActionReason, reason)); var logResult = _utility.LogActionAsync( data.Settings, channelId, executor, title, description.ToString(), target, ColorsList.Green, ct: ct); if (!logResult.IsSuccess) diff --git a/src/Commands/MuteCommandGroup.cs b/src/Commands/MuteCommandGroup.cs index e431a53..4915043 100644 --- a/src/Commands/MuteCommandGroup.cs +++ b/src/Commands/MuteCommandGroup.cs @@ -136,8 +136,8 @@ public class MuteCommandGroup : CommandGroup } var title = string.Format(Messages.UserMuted, target.GetTag()); - var description = new StringBuilder().Append("- ").AppendLine(string.Format(Messages.DescriptionActionReason, reason)) - .Append("- ").Append(string.Format( + var description = new StringBuilder().AppendLineWithBullet(string.Format(Messages.DescriptionActionReason, reason)) + .AppendWithBullet(string.Format( Messages.DescriptionActionExpiresAt, Markdown.Timestamp(until))).ToString(); var logResult = _utility.LogActionAsync( diff --git a/src/Commands/RemindCommandGroup.cs b/src/Commands/RemindCommandGroup.cs index 6e4d31b..dbc31e5 100644 --- a/src/Commands/RemindCommandGroup.cs +++ b/src/Commands/RemindCommandGroup.cs @@ -90,10 +90,9 @@ public class RemindCommandGroup : CommandGroup for (var i = 0; i < data.Reminders.Count; i++) { var reminder = data.Reminders[i]; - builder.Append("- ").AppendLine(string.Format(Messages.ReminderPosition, Markdown.InlineCode((i + 1).ToString()))) - .Append(" - ").AppendLine(string.Format(Messages.ReminderText, Markdown.InlineCode(reminder.Text))) - .Append(" - ") - .AppendLine(string.Format(Messages.ReminderTime, Markdown.Timestamp(reminder.At))); + builder.AppendLineWithBullet(string.Format(Messages.ReminderPosition, Markdown.InlineCode((i + 1).ToString()))) + .AppendLineWithSubBullet(string.Format(Messages.ReminderText, Markdown.InlineCode(reminder.Text))) + .AppendLineWithSubBullet(string.Format(Messages.ReminderTime, Markdown.Timestamp(reminder.At))); } var embed = new EmbedBuilder().WithSmallTitle( @@ -155,9 +154,9 @@ public class RemindCommandGroup : CommandGroup Text = text }); - var builder = new StringBuilder().Append("- ").AppendLine(string.Format( + var builder = new StringBuilder().AppendLineWithBullet(string.Format( Messages.ReminderText, Markdown.InlineCode(text))) - .Append("- ").Append(string.Format(Messages.ReminderTime, Markdown.Timestamp(remindAt))); + .AppendWithBullet(string.Format(Messages.ReminderTime, Markdown.Timestamp(remindAt))); var embed = new EmbedBuilder().WithSmallTitle( string.Format(Messages.ReminderCreated, executor.GetTag()), executor) @@ -215,8 +214,8 @@ public class RemindCommandGroup : CommandGroup var reminder = data.Reminders[index]; var description = new StringBuilder() - .Append("- ").AppendLine(string.Format(Messages.ReminderText, Markdown.InlineCode(reminder.Text))) - .Append("- ").AppendLine(string.Format(Messages.ReminderTime, Markdown.Timestamp(reminder.At))); + .AppendLineWithBullet(string.Format(Messages.ReminderText, Markdown.InlineCode(reminder.Text))) + .AppendLineWithBullet(string.Format(Messages.ReminderTime, Markdown.Timestamp(reminder.At))); data.Reminders.RemoveAt(index); diff --git a/src/Commands/ToolsCommandGroup.cs b/src/Commands/ToolsCommandGroup.cs index c0b99f5..59f2b3c 100644 --- a/src/Commands/ToolsCommandGroup.cs +++ b/src/Commands/ToolsCommandGroup.cs @@ -102,11 +102,11 @@ public class ToolsCommandGroup : CommandGroup if (target.GlobalName is not null) { - builder.Append("- ").AppendLine(Messages.UserInfoDisplayName) + builder.AppendLineWithBullet(Messages.UserInfoDisplayName) .AppendLine(Markdown.InlineCode(target.GlobalName)); } - builder.Append("- ").AppendLine(Messages.UserInfoDiscordUserSince) + builder.AppendLineWithBullet(Messages.UserInfoDiscordUserSince) .AppendLine(Markdown.Timestamp(target.ID.Timestamp)); var memberData = data.GetOrCreateMemberData(target.ID); @@ -170,23 +170,23 @@ public class ToolsCommandGroup : CommandGroup { if (guildMember.Nickname.IsDefined(out var nickname)) { - builder.Append("- ").AppendLine(Messages.UserInfoGuildNickname) + builder.AppendLineWithBullet(Messages.UserInfoGuildNickname) .AppendLine(Markdown.InlineCode(nickname)); } - builder.Append("- ").AppendLine(Messages.UserInfoGuildMemberSince) + builder.AppendLineWithBullet(Messages.UserInfoGuildMemberSince) .AppendLine(Markdown.Timestamp(guildMember.JoinedAt)); if (guildMember.PremiumSince.IsDefined(out var premiumSince)) { - builder.Append("- ").AppendLine(Messages.UserInfoGuildMemberPremiumSince) + builder.AppendLineWithBullet(Messages.UserInfoGuildMemberPremiumSince) .AppendLine(Markdown.Timestamp(premiumSince.Value)); color = ColorsList.Magenta; } if (guildMember.Roles.Count > 0) { - builder.Append("- ").AppendLine(Messages.UserInfoGuildRoles); + builder.AppendLineWithBullet(Messages.UserInfoGuildRoles); for (var i = 0; i < guildMember.Roles.Count - 1; i++) { builder.Append($"<@&{guildMember.Roles[i]}>, "); @@ -202,30 +202,30 @@ public class ToolsCommandGroup : CommandGroup { if (memberData.BannedUntil < DateTimeOffset.MaxValue) { - builder.Append("- ").AppendLine(Messages.UserInfoBanned) - .Append(" - ").AppendLine(string.Format( + builder.AppendLineWithBullet(Messages.UserInfoBanned) + .AppendLineWithSubBullet(string.Format( Messages.DescriptionActionExpiresAt, Markdown.Timestamp(memberData.BannedUntil.Value))); return; } - builder.Append("- ").AppendLine(Messages.UserInfoBannedPermanently); + builder.AppendLineWithBullet(Messages.UserInfoBannedPermanently); } private static void AppendMuteInformation( MemberData memberData, DateTimeOffset? communicationDisabledUntil, StringBuilder builder) { - builder.Append("- ").AppendLine(Messages.UserInfoMuted); + builder.AppendLineWithBullet(Messages.UserInfoMuted); if (memberData.MutedUntil is not null && DateTimeOffset.UtcNow <= memberData.MutedUntil) { - builder.Append(" - ").AppendLine(Messages.UserInfoMutedByMuteRole) - .Append(" - ").AppendLine(string.Format( + builder.AppendLineWithSubBullet(Messages.UserInfoMutedByMuteRole) + .AppendLineWithSubBullet(string.Format( Messages.DescriptionActionExpiresAt, Markdown.Timestamp(memberData.MutedUntil.Value))); } if (communicationDisabledUntil is not null) { - builder.Append(" - ").AppendLine(Messages.UserInfoMutedByTimeout) - .Append(" - ").AppendLine(string.Format( + builder.AppendLineWithSubBullet(Messages.UserInfoMutedByTimeout) + .AppendLineWithSubBullet(string.Format( Messages.DescriptionActionExpiresAt, Markdown.Timestamp(communicationDisabledUntil.Value))); } } @@ -282,13 +282,13 @@ public class ToolsCommandGroup : CommandGroup if (guild.Description is not null) { - description.Append("- ").AppendLine(Messages.GuildInfoDescription) + description.AppendLineWithBullet(Messages.GuildInfoDescription) .AppendLine(Markdown.InlineCode(guild.Description)); } - description.Append("- ").AppendLine(Messages.GuildInfoCreatedAt) + description.AppendLineWithBullet(Messages.GuildInfoCreatedAt) .AppendLine(Markdown.Timestamp(guild.ID.Timestamp)) - .Append("- ").AppendLine(Messages.GuildInfoOwner) + .AppendLineWithBullet(Messages.GuildInfoOwner) .AppendLine(Mention.User(guild.OwnerID)); var embedColor = ColorsList.Cyan; @@ -296,9 +296,9 @@ public class ToolsCommandGroup : CommandGroup if (guild.PremiumTier > PremiumTier.None) { description.Append("### ").AppendLine(Messages.GuildInfoServerBoost) - .Append("- ").Append(Messages.GuildInfoBoostTier) + .AppendWithBullet(Messages.GuildInfoBoostTier) .Append(": ").AppendLine(Markdown.InlineCode(guild.PremiumTier.ToString())) - .Append("- ").Append(Messages.GuildInfoBoostCount) + .AppendWithBullet(Messages.GuildInfoBoostCount) .Append(": ").AppendLine(Markdown.InlineCode(guild.PremiumSubscriptionCount.ToString())); embedColor = ColorsList.Magenta; } @@ -362,14 +362,14 @@ public class ToolsCommandGroup : CommandGroup var description = new StringBuilder().Append("# ").Append(i); - description.AppendLine().Append("- ").Append(string.Format( + description.AppendLine().AppendWithBullet(string.Format( Messages.RandomMin, Markdown.InlineCode(min.ToString()))); if (secondNullable is null && first >= secondDefault) { description.Append(' ').Append(Messages.Default); } - description.AppendLine().Append("- ").Append(string.Format( + description.AppendLine().AppendWithBullet(string.Format( Messages.RandomMax, Markdown.InlineCode(max.ToString()))); if (secondNullable is null && first < secondDefault) { @@ -449,7 +449,7 @@ public class ToolsCommandGroup : CommandGroup foreach (var markdownTimestamp in AllStyles.Select(style => Markdown.Timestamp(timestamp, style))) { - description.Append("- ").Append(Markdown.InlineCode(markdownTimestamp)) + description.AppendWithBullet(Markdown.InlineCode(markdownTimestamp)) .Append(" → ").AppendLine(markdownTimestamp); } diff --git a/src/Extensions/StringBuilderExtensions.cs b/src/Extensions/StringBuilderExtensions.cs new file mode 100644 index 0000000..00b7db8 --- /dev/null +++ b/src/Extensions/StringBuilderExtensions.cs @@ -0,0 +1,21 @@ +using System.Text; + +namespace Octobot.Extensions; + +public static class StringBuilderExtensions +{ + public static StringBuilder AppendWithBullet(this StringBuilder builder, string? text) + { + return builder.Append("- ").Append(text); + } + + public static StringBuilder AppendLineWithBullet(this StringBuilder builder, string? text) + { + return builder.Append("- ").AppendLine(text); + } + + public static StringBuilder AppendLineWithSubBullet(this StringBuilder builder, string? text) + { + return builder.Append(" - ").AppendLine(text); + } +}