commit d85ed18bc6ad9e2739516ed24ab4c199372afe7c from: witcher date: Sun Mar 6 21:17:00 2022 UTC cargo fmt commit - 46f44a2336309e746db316fa3a6d8abb3bb27def commit + d85ed18bc6ad9e2739516ed24ab4c199372afe7c blob - 4c94182ff2167e7ae6de0ab51f0807c2f2823e0e blob + 53178f50ba7c7590f521840d543ed9b8a972d356 --- src/db.rs +++ src/db.rs @@ -1,9 +1,9 @@ +use chrono::DateTime; use diesel::prelude::*; use diesel::sqlite::SqliteConnection; use dotenv::dotenv; use rss::Item; use std::env; -use chrono::DateTime; use crate::models::NewPost; use crate::schema::posts; @@ -17,7 +17,9 @@ pub fn establish_connection() -> anyhow::Result anyhow::Result { - let time = item.pub_date().map(|date| DateTime::parse_from_rfc2822(date).unwrap().timestamp()); + let time = item + .pub_date() + .map(|date| DateTime::parse_from_rfc2822(date).unwrap().timestamp()); let new_post = NewPost { guid: item.guid().ok_or(anyhow!("No guid found"))?.value(), blob - c6500ad8074f891d843a81b230fd47d60596650f blob + 910e92a48e67397392a69654b75432283ff12699 --- src/main.rs +++ src/main.rs @@ -3,15 +3,15 @@ extern crate diesel; #[macro_use] extern crate anyhow; +pub mod clap; pub mod db; pub mod models; pub mod rss; pub mod schema; -pub mod clap; use std::fs::File; -use std::io::BufReader; use std::io::BufRead; +use std::io::BufReader; fn main() -> anyhow::Result<()> { use self::diesel::prelude::*; @@ -23,7 +23,9 @@ fn main() -> anyhow::Result<()> { // positional argument "urls_path" is required to be present let urls_path = matches.value_of("urls_path").unwrap(); // urls_path is required to be a present file by clap - let urls = BufReader::new(File::open(urls_path).unwrap()).lines().map(|l| l.unwrap()); + let urls = BufReader::new(File::open(urls_path).unwrap()) + .lines() + .map(|l| l.unwrap()); let conn = db::establish_connection()?; @@ -44,3 +46,9 @@ fn main() -> anyhow::Result<()> { Ok(()) } + +fn send_posts(posts: &Vec) { + // TODO: store smtp values (username, password, smtp server) and create smtp client to send + // with + for post in posts {} +} blob - 172c26b3b262d7e6a744518b77d04c509e6bedf0 blob + 52903660f78d83ec81015281338c89ae1ba63af2 --- src/rss.rs +++ src/rss.rs @@ -1,5 +1,5 @@ -use rss; use reqwest; +use rss; pub fn fetch_new>(url: S) -> anyhow::Result { let content = reqwest::blocking::get(url.as_ref())?.bytes()?;