diff --git a/src/main.rs b/src/main.rs index 4ebc421..3edaeb5 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,33 +1,143 @@ +use futures::executor::block_on; use std::time::{Duration, Instant}; use std::thread::sleep; -use std::process::Command; +use std::env; use std::fs; use download_rs::async_download::Download; use wallpaper; + fn main() { - fs::create_dir_all("/tmp/i3-unspl").unwrap(); + for arg in env::args() { + if arg == "hd" { + loop { + let b = hdd(); + block_on(b); - let _hd = "https://source.unsplash.com/random/1280x720/?backgrounds/"; - let _fhd = "https://source.unsplash.com/random/1920x1080/?backgrounds/"; - let _thd = "https://source.unsplash.com/random/3440x1440/?backgrounds/"; - let _uhd = "https://source.unsplash.com/random/4096x2160/?backgrounds/"; - - let name = "/tmp/i3-unspl/bg.png"; - - loop { - fs::remove_file("/tmp/i3-unspl/bg.png"); - - let down = Download::new(_thd, Some(name),None); - match down.download() { - Ok(_) => println!("Изображение успешно скачано!"), - Err(_e) => println!("Не удалось скачать изображение :("), + let _f = Instant::now(); + sleep(Duration::new(3600, 3600)); } + } else if arg == "fhd" { + loop { + let b = fhdd(); + block_on(b); - wallpaper::set_from_path("/tmp/i3-unspl/bg.png"); - wallpaper::set_mode(wallpaper::Mode::Fit); + let _f = Instant::now(); + sleep(Duration::new(3600, 3600)); + } + } else if arg == "qhd" { + loop { + let b = qhdd(); + block_on(b); + + let _f = Instant::now(); + sleep(Duration::new(3600, 3600)); + } + } else if arg == "uhd" { + loop { + let b = uhdd(); + block_on(b); - let _a = Instant::now(); - sleep(Duration::new(3600, 3600)); + let _f = Instant::now(); + sleep(Duration::new(3600, 3600)); + } + } else if arg == "help"{ + println!(" Чтобы начать пользоваться этой программой введите в терминал 'unwp hd'. Вместо hd разрешение обоев, которое вы хотите видеть. \n Доспупные разрешения: \n hd \n fhd \n qhd \n uhd\n\n Автор: KhomyaK_HTF, Донецк, 2023 год."); + }/* else if arg == " " { + println!("Пожалуйста, введите разрешение обоев, которое вы хотите видеть у себя на рабочем столе. Например 'unwp fhd'"); + }*/ } } + +async fn cr() { + fs::create_dir_all("/tmp/unwp").expect("Программе не удалось создать временный каталог для её работы."); + fs::remove_file("/tmp/unwp/bg.png"); +} + +async fn hd() { + let _url = "https://source.unsplash.com/random/1280x720/?backgrounds/"; + + let name = "/tmp/unwp/bg.png"; + + let down = Download::new(_url, Some(name),None); + match down.download() { + Ok(_) => println!("Изображение успешно скачано!"), + Err(_e) => println!("Не удалось скачать изображение :("), + }; +} + +async fn fhd() { + let _url = "https://source.unsplash.com/random/1920x1080/?backgrounds/"; + + let name = "/tmp/unwp/bg.png"; + + let down = Download::new(_url, Some(name),None); + match down.download() { + Ok(_) => println!("Изображение успешно скачано!"), + Err(_e) => println!("Не удалось скачать изображение :("), + }; +} + +async fn qhd() { + let _url = "https://source.unsplash.com/random/3840x1440/?backgrounds/"; + + let name = "/tmp/unwp/bg.png"; + + let down = Download::new(_url, Some(name),None); + match down.download() { + Ok(_) => println!("Изображение успешно скачано!"), + Err(_e) => println!("Не удалось скачать изображение :("), + }; +} + +async fn uhd() { + let _url = "https://source.unsplash.com/random/7680x4320/?backgrounds/"; + + let name = "/tmp/unwp/bg.png"; + + let down = Download::new(_url, Some(name),None); + match down.download() { + Ok(_) => println!("Изображение успешно скачано!"), + Err(_e) => println!("Не удалось скачать изображение :("), + }; +} + +async fn set() { + wallpaper::set_from_path("/tmp/unwp/bg.png"); + wallpaper::set_mode(wallpaper::Mode::Fit); + + fs::remove_dir("/tmp/unwp"); +} + +async fn hdd() { + let a = cr(); + let b = hd(); + let c = set(); + + futures::join!(a, b, c); +} + +async fn fhdd() { + let a = cr(); + let b = fhd(); + let c = set(); + + futures::join!(a, b, c); +} + +async fn qhdd() { + let a = cr(); + let b = qhd(); + let c = set(); + + futures::join!(a, b, c); +} + +async fn uhdd() { + let a = cr(); + let b = uhd(); + let c = set(); + + futures::join!(a, b, c); +} +