From b4ef2170a01ca728400adf291966c922dbc6ce5b Mon Sep 17 00:00:00 2001 From: mctaylors Date: Sat, 30 Dec 2023 15:49:21 +0300 Subject: [PATCH] felt like i needed to finish this thing Signed-off-by: mctaylors --- src/Commands/RemindCommandGroup.cs | 6 +++--- src/Parsers/TimeSpanParser.cs | 9 +++++---- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/Commands/RemindCommandGroup.cs b/src/Commands/RemindCommandGroup.cs index 57ae656..3754bd2 100644 --- a/src/Commands/RemindCommandGroup.cs +++ b/src/Commands/RemindCommandGroup.cs @@ -17,7 +17,7 @@ using Remora.Discord.Extensions.Embeds; using Remora.Discord.Extensions.Formatting; using Remora.Rest.Core; using Remora.Results; -using TimeSpanParser = Octobot.Parsers.TimeSpanParser; +using Octobot.Parsers; namespace Octobot.Commands; @@ -146,8 +146,8 @@ public class RemindCommandGroup : CommandGroup var data = await _guildData.GetData(guildId, CancellationToken); Messages.Culture = GuildSettings.Language.Get(data.Settings); - var timeSpan = TimeSpanParser.TryParse(stringTimeSpan, CancellationToken); - if (timeSpan.Equals(TimeSpan.Zero)) + var parseResult = TimeSpanParser.TryParse(stringTimeSpan, CancellationToken); + if (!parseResult.IsDefined(out var timeSpan)) { var failedEmbed = new EmbedBuilder() .WithSmallTitle(Messages.InvalidTimeSpan, bot) diff --git a/src/Parsers/TimeSpanParser.cs b/src/Parsers/TimeSpanParser.cs index e65ac08..0033ed9 100644 --- a/src/Parsers/TimeSpanParser.cs +++ b/src/Parsers/TimeSpanParser.cs @@ -2,6 +2,7 @@ using System.Text.RegularExpressions; using JetBrains.Annotations; using Remora.Commands.Parsers; +using Remora.Results; namespace Octobot.Parsers; @@ -20,13 +21,13 @@ public partial class TimeSpanParser : AbstractTypeParser /// Parsed . /// /// - /// If parse wasn't successful, will return . + /// If parse wasn't successful, will return . /// - public static TimeSpan TryParse(string timeSpanString, CancellationToken ct = default) + public static Result TryParse(string timeSpanString, CancellationToken ct = default) { if (timeSpanString.StartsWith('-')) { - return TimeSpan.Zero; + return new ArgumentInvalidError(nameof(timeSpanString), "TimeSpan cannot be inverted."); } if (TimeSpan.TryParse(timeSpanString, DateTimeFormatInfo.InvariantInfo, out var parsedTimeSpan)) @@ -37,7 +38,7 @@ public partial class TimeSpanParser : AbstractTypeParser var matches = ParseRegex().Matches(timeSpanString); if (matches.Count is 0) { - return TimeSpan.Zero; + return new ArgumentInvalidError(nameof(timeSpanString), "Invalid TimeSpan."); } var timeSpan = TimeSpan.Zero;