diff --git a/src/main.rs b/src/main.rs index 0ffc7a7..9163e5d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -77,9 +77,8 @@ async fn on_room_message(event: OriginalSyncRoomMessageEvent, room: Room) -> any return Ok(()); } - let judgement = judge::Judgement { text: text_content }; - // Handle replies + let mut is_reply = false; if let Some(relation) = orig_event.to_owned().content.relates_to { if let Some(event) = match relation { Relation::Reply { in_reply_to } => { @@ -97,6 +96,13 @@ async fn on_room_message(event: OriginalSyncRoomMessageEvent, room: Room) -> any } { let event = event.as_original().unwrap(); let content = event.content.to_owned().body().to_lowercase(); + is_reply = true; + + let reply_end = content.find("\n\n"); + let content = match reply_end { + Some(r) => content.get(r+2..).unwrap().to_string(), + None => content, + }; if !debug && event.sender @@ -135,6 +141,16 @@ async fn on_room_message(event: OriginalSyncRoomMessageEvent, room: Room) -> any } } + let judgement = if is_reply { + let reply_end = text_content.find("\n\n"); + judge::Judgement { text: match reply_end { + Some(r) => text_content.get(r+2..).unwrap().to_string(), + None => text_content, + }} + } else { + judge::Judgement { text: text_content } + }; + let judgement = judgement.judge(&config)?; match judgement.0 { judge::JudgementResult::Ok => return Ok(()),