This commit is contained in:
DHR60 2026-02-05 18:02:17 +08:00
parent e2cd3069f0
commit e47dc40488
3 changed files with 44 additions and 28 deletions

View file

@ -96,7 +96,10 @@ public sealed class AppManager
_ = StatePort; _ = StatePort;
_ = StatePort2; _ = StatePort2;
_ = MigrateProfileExtra(); Task.Run(async () =>
{
await MigrateProfileExtra();
}).Wait();
return true; return true;
} }
@ -277,7 +280,10 @@ public sealed class AppManager
break; break;
} }
var batchSuccessCount = 0;
foreach (var item in batch) foreach (var item in batch)
{
try
{ {
var extra = item.GetProtocolExtra(); var extra = item.GetProtocolExtra();
@ -295,11 +301,12 @@ public sealed class AppManager
MultipleLoad = groupItem.MultipleLoad, MultipleLoad = groupItem.MultipleLoad,
}; };
} }
}
switch (item.ConfigType) switch (item.ConfigType)
{ {
case EConfigType.Shadowsocks: case EConfigType.Shadowsocks:
extra = extra with {SsMethod = item.Security.NullIfEmpty() }; extra = extra with { SsMethod = item.Security.NullIfEmpty() };
break; break;
case EConfigType.VMess: case EConfigType.VMess:
extra = extra with extra = extra with
@ -312,6 +319,7 @@ public sealed class AppManager
extra = extra with extra = extra with
{ {
Flow = item.Flow.NullIfEmpty(), Flow = item.Flow.NullIfEmpty(),
VlessEncryption = item.Security,
}; };
break; break;
case EConfigType.Hysteria2: case EConfigType.Hysteria2:
@ -341,7 +349,8 @@ public sealed class AppManager
WgMtu = int.TryParse(item.ShortId, out var mtu) ? mtu : 1280 WgMtu = int.TryParse(item.ShortId, out var mtu) ? mtu : 1280
}; };
break; break;
} default:
break;
} }
item.SetProtocolExtra(extra); item.SetProtocolExtra(extra);
@ -350,9 +359,17 @@ public sealed class AppManager
item.ConfigVersion = 3; item.ConfigVersion = 3;
await SQLiteHelper.Instance.UpdateAsync(item); await SQLiteHelper.Instance.UpdateAsync(item);
batchSuccessCount++;
}
catch (Exception ex)
{
Logging.SaveLog($"MigrateProfileExtra Error: {ex}");
}
} }
offset += pageSize; // Only increment offset by the number of failed items that remain in the result set
// Successfully updated items are automatically excluded from future queries due to ConfigVersion = 3
offset += batch.Count - batchSuccessCount;
} }
//await ProfileGroupItemManager.Instance.ClearAll(); //await ProfileGroupItemManager.Instance.ClearAll();

View file

@ -114,13 +114,13 @@ public partial class CoreConfigSingboxService
outbound.packet_encoding = "xudp"; outbound.packet_encoding = "xudp";
if (protocolExtra.Flow.IsNullOrEmpty()) if (!protocolExtra.Flow.IsNullOrEmpty())
{ {
await GenOutboundMux(node, outbound); outbound.flow = protocolExtra.Flow;
} }
else else
{ {
outbound.flow = protocolExtra.Flow; await GenOutboundMux(node, outbound);
} }
await GenOutboundTransport(node, outbound); await GenOutboundTransport(node, outbound);

View file

@ -144,13 +144,12 @@ public partial class CoreConfigV2rayService
usersItem.email = Global.UserEMail; usersItem.email = Global.UserEMail;
usersItem.encryption = protocolExtra.VlessEncryption; usersItem.encryption = protocolExtra.VlessEncryption;
if (protocolExtra.Flow.IsNullOrEmpty()) if (!protocolExtra.Flow.IsNullOrEmpty())
{ {
await GenOutboundMux(node, outbound, muxEnabled, muxEnabled); usersItem.flow = protocolExtra.Flow;
} }
else else
{ {
usersItem.flow = protocolExtra.Flow;
await GenOutboundMux(node, outbound, false, muxEnabled); await GenOutboundMux(node, outbound, false, muxEnabled);
} }
outbound.settings.servers = null; outbound.settings.servers = null;