AI-optimized code

This commit is contained in:
2dust 2025-03-06 14:42:21 +08:00
parent 50d7912f62
commit 51e5885e76
6 changed files with 67 additions and 71 deletions

View file

@ -6,15 +6,15 @@ namespace ServiceLib.ViewModels
{ {
public class DNSSettingViewModel : MyReactiveObject public class DNSSettingViewModel : MyReactiveObject
{ {
[Reactive] public bool useSystemHosts { get; set; } [Reactive] public bool UseSystemHosts { get; set; }
[Reactive] public string domainStrategy4Freedom { get; set; } [Reactive] public string DomainStrategy4Freedom { get; set; }
[Reactive] public string domainDNSAddress { get; set; } [Reactive] public string DomainDNSAddress { get; set; }
[Reactive] public string normalDNS { get; set; } [Reactive] public string NormalDNS { get; set; }
[Reactive] public string domainStrategy4Freedom2 { get; set; } [Reactive] public string DomainStrategy4Freedom2 { get; set; }
[Reactive] public string domainDNSAddress2 { get; set; } [Reactive] public string DomainDNSAddress2 { get; set; }
[Reactive] public string normalDNS2 { get; set; } [Reactive] public string NormalDNS2 { get; set; }
[Reactive] public string tunDNS2 { get; set; } [Reactive] public string TunDNS2 { get; set; }
public ReactiveCommand<Unit, Unit> SaveCmd { get; } public ReactiveCommand<Unit, Unit> SaveCmd { get; }
public ReactiveCommand<Unit, Unit> ImportDefConfig4V2rayCmd { get; } public ReactiveCommand<Unit, Unit> ImportDefConfig4V2rayCmd { get; }
@ -31,14 +31,14 @@ namespace ServiceLib.ViewModels
ImportDefConfig4V2rayCmd = ReactiveCommand.CreateFromTask(async () => ImportDefConfig4V2rayCmd = ReactiveCommand.CreateFromTask(async () =>
{ {
normalDNS = EmbedUtils.GetEmbedText(Global.DNSV2rayNormalFileName); NormalDNS = EmbedUtils.GetEmbedText(Global.DNSV2rayNormalFileName);
await Task.CompletedTask; await Task.CompletedTask;
}); });
ImportDefConfig4SingboxCmd = ReactiveCommand.CreateFromTask(async () => ImportDefConfig4SingboxCmd = ReactiveCommand.CreateFromTask(async () =>
{ {
normalDNS2 = EmbedUtils.GetEmbedText(Global.DNSSingboxNormalFileName); NormalDNS2 = EmbedUtils.GetEmbedText(Global.DNSSingboxNormalFileName);
tunDNS2 = EmbedUtils.GetEmbedText(Global.TunSingboxDNSFileName); TunDNS2 = EmbedUtils.GetEmbedText(Global.TunSingboxDNSFileName);
await Task.CompletedTask; await Task.CompletedTask;
}); });
@ -48,47 +48,47 @@ namespace ServiceLib.ViewModels
private async Task Init() private async Task Init()
{ {
var item = await AppHandler.Instance.GetDNSItem(ECoreType.Xray); var item = await AppHandler.Instance.GetDNSItem(ECoreType.Xray);
useSystemHosts = item.UseSystemHosts; UseSystemHosts = item.UseSystemHosts;
domainStrategy4Freedom = item?.DomainStrategy4Freedom ?? string.Empty; DomainStrategy4Freedom = item?.DomainStrategy4Freedom ?? string.Empty;
domainDNSAddress = item?.DomainDNSAddress ?? string.Empty; DomainDNSAddress = item?.DomainDNSAddress ?? string.Empty;
normalDNS = item?.NormalDNS ?? string.Empty; NormalDNS = item?.NormalDNS ?? string.Empty;
var item2 = await AppHandler.Instance.GetDNSItem(ECoreType.sing_box); var item2 = await AppHandler.Instance.GetDNSItem(ECoreType.sing_box);
domainStrategy4Freedom2 = item2?.DomainStrategy4Freedom ?? string.Empty; DomainStrategy4Freedom2 = item2?.DomainStrategy4Freedom ?? string.Empty;
domainDNSAddress2 = item2?.DomainDNSAddress ?? string.Empty; DomainDNSAddress2 = item2?.DomainDNSAddress ?? string.Empty;
normalDNS2 = item2?.NormalDNS ?? string.Empty; NormalDNS2 = item2?.NormalDNS ?? string.Empty;
tunDNS2 = item2?.TunDNS ?? string.Empty; TunDNS2 = item2?.TunDNS ?? string.Empty;
} }
private async Task SaveSettingAsync() private async Task SaveSettingAsync()
{ {
if (normalDNS.IsNotEmpty()) if (NormalDNS.IsNotEmpty())
{ {
var obj = JsonUtils.ParseJson(normalDNS); var obj = JsonUtils.ParseJson(NormalDNS);
if (obj != null && obj["servers"] != null) if (obj != null && obj["servers"] != null)
{ {
} }
else else
{ {
if (normalDNS.Contains('{') || normalDNS.Contains('}')) if (NormalDNS.Contains('{') || NormalDNS.Contains('}'))
{ {
NoticeHandler.Instance.Enqueue(ResUI.FillCorrectDNSText); NoticeHandler.Instance.Enqueue(ResUI.FillCorrectDNSText);
return; return;
} }
} }
} }
if (normalDNS2.IsNotEmpty()) if (NormalDNS2.IsNotEmpty())
{ {
var obj2 = JsonUtils.Deserialize<Dns4Sbox>(normalDNS2); var obj2 = JsonUtils.Deserialize<Dns4Sbox>(NormalDNS2);
if (obj2 == null) if (obj2 == null)
{ {
NoticeHandler.Instance.Enqueue(ResUI.FillCorrectDNSText); NoticeHandler.Instance.Enqueue(ResUI.FillCorrectDNSText);
return; return;
} }
} }
if (tunDNS2.IsNotEmpty()) if (TunDNS2.IsNotEmpty())
{ {
var obj2 = JsonUtils.Deserialize<Dns4Sbox>(tunDNS2); var obj2 = JsonUtils.Deserialize<Dns4Sbox>(TunDNS2);
if (obj2 == null) if (obj2 == null)
{ {
NoticeHandler.Instance.Enqueue(ResUI.FillCorrectDNSText); NoticeHandler.Instance.Enqueue(ResUI.FillCorrectDNSText);
@ -97,21 +97,21 @@ namespace ServiceLib.ViewModels
} }
var item = await AppHandler.Instance.GetDNSItem(ECoreType.Xray); var item = await AppHandler.Instance.GetDNSItem(ECoreType.Xray);
item.DomainStrategy4Freedom = domainStrategy4Freedom; item.DomainStrategy4Freedom = DomainStrategy4Freedom;
item.DomainDNSAddress = domainDNSAddress; item.DomainDNSAddress = DomainDNSAddress;
item.UseSystemHosts = useSystemHosts; item.UseSystemHosts = UseSystemHosts;
item.NormalDNS = normalDNS; item.NormalDNS = NormalDNS;
await ConfigHandler.SaveDNSItems(_config, item); await ConfigHandler.SaveDNSItems(_config, item);
var item2 = await AppHandler.Instance.GetDNSItem(ECoreType.sing_box); var item2 = await AppHandler.Instance.GetDNSItem(ECoreType.sing_box);
item2.DomainStrategy4Freedom = domainStrategy4Freedom2; item2.DomainStrategy4Freedom = DomainStrategy4Freedom2;
item2.DomainDNSAddress = domainDNSAddress2; item2.DomainDNSAddress = DomainDNSAddress2;
item2.NormalDNS = JsonUtils.Serialize(JsonUtils.ParseJson(normalDNS2)); item2.NormalDNS = JsonUtils.Serialize(JsonUtils.ParseJson(NormalDNS2));
item2.TunDNS = JsonUtils.Serialize(JsonUtils.ParseJson(tunDNS2)); item2.TunDNS = JsonUtils.Serialize(JsonUtils.ParseJson(TunDNS2));
await ConfigHandler.SaveDNSItems(_config, item2); await ConfigHandler.SaveDNSItems(_config, item2);
NoticeHandler.Instance.Enqueue(ResUI.OperationSuccess); NoticeHandler.Instance.Enqueue(ResUI.OperationSuccess);
_updateView?.Invoke(EViewAction.CloseWindow, null); _ = _updateView?.Invoke(EViewAction.CloseWindow, null);
} }
} }
} }

View file

@ -18,13 +18,13 @@ namespace ServiceLib.ViewModels
public IList<RoutingItemModel> SelectedSources { get; set; } public IList<RoutingItemModel> SelectedSources { get; set; }
[Reactive] [Reactive]
public string domainStrategy { get; set; } public string DomainStrategy { get; set; }
[Reactive] [Reactive]
public string domainMatcher { get; set; } public string DomainMatcher { get; set; }
[Reactive] [Reactive]
public string domainStrategy4Singbox { get; set; } public string DomainStrategy4Singbox { get; set; }
public ReactiveCommand<Unit, Unit> RoutingAdvancedAddCmd { get; } public ReactiveCommand<Unit, Unit> RoutingAdvancedAddCmd { get; }
public ReactiveCommand<Unit, Unit> RoutingAdvancedRemoveCmd { get; } public ReactiveCommand<Unit, Unit> RoutingAdvancedRemoveCmd { get; }
@ -74,9 +74,9 @@ namespace ServiceLib.ViewModels
{ {
SelectedSource = new(); SelectedSource = new();
domainStrategy = _config.RoutingBasicItem.DomainStrategy; DomainStrategy = _config.RoutingBasicItem.DomainStrategy;
domainMatcher = _config.RoutingBasicItem.DomainMatcher; DomainMatcher = _config.RoutingBasicItem.DomainMatcher;
domainStrategy4Singbox = _config.RoutingBasicItem.DomainStrategy4Singbox; DomainStrategy4Singbox = _config.RoutingBasicItem.DomainStrategy4Singbox;
await ConfigHandler.InitBuiltinRouting(_config); await ConfigHandler.InitBuiltinRouting(_config);
await RefreshRoutingItems(); await RefreshRoutingItems();
@ -91,11 +91,7 @@ namespace ServiceLib.ViewModels
var routings = await AppHandler.Instance.RoutingItems(); var routings = await AppHandler.Instance.RoutingItems();
foreach (var item in routings) foreach (var item in routings)
{ {
bool def = false; var def = item.Id == _config.RoutingBasicItem.RoutingIndexId;
if (item.Id == _config.RoutingBasicItem.RoutingIndexId)
{
def = true;
}
var it = new RoutingItemModel() var it = new RoutingItemModel()
{ {
@ -114,9 +110,9 @@ namespace ServiceLib.ViewModels
private async Task SaveRoutingAsync() private async Task SaveRoutingAsync()
{ {
_config.RoutingBasicItem.DomainStrategy = domainStrategy; _config.RoutingBasicItem.DomainStrategy = DomainStrategy;
_config.RoutingBasicItem.DomainMatcher = domainMatcher; _config.RoutingBasicItem.DomainMatcher = DomainMatcher;
_config.RoutingBasicItem.DomainStrategy4Singbox = domainStrategy4Singbox; _config.RoutingBasicItem.DomainStrategy4Singbox = DomainStrategy4Singbox;
if (await ConfigHandler.SaveConfig(_config) == 0) if (await ConfigHandler.SaveConfig(_config) == 0)
{ {

View file

@ -36,15 +36,15 @@ namespace v2rayN.Desktop.Views
this.WhenActivated(disposables => this.WhenActivated(disposables =>
{ {
this.Bind(ViewModel, vm => vm.useSystemHosts, v => v.togUseSystemHosts.IsChecked).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.UseSystemHosts, v => v.togUseSystemHosts.IsChecked).DisposeWith(disposables);
this.Bind(ViewModel, vm => vm.domainStrategy4Freedom, v => v.cmbdomainStrategy4Freedom.SelectedValue).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.DomainStrategy4Freedom, v => v.cmbdomainStrategy4Freedom.SelectedValue).DisposeWith(disposables);
this.Bind(ViewModel, vm => vm.domainDNSAddress, v => v.cmbdomainDNSAddress.SelectedValue).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.DomainDNSAddress, v => v.cmbdomainDNSAddress.SelectedValue).DisposeWith(disposables);
this.Bind(ViewModel, vm => vm.normalDNS, v => v.txtnormalDNS.Text).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.NormalDNS, v => v.txtnormalDNS.Text).DisposeWith(disposables);
this.Bind(ViewModel, vm => vm.domainStrategy4Freedom2, v => v.cmbdomainStrategy4Out.SelectedValue).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.DomainStrategy4Freedom2, v => v.cmbdomainStrategy4Out.SelectedValue).DisposeWith(disposables);
this.Bind(ViewModel, vm => vm.domainDNSAddress2, v => v.cmbdomainDNSAddress2.SelectedValue).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.DomainDNSAddress2, v => v.cmbdomainDNSAddress2.SelectedValue).DisposeWith(disposables);
this.Bind(ViewModel, vm => vm.normalDNS2, v => v.txtnormalDNS2.Text).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.NormalDNS2, v => v.txtnormalDNS2.Text).DisposeWith(disposables);
this.Bind(ViewModel, vm => vm.tunDNS2, v => v.txttunDNS2.Text).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.TunDNS2, v => v.txttunDNS2.Text).DisposeWith(disposables);
this.BindCommand(ViewModel, vm => vm.SaveCmd, v => v.btnSave).DisposeWith(disposables); this.BindCommand(ViewModel, vm => vm.SaveCmd, v => v.btnSave).DisposeWith(disposables);
this.BindCommand(ViewModel, vm => vm.ImportDefConfig4V2rayCmd, v => v.btnImportDefConfig4V2ray).DisposeWith(disposables); this.BindCommand(ViewModel, vm => vm.ImportDefConfig4V2rayCmd, v => v.btnImportDefConfig4V2ray).DisposeWith(disposables);

View file

@ -44,9 +44,9 @@ namespace v2rayN.Desktop.Views
this.OneWayBind(ViewModel, vm => vm.RoutingItems, v => v.lstRoutings.ItemsSource).DisposeWith(disposables); this.OneWayBind(ViewModel, vm => vm.RoutingItems, v => v.lstRoutings.ItemsSource).DisposeWith(disposables);
this.Bind(ViewModel, vm => vm.SelectedSource, v => v.lstRoutings.SelectedItem).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.SelectedSource, v => v.lstRoutings.SelectedItem).DisposeWith(disposables);
this.Bind(ViewModel, vm => vm.domainStrategy, v => v.cmbdomainStrategy.SelectedValue).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.DomainStrategy, v => v.cmbdomainStrategy.SelectedValue).DisposeWith(disposables);
this.Bind(ViewModel, vm => vm.domainMatcher, v => v.cmbdomainMatcher.SelectedValue).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.DomainMatcher, v => v.cmbdomainMatcher.SelectedValue).DisposeWith(disposables);
this.Bind(ViewModel, vm => vm.domainStrategy4Singbox, v => v.cmbdomainStrategy4Singbox.SelectedValue).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.DomainStrategy4Singbox, v => v.cmbdomainStrategy4Singbox.SelectedValue).DisposeWith(disposables);
this.BindCommand(ViewModel, vm => vm.RoutingAdvancedAddCmd, v => v.menuRoutingAdvancedAdd).DisposeWith(disposables); this.BindCommand(ViewModel, vm => vm.RoutingAdvancedAddCmd, v => v.menuRoutingAdvancedAdd).DisposeWith(disposables);
this.BindCommand(ViewModel, vm => vm.RoutingAdvancedAddCmd, v => v.menuRoutingAdvancedAdd2).DisposeWith(disposables); this.BindCommand(ViewModel, vm => vm.RoutingAdvancedAddCmd, v => v.menuRoutingAdvancedAdd2).DisposeWith(disposables);

View file

@ -36,15 +36,15 @@ namespace v2rayN.Views
this.WhenActivated(disposables => this.WhenActivated(disposables =>
{ {
this.Bind(ViewModel, vm => vm.useSystemHosts, v => v.togUseSystemHosts.IsChecked).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.UseSystemHosts, v => v.togUseSystemHosts.IsChecked).DisposeWith(disposables);
this.Bind(ViewModel, vm => vm.domainStrategy4Freedom, v => v.cmbdomainStrategy4Freedom.Text).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.DomainStrategy4Freedom, v => v.cmbdomainStrategy4Freedom.Text).DisposeWith(disposables);
this.Bind(ViewModel, vm => vm.domainDNSAddress, v => v.cmbdomainDNSAddress.Text).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.DomainDNSAddress, v => v.cmbdomainDNSAddress.Text).DisposeWith(disposables);
this.Bind(ViewModel, vm => vm.normalDNS, v => v.txtnormalDNS.Text).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.NormalDNS, v => v.txtnormalDNS.Text).DisposeWith(disposables);
this.Bind(ViewModel, vm => vm.domainStrategy4Freedom2, v => v.cmbdomainStrategy4Out.Text).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.DomainStrategy4Freedom2, v => v.cmbdomainStrategy4Out.Text).DisposeWith(disposables);
this.Bind(ViewModel, vm => vm.domainDNSAddress2, v => v.cmbdomainDNSAddress2.Text).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.DomainDNSAddress2, v => v.cmbdomainDNSAddress2.Text).DisposeWith(disposables);
this.Bind(ViewModel, vm => vm.normalDNS2, v => v.txtnormalDNS2.Text).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.NormalDNS2, v => v.txtnormalDNS2.Text).DisposeWith(disposables);
this.Bind(ViewModel, vm => vm.tunDNS2, v => v.txttunDNS2.Text).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.TunDNS2, v => v.txttunDNS2.Text).DisposeWith(disposables);
this.BindCommand(ViewModel, vm => vm.SaveCmd, v => v.btnSave).DisposeWith(disposables); this.BindCommand(ViewModel, vm => vm.SaveCmd, v => v.btnSave).DisposeWith(disposables);
this.BindCommand(ViewModel, vm => vm.ImportDefConfig4V2rayCmd, v => v.btnImportDefConfig4V2ray).DisposeWith(disposables); this.BindCommand(ViewModel, vm => vm.ImportDefConfig4V2rayCmd, v => v.btnImportDefConfig4V2ray).DisposeWith(disposables);

