From 1a04c41846ac00a5a1f65b005cf6261ac49dffe6 Mon Sep 17 00:00:00 2001 From: hole-thu Date: Thu, 20 Oct 2022 22:54:36 +0800 Subject: [PATCH] filter private in getlist, getmulti and attention --- src/api/attention.rs | 9 ++++++++- src/api/post.rs | 17 ++++++++++++++--- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/api/attention.rs b/src/api/attention.rs index 4ad8b1f..2dbbc92 100644 --- a/src/api/attention.rs +++ b/src/api/attention.rs @@ -75,7 +75,14 @@ pub async fn attention_post( pub async fn get_attention(user: CurrentUser, db: Db, rconn: RdsConn) -> JsonApi { let mut ids = Attention::init(&user.namehash, &rconn).all().await?; ids.sort_by_key(|x| -x); - let ps = Post::get_multi(&db, &rconn, &ids).await?; + let ps: Vec = Post::get_multi(&db, &rconn, &ids) + .await? + .into_iter() + .filter(|post| { + !post.get_is_private() + || chrono::offset::Utc::now() - post.create_time < chrono::Duration::days(30) + }) + .collect(); let ps_data = ps2outputs(&ps, &user, &db, &rconn).await?; code0!(ps_data) diff --git a/src/api/post.rs b/src/api/post.rs index 96f8224..9e56a21 100644 --- a/src/api/post.rs +++ b/src/api/post.rs @@ -164,7 +164,7 @@ pub async fn get_list( let page = p.unwrap_or(1); let page_size = 25; let start = (page - 1) * page_size; - let ps = Post::gets_by_page( + let ps: Vec = Post::gets_by_page( &db, &rconn, room_id, @@ -172,7 +172,11 @@ pub async fn get_list( start.into(), page_size.into(), ) - .await?; + .await? + .into_iter() + .filter(|post| page < 40 || !post.get_is_private()) + .collect(); + let ps_data = ps2outputs(&ps, &user, &db, &rconn).await?; Ok(json!({ @@ -237,7 +241,14 @@ pub async fn edit_cw(cwi: Form, user: CurrentUser, db: Db, rconn: RdsCo #[get("/getmulti?")] pub async fn get_multi(pids: Vec, user: CurrentUser, db: Db, rconn: RdsConn) -> JsonApi { user.id.ok_or(YouAreTmp)?; - let ps = Post::get_multi(&db, &rconn, &pids).await?; + let ps: Vec = Post::get_multi(&db, &rconn, &pids) + .await? + .into_iter() + .filter(|post| { + !post.get_is_private() + || chrono::offset::Utc::now() - post.create_time < chrono::Duration::days(30) + }) + .collect(); let ps_data = ps2outputs(&ps, &user, &db, &rconn).await?; Ok(json!({