From 688c8cec6a803ef42d0844b8a849c3decb2e3798 Mon Sep 17 00:00:00 2001 From: amtoaer Date: Fri, 21 Nov 2025 10:50:52 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=87=AD=E6=8D=AE=E5=88=B7=E6=96=B0?= =?UTF-8?q?=E9=83=A8=E5=88=86=E6=B7=BB=E5=8A=A0=E4=B8=80=E4=BA=9B=20contex?= =?UTF-8?q?t=20=E6=96=B9=E4=BE=BF=E8=B0=83=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crates/bili_sync/src/bilibili/credential.rs | 14 +++++++++++--- crates/bili_sync/src/task/video_downloader.rs | 16 +++++++++++----- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/crates/bili_sync/src/bilibili/credential.rs b/crates/bili_sync/src/bilibili/credential.rs index 29235e2..6a139a8 100644 --- a/crates/bili_sync/src/bilibili/credential.rs +++ b/crates/bili_sync/src/bilibili/credential.rs @@ -75,9 +75,17 @@ impl Credential { pub async fn refresh(&self, client: &Client) -> Result { let correspond_path = Self::get_correspond_path(); - let csrf = self.get_refresh_csrf(client, correspond_path).await?; - let new_credential = self.get_new_credential(client, &csrf).await?; - self.confirm_refresh(client, &new_credential).await?; + let csrf = self + .get_refresh_csrf(client, correspond_path) + .await + .context("获取 refresh_csrf 失败")?; + let new_credential = self + .get_new_credential(client, &csrf) + .await + .context("刷新 Credential 失败")?; + self.confirm_refresh(client, &new_credential) + .await + .context("确认更新 Credential 失败")?; Ok(new_credential) } diff --git a/crates/bili_sync/src/task/video_downloader.rs b/crates/bili_sync/src/task/video_downloader.rs index de71a7e..d7c5e90 100644 --- a/crates/bili_sync/src/task/video_downloader.rs +++ b/crates/bili_sync/src/task/video_downloader.rs @@ -309,15 +309,21 @@ async fn check_and_refresh_credential( bili_client: &BiliClient, config: &Config, ) -> Result<()> { - if let Some(new_credential) = bili_client + match bili_client .check_refresh(&config.credential) .await .context("检查刷新 Credential 失败")? { - VersionedConfig::get() - .update_credential(new_credential, connection) - .await - .context("更新 Credential 失败")?; + None => { + info!("Credential 无需刷新"); + } + Some(new_credential) => { + VersionedConfig::get() + .update_credential(new_credential, connection) + .await + .context("新 Credential 持久化失败")?; + info!("Credential 已刷新并保存"); + } } Ok(()) }