完善窗体逻辑;
添加弹幕日志; 修复房间信息获取正则表达式;
This commit is contained in:
+60
-1
@@ -4,11 +4,13 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using NLog;
|
||||
using BarrageGrab.Modles.JsonEntity;
|
||||
using System.IO;
|
||||
|
||||
namespace BarrageGrab
|
||||
{
|
||||
public static class Logger
|
||||
{
|
||||
{
|
||||
private static NLog.Config.ISetupBuilder builder = LogManager.Setup().LoadConfigurationFromFile("nlog.config");
|
||||
|
||||
private static readonly NLog.Logger logger = builder.GetLogger("*");
|
||||
@@ -53,5 +55,62 @@ namespace BarrageGrab
|
||||
{
|
||||
logger.Fatal(ex, message);
|
||||
}
|
||||
|
||||
public static void LogBarrage(PackMsgType type, Msg msg)
|
||||
{
|
||||
if (!Appsetting.Current.BarrageLog) return;
|
||||
if (type == PackMsgType.无) return;
|
||||
if (Appsetting.Current.LogFilter.Any() && !Appsetting.Current.LogFilter.Contains(type.GetHashCode())) return;
|
||||
|
||||
try
|
||||
{
|
||||
var dir = Path.Combine(AppContext.BaseDirectory, "logs", "弹幕日志");
|
||||
var room = AppRuntime.RoomCaches.GetCachedWebRoomInfo(msg.RoomId.ToString());
|
||||
var date = DateTime.Now.ToString("yyyy年MM月dd日直播");
|
||||
dir = Path.Combine(dir, $"({room.WebRoomId}){room?.Owner?.Nickname ?? "-1"}", date);
|
||||
if (!Directory.Exists(dir))
|
||||
{
|
||||
Directory.CreateDirectory(dir);
|
||||
}
|
||||
var path = Path.Combine(dir, type + ".txt");
|
||||
if (!File.Exists(path))
|
||||
{
|
||||
File.Create(path).Close();
|
||||
}
|
||||
var writer = new StreamWriter(path, true, Encoding.UTF8);
|
||||
var line = LogText(msg, type);
|
||||
writer.WriteLine(line);
|
||||
writer.Close();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LogWarn("弹幕日志写入失败," + ex.Message);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private static string LogText(Msg msg, PackMsgType barType)
|
||||
{
|
||||
var rinfo = AppRuntime.RoomCaches.GetCachedWebRoomInfo(msg.RoomId.ToString());
|
||||
var text = $"{DateTime.Now.ToString("HH:mm:ss")} [{barType}]";
|
||||
|
||||
if (msg.User != null)
|
||||
{
|
||||
text += $" [{msg.User?.GenderToString()}] ";
|
||||
}
|
||||
|
||||
ConsoleColor color = Appsetting.Current.ColorMap[barType].Item1;
|
||||
var append = msg.Content;
|
||||
switch (barType)
|
||||
{
|
||||
case PackMsgType.弹幕消息: append = $"{msg?.User?.Nickname}: {msg.Content}"; break;
|
||||
case PackMsgType.下播: append = $"直播已结束"; break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
text += append;
|
||||
return text;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user