mirror of
https://gitlab.com/Anson-Projects/zine.git
synced 2025-07-27 08:41:25 +00:00
Use Custom Struct
This commit is contained in:
44
src/main.rs
44
src/main.rs
@@ -7,24 +7,50 @@ use std::error::Error;
|
||||
use std::fs::write;
|
||||
use std::fs::DirBuilder;
|
||||
use std::path::Path;
|
||||
use utilities::read_feed;
|
||||
|
||||
mod index_generator;
|
||||
mod utilities;
|
||||
mod web_fetchers;
|
||||
use rayon::prelude::*;
|
||||
|
||||
fn main() -> Result<(), Box<dyn Error>> {
|
||||
simple_logger::init_with_level(log::Level::Info).unwrap();
|
||||
|
||||
let featured = read_feed("featured_feeds.txt").first().unwrap().clone();
|
||||
let entries = read_feed("feeds.txt");
|
||||
let mut featured = utilities::read_feed("featured_feeds.txt");
|
||||
|
||||
log::info!(
|
||||
"Featured article: {}",
|
||||
entries[0].links.first().unwrap().href.as_str()
|
||||
);
|
||||
featured = featured
|
||||
.iter_mut()
|
||||
.map(|post| {
|
||||
post.score += 60 * 24 * 2;
|
||||
post.clone()
|
||||
})
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
let index = index_generator::generate_index(entries, featured);
|
||||
let mut entries = utilities::read_feed("feeds.txt");
|
||||
|
||||
entries.extend(featured);
|
||||
|
||||
entries.retain(|entry| entry.score.is_positive());
|
||||
|
||||
entries.par_iter_mut().for_each(|entry| {
|
||||
if entry.image_url.is_some() {
|
||||
entry.score += 300;
|
||||
} else {
|
||||
match web_fetchers::fetch_social_image(entry.link.clone()) {
|
||||
Ok(social_image_url) => {
|
||||
entry.image_url = Some(social_image_url);
|
||||
}
|
||||
Err(error) => {
|
||||
log::info!("{}: {}", error, entry.link.clone());
|
||||
entry.score += -600;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
entries.retain(|entry| entry.score.is_positive());
|
||||
entries.sort();
|
||||
|
||||
let index = index_generator::generate_index(entries);
|
||||
|
||||
let output_path = Path::new("output/index.html");
|
||||
DirBuilder::new()
|
||||
|
Reference in New Issue
Block a user