From e5dd127bccc851b53ee0a1f970b47b426db95da3 Mon Sep 17 00:00:00 2001 From: Tunglies <77394545+Tunglies@users.noreply.github.com> Date: Fri, 20 Feb 2026 11:12:18 +0800 Subject: [PATCH] feat: enhance profile update handling with manual trigger --- Changelog.md | 2 ++ src-tauri/src/cmd/profile.rs | 2 +- src-tauri/src/core/timer.rs | 2 +- src-tauri/src/feat/profile.rs | 10 ++++++++-- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/Changelog.md b/Changelog.md index 09fd524ec..9960e0f39 100644 --- a/Changelog.md +++ b/Changelog.md @@ -10,4 +10,6 @@
🚀 优化改进 +- 优化订阅错误通知,仅在手动触发时 +
diff --git a/src-tauri/src/cmd/profile.rs b/src-tauri/src/cmd/profile.rs index 9388e3b7b..44d6a37ae 100644 --- a/src-tauri/src/cmd/profile.rs +++ b/src-tauri/src/cmd/profile.rs @@ -158,7 +158,7 @@ pub async fn create_profile(item: PrfItem, file_data: Option) -> CmdResu /// 更新配置文件 #[tauri::command] pub async fn update_profile(index: String, option: Option) -> CmdResult { - match feat::update_profile(&index, option.as_ref(), true, true).await { + match feat::update_profile(&index, option.as_ref(), true, true, true).await { Ok(_) => { let _: () = Config::profiles().await.apply(); Ok(()) diff --git a/src-tauri/src/core/timer.rs b/src-tauri/src/core/timer.rs index 5a00b36a9..38afb096e 100644 --- a/src-tauri/src/core/timer.rs +++ b/src-tauri/src/core/timer.rs @@ -430,7 +430,7 @@ impl Timer { let is_current = Config::profiles().await.latest_arc().current.as_ref() == Some(uid); logging!(info, Type::Timer, "配置 {} 是否为当前激活配置: {}", uid, is_current); - feat::update_profile(uid, None, is_current, false).await + feat::update_profile(uid, None, is_current, false, false).await }) .await { diff --git a/src-tauri/src/feat/profile.rs b/src-tauri/src/feat/profile.rs index 00891d154..e8e974afe 100644 --- a/src-tauri/src/feat/profile.rs +++ b/src-tauri/src/feat/profile.rs @@ -99,6 +99,7 @@ async fn perform_profile_update( url: &String, opt: Option<&PrfOption>, option: Option<&PrfOption>, + is_mannual_trigger: bool, ) -> Result { logging!(info, Type::Config, "[订阅更新] 开始下载新的订阅内容"); let mut merged_opt = PrfOption::merge(opt, option); @@ -173,7 +174,9 @@ async fn perform_profile_update( } } - handle::Handle::notice_message("update_failed_even_with_clash", format!("{profile_name} - {last_err}")); + if is_mannual_trigger { + handle::Handle::notice_message("update_failed_even_with_clash", format!("{profile_name} - {last_err}")); + } Ok(is_current) } @@ -182,12 +185,15 @@ pub async fn update_profile( option: Option<&PrfOption>, auto_refresh: bool, ignore_auto_update: bool, + is_mannual_trigger: bool, ) -> Result<()> { logging!(info, Type::Config, "[订阅更新] 开始更新订阅 {}", uid); let url_opt = should_update_profile(uid, ignore_auto_update).await?; let should_refresh = match url_opt { - Some((url, opt)) => perform_profile_update(uid, &url, opt.as_ref(), option).await? && auto_refresh, + Some((url, opt)) => { + perform_profile_update(uid, &url, opt.as_ref(), option, is_mannual_trigger).await? && auto_refresh + } None => auto_refresh, };