From dd26a5738c5f2dc6d8e491354dc0751a69aeb346 Mon Sep 17 00:00:00 2001 From: Anna Date: Sun, 19 Sep 2021 17:56:21 -0400 Subject: [PATCH] fix(trainer): handle weirdly-formatted emails --- NoSoliciting.Trainer/NoSoliciting.Trainer.csproj | 2 +- NoSoliciting.Trainer/Program.cs | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/NoSoliciting.Trainer/NoSoliciting.Trainer.csproj b/NoSoliciting.Trainer/NoSoliciting.Trainer.csproj index 43b13f4..0866e70 100755 --- a/NoSoliciting.Trainer/NoSoliciting.Trainer.csproj +++ b/NoSoliciting.Trainer/NoSoliciting.Trainer.csproj @@ -11,7 +11,7 @@ - + diff --git a/NoSoliciting.Trainer/Program.cs b/NoSoliciting.Trainer/Program.cs index 8a74295..ed0980f 100644 --- a/NoSoliciting.Trainer/Program.cs +++ b/NoSoliciting.Trainer/Program.cs @@ -64,12 +64,18 @@ namespace NoSoliciting.Trainer { }; foreach (var emlPath in Directory.GetFiles(path, "*.eml")) { var message = MimeMessage.Load(opts, new FileStream(emlPath, FileMode.Open)); - var json = message.TextBody.Split('\r', '\n').FirstOrDefault(line => line.StartsWith("JSON: ")); - if (json == null) { + var lines = message.TextBody + .Split('\r', '\n') + .SkipWhile(line => !line.StartsWith("JSON: ")) + .Select(line => line.Replace("JSON: ", "").Replace(" ", "").Trim()) + .ToArray(); + if (lines.Length == 0) { continue; } - var jsonText = Encoding.UTF8.GetString(Convert.FromBase64String(json.Split(": ")[1])); + var json = string.Join("", lines); + + var jsonText = Encoding.UTF8.GetString(Convert.FromBase64String(json)); var report = JsonConvert.DeserializeObject(jsonText); var content = XivString.GetText(report.Content); var data = new Data(report.Type, content) {