import { getRequestOrigin } from "@/lib/request-origin"; import { buildSubscriptionUrl, getDefaultClashTemplate } from "@/lib/subscription"; import { getAdminMirrorUser, getSubscriptionSettings, listSubscriptionNodes, } from "@/lib/store"; import { saveSubscriptionSettingsAction } from "./actions"; import { ProxyGroupEditor } from "./proxy-group-editor"; export default async function AdminSubscriptionsPage() { const [settings, adminUser, nodes, origin] = await Promise.all([ getSubscriptionSettings(), getAdminMirrorUser(), listSubscriptionNodes(), getRequestOrigin(), ]); const proxyGroupNodes = nodes.map((node) => ({ slug: node.slug, label: node.client_name || node.name, meta: node.client_name && node.client_name !== node.name ? `${node.name} / ${node.slug}` : node.slug, })); return (
订阅

订阅与模板

节点 {nodes.length} 分组 {settings.proxyGroups.length}
可用节点 {nodes.length}
默认主组 {settings.profileName}

管理员订阅

{adminUser?.subscription_token ? (

{buildSubscriptionUrl(adminUser.subscription_token, origin)}

) : (

管理员订阅链接暂不可用。

)}

代理分组

{settings.proxyGroups.map((group) => ( ))}

订阅模板