private void AddServerClipboard(object parameter) { List <V2RayVMess> serverList = V2RayVMess.ImportServers(Clipboard.GetText(TextDataFormat.Text)); if (serverList.Count > 0) { AddServer(serverList, out int added, out int updated); string notify; if (SettingManager.Configuration.IsReplaceOldServer) { notify = $"{added} {sr_server_x_added}, {updated} {sr_server_x_updated}"; } else { notify = $"{added} {sr_server_x_added}"; } InterfaceCtrl.ShowHomeNotify(notify); } else { InterfaceCtrl.ShowHomeNotify(sr_server_not_found); } }
public static bool Start(V2RayVMess server, int listen) { string config_path = $@"{App.DirectoryV2Ray}\{v2ray_config_json_name}"; string config_text = Properties.Resources.v2ray_config_json; string outbound = V2RayVMess.ToJson(server); config_text = config_text.Replace(config_listen_port, listen.ToString(CultureInfo.InvariantCulture)); config_text = config_text.Replace(config_outbound, outbound); if (!FileUtil.WriteUTF8(config_path, config_text)) { return(false); } try { process_v2ray = Process.Start( new ProcessStartInfo { FileName = V2RayExePath, Arguments = $@"-config {config_path}", WorkingDirectory = App.DirectoryV2Ray, CreateNoWindow = true, UseShellExecute = false, LoadUserProfile = false, }); } catch { return(false); } return(true); }
private void ChangeServer(object parameter) { V2RayVMess server = (V2RayVMess)parameter; if (TransmitCtrl.ChangeTransmitServer(server)) { InterfaceCtrl.UpdateHomeTransmitStatue(); } }
private void AddServerQRCode(object parameter) { string ssBase64 = parameter as string; if (string.IsNullOrWhiteSpace(ssBase64)) { ZXing.Result result = QRCode.DecodeScreen(); if (result == null || string.IsNullOrWhiteSpace(result.Text)) { InterfaceCtrl.ShowHomeNotify(sr_server_not_found); InterfaceCtrl.NotifyIcon.ShowMessage(sr_server_not_found); return; } ssBase64 = result.Text; } if (V2RayVMess.FromVMessBase64(ssBase64) is V2RayVMess server) { AddServer(server, out int added, out int updated); string notify; if (SettingManager.Configuration.IsReplaceOldServer) { notify = added > 0 ? $"{added} {sr_server_x_added}" : $"{updated} {sr_server_x_updated}"; } else { notify = added > 0 ? $"{added} {sr_server_x_added}" : sr_server_already_exist; } if (Application.Current.MainWindow.IsActive) { InterfaceCtrl.ShowHomeNotify(notify); } else { InterfaceCtrl.NotifyIcon.ShowMessage(notify); } } else { if (Application.Current.MainWindow.IsActive) { InterfaceCtrl.ShowHomeNotify(sr_server_not_found); } else { InterfaceCtrl.NotifyIcon.ShowMessage(sr_server_not_found); } } }
private void AddServerFile(object parameter) { Microsoft.Win32.OpenFileDialog openFileDialog = new Microsoft.Win32.OpenFileDialog { InitialDirectory = App.DirectoryApplication, DefaultExt = "txt", Filter = "Text|*.txt", AddExtension = true }; string fileContent = null; if (openFileDialog.ShowDialog() == true) { try { fileContent = System.IO.File.ReadAllText(openFileDialog.FileName); } catch { } } if (string.IsNullOrWhiteSpace(fileContent)) { return; } List <V2RayVMess> serverList = V2RayVMess.ImportServers(fileContent); if (serverList.Count > 0) { AddServer(serverList, out int added, out int updated); string notify; if (SettingManager.Configuration.IsReplaceOldServer) { notify = $"{added} {sr_server_x_added}, {updated} {sr_server_x_updated}"; } else { notify = $"{added} {sr_server_x_added}"; } InterfaceCtrl.ShowHomeNotify(notify); } else { InterfaceCtrl.ShowHomeNotify(sr_server_not_found); } }
private void AddServer(V2RayVMess server, out int added, out int updated) { added = 0; updated = 0; V2RayVMess serverOld = V2RayOC.FirstOrDefault(predicate: x => x.IsServerEqual(server)); if (serverOld == null) { V2RayOC.Add(server); ++added; } else { if (SettingManager.Configuration.IsReplaceOldServer) { int i = V2RayOC.IndexOf(serverOld); V2RayOC[i] = server; ++updated; } } }
private void AddServerCreate(object parameter) { V2RayVMess server = new V2RayVMess(); new ServerConfigDialog(server, (bool resultOK) => { if (resultOK) { AddServer(server, out int added, out int updated); string notify; if (SettingManager.Configuration.IsReplaceOldServer) { notify = added > 0 ? $"{added} {sr_server_x_added}" : $"{updated} {sr_server_x_updated}"; } else { notify = added > 0 ? $"{added} {sr_server_x_added}" : sr_server_already_exist; } InterfaceCtrl.ShowHomeNotify(notify); }
public ServerConfigV2Ray(V2RayVMess server) { InitializeComponent(); DataContext = new ServerConfigV2RayVModel(server); }
public ServerConfigV2RayVModel(V2RayVMess server) { ServerEdit = server; }