Renamed index_feeds and fetch_feeds functions.

This commit is contained in:
Jordan Petridis 2017-11-18 14:24:52 +02:00
parent 1ec4370c7b
commit 450643371c
No known key found for this signature in database
GPG Key ID: CEABAD9F5683B9A6
3 changed files with 19 additions and 17 deletions

View File

@ -16,7 +16,8 @@ use test::Bencher;
use hammond_data::run_migration_on;
use hammond_data::models::NewSource;
use hammond_data::index_feed::{index_feeds, Database, Feed};
use hammond_data::index_feed::{index, Feed};
use hammond_data::Database;
use std::io::BufReader;
use std::path::PathBuf;
@ -65,7 +66,7 @@ fn index_urls(m: &Database) {
Feed::new_from_channel_source(chan, s)
})
.for_each(|feed| {
index_feeds(m, &mut [feed]);
index(m, &mut [feed]);
});
}

View File

@ -6,7 +6,7 @@ use dbqueries;
use feedparser;
use Database;
use models::*;
use models::{Podcast, Source};
use errors::*;
use std::sync::Arc;
@ -63,15 +63,15 @@ impl Feed {
}
}
pub fn full_index_loop(db: &Database) -> Result<()> {
let mut f = fetch_all_feeds(db)?;
pub fn index_all(db: &Database) -> Result<()> {
let mut f = fetch_all(db)?;
index_feeds(db, &mut f);
index(db, &mut f);
info!("Indexing done.");
Ok(())
}
pub fn index_feeds(db: &Database, f: &mut [Feed]) {
pub fn index(db: &Database, f: &mut [Feed]) {
f.into_par_iter().for_each(|x| {
let e = x.index(&Arc::clone(db));
if e.is_err() {
@ -81,17 +81,17 @@ pub fn index_feeds(db: &Database, f: &mut [Feed]) {
});
}
pub fn fetch_all_feeds(db: &Database) -> Result<Vec<Feed>> {
pub fn fetch_all(db: &Database) -> Result<Vec<Feed>> {
let feeds = {
let conn = db.lock().unwrap();
dbqueries::get_sources(&conn)?
};
let results = fetch_feeds(db, feeds);
let results = fetch(db, feeds);
Ok(results)
}
pub fn fetch_feeds(db: &Database, feeds: Vec<Source>) -> Vec<Feed> {
pub fn fetch(db: &Database, feeds: Vec<Source>) -> Vec<Feed> {
let results: Vec<_> = feeds
.into_par_iter()
.filter_map(|x| {
@ -119,6 +119,7 @@ mod tests {
use diesel::prelude::*;
use rss;
use self::rand::Rng;
use models::NewSource;
use std::io::BufReader;
use std::path::PathBuf;
@ -164,10 +165,10 @@ mod tests {
.unwrap();
});
full_index_loop(&db).unwrap();
index_all(&db).unwrap();
// Run again to cover Unique constrains erros.
full_index_loop(&db).unwrap();
index_all(&db).unwrap();
}
#[test]
@ -211,8 +212,8 @@ mod tests {
})
.collect();
// Index the channel
index_feeds(&m, &mut feeds);
// Index the channels
index(&m, &mut feeds);
// Assert the index rows equal the controlled results
let tempdb = m.lock().unwrap();

View File

@ -42,14 +42,14 @@ pub fn refresh_feed(
let feeds = {
if let Some(mut vec) = source {
Ok(index_feed::fetch_feeds(&db, vec))
Ok(index_feed::fetch(&db, vec))
} else {
index_feed::fetch_all_feeds(&db)
index_feed::fetch_all(&db)
}
};
if let Ok(mut x) = feeds {
index_feed::index_feeds(&db, &mut x);
index_feed::index(&db, &mut x);
info!("Indexing done.");
sender.send(true).expect("Couldn't send data to channel");;