View file

@ -39,9 +39,9 @@ namespace v2rayN.Views
this.OneWayBind(ViewModel, vm => vm.RoutingItems, v => v.lstRoutings.ItemsSource).DisposeWith(disposables); this.OneWayBind(ViewModel, vm => vm.RoutingItems, v => v.lstRoutings.ItemsSource).DisposeWith(disposables);
this.Bind(ViewModel, vm => vm.SelectedSource, v => v.lstRoutings.SelectedItem).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.SelectedSource, v => v.lstRoutings.SelectedItem).DisposeWith(disposables);
this.Bind(ViewModel, vm => vm.domainStrategy, v => v.cmbdomainStrategy.Text).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.DomainStrategy, v => v.cmbdomainStrategy.Text).DisposeWith(disposables);
this.Bind(ViewModel, vm => vm.domainMatcher, v => v.cmbdomainMatcher.Text).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.DomainMatcher, v => v.cmbdomainMatcher.Text).DisposeWith(disposables);
this.Bind(ViewModel, vm => vm.domainStrategy4Singbox, v => v.cmbdomainStrategy4Singbox.Text).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.DomainStrategy4Singbox, v => v.cmbdomainStrategy4Singbox.Text).DisposeWith(disposables);
this.BindCommand(ViewModel, vm => vm.RoutingAdvancedAddCmd, v => v.menuRoutingAdvancedAdd).DisposeWith(disposables); this.BindCommand(ViewModel, vm => vm.RoutingAdvancedAddCmd, v => v.menuRoutingAdvancedAdd).DisposeWith(disposables);
this.BindCommand(ViewModel, vm => vm.RoutingAdvancedAddCmd, v => v.menuRoutingAdvancedAdd2).DisposeWith(disposables); this.BindCommand(ViewModel, vm => vm.RoutingAdvancedAddCmd, v => v.menuRoutingAdvancedAdd2).DisposeWith(disposables);