Clean code

This commit is contained in:
DHR60 2026-02-08 14:26:39 +08:00
parent 9c20beb6da
commit 0ac7e87158
3 changed files with 11 additions and 54 deletions

View file

@ -96,8 +96,7 @@ public static class CoreConfigHandler
var result = new RetResult(); var result = new RetResult();
var context = await BuildCoreConfigContext(config, new()); var context = await BuildCoreConfigContext(config, new());
var ids = selecteds.Where(serverTestItem => !serverTestItem.IndexId.IsNullOrEmpty()) var ids = selecteds.Where(serverTestItem => !serverTestItem.IndexId.IsNullOrEmpty())
.Select(serverTestItem => serverTestItem.IndexId!) .Select(serverTestItem => serverTestItem.IndexId);
.ToList();
var nodes = await AppManager.Instance.GetProfileItemsByIndexIds(ids); var nodes = await AppManager.Instance.GetProfileItemsByIndexIds(ids);
foreach (var node in nodes) foreach (var node in nodes)
{ {

View file

@ -230,9 +230,9 @@ public sealed class AppManager
return await SQLiteHelper.Instance.TableAsync<ProfileItem>().FirstOrDefaultAsync(it => it.IndexId == indexId); return await SQLiteHelper.Instance.TableAsync<ProfileItem>().FirstOrDefaultAsync(it => it.IndexId == indexId);
} }
public async Task<List<ProfileItem>> GetProfileItemsByIndexIds(List<string> indexIds) public async Task<List<ProfileItem>> GetProfileItemsByIndexIds(IEnumerable<string> indexIds)
{ {
var ids = indexIds.Where(id => id.IsNotEmpty()).Distinct().ToList(); var ids = indexIds.Where(id => !id.IsNullOrEmpty()).Distinct().ToList();
if (ids.Count == 0) if (ids.Count == 0)
{ {
return []; return [];

View file

@ -79,7 +79,7 @@ public class GroupProfileManager
{ {
if (protocolExtra == null) if (protocolExtra == null)
{ {
return new(); return [];
} }
var items = new List<ProfileItem>(); var items = new List<ProfileItem>();
@ -93,27 +93,19 @@ public class GroupProfileManager
{ {
if (extra == null || extra.ChildItems.IsNullOrEmpty()) if (extra == null || extra.ChildItems.IsNullOrEmpty())
{ {
return new(); return [];
} }
var childProfiles = (await Task.WhenAll( var childProfileIds = Utils.String2List(extra.ChildItems)
(Utils.String2List(extra.ChildItems) ?? new()) ?.Where(p => !string.IsNullOrEmpty(p)) ?? [];
.Where(p => !p.IsNullOrEmpty()) var childProfiles = await AppManager.Instance.GetProfileItemsByIndexIds(childProfileIds);
.Select(AppManager.Instance.GetProfileItem) return childProfiles ?? [];
))
.Where(p =>
p != null &&
p.IsValid() &&
p.ConfigType != EConfigType.Custom
)
.ToList();
return childProfiles ?? new();
} }
private static async Task<List<ProfileItem>> GetSubChildProfileItems(ProtocolExtraItem? extra) private static async Task<List<ProfileItem>> GetSubChildProfileItems(ProtocolExtraItem? extra)
{ {
if (extra == null || extra.SubChildItems.IsNullOrEmpty()) if (extra == null || extra.SubChildItems.IsNullOrEmpty())
{ {
return new(); return [];
} }
var childProfiles = await AppManager.Instance.ProfileItems(extra.SubChildItems ?? string.Empty); var childProfiles = await AppManager.Instance.ProfileItems(extra.SubChildItems ?? string.Empty);
@ -123,7 +115,7 @@ public class GroupProfileManager
!p.ConfigType.IsComplexType() && !p.ConfigType.IsComplexType() &&
(extra.Filter.IsNullOrEmpty() || Regex.IsMatch(p.Remarks, extra.Filter)) (extra.Filter.IsNullOrEmpty() || Regex.IsMatch(p.Remarks, extra.Filter))
) )
.ToList() ?? new(); .ToList() ?? [];
} }
public static async Task<List<ProfileItem>> GetAllChildProfileItems(ProfileItem profileItem) public static async Task<List<ProfileItem>> GetAllChildProfileItems(ProfileItem profileItem)
@ -149,38 +141,4 @@ public class GroupProfileManager
} }
} }
} }
public static async Task<HashSet<string>> GetAllChildDomainAddresses(ProfileItem profileItem)
{
var childAddresses = new HashSet<string>();
var childItems = await GetAllChildProfileItems(profileItem);
foreach (var child in childItems.Where(child => !child.Address.IsNullOrEmpty()).Where(child => Utils.IsDomain(child.Address)))
{
childAddresses.Add(child.Address);
}
return childAddresses;
}
public static async Task<HashSet<string>> GetAllChildEchQuerySni(ProfileItem profileItem)
{
var childAddresses = new HashSet<string>();
var childItems = await GetAllChildProfileItems(profileItem);
foreach (var childNode in childItems.Where(childNode => !childNode.EchConfigList.IsNullOrEmpty()))
{
var sni = childNode.Sni;
if (childNode.StreamSecurity == Global.StreamSecurity
&& childNode.EchConfigList?.Contains("://") == true)
{
var idx = childNode.EchConfigList.IndexOf('+');
sni = idx > 0 ? childNode.EchConfigList[..idx] : childNode.Sni;
}
if (!Utils.IsDomain(sni))
{
continue;
}
childAddresses.Add(sni);
}
return childAddresses;
}
} }