OSDN Git Service

先制対潜の判定を最新の検証結果に合わせる
[kancollesniffer/KancolleSniffer.git] / KancolleSniffer / ErrorLog.cs
index 0fc952a..0c12769 100644 (file)
@@ -18,8 +18,9 @@ using System.IO;
 using System.IO.Compression;\r
 using System.Linq;\r
 using System.Text;\r
-using System.Text.RegularExpressions;\r
 using System.Windows.Forms;\r
+using KancolleSniffer.Model;\r
+using KancolleSniffer.Util;\r
 \r
 namespace KancolleSniffer\r
 {\r
@@ -50,7 +51,7 @@ namespace KancolleSniffer
                 }\r
                 else if (_prevBattleState == BattleState.Result &&\r
                          // battleresultのあとのship_deckかportでのみエラー判定する\r
-                         IsBattleResultError)\r
+                         _sniffer.IsBattleResultError)\r
                 {\r
                     throw new BattleResultError();\r
                 }\r
@@ -61,13 +62,10 @@ namespace KancolleSniffer
             }\r
         }\r
 \r
-        private bool IsBattleResultError =>\r
-            _sniffer.Battle.DisplayedResultRank.IsError || _sniffer.IsBattleResultStatusError;\r
-\r
         public string GenerateBattleErrorLog()\r
         {\r
             foreach (var logs in _battleApiLog)\r
-                RemoveUnwantedInformation(ref logs[1], ref logs[2]);\r
+                Privacy.Remove(ref logs[0], ref logs[1], ref logs[2]);\r
             var version = string.Join(".", Application.ProductVersion.Split('.').Take(2));\r
             var api = CompressApi(string.Join("\r\n",\r
                 new[] {BattleStartSlots()}.Concat(_battleApiLog.SelectMany(logs => logs))));\r
@@ -96,13 +94,13 @@ namespace KancolleSniffer
 \r
         private string HpDiffLog() => string.Join(" ",\r
             from pair in _sniffer.BattleResultStatusDiff\r
-            let assumed = pair.Assumed\r
+            let assumed = pair.Assumed // こちらのFleetはnull\r
             let actual = pair.Actual\r
-            select $"({assumed.Fleet}-{assumed.DeckIndex}) {assumed.NowHp}->{actual.NowHp}");\r
+            select $"({actual.Fleet.Number}-{actual.DeckIndex}) {assumed.NowHp}->{actual.NowHp}");\r
 \r
         public string GenerateErrorLog(string url, string request, string response, string exception)\r
         {\r
-            RemoveUnwantedInformation(ref request, ref response);\r
+            Privacy.Remove(ref url, ref request, ref response);\r
             var version = string.Join(".", Application.ProductVersion.Split('.').Take(2));\r
             var api = CompressApi($"{url}\r\n{request}\r\n{response}");\r
             var result = $"{{{{{{\r\n{DateTime.Now:g} {version}\r\n{exception}\r\n{api}\r\n}}}}}}";\r
@@ -110,14 +108,6 @@ namespace KancolleSniffer
             return result;\r
         }\r
 \r
-        private void RemoveUnwantedInformation(ref string request, ref string response)\r
-        {\r
-            var token = new Regex("&api%5Ftoken=[^&]*|api%5Ftoken=[^&]*&?");\r
-            request = token.Replace(request, "");\r
-            var id = new Regex(@"""api_member_id"":\d+,?|""api_nickname"":[^,]+,""api_nickname_id"":""d+"",?");\r
-            response = id.Replace(response, "");\r
-        }\r
-\r
         private string CompressApi(string api)\r
         {\r
             var output = new MemoryStream();\r
@@ -128,7 +118,7 @@ namespace KancolleSniffer
             var ascii85 = Ascii85.Encode(output.ToArray());\r
             var result = new List<string>();\r
             var rest = ascii85.Length;\r
-            const int lineLength = 46;\r
+            const int lineLength = 80;\r
             for (var i = 0; i < ascii85.Length; i += lineLength, rest -= lineLength)\r
                 result.Add(ascii85.Substring(i, Math.Min(rest, lineLength)));\r
             return string.Join("\r\n", result);\r