This commit is contained in:
parent
25f3f5bdc5
commit
fbe41b416e
1 changed files with 10 additions and 8 deletions
18
src/main.rs
18
src/main.rs
|
|
@ -4,10 +4,10 @@ use rocket::State;
|
|||
use reqwest::Client;
|
||||
use bytes::Bytes;
|
||||
|
||||
static MII_RENDERER_URL: &str = "https://mii-fwd.spfn.net/";
|
||||
static MII_RENDERER_URL: &str = "https://mii-unsecure.ariankordi.net/";
|
||||
|
||||
async fn request_mii_render(client: &State<Client>, pid: i32, path: &str) -> Option<Bytes> {
|
||||
let req_str = format!("{MII_RENDERER_URL}/{pid}/{path}");
|
||||
async fn request_mii_render(client: &State<Client>, mii_data: &str, ext: &str) -> Option<Bytes> {
|
||||
let req_str = format!("{MII_RENDERER_URL}/miis/image.{ext}?data={mii_data}");
|
||||
|
||||
let response = client.get(req_str)
|
||||
.send()
|
||||
|
|
@ -41,6 +41,8 @@ async fn request_mii_render(client: &State<Client>, pid: i32, path: &str) -> Opt
|
|||
|
||||
#[rocket::get("/<pid>/<path>")]
|
||||
pub async fn mii_render(pid: i32, path: &str, client: &State<Client>) -> Option<NamedFile> {
|
||||
let ext = path.splitn(2, ".").nth(1)?;
|
||||
|
||||
let mii_data = {
|
||||
let route = format!("https://account.spfn.net/api/v2/users/{pid}/mii");
|
||||
let response = client.get(route)
|
||||
|
|
@ -76,11 +78,11 @@ pub async fn mii_render(pid: i32, path: &str, client: &State<Client>) -> Option<
|
|||
Ok(hash) => {
|
||||
if hash == mii_data { // Cached images are correct
|
||||
if !img_path.exists() || !img_path.is_file() { // File type was not found - Request data
|
||||
let img_data = request_mii_render(client, pid, path).await?;
|
||||
let img_data = request_mii_render(client, &mii_data, ext).await?;
|
||||
let _ = std::fs::write(&img_path, &img_data);
|
||||
}
|
||||
} else { // Cached images are outdated - Update data
|
||||
let img_data = request_mii_render(client, pid, path).await?;
|
||||
let img_data = request_mii_render(client, &mii_data, ext).await?;
|
||||
let _ = std::fs::write(&img_path, &img_data);
|
||||
};
|
||||
}
|
||||
|
|
@ -88,14 +90,14 @@ pub async fn mii_render(pid: i32, path: &str, client: &State<Client>) -> Option<
|
|||
Err(_) => { // Data cannot be read - Request data
|
||||
let _ = std::fs::write(data_path, &mii_data);
|
||||
|
||||
let img_data = request_mii_render(client, pid, path).await?;
|
||||
let img_data = request_mii_render(client, &mii_data, ext).await?;
|
||||
let _ = std::fs::write(&img_path, &img_data);
|
||||
}
|
||||
}
|
||||
} else { // Data isn't saved - Request data
|
||||
let _ = std::fs::write(data_path, &mii_data);
|
||||
|
||||
let img_file = request_mii_render(client, pid, path).await?;
|
||||
let img_file = request_mii_render(client, &mii_data, ext).await?;
|
||||
let _ = std::fs::write(&img_path, &img_file);
|
||||
}
|
||||
} else { // Mii data was never cached - Request data
|
||||
|
|
@ -103,7 +105,7 @@ pub async fn mii_render(pid: i32, path: &str, client: &State<Client>) -> Option<
|
|||
|
||||
let _ = std::fs::write(data_path, &mii_data);
|
||||
|
||||
let img_data = request_mii_render(client, pid, path).await?;
|
||||
let img_data = request_mii_render(client, &mii_data, ext).await?;
|
||||
let _ = std::fs::write(&img_path, &img_data);
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue