Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 9 additions & 5 deletions src/ln/ln.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use crate::ln::open_text::*;
use crate::ln::open_text::{open_bat, open_glow};
use crate::ln::scraper::*;
use crate::ln::tracker::*;
use crossterm::{
Expand Down Expand Up @@ -113,7 +113,7 @@ impl<'a> App {
}
}

pub fn ln_ui(chapter: u32) -> Result<(), Box<dyn Error>> {
pub fn ln_ui(chapter: u32, reader: String) -> Result<(), Box<dyn Error>> {
// setup terminal
let _ = get_ln_json();
enable_raw_mode()?;
Expand All @@ -130,7 +130,7 @@ pub fn ln_ui(chapter: u32) -> Result<(), Box<dyn Error>> {
app.current_page_number = (chapter / 48.0).ceil() as u32;
}

let res = run_app(&mut terminal, app);
let res = run_app(&mut terminal, app, &*reader);

// restore terminal
disable_raw_mode()?;
Expand All @@ -148,7 +148,7 @@ pub fn ln_ui(chapter: u32) -> Result<(), Box<dyn Error>> {
Ok(())
}

fn run_app<B: Backend>(terminal: &mut Terminal<B>, mut app: App) -> io::Result<()> {
fn run_app<B: Backend>(terminal: &mut Terminal<B>, mut app: App, reader: &str) -> io::Result<()> {
let mut chapter_select = false;

loop {
Expand Down Expand Up @@ -244,7 +244,11 @@ fn run_app<B: Backend>(terminal: &mut Terminal<B>, mut app: App) -> io::Result<(
file.sync_all().expect("Unable to sync file");
};
terminal.clear()?;
let _ = open_bat();
let _ = match reader {
"bat" => open_bat(),
"glow" => open_glow(),
&_ => todo!(),
};
write_ln_progress(
&app.title,
&app.current_page_number,
Expand Down
46 changes: 39 additions & 7 deletions src/ln/open_text.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,15 @@ use std::process::{Command, ExitStatus, Stdio};

#[allow(unused_assignments)]
pub fn open_bat() -> Result<ExitStatus> {
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"){
if cfg!(target_os = "windows") {
use dirs::home_dir;
let mut home = format!("{:?}",home_dir()).replace("\\\\","/");
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{
home.drain(home.len() - 2..home.len());
path = format!("{}/AppData/Roaming/log_e", home).to_string();
} else {
path = "/tmp/log_e".to_string();
}

Expand All @@ -37,3 +36,36 @@ pub fn open_bat() -> Result<ExitStatus> {
.spawn()?
.wait()
}

#[allow(unused_assignments)]
pub fn open_glow() -> Result<ExitStatus> {
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(path)
.stdout(Stdio::piped())
.spawn()
{
Err(why) => panic!("couldn't spawn wc: {}", why),
Ok(soft_wrap) => soft_wrap,
};

Command::new("glow")
.arg("-p")
.stdin(soft_wrap.stdout.unwrap())
.spawn()?
.wait()
}
97 changes: 63 additions & 34 deletions src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,48 +17,62 @@ fn main() {
let mut chapter: u32 = 0;
//let search = option string
let mut count = 0;
let mut provider: String = "zoro".to_string();
let mut provider: String = "gogo".to_string();
let mut reader: String = "bat".to_string();
let mut cast = (false, "0".to_string());
for arg in std::env::args() {
if arg == "--help" || arg == "-h" {
help = true;
}
if arg == "--anime" || arg == "-a" {
anime = true;
}
if arg == "--provider" || arg == "-r" {
if let Some(arg) = std::env::args().nth(count + 1) {
//get the next argument and see if it is = to gogo of vrv
if arg == "zoro" {
match &*arg {
"--help" | "-h" => help = true,
"--anime" | "-a" => anime = true,
"--provider" | "-r" => {
if let Some(arg) = std::env::args().nth(count + 1) {
//get the next argument and see if it is = to gogo of vrv
match arg.as_str() {
"zoro" | "gogoanime" => {
provider = arg;
count += 1;
}
&_ => provider = "gogoanime".to_string(),
}
} else {
provider = "zoro".to_string();
count += 1;
} else if arg == "gogo" {
provider = "gogoanime".to_string();
count += 1;
}
}
"--reader" | "-R" => {
if let Some(arg) = std::env::args().nth(count + 1) {
//get the next argument and see if it is = to gogo of vrv
match arg.as_str() {
"bat" | "glow" => {
reader = arg;
count += 1;
}
&_ => reader = "bat".to_string(),
}

} else {
provider = "gogo".to_string();
provider = "glow".to_string();
}

} else {
provider = "gogo".to_string();

}
}
if arg == "--cast" || arg == "-C" {
if let Some(arg) = std::env::args().nth(count + 1) {
cast = (true, String::from(arg))
} else {
println!("{}", "please provide a ip address".red())
"--cast" | "-C" => {
if let Some(arg) = std::env::args().nth(count + 1) {
cast = (true, String::from(arg))
} else {
println!("{}", "please provide a ip address".red())
}
}
}

if arg == "--ln" || arg == "-l" {
ln = true;
}
if arg == "--chapter" || arg == "-c" {
if let Some(arg) = std::env::args().nth(count + 1) {
chapter = arg.parse::<u32>().unwrap();
} else {
chapter = 0;
"--ln" | "-l" => ln = true,
"--chapter" | "-c" => {
if let Some(arg) = std::env::args().nth(count + 1) {
chapter = arg.parse::<u32>().unwrap();
} else {
chapter = 0;
}
}
&_ => {}
}

count += 1;
Expand All @@ -84,7 +98,7 @@ fn main() {
}
if ln == true {
//ln_read(&search, chapter);
_ = ln_ui(chapter);
_ = ln_ui(chapter, reader);
} else if anime == true {
//anime_stream(search, episode, resume);

Expand Down Expand Up @@ -128,7 +142,22 @@ fn print_help() {
"if the -r argument is not used it will default to {}",
"zoro".green()
);
println!("the providers are {} or {}", "gogo".green(), "zoro".green());
println!("the providers are {} or {}", "gogoanime".green(), "zoro".green());
println!("");
println!("reader:\t\t{}", format_args!("{}", "-R --reader".red()));
println!(
"{}",
"after this^^^ argument you can enter a reader".green()
);
println!(
"if no reader is entered it will default to {}",
"bat".green()
);
println!(
"if the -R argument is not used it will default to {}",
"bat".green()
);
println!("the readers are {} or {}", "bat".green(), "glow".green());
println!("");
println!("help:\t\t{}", format_args!("{}", "-h --help".red()));
//kill the program
Expand Down