Skip to content

Commit 7fb81e4

Browse files
updated regex to exclude times as part of other words
1 parent edf8345 commit 7fb81e4

File tree

3 files changed

+6
-12
lines changed

3 files changed

+6
-12
lines changed

TimeZoneBot.BusinessLayer/TimeHelpers.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ namespace TimeZoneBot.BusinessLayer;
77
public static class TimeHelpers
88
{
99
public const string TimeRegexPattern =
10-
"(([0-1]?[0-9]|2[0-3]):[0-5][0-9]( |)(am|pm|)|([0-1]?[0-9]|2[0-3])( |)(am|pm))";
10+
@"\b(([0-1]?[0-9]|2[0-3]):[0-5][0-9]( |)([ap]\.?m\.?)?|([0-1]?[0-9]|2[0-3])( |)([ap]\.?m\.?))\b";
1111
public const string TimeFormat = "h:mm tt";
1212
public const string TimeFormatNoMinutes = "h tt";
1313
public const string TimeFormat24Hour = "H:mm";
@@ -17,7 +17,7 @@ public static class TimeHelpers
1717

1818
public static bool HasMeridiem(Meridiem meridiem, string time)
1919
{
20-
return time.ToLower().Contains(meridiem.ToString().ToLower());
20+
return time.Replace(".", "").ToLower().Contains(meridiem.ToString().ToLower());
2121
}
2222

2323
public static bool HasAnyMeridiem(string time)

TimeZoneBot.BusinessLayer/TimeZoneBusinessLayer.cs

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -114,18 +114,12 @@ public async Task<bool> SetTimeZone(IUser user, string timeZone)
114114
private static string CleanTime(string time)
115115
{
116116
var multipleSpacesRegex = new Regex("[ ]{2,}");
117-
var cleanedTime = time.Trim();
118-
var meridiemFound = Meridiem.NoMeridiem;
117+
var cleanedTime = time.Replace(".", "").Trim();
119118

120119
var allMeridiems = TimeHelpers.GetAllMeridiems();
121120

122-
foreach (var meridiem in allMeridiems)
123-
{
124-
if (TimeHelpers.HasMeridiem(meridiem, time))
125-
{
126-
meridiemFound = meridiem;
127-
}
128-
}
121+
var meridiemFound = allMeridiems.FirstOrDefault(meridiem => TimeHelpers.HasMeridiem(meridiem, cleanedTime));
122+
129123
var indexOfMeridiem = cleanedTime.IndexOf(meridiemFound.ToString(), StringComparison.InvariantCultureIgnoreCase);
130124

131125
if (meridiemFound != Meridiem.NoMeridiem && indexOfMeridiem > 0) //accounts for -1 meaning none found and AM or PM not in the first position (which would not be valid time anyway)

TimeZoneBot/appsettings.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"Version": {
3-
"VersionNumber": "7.5.1"
3+
"VersionNumber": "7.5.2"
44
},
55
"Discord": {
66
"BotToken": "token",

0 commit comments

Comments
 (0)