Add UESP map tile scraper as an example
This commit is contained in:
parent
804fac4eea
commit
dad58f6154
31
examples/tile_scraper.rs
Normal file
31
examples/tile_scraper.rs
Normal file
@ -0,0 +1,31 @@
|
||||
use anyhow::Result;
|
||||
use std::fs::File;
|
||||
use std::time::Duration;
|
||||
use tokio::time::sleep;
|
||||
|
||||
#[tokio::main]
|
||||
pub async fn main() -> Result<()> {
|
||||
let client = reqwest::Client::builder().build()?;
|
||||
for z in 10..18 {
|
||||
for x in 0..2_u32.pow(z - 9) {
|
||||
for y in 0..2_u32.pow(z - 9) {
|
||||
sleep(Duration::from_millis(100)).await;
|
||||
let url = format!(
|
||||
"https://maps.uesp.net/srmap/color/zoom{z}/skyrim-{x}-{y}-{z}.jpg",
|
||||
z = z,
|
||||
x = x,
|
||||
y = y
|
||||
);
|
||||
let resp = client.get(&url).send().await?;
|
||||
if resp.status().is_success() {
|
||||
println!("{}", url);
|
||||
std::fs::create_dir_all(format!("tiles/{z}/{x}", z = z, x = x))?;
|
||||
let mut out = File::create(format!("tiles/{z}/{x}/{y}.jpg", z = z, x = x, y = y))?;
|
||||
let bytes = resp.bytes().await?;
|
||||
std::io::copy(&mut bytes.as_ref(), &mut out)?;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Ok(())
|
||||
}
|
Loading…
Reference in New Issue
Block a user