diff --git a/src/main.rs b/src/main.rs index 65329c9226df03438a1174e49658a82d2f3427df..9b6a9158bb30b7fa82293fca56bfbb62e79a3cd4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -25,14 +25,14 @@ struct Config { #[tokio::main] async fn main() { let config = Config::read_config(); - let filters = config.filters; + let filters = &config.filters; let products = get_html_products().await.unwrap(); let filtered: Vec<Product> = products .into_iter() .filter(|el| { - for s in &filters { + for s in filters { if el.name.contains(s) { return el.available; } @@ -43,17 +43,18 @@ async fn main() { if filtered.len() > 0 { println!("Found {} products.\nSending mail.", filtered.len()); - send_email(filtered); + send_email(config, filtered); } else { println!("Sorry, all products are out of stock. :/"); } } async fn get_html_products() -> Result<Vec<Product>, CmdError> { + println!("Fetching items from amd Website"); // start the geckodriver let mut geckodriver = Command::new("sh") .arg("-c") - .arg("./geckodriver") + .arg("./geckodriver --log fatal") .spawn() .expect("sh command failed to start geckodriver"); @@ -118,10 +119,10 @@ fn send_email(config: Config, products: Vec<Product>) -> () { .parse() .expect(format!("To adress: {} is invalid", recipient).as_str())) .subject("Products are available at the AMD website") - .body(message) + .body(String::from(&message)) .expect("Failed to construct email message"); - let creds = Credentials::new(config.smtp_user, config.smtp_pass); + let creds = Credentials::new(config.smtp_user.to_string(), config.smtp_pass.to_string()); let mailer = SmtpTransport::relay(&config.smtp_host) .expect("Failed to connect to mailerver") .credentials(creds)