diff --git a/src/main.rs b/src/main.rs index 2ebcda1..facdfd8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -112,7 +112,12 @@ async fn rss( let posts = state .posts - .get_max_n_posts_with_optional_tag_sorted(query.num_posts, query.tag.as_ref()) + .get_all_posts_filtered(|metadata, _| { + !query + .tag + .as_ref() + .is_some_and(|tag| !metadata.tags.contains(tag)) + }) .await?; let mut channel = ChannelBuilder::default(); diff --git a/src/post/mod.rs b/src/post/mod.rs index 89a02d4..f62bb1e 100644 --- a/src/post/mod.rs +++ b/src/post/mod.rs @@ -250,26 +250,6 @@ impl PostManager { Ok(posts) } - pub async fn get_max_n_posts_with_optional_tag_sorted( - &self, - n: Option, - tag: Option<&String>, - ) -> Result, PostError> { - let mut posts = self - .get_all_posts_filtered(|metadata, _| { - !tag.is_some_and(|tag| !metadata.tags.contains(tag)) - }) - .await?; - posts.sort_unstable_by_key(|(metadata, ..)| metadata.modified_at.unwrap_or_default()); - posts.sort_by_key(|(metadata, ..)| metadata.created_at.unwrap_or_default()); - posts.reverse(); - if let Some(n) = n { - posts.truncate(n); - } - - Ok(posts) - } - pub async fn get_post( &self, name: &str,