X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=KancolleSniffer%2FErrorLog.cs;h=cc6ca73c2c06de0f71fc944b31812a7fdff593bf;hb=HEAD;hp=5bb606a030c04c7d36cf1d45060c844733d62cea;hpb=383d4a0e79f45ab2d3ac428d6cbdc27c68163ee8;p=kancollesniffer%2FKancolleSniffer.git diff --git a/KancolleSniffer/ErrorLog.cs b/KancolleSniffer/ErrorLog.cs index 5bb606a..cc6ca73 100644 --- a/KancolleSniffer/ErrorLog.cs +++ b/KancolleSniffer/ErrorLog.cs @@ -18,8 +18,8 @@ using System.IO; using System.IO.Compression; using System.Linq; using System.Text; -using System.Text.RegularExpressions; using System.Windows.Forms; +using DynaJson; using KancolleSniffer.Model; using KancolleSniffer.Util; @@ -33,14 +33,14 @@ namespace KancolleSniffer { private readonly Sniffer _sniffer; private BattleState _prevBattleState = BattleState.None; - private readonly List _battleApiLog = new List(); + private readonly List _battleApiLog = new List(); public ErrorLog(Sniffer sniffer) { _sniffer = sniffer; } - public void CheckBattleApi(string url, string request, string response) + public void CheckBattleApi(Main.Session session) { if (_prevBattleState == BattleState.None) _battleApiLog.Clear(); @@ -48,11 +48,11 @@ namespace KancolleSniffer { if (_sniffer.Battle.BattleState != BattleState.None) { - _battleApiLog.Add(new[] {url, request, response}); + _battleApiLog.Add(session); } else if (_prevBattleState == BattleState.Result && // battleresultのあとのship_deckかportでのみエラー判定する - IsBattleResultError) + _sniffer.IsBattleResultError) { throw new BattleResultError(); } @@ -63,16 +63,13 @@ namespace KancolleSniffer } } - private bool IsBattleResultError => - _sniffer.Battle.DisplayedResultRank.IsError || _sniffer.IsBattleResultStatusError; - public string GenerateBattleErrorLog() { - foreach (var logs in _battleApiLog) - Privacy.Remove(ref logs[0], ref logs[1], ref logs[2]); + foreach (var s in _battleApiLog) + Privacy.Remove(s); var version = string.Join(".", Application.ProductVersion.Split('.').Take(2)); var api = CompressApi(string.Join("\r\n", - new[] {BattleStartSlots()}.Concat(_battleApiLog.SelectMany(logs => logs)))); + new[] {BattleStartSlots()}.Concat(_battleApiLog.SelectMany(s => s.Lines)))); var rank = _sniffer.Battle.DisplayedResultRank; var status = string.Join("\r\n", new[] { @@ -86,14 +83,14 @@ namespace KancolleSniffer private string BattleStartSlots() { - return JsonObject.CreateJsonObject((from ship in _sniffer.BattleStartStatus - group ship by ship.Fleet - into fleet - select - (from s in fleet - select (from item in s.AllSlot select item.Spec.Id).ToArray() - ).ToArray() - ).ToArray()).ToString(); + return new JsonObject((from ship in _sniffer.BattleStartStatus + group ship by ship.Fleet + into fleet + select + (from s in fleet + select (from item in s.AllSlot select item.Spec.Id).ToArray() + ).ToArray() + ).ToArray()).ToString(); } private string HpDiffLog() => string.Join(" ", @@ -102,11 +99,11 @@ namespace KancolleSniffer let actual = pair.Actual select $"({actual.Fleet.Number}-{actual.DeckIndex}) {assumed.NowHp}->{actual.NowHp}"); - public string GenerateErrorLog(string url, string request, string response, string exception) + public string GenerateErrorLog(Main.Session s, string exception) { - Privacy.Remove(ref url, ref request, ref response); + Privacy.Remove(s); var version = string.Join(".", Application.ProductVersion.Split('.').Take(2)); - var api = CompressApi($"{url}\r\n{request}\r\n{response}"); + var api = CompressApi(string.Join("\r\n", s.Lines)); var result = $"{{{{{{\r\n{DateTime.Now:g} {version}\r\n{exception}\r\n{api}\r\n}}}}}}"; File.WriteAllText("error.log", result); return result;