diff --git a/BarrageGrab/Forms/FormView.cs b/BarrageGrab/Forms/FormView.cs index 60ebdf3..430a38b 100644 --- a/BarrageGrab/Forms/FormView.cs +++ b/BarrageGrab/Forms/FormView.cs @@ -29,11 +29,7 @@ namespace BarrageGrab InitializeComponent(); barServer.OnPrint += WssService_OnPrint; barServer.Grab.Proxy.OnProxyStatus += Proxy_OnProxyStatus; - AppRuntime.RoomCaches.OnCache += RoomCaches_OnCache; - this.txb_wsaddr.Text = barServer.ServerLocation; - this.txb_upstreamProxy.Text = proxy.HttpUpstreamProxy; - this.cbx_barrageLog.Checked = AppSetting.Current.BarrageLog; - InitTabPages(); + AppRuntime.RoomCaches.OnCache += RoomCaches_OnCache; } private void InitTabPages() @@ -155,6 +151,11 @@ namespace BarrageGrab private void FormView_Load(object sender, EventArgs e) { + this.txb_wsaddr.Text = barServer.ServerLocation; + this.txb_upstreamProxy.Text = proxy.HttpUpstreamProxy; + this.cbx_barrageLog.Checked = AppSetting.Current.BarrageLog; + InitTabPages(); + this.cbx_enableProxy.Checked = SystemProxy.ProxyIsOpen(); } diff --git a/BarrageGrab/Logger.cs b/BarrageGrab/Logger.cs index 7e7a532..967da2c 100644 --- a/BarrageGrab/Logger.cs +++ b/BarrageGrab/Logger.cs @@ -83,6 +83,7 @@ namespace BarrageGrab { var dir = Path.Combine(AppContext.BaseDirectory, "logs", "弹幕日志"); var room = AppRuntime.RoomCaches.GetCachedWebRoomInfo(msg.RoomId.ToString()); + if(room == null) return; var date = DateTime.Now.ToString("yyyy年MM月dd日直播"); dir = Path.Combine(dir, $"({room.WebRoomId}){room?.Owner?.Nickname ?? "-1"}", date); if (!Directory.Exists(dir)) diff --git a/BarrageGrab/Proxy/ProxyEventArgs/HttpResponseEventArgs.cs b/BarrageGrab/Proxy/ProxyEventArgs/HttpResponseEventArgs.cs index 2df1ada..82f1b5c 100644 --- a/BarrageGrab/Proxy/ProxyEventArgs/HttpResponseEventArgs.cs +++ b/BarrageGrab/Proxy/ProxyEventArgs/HttpResponseEventArgs.cs @@ -31,5 +31,10 @@ namespace BarrageGrab.Proxy.ProxyEventArgs /// 域名 /// public string HostName { get; set; } + + /// + /// 有效载荷 + /// + public byte[] Payload { get; set; } } } diff --git a/BarrageGrab/Proxy/TitaniumProxy.cs b/BarrageGrab/Proxy/TitaniumProxy.cs index 33c7bb5..b202bdc 100644 --- a/BarrageGrab/Proxy/TitaniumProxy.cs +++ b/BarrageGrab/Proxy/TitaniumProxy.cs @@ -207,13 +207,15 @@ namespace BarrageGrab.Proxy //轮询方式(当抖音ws连接断开后,客户端也会降级使用轮询模式获取弹幕) if (uri.Contains(BARRAGE_POOL_PATH) && contentType.Contains("application/protobuffer")) { - //var payload = await e.GetResponseBody(); + var payload = await e.GetResponseBody(); + base.FireOnFetchResponse(new HttpResponseEventArgs() { HttpClient = e.HttpClient, ProcessID = processid, HostName = hostname, ProcessName = base.GetProcessName(processid), + Payload = payload }); } } diff --git a/BarrageGrab/WssBarrageGrab.cs b/BarrageGrab/WssBarrageGrab.cs index c1ed54c..70162f7 100644 --- a/BarrageGrab/WssBarrageGrab.cs +++ b/BarrageGrab/WssBarrageGrab.cs @@ -136,7 +136,9 @@ namespace BarrageGrab //http 数据处理 private void Proxy_OnFetchResponse(object sender, HttpResponseEventArgs e) { - var payload = e.HttpClient.Response.Body; + var payload = e.Payload; + + if (payload == null || payload.Length == 0) return; var response = Serializer.Deserialize(new ReadOnlyMemory(payload));