mirror of
https://gitlab.com/Anson-Projects/zine.git
synced 2025-06-16 13:36:40 +00:00
Added proper logging
This commit is contained in:
parent
8b30cc58b9
commit
59b2fdef91
91
Cargo.lock
generated
91
Cargo.lock
generated
@ -23,10 +23,12 @@ version = "0.2.0"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"chrono",
|
"chrono",
|
||||||
"feed-rs",
|
"feed-rs",
|
||||||
|
"log",
|
||||||
"maud",
|
"maud",
|
||||||
"rayon",
|
"rayon",
|
||||||
"reqwest",
|
"reqwest",
|
||||||
"scraper",
|
"scraper",
|
||||||
|
"simple_logger",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -152,6 +154,16 @@ dependencies = [
|
|||||||
"windows-targets 0.52.0",
|
"windows-targets 0.52.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "colored"
|
||||||
|
version = "2.1.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8"
|
||||||
|
dependencies = [
|
||||||
|
"lazy_static",
|
||||||
|
"windows-sys 0.48.0",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "core-foundation"
|
name = "core-foundation"
|
||||||
version = "0.9.4"
|
version = "0.9.4"
|
||||||
@ -216,6 +228,15 @@ dependencies = [
|
|||||||
"syn 2.0.48",
|
"syn 2.0.48",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "deranged"
|
||||||
|
version = "0.3.11"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
|
||||||
|
dependencies = [
|
||||||
|
"powerfmt",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "derive_more"
|
name = "derive_more"
|
||||||
version = "0.99.17"
|
version = "0.99.17"
|
||||||
@ -738,6 +759,12 @@ version = "1.0.4"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
|
checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "num-conv"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "num-traits"
|
name = "num-traits"
|
||||||
version = "0.2.18"
|
version = "0.2.18"
|
||||||
@ -757,6 +784,15 @@ dependencies = [
|
|||||||
"libc",
|
"libc",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "num_threads"
|
||||||
|
version = "0.1.7"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9"
|
||||||
|
dependencies = [
|
||||||
|
"libc",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "object"
|
name = "object"
|
||||||
version = "0.32.2"
|
version = "0.32.2"
|
||||||
@ -917,6 +953,12 @@ version = "0.3.29"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb"
|
checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "powerfmt"
|
||||||
|
version = "0.2.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ppv-lite86"
|
name = "ppv-lite86"
|
||||||
version = "0.2.17"
|
version = "0.2.17"
|
||||||
@ -1165,9 +1207,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "scraper"
|
name = "scraper"
|
||||||
version = "0.18.1"
|
version = "0.19.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "585480e3719b311b78a573db1c9d9c4c1f8010c2dee4cc59c2efe58ea4dbc3e1"
|
checksum = "5b80b33679ff7a0ea53d37f3b39de77ea0c75b12c5805ac43ec0c33b3051af1b"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ahash",
|
"ahash",
|
||||||
"cssparser",
|
"cssparser",
|
||||||
@ -1273,6 +1315,18 @@ dependencies = [
|
|||||||
"stable_deref_trait",
|
"stable_deref_trait",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "simple_logger"
|
||||||
|
version = "4.3.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "8e7e46c8c90251d47d08b28b8a419ffb4aede0f87c2eea95e17d1d5bacbf3ef1"
|
||||||
|
dependencies = [
|
||||||
|
"colored",
|
||||||
|
"log",
|
||||||
|
"time",
|
||||||
|
"windows-sys 0.48.0",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "siphasher"
|
name = "siphasher"
|
||||||
version = "0.3.11"
|
version = "0.3.11"
|
||||||
@ -1414,6 +1468,39 @@ dependencies = [
|
|||||||
"utf-8",
|
"utf-8",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "time"
|
||||||
|
version = "0.3.34"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
|
||||||
|
dependencies = [
|
||||||
|
"deranged",
|
||||||
|
"itoa",
|
||||||
|
"libc",
|
||||||
|
"num-conv",
|
||||||
|
"num_threads",
|
||||||
|
"powerfmt",
|
||||||
|
"serde",
|
||||||
|
"time-core",
|
||||||
|
"time-macros",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "time-core"
|
||||||
|
version = "0.1.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "time-macros"
|
||||||
|
version = "0.2.17"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
|
||||||
|
dependencies = [
|
||||||
|
"num-conv",
|
||||||
|
"time-core",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tinyvec"
|
name = "tinyvec"
|
||||||
version = "1.6.0"
|
version = "1.6.0"
|
||||||
|
@ -14,5 +14,7 @@ feed-rs = "1.4.0"
|
|||||||
reqwest = { version = "0.11.24", features = ["blocking"] }
|
reqwest = { version = "0.11.24", features = ["blocking"] }
|
||||||
maud = "0.26.0"
|
maud = "0.26.0"
|
||||||
chrono = "0.4.33"
|
chrono = "0.4.33"
|
||||||
scraper = "0.18.1"
|
scraper = "0.19.0"
|
||||||
rayon = "1.8.1"
|
rayon = "1.8.1"
|
||||||
|
simple_logger = "4.3.3"
|
||||||
|
log = "0.4"
|
||||||
|
@ -22,7 +22,7 @@ fn create_featured_card(entry: &Entry) -> Markup {
|
|||||||
let lang = link.clone().href_lang.unwrap_or("en".to_string());
|
let lang = link.clone().href_lang.unwrap_or("en".to_string());
|
||||||
|
|
||||||
if lang != "en" {
|
if lang != "en" {
|
||||||
println!("Non english! {} {}", lang, link.href);
|
log::warn!("Non english! {} {}", lang, link.href);
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut image_url = entry
|
let mut image_url = entry
|
||||||
@ -34,7 +34,7 @@ fn create_featured_card(entry: &Entry) -> Markup {
|
|||||||
|
|
||||||
// Fallback to fetching social image if direct extraction didn't work
|
// Fallback to fetching social image if direct extraction didn't work
|
||||||
if image_url.is_empty() {
|
if image_url.is_empty() {
|
||||||
println!(
|
log::info!(
|
||||||
"Falling back to searching for a social image for {}",
|
"Falling back to searching for a social image for {}",
|
||||||
link.href
|
link.href
|
||||||
);
|
);
|
||||||
@ -60,7 +60,6 @@ fn create_featured_card(entry: &Entry) -> Markup {
|
|||||||
let truncated_description = utilities::truncate_description(&cleaned_description, 500);
|
let truncated_description = utilities::truncate_description(&cleaned_description, 500);
|
||||||
|
|
||||||
let main_url = utilities::get_root_url(link.href.as_str());
|
let main_url = utilities::get_root_url(link.href.as_str());
|
||||||
dbg!(main_url);
|
|
||||||
|
|
||||||
html! {
|
html! {
|
||||||
article {
|
article {
|
||||||
@ -93,7 +92,7 @@ fn create_post_card(entry: &Entry) -> Markup {
|
|||||||
let lang = link.clone().href_lang.unwrap_or("en".to_string());
|
let lang = link.clone().href_lang.unwrap_or("en".to_string());
|
||||||
|
|
||||||
if lang != "en" {
|
if lang != "en" {
|
||||||
println!("Non english! {} {}", lang, link.href);
|
log::warn!("Non english! {} {}", lang, link.href);
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut image_url = entry
|
let mut image_url = entry
|
||||||
@ -105,12 +104,15 @@ fn create_post_card(entry: &Entry) -> Markup {
|
|||||||
|
|
||||||
// Fallback to fetching social image if direct extraction didn't work
|
// Fallback to fetching social image if direct extraction didn't work
|
||||||
if image_url.is_empty() {
|
if image_url.is_empty() {
|
||||||
println!(
|
log::info!(
|
||||||
"Falling back to searching for a social image for {}",
|
"Falling back to searching for a social image for {}",
|
||||||
link.href
|
link.href
|
||||||
);
|
);
|
||||||
image_url = web_fetchers::fetch_social_image(link.href.as_str()).unwrap_or_default();
|
image_url = web_fetchers::fetch_social_image(link.href.as_str()).unwrap_or_default();
|
||||||
}
|
}
|
||||||
|
if image_url.is_empty() {
|
||||||
|
log::warn!("No image could be gathered for {}", link.href);
|
||||||
|
}
|
||||||
|
|
||||||
let description = entry.content.as_ref().map_or_else(
|
let description = entry.content.as_ref().map_or_else(
|
||||||
|| {
|
|| {
|
||||||
@ -249,10 +251,10 @@ pub fn generate_index(mut entries: Vec<Entry>) -> Markup {
|
|||||||
|
|
||||||
let featured = entries.remove(0);
|
let featured = entries.remove(0);
|
||||||
if running_in_gitlab {
|
if running_in_gitlab {
|
||||||
println!("Building for deployment");
|
log::info!("Building for deployment");
|
||||||
entries.truncate(30);
|
entries.truncate(30);
|
||||||
} else {
|
} else {
|
||||||
println!("Building for development");
|
log::info!("Building for development");
|
||||||
entries.truncate(6);
|
entries.truncate(6);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,13 +14,15 @@ mod utilities;
|
|||||||
mod web_fetchers;
|
mod web_fetchers;
|
||||||
|
|
||||||
fn main() -> Result<(), Box<dyn Error>> {
|
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 featured = read_feed("featured_feeds.txt").first().unwrap().clone();
|
||||||
let mut entries = read_feed("feeds.txt");
|
let mut entries = read_feed("feeds.txt");
|
||||||
|
|
||||||
// Move featured article to the front
|
// Move featured article to the front
|
||||||
entries.retain(|entry| entry != &featured);
|
entries.retain(|entry| entry != &featured);
|
||||||
entries.insert(0, featured);
|
entries.insert(0, featured);
|
||||||
println!(
|
log::info!(
|
||||||
"Featured article: {}",
|
"Featured article: {}",
|
||||||
entries[0].links.first().unwrap().href.as_str()
|
entries[0].links.first().unwrap().href.as_str()
|
||||||
);
|
);
|
||||||
@ -34,8 +36,8 @@ fn main() -> Result<(), Box<dyn Error>> {
|
|||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
match write(output_path, index.into_string()) {
|
match write(output_path, index.into_string()) {
|
||||||
Ok(_) => println!("Successfully wrote to {}", output_path.display()),
|
Ok(_) => log::info!("Successfully wrote to {}", output_path.display()),
|
||||||
Err(e) => eprintln!("Failed to write to {}: {}", output_path.display(), e),
|
Err(e) => log::error!("Failed to write to {}: {}", output_path.display(), e),
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
@ -9,7 +9,7 @@ pub fn read_feed(path: &str) -> Vec<Entry> {
|
|||||||
let binding = fs::read_to_string(path).unwrap();
|
let binding = fs::read_to_string(path).unwrap();
|
||||||
let feed_urls: Vec<&str> = binding.lines().collect();
|
let feed_urls: Vec<&str> = binding.lines().collect();
|
||||||
|
|
||||||
println!("Fetching feeds:");
|
log::trace!("Fetching feeds:");
|
||||||
let raw_entries: Vec<Result<Vec<Entry>, String>> = feed_urls
|
let raw_entries: Vec<Result<Vec<Entry>, String>> = feed_urls
|
||||||
.into_par_iter()
|
.into_par_iter()
|
||||||
.map(|url| {
|
.map(|url| {
|
||||||
@ -22,7 +22,7 @@ pub fn read_feed(path: &str) -> Vec<Entry> {
|
|||||||
for entry in raw_entries {
|
for entry in raw_entries {
|
||||||
match entry {
|
match entry {
|
||||||
Ok(mut feed_entries) => entries.append(&mut feed_entries),
|
Ok(mut feed_entries) => entries.append(&mut feed_entries),
|
||||||
Err(e) => println!("{}", e),
|
Err(e) => log::warn!("{}", e),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,7 +9,11 @@ use std::error::Error;
|
|||||||
pub fn fetch_feed(url: &str) -> Result<Vec<Entry>, Box<dyn Error>> {
|
pub fn fetch_feed(url: &str) -> Result<Vec<Entry>, Box<dyn Error>> {
|
||||||
let content = get(url)?.text()?;
|
let content = get(url)?.text()?;
|
||||||
let feed = parser::parse(content.as_bytes())?;
|
let feed = parser::parse(content.as_bytes())?;
|
||||||
println!("\tFeed {} returned {} items", url, feed.entries.len());
|
if feed.entries.is_empty() {
|
||||||
|
log::warn!("Feed {url} returned no items!");
|
||||||
|
} else {
|
||||||
|
log::info!("Feed {} returned {} items", url, feed.entries.len());
|
||||||
|
}
|
||||||
Ok(feed.entries)
|
Ok(feed.entries)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user