diff options
author | Jesse Plamondon-Willard <github@jplamondonw.com> | 2018-02-24 17:54:31 -0500 |
---|---|---|
committer | Jesse Plamondon-Willard <github@jplamondonw.com> | 2018-02-24 17:54:31 -0500 |
commit | 414cf5c197b5b59776d3dda914eb15710efb0868 (patch) | |
tree | 0393a95194ad78cf4440c68657b0488b7db6d68b /src/SMAPI.Web/Framework/LogParsing/Models | |
parent | 5da8b707385b9851ff3f6442de58519125f5c96f (diff) | |
parent | f2e8450706d1971d774f870081deffdb0c6b92eb (diff) | |
download | SMAPI-414cf5c197b5b59776d3dda914eb15710efb0868.tar.gz SMAPI-414cf5c197b5b59776d3dda914eb15710efb0868.tar.bz2 SMAPI-414cf5c197b5b59776d3dda914eb15710efb0868.zip |
Merge branch 'develop' into stable
Diffstat (limited to 'src/SMAPI.Web/Framework/LogParsing/Models')
4 files changed, 122 insertions, 0 deletions
diff --git a/src/SMAPI.Web/Framework/LogParsing/Models/LogLevel.cs b/src/SMAPI.Web/Framework/LogParsing/Models/LogLevel.cs new file mode 100644 index 00000000..40d21bf8 --- /dev/null +++ b/src/SMAPI.Web/Framework/LogParsing/Models/LogLevel.cs @@ -0,0 +1,24 @@ +namespace StardewModdingAPI.Web.Framework.LogParsing.Models +{ + /// <summary>The log severity levels.</summary> + public enum LogLevel + { + /// <summary>Tracing info intended for developers.</summary> + Trace, + + /// <summary>Troubleshooting info that may be relevant to the player.</summary> + Debug, + + /// <summary>Info relevant to the player. This should be used judiciously.</summary> + Info, + + /// <summary>An issue the player should be aware of. This should be used rarely.</summary> + Warn, + + /// <summary>A message indicating something went wrong.</summary> + Error, + + /// <summary>Important information to highlight for the player when player action is needed (e.g. new version available). This should be used rarely to avoid alert fatigue.</summary> + Alert + } +} diff --git a/src/SMAPI.Web/Framework/LogParsing/Models/LogMessage.cs b/src/SMAPI.Web/Framework/LogParsing/Models/LogMessage.cs new file mode 100644 index 00000000..baeac83c --- /dev/null +++ b/src/SMAPI.Web/Framework/LogParsing/Models/LogMessage.cs @@ -0,0 +1,24 @@ +namespace StardewModdingAPI.Web.Framework.LogParsing.Models +{ + /// <summary>A parsed log message.</summary> + public class LogMessage + { + /********* + ** Accessors + *********/ + /// <summary>The local time when the log was posted.</summary> + public string Time { get; set; } + + /// <summary>The log level.</summary> + public LogLevel Level { get; set; } + + /// <summary>The mod name.</summary> + public string Mod { get; set; } + + /// <summary>The log text.</summary> + public string Text { get; set; } + + /// <summary>The number of times this message was repeated consecutively.</summary> + public int Repeated { get; set; } + } +} diff --git a/src/SMAPI.Web/Framework/LogParsing/Models/ModInfo.cs b/src/SMAPI.Web/Framework/LogParsing/Models/ModInfo.cs new file mode 100644 index 00000000..8c84ab38 --- /dev/null +++ b/src/SMAPI.Web/Framework/LogParsing/Models/ModInfo.cs @@ -0,0 +1,27 @@ +namespace StardewModdingAPI.Web.Framework.LogParsing.Models +{ + /// <summary>Metadata about a mod or content pack in the log.</summary> + public class LogModInfo + { + /********* + ** Accessors + *********/ + /// <summary>The mod name.</summary> + public string Name { get; set; } + + /// <summary>The mod author.</summary> + public string Author { get; set; } + + /// <summary>The mod version.</summary> + public string Version { get; set; } + + /// <summary>The mod description.</summary> + public string Description { get; set; } + + /// <summary>The name of the mod for which this is a content pack (if applicable).</summary> + public string ContentPackFor { get; set; } + + /// <summary>The number of errors logged by this mod.</summary> + public int Errors { get; set; } + } +} diff --git a/src/SMAPI.Web/Framework/LogParsing/Models/ParsedLog.cs b/src/SMAPI.Web/Framework/LogParsing/Models/ParsedLog.cs new file mode 100644 index 00000000..31ef2fe1 --- /dev/null +++ b/src/SMAPI.Web/Framework/LogParsing/Models/ParsedLog.cs @@ -0,0 +1,47 @@ +using System; + +namespace StardewModdingAPI.Web.Framework.LogParsing.Models +{ + /// <summary>Parsed metadata for a log.</summary> + public class ParsedLog + { + /********* + ** Accessors + *********/ + /**** + ** Metadata + ****/ + /// <summary>Whether the log file was successfully parsed.</summary> + public bool IsValid { get; set; } + + /// <summary>An error message indicating why the log file is invalid.</summary> + public string Error { get; set; } + + /// <summary>The raw text if <see cref="IsValid"/> is false.</summary> + public string RawTextIfError { get; set; } + + /**** + ** Log data + ****/ + /// <summary>The SMAPI version.</summary> + public string ApiVersion { get; set; } + + /// <summary>The game version.</summary> + public string GameVersion { get; set; } + + /// <summary>The player's operating system.</summary> + public string OperatingSystem { get; set; } + + /// <summary>The mod folder path.</summary> + public string ModPath { get; set; } + + /// <summary>The ISO 8601 timestamp when the log was started.</summary> + public DateTimeOffset Timestamp { get; set; } + + /// <summary>Metadata about installed mods and content packs.</summary> + public LogModInfo[] Mods { get; set; } = new LogModInfo[0]; + + /// <summary>The log messages.</summary> + public LogMessage[] Messages { get; set; } + } +} |