validate url backgrounds

This commit is contained in:
SpikeHD
2022-06-01 19:20:43 -07:00
parent fe48eb3c67
commit e71ca9ff40
3 changed files with 21 additions and 3 deletions

View File

@@ -57,7 +57,8 @@ fn main() {
downloader::download_file, downloader::download_file,
downloader::stop_download, downloader::stop_download,
lang::get_lang, lang::get_lang,
lang::get_languages lang::get_languages,
web::valid_url
]) ])
.run(tauri::generate_context!()) .run(tauri::generate_context!())
.expect("error while running tauri application"); .expect("error while running tauri application");

View File

@@ -5,4 +5,14 @@ pub(crate) async fn query(site: &str) -> String {
let response = client.get(site).header(USER_AGENT, "cultivation").send().await.unwrap(); let response = client.get(site).header(USER_AGENT, "cultivation").send().await.unwrap();
return response.text().await.unwrap(); return response.text().await.unwrap();
}
#[tauri::command]
pub(crate) async fn valid_url(url: String) -> bool {
// Check if we get a 200 response
let client = reqwest::Client::new();
let response = client.get(url).header(USER_AGENT, "cultivation").send().await.unwrap();
return response.status().as_str() == "200";
} }

View File

@@ -35,6 +35,8 @@ interface IState {
bgFile: string; bgFile: string;
} }
const DEFAULT_BG = 'https://webstatic.hoyoverse.com/upload/event/2020/11/04/7fd661b5184e1734f91f628b6f89a31f_7367318474207189623.png'
const downloadHandler = new DownloadHandler() const downloadHandler = new DownloadHandler()
class App extends React.Component<IProps, IState> { class App extends React.Component<IProps, IState> {
@@ -46,7 +48,7 @@ class App extends React.Component<IProps, IState> {
miniDownloadsOpen: false, miniDownloadsOpen: false,
downloadsOpen: false, downloadsOpen: false,
gameDownloadsOpen: false, gameDownloadsOpen: false,
bgFile: 'https://webstatic.hoyoverse.com/upload/event/2020/11/04/7fd661b5184e1734f91f628b6f89a31f_7367318474207189623.png', bgFile: DEFAULT_BG,
} }
listen('lang_error', (payload) => { listen('lang_error', (payload) => {
@@ -100,8 +102,13 @@ class App extends React.Component<IProps, IState> {
bgFile: convertFileSrc(custom_bg) bgFile: convertFileSrc(custom_bg)
}, this.forceUpdate) }, this.forceUpdate)
} else { } else {
// Check if URL returns a valid image.
const isValid = await invoke('valid_url', {
url: custom_bg
})
this.setState({ this.setState({
bgFile: custom_bg bgFile: isValid ? custom_bg : DEFAULT_BG
}, this.forceUpdate) }, this.forceUpdate)
} }
} }