public static void DisplayUser( RayPortUser rayPortUser, int?index = null, bool showShareUrl = true, bool addReturn = true, int intend = 2) { if (rayPortUser == null) { return; } StringBuilder s = new StringBuilder(""); StringWriter sw = new StringWriter(s); s.Append(' ', intend); Displayer.ShowConfigItem(s + "索引", index, Program.HighLightColor); Displayer.ShowConfigItem(s + "用户", rayPortUser.GetRayPortUserRemark(), Program.WarningColor); Displayer.ShowConfigItem(s + "用户Id", rayPortUser.Uuid); Displayer.ShowConfigItem(s + "用户额外Id", rayPortUser.AlterId); Displayer.ShowConfigItem(s + "等级(Level)", rayPortUser.Level); Displayer.ShowConfigItem(s + "邮箱", rayPortUser.Email); if (showShareUrl) { try { Displayer.ShowConfigItem( "分享链接", rayPortUser.GenerateShareUrl(RayConfigRepository.GetRayPort(rayPortUser)), Program.ErrorColor); } catch (Exception) { } } if (addReturn) { Console.WriteLine(); } }
public void Execute() { RayConfigRepository repo = new RayConfigRepository(); IList <RayPort> ports = repo.GetRayPorts(); ConsoleConfigDisplayer.DisplayRayPorts(ports); try { int ch = InputHelper.GetNumberInput("输入端口索引选择端口", tipsColor: ConsoleColor.DarkGreen); ch -= 1; if (ch >= ports.Count) { Displayer.ShowLine("输入错误, 超出索引.", ConsoleColor.Red); return; } ConsoleInputRayPortConfigBuilder rayPortBuilder = new ConsoleInputRayPortConfigBuilder(ports[ch]); RayPortUser user = rayPortBuilder.BuildPortUser(); repo.AddUserToPort(ports[ch], user); Displayer.ShowLine("操作成功!", ConsoleColor.DarkGreen, true); ConsoleConfigDisplayer.DisplayUser(user); } catch (Exception ex) { Displayer.ShowLine($"操作失败!\r\n错误:{ex.Message}", ConsoleColor.Red, true); } }
public static string GetRayPortUserRemark(this RayPortUser rayPortUser) { // rayPortUser.Email.Split('@') Regex regex = new Regex("^.*(?=@)"); if (string.IsNullOrEmpty(rayPortUser.Email)) { rayPortUser.Email = (new Random()).Next(1, int.MaxValue).ToString() + "@la.aggage"; RayConfigRepository.UpdateUser(rayPortUser.Uuid, rayPortUser); } return(regex.Match(rayPortUser.Email)?.Value ?? ""); }
public void Execute() { try { RayConfigRepository.ConfigTrafficStatistic(); IProgramFunction func = new ShowRawConfigFunction(); func.Execute(); } catch (Exception ex) { Displayer.ShowError(ex); } }
internal static void Display() { RayConfigRepository rayConfigRepo = new RayConfigRepository(); IList <RayPort> rayPorts = rayConfigRepo.GetRayPorts(); Console.WriteLine("\r\n"); foreach (RayPort rayPort in rayPorts) { Displayer.ShowConfigItem("端口号", rayPort.Port, true, valueColor: ConsoleColor.Green); Displayer.ShowConfigItem("服务类型", rayPort.Protocol, true); Displayer.ShowConfigItem("是否Udp开启", rayPort.Settings.Udp, true); Displayer.ShowConfigItem("底层传输安全", rayPort.StreamSettings?.Security, true); Displayer.ShowConfigItem("传输协议", rayPort.StreamSettings?.NetWork, true); foreach (RayPortUser client in rayPort.Settings?.Clients ?? new List <RayPortUser>()) { Displayer.ShowConfigItem("用户", client.GetRayPortUserRemark(), ConsoleColor.Yellow); Displayer.ShowConfigItem("用户Id", client.Uuid, ConsoleColor.Yellow); Displayer.ShowConfigItem("额外Id", client.AlterId, ConsoleColor.Yellow); Displayer.ShowConfigItem("邮箱", client.Email, ConsoleColor.Yellow); Displayer.ShowConfigItem("分享链接", client.GenerateShareUrl(rayPort), ConsoleColor.Red, true); } Console.WriteLine(); foreach (var cert in rayPort.StreamSettings?.TlsSettings?.Certificates ?? new List <Certificate>()) { Displayer.ShowConfigItem("证书文件", cert.CertificateFile); Displayer.ShowConfigItem("密钥文件", cert.KeyFile); Console.WriteLine(); } Displayer.ShowCutLine(); Console.WriteLine("\r\n"); } Displayer.Show(" 共开放了端口 "); Displayer.Show($"{rayPorts.Count}", Displayer.HighLightColor); Displayer.Show(" 个, ", Displayer.HighLightColor); Displayer.Show("有 "); Displayer.Show($"{rayConfigRepo.GetRayPortsUsers().Count}", Displayer.HighLightColor); Displayer.Show(" 个用户\r\n\r\n"); }
private static RayPortUser GetRayPortUserToModify() { var repo = new RayConfigRepository(); var rayPortsUsers = repo.GetRayPortsUsers(); ConsoleConfigDisplayer.DisplayRayPortUsers( rayPortsUsers, displayUserIndex:true, intend: 2); int?index = InputHelper.TryGetNumberInput( inputRange: new Tuple <int, int>(1, rayPortsUsers.Count)) - 1; if (index == null) { return(GetRayPortUserToModify()); } ; return(rayPortsUsers[index.Value]); }
private static RayPort GetRayPortToModify() { RayConfigRepository repo = new RayConfigRepository(); IList <RayPort> rayPorts = repo.GetRayPorts(); ConsoleConfigDisplayer.DisplayRayPorts(rayPorts, false, true); int?index = InputHelper.TryGetNumberInput( inputRange: new Tuple <int, int>(1, rayPorts.Count)) - 1; if (index == null) { return(GetRayPortToModify()); } ; return(rayPorts[index.Value]); }
public void Execute() { Console.Clear(); Console.WriteLine(); Displayer.ShowLine("新建端口向导!", 2, ConsoleColor.Yellow); Console.WriteLine(); Displayer.ShowCutLine(); Console.WriteLine("\r\n"); ConsoleInputRayPortConfigBuilder rayPortBuilder = new ConsoleInputRayPortConfigBuilder(); try { RayConfigRepository repo = new RayConfigRepository(); RayPort rayPort = rayPortBuilder.BuildPort(); repo.AddPort(rayPort); Displayer.ShowLine(" 创建成功!\r\n", ConsoleColor.DarkGreen); ConsoleConfigDisplayer.DisplayRayPort(rayPort, displayUser: true); } catch (Exception ex) { Console.WriteLine(ex); } }
public TrafficCounterFunction() { repo = new RayConfigRepository(); }
public RayPortModifier(RayPort rayPortToModify) : base(rayPortToModify) { configRepo = new RayConfigRepository(); portToModify = ConfigToModify.Port; UpdateOptionsMap(); }
public DeleteRayPortUserFunction() { repo = new RayConfigRepository(); }