OSDN Git Service

一覧ウィンドウの艦隊表示に速力を表示する
[kancollesniffer/KancolleSniffer.git] / KancolleSniffer / ErrorLog.cs
index 1134980..d2c5c9b 100644 (file)
@@ -20,6 +20,8 @@ using System.Linq;
 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
@@ -40,11 +42,15 @@ namespace KancolleSniffer
 \r
         public void CheckBattleApi(string url, string request, string response)\r
         {\r
-            if (!url.EndsWith("api_port/port"))\r
-                _battleApiLog.Add(new[] {url, request, response});\r
+            if (_prevBattleState == BattleState.None)\r
+                _battleApiLog.Clear();\r
             try\r
             {\r
-                if (_prevBattleState == BattleState.Result &&\r
+                if (_sniffer.Battle.BattleState != BattleState.None)\r
+                {\r
+                    _battleApiLog.Add(new[] {url, request, response});\r
+                }\r
+                else if (_prevBattleState == BattleState.Result &&\r
                          // battleresultのあとのship_deckかportでのみエラー判定する\r
                          IsBattleResultError)\r
                 {\r
@@ -55,8 +61,6 @@ namespace KancolleSniffer
             {\r
                 _prevBattleState = _sniffer.Battle.BattleState;\r
             }\r
-            if (url.EndsWith("api_port/port"))\r
-                _battleApiLog.Clear();\r
         }\r
 \r
         private bool IsBattleResultError =>\r
@@ -94,9 +98,9 @@ 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
@@ -110,10 +114,12 @@ namespace KancolleSniffer
 \r
         public static void RemoveUnwantedInformation(ref string request, ref string response)\r
         {\r
-            var token = new Regex("&api%5Ftoken=.+?(?=&|$)|api%5Ftoken=.+?(?:&|$)");\r
+            var token = new Regex(@"&api(?:%5F|_)token=.+?(?=&|$)|api(?:%5F|_)token=.+?(?:&|$)|api(?:%5F|_)btime=\d+&?");\r
             request = token.Replace(request, "");\r
-            var id = new Regex(@"""api_member_id"":""\d+?"",?|""api_nickname"":"".+?"",?|""api_nickname_id"":""\d+"",?");\r
+            var id = new Regex(@"""api_member_id"":""?\d+""?,?|""api_nickname"":"".+?"",?|""api_nickname_id"":""\d+"",?|""api_name_id"":"".+?"",?|");\r
             response = id.Replace(response, "");\r
+            var name = new Regex(@"""api_name"":"".+?""");\r
+            response = name.Replace(response, @"""api_name"":""""");\r
         }\r
 \r
         private string CompressApi(string api)\r