mirror of
https://github.com/davegallant/rfd-notify.git
synced 2025-08-06 08:43:39 +00:00
Add matched expression to notification (#4)
This commit is contained in:
16
src/mail.rs
16
src/mail.rs
@@ -6,7 +6,7 @@ use sendgrid::{Destination, Mail};
|
||||
|
||||
const RFD_FORUMS_BASE_URL: &str = "https://forums.redflagdeals.com";
|
||||
|
||||
pub fn send(topic: &Topic, posts: &Posts, config: &Config) {
|
||||
pub fn send(topic: &Topic, posts: &Posts, expression: &str, config: &Config) {
|
||||
let api_key = &config.sendgrid.api_key;
|
||||
let sg = SGClient::new(api_key.to_string());
|
||||
|
||||
@@ -14,22 +14,28 @@ pub fn send(topic: &Topic, posts: &Posts, config: &Config) {
|
||||
"\
|
||||
<b>First Posted:</b> {}
|
||||
<br>
|
||||
<b>DEALER:</b> {:?}
|
||||
<b>DEALER:</b> {}
|
||||
<br>
|
||||
<b>DEAL:</b> {:?}
|
||||
<b>DEAL:</b> {}
|
||||
<br>
|
||||
<b>POST:</b> {}\
|
||||
<br>
|
||||
<br>
|
||||
<b>Body:</b> {}
|
||||
<br>
|
||||
<br>
|
||||
<b>Matched by expression:</b> {}
|
||||
",
|
||||
topic.post_time,
|
||||
topic.offer.dealer_name,
|
||||
topic.offer.url,
|
||||
topic.offer.dealer_name.as_ref().unwrap_or(&"".to_string()),
|
||||
topic.offer.url.as_ref().unwrap_or(&"".to_string()),
|
||||
format!("{}/{}", RFD_FORUMS_BASE_URL, topic.web_path),
|
||||
posts.posts[0].body,
|
||||
expression,
|
||||
);
|
||||
|
||||
debug!("{}", html_message);
|
||||
|
||||
let mail_info = Mail::new()
|
||||
.add_to(Destination {
|
||||
address: &config.sendgrid.mail_to,
|
||||
|
12
src/rfd.rs
12
src/rfd.rs
@@ -6,22 +6,22 @@ use crypto::sha2::Sha256;
|
||||
use regex::RegexBuilder;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug)]
|
||||
#[derive(Serialize, Deserialize)]
|
||||
pub struct Deals {
|
||||
topics: Vec<Topic>,
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug)]
|
||||
#[derive(Serialize, Deserialize)]
|
||||
pub struct Posts {
|
||||
pub posts: Vec<Post>,
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug)]
|
||||
#[derive(Serialize, Deserialize)]
|
||||
pub struct Post {
|
||||
pub body: String,
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug)]
|
||||
#[derive(Serialize, Deserialize)]
|
||||
pub struct Topic {
|
||||
#[serde(rename = "topic_id")]
|
||||
pub id: u32,
|
||||
@@ -31,7 +31,7 @@ pub struct Topic {
|
||||
pub offer: Offer,
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug)]
|
||||
#[derive(Serialize, Deserialize)]
|
||||
pub struct Offer {
|
||||
pub dealer_name: Option<String>,
|
||||
pub url: Option<String>,
|
||||
@@ -111,7 +111,7 @@ pub fn match_deals(deals: Deals, config: Config) {
|
||||
.unwrap(),
|
||||
);
|
||||
db::insert(&deal_hash);
|
||||
mail::send(topic, &posts, &config);
|
||||
mail::send(topic, &posts, expression, &config);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user