1
0
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:
2024-04-12 05:45:43 +00:00
parent 841af6aa41
commit f2ff3e3640
9 changed files with 630 additions and 400 deletions

View File

@@ -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()