67 lines
1.9 KiB
Rust
67 lines
1.9 KiB
Rust
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;
|
|
}
|
|
|
|
fn generate_file(website_name: &str) {
|
|
dbg!(&website_name);
|
|
|
|
if !website_is_valid(&website_name) {
|
|
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) => {
|
|
let message = error.to_string();
|
|
panic!("Problem opening the file: {message}");
|
|
}
|
|
};
|
|
|
|
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();
|
|
|
|
for row in output {
|
|
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);
|
|
}
|
|
|
|
fn main() {
|
|
let args: Vec<String> = env::args().collect();
|
|
dbg!(&args);
|
|
|
|
if args.len() != 3 {
|
|
panic!("Too many or too few arguments");
|
|
}
|
|
|
|
let operation: &str = args[1].as_str();
|
|
|
|
match operation {
|
|
"generate" => generate_file(&args[2]),
|
|
"import" => import_file(&args[2]),
|
|
_ => panic!("Invalid argument"),
|
|
}
|
|
}
|