From 508d7d63c96ba4ae2c01ac2da3c02706dbd1ff6d Mon Sep 17 00:00:00 2001 From: Tongyuxiu Zhou <3232825542@qq.com> Date: Sun, 7 Dec 2025 13:39:14 +0800 Subject: [PATCH] fix: handle subscription with failed status code or invalid profile --- src/main/config/profile.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/main/config/profile.ts b/src/main/config/profile.ts index 61e0f5f..d16b8f5 100644 --- a/src/main/config/profile.ts +++ b/src/main/config/profile.ts @@ -191,9 +191,26 @@ export async function createProfile(item: Partial): Promise= 300) { + throw new Error(`Subscription failed: Request status code ${res.status}`) + } const data = res.data const headers = res.headers + + // 校验是否为对象结构 (拦截 HTML字符串、普通文本、乱码) + const parsed = parse(data) + if (typeof parsed !== 'object' || parsed === null) { + throw new Error('Subscription failed: Profile is not a valid YAML') + } + // 检查是否包含必要的字段,防止空对象 + const profile = parsed as any + if (!profile.proxies && !profile['proxy-providers']) { + throw new Error('Subscription failed: Profile missing proxies or providers') + } + if (headers['content-disposition'] && newItem.name === 'Remote File') { newItem.name = parseFilename(headers['content-disposition']) }