diff --git a/config.json.defaut b/config.json.defaut index 20d9b502c4b2fc1a8b5ab45e0b73d200eb463e4e..e5cf1e7d2c831c1e55199bab280753193fe52aa3 100644 --- a/config.json.defaut +++ b/config.json.defaut @@ -1 +1 @@ -{"smtp_host":"","smtp_user":"","smtp_pass":"","smtp_from":"","filters":[],"recipients":[]} +{ "webdriver_url" = "localhost:4444", "smtp_host":"","smtp_user":"","smtp_pass":"","smtp_from":"","filters":[],"recipients":[]} diff --git a/geckodriver b/geckodriver deleted file mode 100755 index 1ae6fea1edde49d727467371a9b01a946c87d66e..0000000000000000000000000000000000000000 Binary files a/geckodriver and /dev/null differ diff --git a/src/main.rs b/src/main.rs index 9b6a9158bb30b7fa82293fca56bfbb62e79a3cd4..71eac29ca6722cf4d4ba3ce93d326afcf6c8392c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -3,7 +3,6 @@ use fantoccini::{ClientBuilder, Locator}; use lettre::transport::smtp::authentication::{Credentials, Mechanism}; use lettre::{Message, SmtpTransport, Transport}; use penguin_config::*; -use std::process::Command; struct Product { name: String, @@ -14,6 +13,7 @@ struct Product { #[derive(Deserialize, PenguinConfigFile, Default)] #[penguin_config(path = "config.json")] struct Config { + webdriver_url: String, smtp_host: String, smtp_user: String, smtp_pass: String, @@ -27,7 +27,7 @@ async fn main() { let config = Config::read_config(); let filters = &config.filters; - let products = get_html_products().await.unwrap(); + let products = get_html_products(&config).await.unwrap(); let filtered: Vec<Product> = products .into_iter() @@ -49,18 +49,12 @@ async fn main() { } } -async fn get_html_products() -> Result<Vec<Product>, CmdError> { +async fn get_html_products(config: &Config) -> Result<Vec<Product>, CmdError> { println!("Fetching items from amd Website"); - // start the geckodriver - let mut geckodriver = Command::new("sh") - .arg("-c") - .arg("./geckodriver --log fatal") - .spawn() - .expect("sh command failed to start geckodriver"); // navigate to amd-site let mut webc = ClientBuilder::native() - .connect("http://localhost:4444") + .connect(config.webdriver_url.as_str()) .await .expect("failed to connect to WebDriver"); webc.goto("https://www.amd.com/de/direct-buy/de") @@ -94,8 +88,6 @@ async fn get_html_products() -> Result<Vec<Product>, CmdError> { .await .expect("Failed to terminate webdriver sessions"); - // stop the geckodriver - geckodriver.kill().expect("Failed to kill geckodriver!"); return Ok(products); }