not mark search keywords in backend
This commit is contained in:
@@ -53,7 +53,7 @@ pub async fn attention_post(
|
|||||||
pub async fn get_attention(user: CurrentUser, db: Db, rconn: RdsConn) -> API<Value> {
|
pub async fn get_attention(user: CurrentUser, db: Db, rconn: RdsConn) -> API<Value> {
|
||||||
let ids = Attention::init(&user.namehash, &rconn).all().await?;
|
let ids = Attention::init(&user.namehash, &rconn).all().await?;
|
||||||
let ps = Post::get_multi(&db, ids).await?;
|
let ps = Post::get_multi(&db, ids).await?;
|
||||||
let ps_data = ps2outputs(&ps, &user, &db, &rconn, &vec![]).await;
|
let ps_data = ps2outputs(&ps, &user, &db, &rconn).await;
|
||||||
|
|
||||||
Ok(json!({
|
Ok(json!({
|
||||||
"code": 0,
|
"code": 0,
|
||||||
|
|||||||
@@ -38,7 +38,6 @@ pub fn c2output<'r>(
|
|||||||
p: &'r Post,
|
p: &'r Post,
|
||||||
cs: &Vec<Comment>,
|
cs: &Vec<Comment>,
|
||||||
user: &CurrentUser,
|
user: &CurrentUser,
|
||||||
kws: &Vec<&str>,
|
|
||||||
) -> Vec<CommentOutput> {
|
) -> Vec<CommentOutput> {
|
||||||
let mut hash2id = HashMap::<&String, i32>::from([(&p.author_hash, 0)]);
|
let mut hash2id = HashMap::<&String, i32>::from([(&p.author_hash, 0)]);
|
||||||
cs.iter()
|
cs.iter()
|
||||||
@@ -55,13 +54,9 @@ pub fn c2output<'r>(
|
|||||||
// TODO: block
|
// TODO: block
|
||||||
None
|
None
|
||||||
} else {
|
} else {
|
||||||
let mut text = c.content.to_string();
|
|
||||||
for kw in kws {
|
|
||||||
text = text.replace(kw, &format!(" **{}**", kw));
|
|
||||||
}
|
|
||||||
Some(CommentOutput {
|
Some(CommentOutput {
|
||||||
cid: c.id,
|
cid: c.id,
|
||||||
text: format!("{}{}", if c.is_tmp { "[tmp]\n" } else { "" }, text),
|
text: format!("{}{}", if c.is_tmp { "[tmp]\n" } else { "" }, c.content),
|
||||||
author_title: c.author_title.to_string(),
|
author_title: c.author_title.to_string(),
|
||||||
can_del: c.check_permission(user, "wd").is_ok(),
|
can_del: c.check_permission(user, "wd").is_ok(),
|
||||||
name_id: name_id,
|
name_id: name_id,
|
||||||
@@ -82,7 +77,7 @@ pub async fn get_comment(pid: i32, user: CurrentUser, db: Db, rconn: RdsConn) ->
|
|||||||
}
|
}
|
||||||
let pid = p.id;
|
let pid = p.id;
|
||||||
let cs = Comment::gets_by_post_id(&db, pid).await?;
|
let cs = Comment::gets_by_post_id(&db, pid).await?;
|
||||||
let data = c2output(&p, &cs, &user, &vec![]);
|
let data = c2output(&p, &cs, &user);
|
||||||
|
|
||||||
Ok(json!({
|
Ok(json!({
|
||||||
"code": 0,
|
"code": 0,
|
||||||
|
|||||||
@@ -54,16 +54,10 @@ async fn p2output(
|
|||||||
user: &CurrentUser,
|
user: &CurrentUser,
|
||||||
db: &Db,
|
db: &Db,
|
||||||
rconn: &RdsConn,
|
rconn: &RdsConn,
|
||||||
kws: &Vec<&str>,
|
|
||||||
) -> PostOutput {
|
) -> PostOutput {
|
||||||
let mut text = p.content.to_string();
|
|
||||||
for kw in kws {
|
|
||||||
text = text.replace(kw, &format!(" **{}**", kw));
|
|
||||||
}
|
|
||||||
|
|
||||||
PostOutput {
|
PostOutput {
|
||||||
pid: p.id,
|
pid: p.id,
|
||||||
text: format!("{}{}", if p.is_tmp { "[tmp]\n" } else { "" }, text),
|
text: format!("{}{}", if p.is_tmp { "[tmp]\n" } else { "" }, p.content),
|
||||||
cw: if p.cw.len() > 0 {
|
cw: if p.cw.len() > 0 {
|
||||||
Some(p.cw.to_string())
|
Some(p.cw.to_string())
|
||||||
} else {
|
} else {
|
||||||
@@ -91,7 +85,7 @@ async fn p2output(
|
|||||||
// 单个洞还有查询评论的接口,这里挂了不用报错
|
// 单个洞还有查询评论的接口,这里挂了不用报错
|
||||||
let pid = p.id;
|
let pid = p.id;
|
||||||
if let Some(cs) = Comment::gets_by_post_id(db, pid).await.ok() {
|
if let Some(cs) = Comment::gets_by_post_id(db, pid).await.ok() {
|
||||||
Some(c2output(p, &cs, user, kws))
|
Some(c2output(p, &cs, user))
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
}
|
}
|
||||||
@@ -113,11 +107,10 @@ pub async fn ps2outputs(
|
|||||||
user: &CurrentUser,
|
user: &CurrentUser,
|
||||||
db: &Db,
|
db: &Db,
|
||||||
rconn: &RdsConn,
|
rconn: &RdsConn,
|
||||||
kws: &Vec<&str>,
|
|
||||||
) -> Vec<PostOutput> {
|
) -> Vec<PostOutput> {
|
||||||
future::join_all(
|
future::join_all(
|
||||||
ps.iter()
|
ps.iter()
|
||||||
.map(|p| async { p2output(p, &user, &db, &rconn, &kws.clone()).await }),
|
.map(|p| async { p2output(p, &user, &db, &rconn).await }),
|
||||||
)
|
)
|
||||||
.await
|
.await
|
||||||
}
|
}
|
||||||
@@ -128,7 +121,7 @@ pub async fn get_one(pid: i32, user: CurrentUser, db: Db, rconn: RdsConn) -> Jso
|
|||||||
let p = Post::get_with_cache(&db, &rconn, pid).await?;
|
let p = Post::get_with_cache(&db, &rconn, pid).await?;
|
||||||
p.check_permission(&user, "ro")?;
|
p.check_permission(&user, "ro")?;
|
||||||
Ok(json!({
|
Ok(json!({
|
||||||
"data": p2output(&p, &user,&db, &rconn, &vec![]).await,
|
"data": p2output(&p, &user,&db, &rconn).await,
|
||||||
"code": 0,
|
"code": 0,
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
@@ -145,7 +138,7 @@ pub async fn get_list(
|
|||||||
let page_size = 25;
|
let page_size = 25;
|
||||||
let start = (page - 1) * page_size;
|
let start = (page - 1) * page_size;
|
||||||
let ps = Post::gets_by_page(&db, order_mode, start.into(), page_size.into()).await?;
|
let ps = Post::gets_by_page(&db, order_mode, start.into(), page_size.into()).await?;
|
||||||
let ps_data = ps2outputs(&ps, &user, &db, &rconn, &vec![]).await;
|
let ps_data = ps2outputs(&ps, &user, &db, &rconn).await;
|
||||||
Ok(json!({
|
Ok(json!({
|
||||||
"data": ps_data,
|
"data": ps_data,
|
||||||
"count": ps_data.len(),
|
"count": ps_data.len(),
|
||||||
@@ -193,7 +186,7 @@ pub async fn edit_cw(cwi: Form<CwInput>, user: CurrentUser, db: Db) -> JsonAPI {
|
|||||||
#[get("/getmulti?<pids>")]
|
#[get("/getmulti?<pids>")]
|
||||||
pub async fn get_multi(pids: Vec<i32>, user: CurrentUser, db: Db, rconn: RdsConn) -> JsonAPI {
|
pub async fn get_multi(pids: Vec<i32>, user: CurrentUser, db: Db, rconn: RdsConn) -> JsonAPI {
|
||||||
let ps = Post::get_multi(&db, pids).await?;
|
let ps = Post::get_multi(&db, pids).await?;
|
||||||
let ps_data = ps2outputs(&ps, &user, &db, &rconn, &vec![]).await;
|
let ps_data = ps2outputs(&ps, &user, &db, &rconn).await;
|
||||||
|
|
||||||
Ok(json!({
|
Ok(json!({
|
||||||
"code": 0,
|
"code": 0,
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ pub async fn search(
|
|||||||
.await?
|
.await?
|
||||||
};
|
};
|
||||||
let mark_kws = if search_mode == 1 {kws} else {vec![]};
|
let mark_kws = if search_mode == 1 {kws} else {vec![]};
|
||||||
let ps_data = ps2outputs(&ps, &user, &db, &rconn, &mark_kws).await;
|
let ps_data = ps2outputs(&ps, &user, &db, &rconn).await;
|
||||||
Ok(json!({
|
Ok(json!({
|
||||||
"data": ps_data,
|
"data": ps_data,
|
||||||
"count": ps_data.len(),
|
"count": ps_data.len(),
|
||||||
|
|||||||
Reference in New Issue
Block a user