repeat a request if it fails initially
This commit is contained in:
@@ -12,6 +12,7 @@ use error_chain::error_chain;
|
|||||||
use futures::future::join_all;
|
use futures::future::join_all;
|
||||||
use htmlentity::entity::{ICodedDataTrait, decode};
|
use htmlentity::entity::{ICodedDataTrait, decode};
|
||||||
use std::sync::{Arc, RwLock};
|
use std::sync::{Arc, RwLock};
|
||||||
|
use std::thread::sleep;
|
||||||
use std::{thread, vec};
|
use std::{thread, vec};
|
||||||
use titlecase::Titlecase;
|
use titlecase::Titlecase;
|
||||||
|
|
||||||
@@ -394,14 +395,26 @@ impl HqpornerProvider {
|
|||||||
.and_then(|s| s.split('\'').next())
|
.and_then(|s| s.split('\'').next())
|
||||||
.ok_or("No player link")?
|
.ok_or("No player link")?
|
||||||
);
|
);
|
||||||
let text2 = requester
|
let mut r = requester
|
||||||
.get_raw_with_headers(
|
.get_raw_with_headers(
|
||||||
&player_url,
|
&player_url,
|
||||||
vec![("Referer".to_string(), "https://hqporner.com/".into())],
|
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()
|
.text()
|
||||||
.await?;
|
.await
|
||||||
|
.map_err(|e| Error::from(format!("Text conversion failed: {}", e)))?;
|
||||||
|
|
||||||
// Check for error response
|
// Check for error response
|
||||||
if text2.starts_with("ERR:"){
|
if text2.starts_with("ERR:"){
|
||||||
return Ok((tags, formats));
|
return Ok((tags, formats));
|
||||||
|
|||||||
Reference in New Issue
Block a user