mirror of
https://github.com/2dust/v2rayN.git
synced 2026-11-10 22:45:00 +03:00
Speedtest respect user-set core type (#8856)
* Respect user-set core type * Allow test group
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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++)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user