mirror of
https://github.com/mrfluffy-dev/kami.git
synced 2026-01-17 04:50:32 +00:00
144 lines
4.2 KiB
Rust
144 lines
4.2 KiB
Rust
mod anime;
|
|
mod helpers;
|
|
mod ln;
|
|
mod ui;
|
|
|
|
use anime::anime::anime_stream;
|
|
use colored::Colorize;
|
|
use ln::search::search_ln;
|
|
use ln::{ln::ln_read, scraper::get_ln_next_page};
|
|
|
|
use crate::anime::{
|
|
player::open_video,
|
|
scraper::{anime_ep_range, anime_link, anime_names},
|
|
trackers::*,
|
|
};
|
|
use crate::helpers::take_input::{int_input, string_input};
|
|
use crate::ln::{menu::chapter_selector, open_text::open_bat, scraper::get_full_text};
|
|
use crate::ui::anime_ui::ui_anime;
|
|
fn main() {
|
|
let mut help = false;
|
|
let mut anime = false;
|
|
let mut ln = false;
|
|
let mut chapter: u32 = 0;
|
|
let mut episode: u32 = 0;
|
|
let mut resume = false;
|
|
//let search = option string
|
|
let mut search = String::new();
|
|
let mut count = 0;
|
|
for arg in std::env::args() {
|
|
if arg == "--help" || arg == "-h" {
|
|
help = true;
|
|
}
|
|
if arg == "--anime" || arg == "-a" {
|
|
anime = true;
|
|
//look at the next argument and see if it is a search term
|
|
if let Some(arg) = std::env::args().nth(count + 1) {
|
|
if !arg.starts_with("-") {
|
|
search = arg;
|
|
}
|
|
}
|
|
}
|
|
if arg == "--ln" || arg == "-l" {
|
|
ln = true;
|
|
//if let Some(arg) = std::env::args().nth(count + 1) and that arg does not start with a '-' set search to that arg
|
|
if let Some(arg) = std::env::args().nth(count + 1) {
|
|
if !arg.starts_with("-") {
|
|
search = arg;
|
|
}
|
|
}
|
|
}
|
|
if arg == "--chapter" || arg == "-c" {
|
|
if let Some(arg) = std::env::args().nth(count + 1) {
|
|
chapter = arg.parse::<u32>().unwrap();
|
|
} else {
|
|
chapter = 0;
|
|
}
|
|
}
|
|
if arg == "--episode" || arg == "-e" {
|
|
if let Some(arg) = std::env::args().nth(count + 1) {
|
|
episode = arg.parse::<u32>().unwrap();
|
|
} else {
|
|
episode = 0;
|
|
}
|
|
}
|
|
if arg == "--resume" || arg == "-r" {
|
|
resume = true;
|
|
}
|
|
|
|
count += 1;
|
|
}
|
|
|
|
if help == true {
|
|
print_help();
|
|
}
|
|
if anime == false && ln == false {
|
|
println!("1: Anime");
|
|
println!("2: Light Novel");
|
|
|
|
let a = int_input("pick your poison: ");
|
|
match a {
|
|
1 => anime = true,
|
|
2 => ln = true,
|
|
_ => println!("invalid option. "),
|
|
};
|
|
}
|
|
if anime == true && ln == true {
|
|
println!("you can only use one of the arguments at a time");
|
|
std::process::exit(0);
|
|
}
|
|
if ln == true {
|
|
ln_read(&search, chapter);
|
|
} else if anime == true {
|
|
//anime_stream(search, episode, resume);
|
|
ui_anime();
|
|
} else {
|
|
println!("Invalid argument");
|
|
}
|
|
}
|
|
|
|
fn page_selector(ln_id: &str, selected_page: u32) -> String {
|
|
get_ln_next_page(ln_id, &selected_page.to_string())
|
|
}
|
|
|
|
fn print_help() {
|
|
println!("anime:\t\t{}", format_args!("{}", "-a --anime".red()));
|
|
println!(
|
|
"{}",
|
|
"after this^^^ argument you can enter a search term".green()
|
|
);
|
|
println!("{}", "for exaple kami -a \"one piece\"");
|
|
//print blank line
|
|
println!("");
|
|
println!("episode:\t{}", format_args!("{}", "-e --episode".red()));
|
|
println!(
|
|
"{}",
|
|
"after this^^^ argument you can enter a chapter number".green()
|
|
);
|
|
println!("{}", "for exaple kami -c 200");
|
|
//print blank line
|
|
println!("");
|
|
println!("resume:\t\t{}", format_args!("{}", "-r --resume".red()));
|
|
println!("{}", "only works with anime".green());
|
|
println!("");
|
|
println!("light novel:\t{}", format_args!("{}", "-l --ln".red()));
|
|
println!(
|
|
"{}",
|
|
"after this^^^ argument you can enter a search term".green()
|
|
);
|
|
println!("{}", "for exaple kami -l \"one piece\"");
|
|
//print blank line
|
|
println!("");
|
|
println!("chapter:\t{}", format_args!("{}", "-c --chapter".red()));
|
|
println!(
|
|
"{}",
|
|
"after this^^^ argument you can enter a chapter number".green()
|
|
);
|
|
println!("{}", "for exaple kami -c 200");
|
|
//print blank line
|
|
println!("");
|
|
println!("help:\t\t{}", format_args!("{}", "-h --help".red()));
|
|
//kill the program
|
|
std::process::exit(0);
|
|
}
|