summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/release-notes.md3
-rw-r--r--src/SMAPI.Web/Framework/LogParsing/LogParser.cs11
2 files changed, 7 insertions, 7 deletions
diff --git a/docs/release-notes.md b/docs/release-notes.md
index e54d6c71..e464154f 100644
--- a/docs/release-notes.md
+++ b/docs/release-notes.md
@@ -11,6 +11,9 @@
* For modders:
* Fixed world events not raised for volcano levels.
+For the web UI:
+ * Fixed edge cases in SMAPI log parsing.
+
## 3.8
Released 21 December 2020 for Stardew Valley 1.5 or later. See [release highlights](https://www.patreon.com/posts/45294737).
diff --git a/src/SMAPI.Web/Framework/LogParsing/LogParser.cs b/src/SMAPI.Web/Framework/LogParsing/LogParser.cs
index f69d4b6f..84013ccc 100644
--- a/src/SMAPI.Web/Framework/LogParsing/LogParser.cs
+++ b/src/SMAPI.Web/Framework/LogParsing/LogParser.cs
@@ -42,7 +42,7 @@ namespace StardewModdingAPI.Web.Framework.LogParsing
private readonly Regex ModUpdateListStartPattern = new Regex(@"^You can update \d+ mods?:$", RegexOptions.Compiled | RegexOptions.IgnoreCase);
/// <summary>A regex pattern matching an entry in SMAPI's mod update list.</summary>
- private readonly Regex ModUpdateListEntryPattern = new Regex(@"^ (?<name>.+?) (?<version>[^\s]+): (?<link>.+)$", RegexOptions.Compiled | RegexOptions.IgnoreCase);
+ private readonly Regex ModUpdateListEntryPattern = new Regex(@"^ (?<name>.+) (?<version>[^\s]+): (?<link>.+)$", RegexOptions.Compiled | RegexOptions.IgnoreCase);
/// <summary>A regex pattern matching SMAPI's update line.</summary>
private readonly Regex SmapiUpdatePattern = new Regex(@"^You can update SMAPI to (?<version>[^\s]+): (?<link>.+)$", RegexOptions.Compiled | RegexOptions.IgnoreCase);
@@ -109,12 +109,9 @@ namespace StardewModdingAPI.Web.Framework.LogParsing
if (message.Mod == "SMAPI")
{
// update flags
- if (inModList && !this.ModListEntryPattern.IsMatch(message.Text))
- inModList = false;
- if (inContentPackList && !this.ContentPackListEntryPattern.IsMatch(message.Text))
- inContentPackList = false;
- if (inModUpdateList && !this.ModUpdateListEntryPattern.IsMatch(message.Text))
- inModUpdateList = false;
+ inModList = inModList && message.Level == LogLevel.Info && this.ModListEntryPattern.IsMatch(message.Text);
+ inContentPackList = inContentPackList && message.Level == LogLevel.Info && this.ContentPackListEntryPattern.IsMatch(message.Text);
+ inModUpdateList = inModUpdateList && message.Level == LogLevel.Alert && this.ModUpdateListEntryPattern.IsMatch(message.Text);
// mod list
if (!inModList && message.Level == LogLevel.Info && this.ModListStartPattern.IsMatch(message.Text))