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
}\r
else if (_prevBattleState == BattleState.Result &&\r
// battleresultのあとのship_deckかportでのみエラー判定する\r
- IsBattleResultError)\r
+ _sniffer.IsBattleResultError)\r
{\r
throw new BattleResultError();\r
}\r
}\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
\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
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
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