mirror of
https://gitlab.com/Anson-Projects/zine.git
synced 2025-06-16 05:26:40 +00:00
more algorithm
This commit is contained in:
parent
68f0aa0aa8
commit
7008f06d45
20
src/main.rs
20
src/main.rs
@ -11,6 +11,7 @@ mod site_generator;
|
|||||||
mod utilities;
|
mod utilities;
|
||||||
mod web_fetchers;
|
mod web_fetchers;
|
||||||
use rayon::prelude::*;
|
use rayon::prelude::*;
|
||||||
|
use std::collections::HashMap;
|
||||||
|
|
||||||
fn main() -> Result<(), Box<dyn Error>> {
|
fn main() -> Result<(), Box<dyn Error>> {
|
||||||
simple_logger::init_with_level(log::Level::Info).unwrap();
|
simple_logger::init_with_level(log::Level::Info).unwrap();
|
||||||
@ -33,7 +34,7 @@ fn main() -> Result<(), Box<dyn Error>> {
|
|||||||
|
|
||||||
entries.par_iter_mut().for_each(|entry| {
|
entries.par_iter_mut().for_each(|entry| {
|
||||||
if entry.image_url.is_some() {
|
if entry.image_url.is_some() {
|
||||||
entry.score += 300;
|
entry.score += 1440;
|
||||||
} else {
|
} else {
|
||||||
match web_fetchers::fetch_social_image(entry.link.clone()) {
|
match web_fetchers::fetch_social_image(entry.link.clone()) {
|
||||||
Ok(social_image_url) => {
|
Ok(social_image_url) => {
|
||||||
@ -41,15 +42,30 @@ fn main() -> Result<(), Box<dyn Error>> {
|
|||||||
}
|
}
|
||||||
Err(error) => {
|
Err(error) => {
|
||||||
log::info!("{}: {}", error, entry.link.clone());
|
log::info!("{}: {}", error, entry.link.clone());
|
||||||
entry.score += -600;
|
entry.score += -1440;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
entries.retain(|entry| entry.score.is_positive());
|
entries.retain(|entry| entry.score.is_positive());
|
||||||
|
|
||||||
|
// Cunt occurences of main urls
|
||||||
|
let url_counts = entries.iter().fold(HashMap::new(), |mut acc, post| {
|
||||||
|
*acc.entry(post.main_url.clone()).or_insert(0) += 1;
|
||||||
|
acc
|
||||||
|
});
|
||||||
|
|
||||||
|
// Punish blogs that post really often
|
||||||
|
entries.iter_mut().for_each(|entry| {
|
||||||
|
entry.score = (entry.score / url_counts.get(&entry.main_url).unwrap()) as i64;
|
||||||
|
});
|
||||||
|
|
||||||
entries.sort();
|
entries.sort();
|
||||||
|
|
||||||
|
// Remove bottom 10% from list
|
||||||
|
entries.truncate(entries.len() - (entries.len() as f64 * 0.1).ceil() as usize);
|
||||||
|
|
||||||
let index = site_generator::generate_index(entries.clone());
|
let index = site_generator::generate_index(entries.clone());
|
||||||
let index_path = Path::new("output/index.html");
|
let index_path = Path::new("output/index.html");
|
||||||
DirBuilder::new()
|
DirBuilder::new()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user