Commit Diff


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<Sqlite
 
 // inserts a new post or updates an old one with the same guid
 pub fn insert_post(conn: &SqliteConnection, item: &Item) -> anyhow::Result<usize> {
-    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<models::Post>) {
+    // 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<S: AsRef<str>>(url: S) -> anyhow::Result<rss::Channel> {
     let content = reqwest::blocking::get(url.as_ref())?.bytes()?;