Very good progress
This commit is contained in:
7
Cargo.lock
generated
7
Cargo.lock
generated
@ -7,6 +7,7 @@ name = "Hentai"
|
|||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"postgres",
|
"postgres",
|
||||||
|
"urlencoding",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -668,6 +669,12 @@ version = "0.1.3"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0"
|
checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "urlencoding"
|
||||||
|
version = "2.1.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "version_check"
|
name = "version_check"
|
||||||
version = "0.9.5"
|
version = "0.9.5"
|
||||||
|
@ -5,3 +5,4 @@ edition = "2021"
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
postgres = "0.19.9"
|
postgres = "0.19.9"
|
||||||
|
urlencoding = "2.1.3"
|
||||||
|
94
src/main.rs
94
src/main.rs
@ -1,9 +1,12 @@
|
|||||||
use postgres::{Client, NoTls};
|
use postgres::{Client, NoTls};
|
||||||
use std::{
|
use std::{
|
||||||
env::args,
|
env::args,
|
||||||
fs::File,
|
fs::{self, File},
|
||||||
io::{BufRead, BufReader, Write},
|
io::{BufRead, BufReader, Write},
|
||||||
};
|
};
|
||||||
|
use urlencoding;
|
||||||
|
|
||||||
|
const IS_DEV: bool = true;
|
||||||
|
|
||||||
fn generate_file(website_name: &str) {
|
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 mut client = Client::connect("host=192.168.0.10 port=28945 user=hentai password=h99nqaNPhpfbuuhCDwQXLpZAnoVTjSQP7taoqmQhpzc2rPLVC4JUAKxAHfuuhuU9", NoTls).unwrap();
|
||||||
@ -25,14 +28,51 @@ fn generate_file(website_name: &str) {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
let sqlstmt = format!("SELECT * FROM get_urls_and_paths('{}');", website_name);
|
let output = client
|
||||||
let output = client.query(&sqlstmt, &[]).unwrap();
|
.query("SELECT * FROM get_urls_and_paths($1));", &[&website_name])
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
for row in output {
|
for row in output {
|
||||||
let url: String = row.get(0);
|
let url: String = row.get(0);
|
||||||
let folder_path: String = row.get(1);
|
let folder_path: String = row.get(1);
|
||||||
|
|
||||||
write!(file, "{} # {}\n", url, folder_path).unwrap();
|
writeln!(file, "{} # {}", url, folder_path).unwrap();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn convert_folders(root_folder: &str) {
|
||||||
|
let mut client = Client::connect("host=192.168.0.10 port=28945 user=hentai password=h99nqaNPhpfbuuhCDwQXLpZAnoVTjSQP7taoqmQhpzc2rPLVC4JUAKxAHfuuhuU9", NoTls).unwrap();
|
||||||
|
|
||||||
|
let filename: &str = "convert_folder.log";
|
||||||
|
let mut file = match File::create(filename) {
|
||||||
|
Ok(file) => file,
|
||||||
|
Err(error) => {
|
||||||
|
let message = error.to_string();
|
||||||
|
panic!("Problem opening the file: {message}");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
let output = client
|
||||||
|
.query("SELECT * FROM get_all_convertable_paths();", &[])
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
for row in output {
|
||||||
|
let old_path: String = row.get(0);
|
||||||
|
let new_path: String = row.get(1);
|
||||||
|
let old_path = format!("{}/{}", root_folder, old_path);
|
||||||
|
let new_path = format!("{}/{}", root_folder, new_path);
|
||||||
|
|
||||||
|
let old_path = urlencoding::decode(&old_path).unwrap().to_string();
|
||||||
|
|
||||||
|
dbg!(&old_path);
|
||||||
|
dbg!(&new_path);
|
||||||
|
|
||||||
|
if !fs::exists(&old_path).unwrap() {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
fs::rename(&old_path, &new_path).unwrap();
|
||||||
|
writeln!(file, "Converted {} => {}", old_path, new_path).unwrap();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -41,30 +81,52 @@ fn import_file(filename: &str) {
|
|||||||
let reader_iter = BufReader::new(file).lines();
|
let reader_iter = BufReader::new(file).lines();
|
||||||
let mut client = Client::connect("host=192.168.0.10 port=28945 user=hentai password=h99nqaNPhpfbuuhCDwQXLpZAnoVTjSQP7taoqmQhpzc2rPLVC4JUAKxAHfuuhuU9", NoTls).unwrap();
|
let mut client = Client::connect("host=192.168.0.10 port=28945 user=hentai password=h99nqaNPhpfbuuhCDwQXLpZAnoVTjSQP7taoqmQhpzc2rPLVC4JUAKxAHfuuhuU9", NoTls).unwrap();
|
||||||
|
|
||||||
|
let mut other_file = match File::create("Hallo.txt") {
|
||||||
|
Ok(file) => file,
|
||||||
|
Err(error) => {
|
||||||
|
let message = error.to_string();
|
||||||
|
panic!("Problem opening the file: {message}");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
writeln!(other_file, "# Them are hella fucked").unwrap();
|
||||||
|
|
||||||
|
if IS_DEV {
|
||||||
|
let _ = client.execute("CALL create_tables();", &[]);
|
||||||
|
}
|
||||||
|
|
||||||
for line in reader_iter {
|
for line in reader_iter {
|
||||||
let line = line.unwrap();
|
let line = line.unwrap();
|
||||||
if !line.contains("#") {
|
if line.contains("#") {
|
||||||
let output = client.query_one("SELECT insert_url($1)", &[&line]).unwrap();
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
let result: i32 = output.get(0);
|
let output = client.query_one("SELECT insert_url($1)", &[&line]).unwrap();
|
||||||
dbg!(result);
|
|
||||||
|
let result: i32 = output.get(0);
|
||||||
|
if result == 1 {
|
||||||
|
dbg!(&line);
|
||||||
|
writeln!(other_file, "{}", line).unwrap();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn add_artist(url: &str) {
|
||||||
|
dbg!(url);
|
||||||
|
todo!()
|
||||||
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let args: Vec<String> = args().collect();
|
let args: Vec<String> = args().collect();
|
||||||
dbg!(&args);
|
dbg!(&args);
|
||||||
|
|
||||||
if args.len() != 3 {
|
let option: &str = args[1].as_str();
|
||||||
panic!("Too many or too few arguments");
|
let value: &str = args[2].as_str();
|
||||||
}
|
|
||||||
|
|
||||||
let operation: &str = args[1].as_str();
|
match option {
|
||||||
|
"generate" => generate_file(value),
|
||||||
match operation {
|
"convert" => convert_folders(value),
|
||||||
"generate" => generate_file(&args[2]),
|
"import" => import_file(value),
|
||||||
"import" => import_file(&args[2]),
|
"add" => add_artist(value),
|
||||||
_ => panic!("Invalid argument"),
|
_ => panic!("Invalid argument"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user