using System; using System.Collections.Generic; using System.Configuration; using System.Linq; using System.Text; using System.Threading.Tasks; using BarrageGrab.JsonEntity; using static System.Configuration.ConfigurationManager; namespace BarrageGrab { internal class Appsetting { private static readonly Appsetting ins = new Appsetting(); public static Appsetting Current { get => ins; } public Appsetting() { try { ProcessFilter = AppSettings["processFilter"].Trim().Split(','); WsProt = int.Parse(AppSettings["wsListenPort"]); PrintBarrage = AppSettings["printBarrage"].ToLower() == "true"; ProxyPort = int.Parse(AppSettings["proxyPort"]); PrintFilter = Enum.GetValues(typeof(BarrageMsgType)).Cast().ToArray(); FilterHostName = bool.Parse(AppSettings["filterHostName"].Trim()); HostNameFilter = AppSettings["hostNameFilter"].Trim().Split(',').Where(w=>!string.IsNullOrWhiteSpace(w)).ToArray(); RoomIds = AppSettings["roomIds"].Trim().Split(',').Where(w=>!string.IsNullOrWhiteSpace(w)).Select(s => long.Parse(s)).ToArray(); var printFilter = AppSettings["printFilter"].Trim().ToLower(); if (printFilter != "all") { if (string.IsNullOrWhiteSpace(printFilter)) PrintFilter = new int[0]; else PrintFilter = printFilter.Split(',').Select(x => int.Parse(x)).ToArray(); } } catch (Exception ex) { Console.WriteLine("配置文件读取失败,请检查配置文件是否正确"); throw ex; } } /// /// 过滤的进程 /// public string[] ProcessFilter { get; private set; } /// /// 端口号 /// public int WsProt { get; private set; } /// /// 控制台打印消息开关 /// public bool PrintBarrage { get; private set; } /// /// 代理端口 /// public int ProxyPort { get; private set; } = 8827; /// /// 控制台输出过滤器 /// public int[] PrintFilter { get; private set; } /// /// 监听的房间号 /// public long[] RoomIds { get; private set; } = new long[0]; /// /// 使用域名过滤 /// public bool FilterHostName { get; private set; } = true; /// /// 域名白名单列表 /// public string[] HostNameFilter { get; private set; } = new string[0]; } }