diff --git a/Cargo.lock b/Cargo.lock index d72d9fc..61ad740 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -142,6 +142,26 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "dirs" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" +dependencies = [ + "libc", + "redox_users", + "winapi 0.3.9", +] + [[package]] name = "encoding_rs" version = "0.8.31" @@ -209,6 +229,17 @@ dependencies = [ "waker-fn", ] +[[package]] +name = "getrandom" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + [[package]] name = "hermit-abi" version = "0.1.19" @@ -284,10 +315,11 @@ checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d" [[package]] name = "kami" -version = "0.2.0" +version = "0.3.0" dependencies = [ "base64", "colored", + "dirs", "isahc", "regex", "termsize", @@ -488,6 +520,17 @@ dependencies = [ "redox_syscall", ] +[[package]] +name = "redox_users" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" +dependencies = [ + "getrandom", + "redox_syscall", + "thiserror", +] + [[package]] name = "regex" version = "1.5.6" @@ -578,6 +621,26 @@ dependencies = [ "winapi 0.2.8", ] +[[package]] +name = "thiserror" +version = "1.0.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "tinyvec" version = "1.6.0" @@ -681,6 +744,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + [[package]] name = "wepoll-ffi" version = "0.1.2" diff --git a/Cargo.toml b/Cargo.toml index c5eb9f6..e77f56e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,7 +2,7 @@ name = "kami" author = "mrfluffy-dev" license = "GPL-3.0" -version = "0.2.0" +version = "0.3.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -13,3 +13,4 @@ colored = "2.0.0" isahc = "1.7.2" base64 = "0.13" termsize = "0.1.6" +dirs = "4.0" diff --git a/src/anime/anime.rs b/src/anime/anime.rs index d7207aa..c283cf0 100644 --- a/src/anime/anime.rs +++ b/src/anime/anime.rs @@ -52,7 +52,6 @@ pub fn anime_stream(first_run: bool) { println!("Invalid episode number"); } } - loop{ let link = anime_link(title, ep_num as u64); open_video(link); diff --git a/src/ln/ln.rs b/src/ln/ln.rs index d733ee0..6622962 100644 --- a/src/ln/ln.rs +++ b/src/ln/ln.rs @@ -9,15 +9,23 @@ pub fn ln_read(){ let chapter_url = chapter_selector(&ln_url, selected_page); selected_page = chapter_url.1; let full_text = get_full_text(&chapter_url.0); - //write full_text to file called temp.txt - let mut file = File::create("/tmp/log_e").expect("Unable to create file"); - file.write_all(full_text.as_bytes()) - .expect("Unable to write to file"); - //close file - file.sync_all().expect("Unable to sync file"); + if cfg!(target_os = "windows"){ + use dirs::home_dir; + let mut home = format!("{:?}",home_dir()).replace("\\\\","/"); + home.drain(0..6); + home.drain(home.len()-2..home.len()); + let mut file = File::create(format!("{}/AppData/Roaming/log_e",home)).expect("Unable to create file"); + file.write_all(full_text.as_bytes()) + .expect("Unable to write to file"); + file.sync_all().expect("Unable to sync file"); + }else{ + let mut file = File::create("/tmp/log_e").expect("Unable to create file"); + file.write_all(full_text.as_bytes()) + .expect("Unable to write to file"); + file.sync_all().expect("Unable to sync file"); + }; //open temp.txt in cat for user to read let _com = open_bat(); print!("\x1B[2J\x1B[1;1H"); } - } diff --git a/src/ln/open_text.rs b/src/ln/open_text.rs index ae4c10b..22678c9 100644 --- a/src/ln/open_text.rs +++ b/src/ln/open_text.rs @@ -1,13 +1,26 @@ use std::io::Result; use std::process::{Command, ExitStatus, Stdio}; +#[allow(unused_assignments)] pub fn open_bat() -> Result { - let termsize::Size {rows: _, cols} = termsize::get().unwrap(); + let termsize::Size {rows: _, cols} = termsize::get().unwrap(); + let mut path = String::new(); + if cfg!(target_os = "windows"){ + use dirs::home_dir; + let mut home = format!("{:?}",home_dir()).replace("\\\\","/"); + home.drain(0..6); + home.drain(home.len()-2..home.len()); + path = format!("{}/AppData/Roaming/log_e",home).to_string(); + } + else{ + path = "/tmp/log_e".to_string(); + } + let soft_wrap = match Command::new("fold") .arg("-s") .arg("-w") .arg((cols - 9).to_string()) - .arg("/tmp/log_e") + .arg(path) .stdout(Stdio::piped()) .spawn() {