diff --git a/sql/website_exists.sql b/sql/website_exists.sql new file mode 100644 index 0000000..9dc97ed --- /dev/null +++ b/sql/website_exists.sql @@ -0,0 +1,12 @@ +CREATE OR REPLACE FUNCTION website_exists(in_website_name text) RETURNS boolean AS $$ +BEGIN + PERFORM * FROM website w + WHERE w.name = in_website_name; + + IF FOUND THEN + RETURN 1; + ELSE + RETURN 0; + END IF; +END; +$$ LANGUAGE plpgsql STRICT; \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index d87b031..4e9c7c7 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,28 +1,20 @@ use postgres::{Client, NoTls}; -use std::{env, fs, io::Write}; - -fn website_is_valid(name: &str) -> bool { - let mut client = Client::connect("host=192.168.0.10 port=28945 user=hentai password=h99nqaNPhpfbuuhCDwQXLpZAnoVTjSQP7taoqmQhpzc2rPLVC4JUAKxAHfuuhuU9", NoTls).unwrap(); - let sqlstmt = format!("SELECT * FROM website WHERE name = '{}'", name); - let output = client.query(&sqlstmt, &[]).unwrap(); - - if output.len() == 0 { - return false; - } - - return true; -} +use std::{ + env, fs, + io::{BufRead, BufReader, Write}, +}; fn generate_file(website_name: &str) { - dbg!(&website_name); + let mut client = Client::connect("host=192.168.0.10 port=28945 user=hentai password=h99nqaNPhpfbuuhCDwQXLpZAnoVTjSQP7taoqmQhpzc2rPLVC4JUAKxAHfuuhuU9", NoTls).unwrap(); + let sqlstmt = format!("SELECT website_exists('{}');", website_name); + let output = client.query_one(&sqlstmt, &[]).unwrap(); - if !website_is_valid(&website_name) { + let result: bool = output.get(0); + if result == false { panic!("Invalid website_name"); } let filename = format!("{website_name}_generated.txt"); - dbg!(&filename); - let mut file = match fs::File::create(filename) { Ok(file) => file, Err(error) => { @@ -31,7 +23,6 @@ fn generate_file(website_name: &str) { } }; - let mut client = Client::connect("host=192.168.0.10 port=28945 user=hentai password=h99nqaNPhpfbuuhCDwQXLpZAnoVTjSQP7taoqmQhpzc2rPLVC4JUAKxAHfuuhuU9", NoTls).unwrap(); let sqlstmt = format!("SELECT * FROM get_urls_and_paths('{}');", website_name); let output = client.query(&sqlstmt, &[]).unwrap(); @@ -39,13 +30,17 @@ fn generate_file(website_name: &str) { let url: String = row.get(0); let folder_path: String = row.get(1); - dbg!(&url, &folder_path); write!(file, "{} # {}", url, folder_path).unwrap(); } } fn import_file(filename: &str) { - dbg!(&filename); + let file = fs::File::open(filename).unwrap(); + let mut reader = BufReader::new(file); + let mut line = String::new(); + reader.read_line(&mut line).unwrap(); + + dbg!(line); } fn main() {