1
0

fix failed fetches caching in app state

This commit is contained in:
Jai A
2024-12-14 22:16:15 -07:00
parent b5d788ca6c
commit 5f7d550a5a
2 changed files with 17 additions and 4 deletions

View File

@@ -6,7 +6,7 @@
<input
v-model="searchFilter"
type="text"
:placeholder="`Search content...`"
:placeholder="`Search ${filteredProjects.length} project${filteredProjects.length === 1 ? '' : 's'}...`"
class="text-input search-input"
autocomplete="off"
/>

View File

@@ -112,6 +112,19 @@ pub async fn fetch_advanced(
let result = req.send().await;
match result {
Ok(x) => {
if x.status().is_server_error() {
if attempt <= FETCH_ATTEMPTS {
continue;
} else {
return Err(crate::Error::from(
crate::ErrorKind::OtherError(
"Server error when fetching content"
.to_string(),
),
));
}
}
let bytes = if let Some((bar, total)) = &loading_bar {
let length = x.content_length();
if let Some(total_size) = length {
@@ -145,7 +158,7 @@ pub async fn fetch_advanced(
if let Some(sha1) = sha1 {
let hash = sha1_async(bytes.clone()).await?;
if &*hash != sha1 {
if attempt <= 3 {
if attempt <= FETCH_ATTEMPTS {
continue;
} else {
return Err(crate::ErrorKind::HashError(
@@ -159,13 +172,13 @@ pub async fn fetch_advanced(
tracing::trace!("Done downloading URL {url}");
return Ok(bytes);
} else if attempt <= 3 {
} else if attempt <= FETCH_ATTEMPTS {
continue;
} else if let Err(err) = bytes {
return Err(err.into());
}
}
Err(_) if attempt <= 3 => continue,
Err(_) if attempt <= FETCH_ATTEMPTS => continue,
Err(err) => {
return Err(err.into());
}