From 8fe1f4f86bf4ebd5e08fe25ea461192a4f95ae24 Mon Sep 17 00:00:00 2001 From: xishang0128 Date: Thu, 2 Jan 2025 20:59:53 +0800 Subject: [PATCH] adjust --- src/main/config/controledMihomo.ts | 5 +- .../components/resources/proxy-provider.tsx | 58 ++++++++++++------- .../components/resources/rule-provider.tsx | 2 +- src/renderer/src/pages/dns.tsx | 16 ++--- 4 files changed, 48 insertions(+), 33 deletions(-) diff --git a/src/main/config/controledMihomo.ts b/src/main/config/controledMihomo.ts index a73cddf..c0b26af 100644 --- a/src/main/config/controledMihomo.ts +++ b/src/main/config/controledMihomo.ts @@ -41,11 +41,10 @@ export async function patchControledMihomoConfig(patch: Partial): controledMihomoConfig.dns = controledMihomoConfig.dns || {} controledMihomoConfig.dns['nameserver-policy'] = patch.dns['nameserver-policy'] } - controledMihomoConfig = deepMerge(controledMihomoConfig, patch) - if (patch.hosts && patch.dns?.['use-hosts']) { - delete controledMihomoConfig.hosts + if (patch.dns?.['use-hosts']) { controledMihomoConfig.hosts = patch.hosts } + controledMihomoConfig = deepMerge(controledMihomoConfig, patch) if (!useNameserverPolicy) { delete controledMihomoConfig?.dns?.['nameserver-policy'] } diff --git a/src/renderer/src/components/resources/proxy-provider.tsx b/src/renderer/src/components/resources/proxy-provider.tsx index a5522e6..5dd52c9 100644 --- a/src/renderer/src/components/resources/proxy-provider.tsx +++ b/src/renderer/src/components/resources/proxy-provider.tsx @@ -27,7 +27,7 @@ const ProxyProvider: React.FC = () => { if (showDetails.title) { const fetchProviderPath = async (name: string): Promise => { try { - const providers= await getRuntimeConfig() + const providers = await getRuntimeConfig() const provider = providers['proxy-providers'][name] if (provider) { setShowDetails((prev) => ({ @@ -48,6 +48,20 @@ const ProxyProvider: React.FC = () => { const providers = useMemo(() => { if (!data) return [] return Object.values(data.providers) + .map(provider => { + if (provider.vehicleType === 'Inline' || (provider.subscriptionInfo && + provider.subscriptionInfo.Upload === 0 && + provider.subscriptionInfo.Download === 0 && + provider.subscriptionInfo.Total === 0 && + provider.subscriptionInfo.Expire === 0)) { + return { + ...provider, + subscriptionInfo: null + } + } + return provider + }) + .filter(provider => 'subscriptionInfo' in provider) .sort((a, b) => { if (a.vehicleType === 'File' && b.vehicleType !== 'File') { @@ -122,26 +136,28 @@ const ProxyProvider: React.FC = () => { {/* */} - + {provider.vehicleType !== 'Inline' && ( + + )}