diff --git a/Cargo.lock b/Cargo.lock index 4a05b0a..228e5c8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -89,28 +89,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "async-channel" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" -dependencies = [ - "concurrent-queue", - "event-listener 2.5.3", - "futures-core", -] - -[[package]] -name = "async-trait" -version = "0.1.89" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - [[package]] name = "atoi" version = "2.0.0" @@ -231,7 +209,6 @@ dependencies = [ "feed-rs", "html2md", "justerror", - "moro", "rand 0.9.2", "reqwest", "serde", @@ -558,12 +535,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - [[package]] name = "event-listener" version = "5.4.1" @@ -662,21 +633,6 @@ dependencies = [ "new_debug_unreachable", ] -[[package]] -name = "futures" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - [[package]] name = "futures-channel" version = "0.3.31" @@ -721,17 +677,6 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" -[[package]] -name = "futures-macro" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - [[package]] name = "futures-sink" version = "0.3.31" @@ -750,10 +695,8 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ - "futures-channel", "futures-core", "futures-io", - "futures-macro", "futures-sink", "futures-task", "memchr", @@ -1436,17 +1379,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "moro" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8472c674b8319e7529bfdb3c51216810e36727be2056136d07130a0b1c132df6" -dependencies = [ - "async-channel", - "async-trait", - "futures", -] - [[package]] name = "native-tls" version = "0.2.14" @@ -2247,7 +2179,7 @@ dependencies = [ "crc", "crossbeam-queue", "either", - "event-listener 5.4.1", + "event-listener", "futures-core", "futures-intrusive", "futures-io", diff --git a/Cargo.toml b/Cargo.toml index 5b54afc..8d626df 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,7 +10,6 @@ clap = { version = "4.5.53", features = ["derive"] } feed-rs = { version = "2.3.1", features = ["sanitize"] } html2md = "0.2.15" justerror = "1.1.0" -moro = "0.4.0" reqwest = "0.12.24" serde = { version = "1.0.228", features = ["derive"] } serde_urlencoded = "0.7.1" diff --git a/src/main.rs b/src/main.rs index fbab847..1cc7ff1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -11,6 +11,7 @@ async fn main() { let bta = BlogdorTheAggregator::new().await; bta.spawn_http().await; + run_loop(&bta).await; bta.close_db().await; @@ -30,48 +31,43 @@ fn init_logs() { async fn run_loop(bta: &BlogdorTheAggregator) { let mut alarm = tokio::time::interval(BLOGDOR_SNOOZE); - moro::async_scope!(|scope| { - scope.spawn(async { - loop { - tokio::select! { - biased; - _ = alarm.tick() => { - match bta.check_feeds().await { - Ok(results) => { - for result in results { - match result { - Ok(result) => { - if let Some(ref posts) = result.entries { - tracing::debug!( - "got {} new posts from {}", - posts.len(), - result.url - ); - bta.post_entries(posts).await; - } else { - tracing::debug!("no new posts from {}", result.url); - } - }, - // inner error for singular feed - Err(e) => { - tracing::warn!("could not check feed: {e}"); - }, + loop { + tokio::select! { + biased; + _ = alarm.tick() => { + match bta.check_feeds().await { + Ok(results) => { + for result in results { + match result { + Ok(result) => { + if let Some(ref posts) = result.entries { + tracing::debug!( + "got {} new posts from {}", + posts.len(), + result.url + ); + bta.post_entries(posts).await; + } else { + tracing::debug!("no new posts from {}", result.url); } - } - }, - // outer check_feeds error - Err(e) => { - tracing::warn!("could not check feeds: {e}"); + }, + // inner error for singular feed + Err(e) => { + tracing::warn!("could not check feed: {e}"); + }, } } - } - _ = bta.cancelled() => { - tracing::info!("shutting down the aggregation loop"); - break; + }, + // outer check_feeds error + Err(e) => { + tracing::warn!("could not check feeds: {e}"); } } } - }); - }) - .await; + _ = bta.cancelled() => { + tracing::info!("shutting down the aggregation loop"); + break; + } + } + } }