summaryrefslogtreecommitdiff
path: root/src/SMAPI.Web/Framework/LogParsing/LogParser.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/SMAPI.Web/Framework/LogParsing/LogParser.cs')
-rw-r--r--src/SMAPI.Web/Framework/LogParsing/LogParser.cs12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/SMAPI.Web/Framework/LogParsing/LogParser.cs b/src/SMAPI.Web/Framework/LogParsing/LogParser.cs
index 23a1baa4..9e44f163 100644
--- a/src/SMAPI.Web/Framework/LogParsing/LogParser.cs
+++ b/src/SMAPI.Web/Framework/LogParsing/LogParser.cs
@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
+using StardewModdingAPI.Common;
using StardewModdingAPI.Web.Framework.LogParsing.Models;
namespace StardewModdingAPI.Web.Framework.LogParsing
@@ -29,7 +30,8 @@ namespace StardewModdingAPI.Web.Framework.LogParsing
private readonly Regex ModListStartPattern = new Regex(@"^Loaded \d+ mods:$", RegexOptions.Compiled | RegexOptions.IgnoreCase);
/// <summary>A regex pattern matching an entry in SMAPI's mod list.</summary>
- private readonly Regex ModListEntryPattern = new Regex(@"^ (?<name>.+) (?<version>.+) by (?<author>.+) \| (?<description>.+)$", RegexOptions.Compiled | RegexOptions.IgnoreCase);
+ /// <remarks>The author name and description are optional.</remarks>
+ private readonly Regex ModListEntryPattern = new Regex(@"^ (?<name>.+?) (?<version>" + SemanticVersionImpl.UnboundedVersionPattern + @")(?: by (?<author>[^\|]+))?(?: \| (?<description>.+))?$", RegexOptions.Compiled | RegexOptions.IgnoreCase);
/// <summary>A regex pattern matching the start of SMAPI's content pack list.</summary>
private readonly Regex ContentPackListStartPattern = new Regex(@"^Loaded \d+ content packs:$", RegexOptions.Compiled | RegexOptions.IgnoreCase);
@@ -53,6 +55,7 @@ namespace StardewModdingAPI.Web.Framework.LogParsing
return new ParsedLog
{
IsValid = false,
+ RawText = logText,
Error = "The log is empty."
};
}
@@ -61,7 +64,8 @@ namespace StardewModdingAPI.Web.Framework.LogParsing
ParsedLog log = new ParsedLog
{
IsValid = true,
- Messages = this.CollapseRepeats(this.GetMessages(logText)).ToArray(),
+ RawText = logText,
+ Messages = this.CollapseRepeats(this.GetMessages(logText)).ToArray()
};
// parse log messages
@@ -152,7 +156,7 @@ namespace StardewModdingAPI.Web.Framework.LogParsing
{
IsValid = false,
Error = ex.Message,
- RawTextIfError = logText
+ RawText = logText
};
}
catch (Exception ex)
@@ -161,7 +165,7 @@ namespace StardewModdingAPI.Web.Framework.LogParsing
{
IsValid = false,
Error = $"Parsing the log file failed. Technical details:\n{ex}",
- RawTextIfError = logText
+ RawText = logText
};
}
}