OSDN Git Service

エラーログからapi_dataの値以外を取り除く
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Mon, 4 Dec 2017 12:11:37 +0000 (21:11 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Fri, 8 Dec 2017 12:51:51 +0000 (21:51 +0900)
KancolleSniffer.Test/ErrorLogTest.cs
KancolleSniffer/ErrorLog.cs

index 43e63ec..e2672f1 100644 (file)
@@ -38,5 +38,19 @@ namespace KancolleSniffer.Test
             ErrorLog.RemoveUnwantedInformation(ref request4, ref response);\r
             PAssert.That(() => request4 == "", "トークン単独");\r
         }\r
+\r
+        [TestMethod]\r
+        public void RemoveUnwantedInformationFromResponse()\r
+        {\r
+            var request = "";\r
+            var response = @"{""api_result"":1,""api_result_msg"":""成功"",""api_data"":"+\r
+                            @"{""api_basic"":{""api_member_id"":""123456""," +\r
+                            @"""api_nickname"":""ぱんなこった"",""api_nickname_id"":""12345678"",""api_active_flag"":1}}}";\r
+            ErrorLog.RemoveUnwantedInformation(ref request, ref response);\r
+            PAssert.That(() => response == @"{""api_basic"":{""api_active_flag"":1}}");\r
+            var response2 = @"{""api_result"":1,""api_result_msg"":""成功""}";\r
+            ErrorLog.RemoveUnwantedInformation(ref request, ref response2);\r
+            PAssert.That(() => response2 == @"");\r
+        }\r
     }\r
 }
\ No newline at end of file
index 2977ba8..8695071 100644 (file)
@@ -114,8 +114,10 @@ namespace KancolleSniffer
         {\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
+            var id = new Regex(@"""api_member_id"":""\d+?"",?|""api_nickname"":"".+?"",?|""api_nickname_id"":""\d+"",?");\r
             response = id.Replace(response, "");\r
+            var preamble = new Regex(@"^{""api_result"":.+?({.*})?}$");\r
+            response = preamble.Replace(response, match => match.Groups[1].Value);\r
         }\r
 \r
         private string CompressApi(string api)\r