diff --git a/crates/bili_sync/src/bilibili/credential.rs b/crates/bili_sync/src/bilibili/credential.rs index 00e0c1f..48d1c4f 100644 --- a/crates/bili_sync/src/bilibili/credential.rs +++ b/crates/bili_sync/src/bilibili/credential.rs @@ -55,6 +55,7 @@ impl Credential { .request(Method::GET, "https://api.bilibili.com/x/web-interface/nav", Some(self)) .send() .await? + .error_for_status()? .json::() .await? .validate()?; diff --git a/crates/bili_sync/src/bilibili/video.rs b/crates/bili_sync/src/bilibili/video.rs index ca5bfe0..d4cb191 100644 --- a/crates/bili_sync/src/bilibili/video.rs +++ b/crates/bili_sync/src/bilibili/video.rs @@ -177,6 +177,7 @@ impl<'a> Video<'a> { )) .send() .await? + .error_for_status()? .json::() .await? .validate()?; @@ -198,6 +199,7 @@ impl<'a> Video<'a> { .request(Method::GET, format!("https:{}", &info.subtitle_url).as_str(), None) .send() .await? + .error_for_status()? .json::() .await?; let body: SubTitleBody = serde_json::from_value(res["body"].take())?; diff --git a/crates/bili_sync/src/downloader.rs b/crates/bili_sync/src/downloader.rs index e3bb747..cb55c1a 100644 --- a/crates/bili_sync/src/downloader.rs +++ b/crates/bili_sync/src/downloader.rs @@ -26,7 +26,12 @@ impl Downloader { fs::create_dir_all(parent).await?; } let mut file = File::create(path).await?; - let resp = self.client.request(Method::GET, url, None).send().await?; + let resp = self + .client + .request(Method::GET, url, None) + .send() + .await? + .error_for_status()?; let expected = resp.content_length().unwrap_or_default(); let mut stream_reader = StreamReader::new(resp.bytes_stream().map_err(std::io::Error::other)); let received = tokio::io::copy(&mut stream_reader, &mut file).await?; diff --git a/crates/bili_sync/src/utils/status.rs b/crates/bili_sync/src/utils/status.rs index 0e82613..44e15d2 100644 --- a/crates/bili_sync/src/utils/status.rs +++ b/crates/bili_sync/src/utils/status.rs @@ -114,13 +114,11 @@ impl Status { if let ExecutionStatus::FixedFailed(status, _) = result { assert!(*status < 0b1000, "status should be less than 0b1000"); self.set_status(offset, *status); - } else { - if self.get_status(offset) < STATUS_MAX_RETRY { - match result { - ExecutionStatus::Succeeded | ExecutionStatus::Skipped => self.set_ok(offset), - ExecutionStatus::Failed(_) => self.plus_one(offset), - _ => {} - } + } else if self.get_status(offset) < STATUS_MAX_RETRY { + match result { + ExecutionStatus::Succeeded | ExecutionStatus::Skipped => self.set_ok(offset), + ExecutionStatus::Failed(_) => self.plus_one(offset), + _ => {} } } }