feat: 支持主分组隐藏节点并保留排序

This commit is contained in:
2026-10-05 10:00:06 +08:00
parent b6aa2bf30d
commit 6ed0307ea9
8 changed files with 124 additions and 14 deletions
+9 -2
View File
@@ -13,6 +13,7 @@ type ClashSettings = {
extraProxyGroups: string;
profileName: string;
mainProxyGroupMemberSlugs: string[];
mainProxyGroupHiddenSlugs?: string[];
proxyGroups: ProxyGroupConfig[];
};
@@ -225,14 +226,20 @@ export function buildSubscriptionConfig(input: {
const nodeNameBySlug = new Map(
eligibleNodes.map((node) => [node.slug, getNodeProxyName(node)]),
);
const proxyNames = orderedEligibleNodes.map((node) => getNodeProxyName(node));
const hidden = new Set(input.settings.mainProxyGroupHiddenSlugs ?? []);
const proxyNames = orderedEligibleNodes
.filter((node) => !hidden.has(node.slug))
.map((node) => getNodeProxyName(node));
const proxiesBlock = orderedEligibleNodes
.map((node) => renderSubscriptionProxy(node, authString, input.user))
.join("\n");
const defaultTemplate =
input.settings.template.trimEnd() || readDefaultTemplate();
const renderedGroups = [
renderGroupEntry(input.settings.profileName || "FeieProxy", proxyNames),
renderGroupEntry(
input.settings.profileName || "FeieProxy",
proxyNames.length ? proxyNames : ["DIRECT"],
),
...input.settings.proxyGroups
.map((group) => {
const members = group.memberSlugs