Browse Source

not mark search keywords in backend

master
hole-thu 3 years ago
parent
commit
ce21b2825e
  1. 2
      src/api/attention.rs
  2. 9
      src/api/comment.rs
  3. 19
      src/api/post.rs
  4. 2
      src/api/search.rs

2
src/api/attention.rs

@ -53,7 +53,7 @@ pub async fn attention_post(
pub async fn get_attention(user: CurrentUser, db: Db, rconn: RdsConn) -> API<Value> {
let ids = Attention::init(&user.namehash, &rconn).all().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!({
"code": 0,

9
src/api/comment.rs

@ -38,7 +38,6 @@ pub fn c2output<'r>(
p: &'r Post,
cs: &Vec<Comment>,
user: &CurrentUser,
kws: &Vec<&str>,
) -> Vec<CommentOutput> {
let mut hash2id = HashMap::<&String, i32>::from([(&p.author_hash, 0)]);
cs.iter()
@ -55,13 +54,9 @@ pub fn c2output<'r>(
// TODO: block
None
} else {
let mut text = c.content.to_string();
for kw in kws {
text = text.replace(kw, &format!(" **{}**", kw));
}
Some(CommentOutput {
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(),
can_del: c.check_permission(user, "wd").is_ok(),
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 cs = Comment::gets_by_post_id(&db, pid).await?;
let data = c2output(&p, &cs, &user, &vec![]);
let data = c2output(&p, &cs, &user);
Ok(json!({
"code": 0,

19
src/api/post.rs

@ -54,16 +54,10 @@ async fn p2output(
user: &CurrentUser,
db: &Db,
rconn: &RdsConn,
kws: &Vec<&str>,
) -> PostOutput {
let mut text = p.content.to_string();
for kw in kws {
text = text.replace(kw, &format!(" **{}**", kw));
}
PostOutput {
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 {
Some(p.cw.to_string())
} else {
@ -91,7 +85,7 @@ async fn p2output(
// 单个洞还有查询评论的接口,这里挂了不用报错
let pid = p.id;
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 {
None
}
@ -113,11 +107,10 @@ pub async fn ps2outputs(
user: &CurrentUser,
db: &Db,
rconn: &RdsConn,
kws: &Vec<&str>,
) -> Vec<PostOutput> {
future::join_all(
ps.iter()
.map(|p| async { p2output(p, &user, &db, &rconn, &kws.clone()).await }),
.map(|p| async { p2output(p, &user, &db, &rconn).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?;
p.check_permission(&user, "ro")?;
Ok(json!({
"data": p2output(&p, &user,&db, &rconn, &vec![]).await,
"data": p2output(&p, &user,&db, &rconn).await,
"code": 0,
}))
}
@ -145,7 +138,7 @@ pub async fn get_list(
let page_size = 25;
let start = (page - 1) * page_size;
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!({
"data": ps_data,
"count": ps_data.len(),
@ -193,7 +186,7 @@ pub async fn edit_cw(cwi: Form<CwInput>, user: CurrentUser, db: Db) -> JsonAPI {
#[get("/getmulti?<pids>")]
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_data = ps2outputs(&ps, &user, &db, &rconn, &vec![]).await;
let ps_data = ps2outputs(&ps, &user, &db, &rconn).await;
Ok(json!({
"code": 0,

2
src/api/search.rs

@ -31,7 +31,7 @@ pub async fn search(
.await?
};
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!({
"data": ps_data,
"count": ps_data.len(),

Loading…
Cancel
Save