From 5a08d2afe71042e18f486fb9a5c3285448c5c199 Mon Sep 17 00:00:00 2001 From: Simon Date: Wed, 21 Jan 2026 11:32:02 +0000 Subject: [PATCH] repeat a request if it fails initially --- src/providers/hqporner.rs | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/providers/hqporner.rs b/src/providers/hqporner.rs index 8b31ae3..eb062a9 100644 --- a/src/providers/hqporner.rs +++ b/src/providers/hqporner.rs @@ -12,6 +12,7 @@ use error_chain::error_chain; use futures::future::join_all; use htmlentity::entity::{ICodedDataTrait, decode}; use std::sync::{Arc, RwLock}; +use std::thread::sleep; use std::{thread, vec}; use titlecase::Titlecase; @@ -394,14 +395,26 @@ impl HqpornerProvider { .and_then(|s| s.split('\'').next()) .ok_or("No player link")? ); - let text2 = requester + let mut r = requester .get_raw_with_headers( &player_url, vec![("Referer".to_string(), "https://hqporner.com/".into())], - ) - .await? + ).await; + + if let Err(_e) = &r { + sleep(std::time::Duration::from_secs(1)); + r = requester + .get_raw_with_headers( + &player_url, + vec![("Referer".to_string(), "https://hqporner.com/".into())], + ).await; + } + let text2 = r + .unwrap() .text() - .await?; + .await + .map_err(|e| Error::from(format!("Text conversion failed: {}", e)))?; + // Check for error response if text2.starts_with("ERR:"){ return Ok((tags, formats));