diff --git a/src/main.rs b/src/main.rs index 0afa9d8..45d47be 100644 --- a/src/main.rs +++ b/src/main.rs @@ -8,6 +8,7 @@ Last edited: 10:18 PM 3/16/23 */ use std::fs::File; +use std::fs; use std::io::prelude::*; use std::env; extern crate ncurses; @@ -15,31 +16,60 @@ extern crate ncurses; //initial function. Reads the ebook passed by argument. //TODO: add visual library to pull up ebooks. -fn main() -> std::io::Result<()> { - let args: Vec = env::args().collect(); +fn main() { + //let args: Vec = env::args().collect(); + //let filename = &args[1]; + menu(); - let filename = &args[1]; - - let mut file = File::open(filename).expect("cannot open file."); - let mut contents = String::new(); - file.read_to_string(&mut contents).expect("unreadable file."); - - - screen(&contents); - Ok(()) - - } +fn get_terminal_size()-> (i8, i32, i32){ -//screen init function -fn screen(line: &str){ - let mut stdscr: i8 = 0; let mut w: i32 = 0; //width let mut h: i32 = 0; //height ncurses::getmaxyx(&mut stdscr, &mut h, &mut w); + return (stdscr, h, w); +} + + + +//Gets files in directory and returns string with contents. +fn get_directory() -> String{ + + let mut dir: String = "".to_string(); + let mut hold: String; + let paths = fs::read_dir("./").unwrap(); + for path in paths { + hold = path.unwrap().path().display().to_string(); + dir.push_str(&hold); + dir.push_str("\n"); + } + println!("{}", &dir); + return dir; +} + +fn menu(){ + + let (mut stdscr, height, width): (i8, i32, i32) = get_terminal_size(); + + ncurses::initscr(); + ncurses::clear(); + let win = ncurses::newwin(100, 100, 5, 5); + ncurses::wprintw(win, &get_directory()); + ncurses::refresh(); + ncurses::box_(win, 0, 0); + ncurses::wrefresh(win); + ncurses::getch(); + ncurses::endwin(); + + +} + +//screen init function +fn screen(line: &str){ + ncurses::initscr(); ncurses::clear(); ncurses::addstr(line); @@ -48,3 +78,45 @@ fn screen(line: &str){ ncurses::endwin(); } + + + +//parses UTF8 files. Does not work if it has BOM or CRLF line terminators. Currently searching for fix. +fn text(filename: &str) -> std::io::Result<()>{ + + + let mut file = File::open(filename).expect("cannot open file."); + let mut contents = String::new(); + file.read_to_string(&mut contents).expect("unreadable file."); + + + screen(&contents); + Ok(()) + + +} + + +//parses pdf files +fn pdf(){ + + +} + + +//parses mobi files +fn mobi(){ + + + +} + + +//parses epub files +fn epub(){ + + +} + + +