From 6c7d295fe6c84d805ee139267a10d471632588eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E1=B4=80=E1=B4=8D=E1=B4=9B=E1=B4=8F=E1=B4=80=E1=B4=87?= =?UTF-8?q?=CA=80?= Date: Tue, 23 Sep 2025 08:27:14 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=AD=97=E5=B9=95?= =?UTF-8?q?=E9=A3=8E=E6=8E=A7=E7=9A=84=E6=8A=A5=E9=94=99=20(#463)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crates/bili_sync/src/bilibili/video.rs | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/crates/bili_sync/src/bilibili/video.rs b/crates/bili_sync/src/bilibili/video.rs index ed4981f..e799c65 100644 --- a/crates/bili_sync/src/bilibili/video.rs +++ b/crates/bili_sync/src/bilibili/video.rs @@ -171,14 +171,18 @@ impl<'a> Video<'a> { .await? .validate()?; // 接口返回的信息,包含了一系列的字幕,每个字幕包含了字幕的语言和 json 下载地址 - let subtitles_info: SubTitlesInfo = serde_json::from_value(res["data"]["subtitle"].take())?; - let tasks = subtitles_info - .subtitles - .into_iter() - .filter(|v| !v.is_ai_sub()) - .map(|v| self.get_subtitle(v)) - .collect::>(); - tasks.try_collect().await + match serde_json::from_value::>(res["data"]["subtitle"].take())? { + Some(subtitles_info) => { + let tasks = subtitles_info + .subtitles + .into_iter() + .filter(|v| !v.is_ai_sub()) + .map(|v| self.get_subtitle(v)) + .collect::>(); + tasks.try_collect().await + } + None => Ok(vec![]), + } } async fn get_subtitle(&self, info: SubTitleInfo) -> Result {