Speedtest respect user-set core type (#8856)

* Respect user-set core type

* Allow test group
This commit is contained in:
DHR60
2026-03-01 08:11:40 +00:00
committed by GitHub
parent 99d67ca3f1
commit 9f6237fb21
8 changed files with 35 additions and 28 deletions
@@ -149,11 +149,11 @@ public partial class CoreConfigSingboxService(CoreConfigContext context)
foreach (var it in selecteds)
{
if (!Global.SingboxSupportConfigType.Contains(it.ConfigType))
if (!(Global.SingboxSupportConfigType.Contains(it.ConfigType) || it.ConfigType.IsGroupType()))
{
continue;
}
if (it.Port <= 0)
if (!it.ConfigType.IsComplexType() && it.Port <= 0)
{
continue;
}
@@ -112,11 +112,11 @@ public partial class CoreConfigV2rayService(CoreConfigContext context)
foreach (var it in selecteds)
{
if (!Global.XraySupportConfigType.Contains(it.ConfigType))
if (!(Global.XraySupportConfigType.Contains(it.ConfigType) || it.ConfigType.IsGroupType()))
{
continue;
}
if (it.Port <= 0)
if (!it.ConfigType.IsComplexType() && it.Port <= 0)
{
continue;
}
@@ -180,13 +180,13 @@ public partial class CoreConfigV2rayService(CoreConfigContext context)
//rule
RulesItem4Ray rule = new()
{
inboundTag = new List<string> { inbound.tag },
inboundTag = [inbound.tag],
outboundTag = tag,
type = "field"
};
if (isBalancer)
{
rule.balancerTag = tag;
rule.balancerTag = tag + Global.BalancerTagSuffix;
rule.outboundTag = null;
}
_coreConfig.routing.rules.Add(rule);
+17 -7
View File
@@ -61,26 +61,36 @@ public class SpeedtestService(Config config, Func<SpeedTestResult, Task> updateF
private async Task<List<ServerTestItem>> GetClearItem(ESpeedActionType actionType, List<ProfileItem> selecteds)
{
var lstSelected = new List<ServerTestItem>();
foreach (var it in selecteds)
var lstSelected = new List<ServerTestItem>(selecteds.Count);
var ids = selecteds.Where(it => !it.IndexId.IsNullOrEmpty()
&& it.ConfigType != EConfigType.Custom
&& (it.ConfigType.IsComplexType() || it.Port > 0))
.Select(it => it.IndexId)
.ToList();
var profileMap = await AppManager.Instance.GetProfileItemsByIndexIdsAsMap(ids);
for (var i = 0; i < selecteds.Count; i++)
{
if (it.ConfigType.IsComplexType())
var it = selecteds[i];
if (it.ConfigType == EConfigType.Custom)
{
continue;
}
if (it.Port <= 0)
if (!it.ConfigType.IsComplexType() && it.Port <= 0)
{
continue;
}
var profile = profileMap.GetValueOrDefault(it.IndexId, it);
lstSelected.Add(new ServerTestItem()
{
IndexId = it.IndexId,
Address = it.Address,
Port = it.Port,
ConfigType = it.ConfigType,
QueueNum = selecteds.IndexOf(it)
QueueNum = i,
Profile = profile,
CoreType = AppManager.Instance.GetCoreType(profile, it.ConfigType),
});
}
@@ -353,8 +363,8 @@ public class SpeedtestService(Config config, Func<SpeedTestResult, Task> updateF
private List<List<ServerTestItem>> GetTestBatchItem(List<ServerTestItem> lstSelected, int pageSize)
{
List<List<ServerTestItem>> lstTest = new();
var lst1 = lstSelected.Where(t => Global.XraySupportConfigType.Contains(t.ConfigType)).ToList();
var lst2 = lstSelected.Where(t => Global.SingboxOnlyConfigType.Contains(t.ConfigType)).ToList();
var lst1 = lstSelected.Where(t => t.CoreType == ECoreType.Xray).ToList();
var lst2 = lstSelected.Where(t => t.CoreType == ECoreType.sing_box).ToList();
for (var num = 0; num < (int)Math.Ceiling(lst1.Count * 1.0 / pageSize); num++)
{