common: Simplify reply construction
This commit is contained in:
parent
8fc6a55877
commit
ad8ed13b74
@ -196,32 +196,21 @@ impl RoomMessageEventContent {
|
|||||||
original_message: &OriginalRoomMessageEvent,
|
original_message: &OriginalRoomMessageEvent,
|
||||||
forward_thread: ForwardThread,
|
forward_thread: ForwardThread,
|
||||||
) -> Self {
|
) -> Self {
|
||||||
|
let make_reply = |body, formatted: Option<FormattedBody>| {
|
||||||
|
reply::plain_and_formatted_reply_body(body, formatted.map(|f| f.body), original_message)
|
||||||
|
};
|
||||||
|
|
||||||
let msgtype = match message {
|
let msgtype = match message {
|
||||||
MessageType::Text(TextMessageEventContent { body, formatted, .. }) => {
|
MessageType::Text(TextMessageEventContent { body, formatted, .. }) => {
|
||||||
let (body, html_body) = reply::plain_and_formatted_reply_body(
|
let (body, html_body) = make_reply(body, formatted);
|
||||||
body,
|
|
||||||
formatted.map(|f| f.body),
|
|
||||||
original_message,
|
|
||||||
);
|
|
||||||
|
|
||||||
MessageType::Text(TextMessageEventContent::html(body, html_body))
|
MessageType::Text(TextMessageEventContent::html(body, html_body))
|
||||||
}
|
}
|
||||||
MessageType::Emote(EmoteMessageEventContent { body, formatted, .. }) => {
|
MessageType::Emote(EmoteMessageEventContent { body, formatted, .. }) => {
|
||||||
let (body, html_body) = reply::plain_and_formatted_reply_body(
|
let (body, html_body) = make_reply(body, formatted);
|
||||||
body,
|
|
||||||
formatted.map(|f| f.body),
|
|
||||||
original_message,
|
|
||||||
);
|
|
||||||
|
|
||||||
MessageType::Emote(EmoteMessageEventContent::html(body, html_body))
|
MessageType::Emote(EmoteMessageEventContent::html(body, html_body))
|
||||||
}
|
}
|
||||||
MessageType::Notice(NoticeMessageEventContent { body, formatted, .. }) => {
|
MessageType::Notice(NoticeMessageEventContent { body, formatted, .. }) => {
|
||||||
let (body, html_body) = reply::plain_and_formatted_reply_body(
|
let (body, html_body) = make_reply(body, formatted);
|
||||||
body,
|
|
||||||
formatted.map(|f| f.body),
|
|
||||||
original_message,
|
|
||||||
);
|
|
||||||
|
|
||||||
MessageType::Notice(NoticeMessageEventContent::html(body, html_body))
|
MessageType::Notice(NoticeMessageEventContent::html(body, html_body))
|
||||||
}
|
}
|
||||||
_ => message,
|
_ => message,
|
||||||
@ -257,34 +246,23 @@ impl RoomMessageEventContent {
|
|||||||
previous_message: &OriginalRoomMessageEvent,
|
previous_message: &OriginalRoomMessageEvent,
|
||||||
is_reply: ReplyInThread,
|
is_reply: ReplyInThread,
|
||||||
) -> Self {
|
) -> Self {
|
||||||
|
let make_reply = |body, formatted: Option<FormattedBody>| {
|
||||||
|
reply::plain_and_formatted_reply_body(body, formatted.map(|f| f.body), previous_message)
|
||||||
|
};
|
||||||
|
|
||||||
let msgtype = if is_reply == ReplyInThread::Yes {
|
let msgtype = if is_reply == ReplyInThread::Yes {
|
||||||
// If this is a real reply, add the rich reply fallback.
|
// If this is a real reply, add the rich reply fallback.
|
||||||
match message {
|
match message {
|
||||||
MessageType::Text(TextMessageEventContent { body, formatted, .. }) => {
|
MessageType::Text(TextMessageEventContent { body, formatted, .. }) => {
|
||||||
let (body, html_body) = reply::plain_and_formatted_reply_body(
|
let (body, html_body) = make_reply(body, formatted);
|
||||||
body,
|
|
||||||
formatted.map(|f| f.body),
|
|
||||||
previous_message,
|
|
||||||
);
|
|
||||||
|
|
||||||
MessageType::Text(TextMessageEventContent::html(body, html_body))
|
MessageType::Text(TextMessageEventContent::html(body, html_body))
|
||||||
}
|
}
|
||||||
MessageType::Emote(EmoteMessageEventContent { body, formatted, .. }) => {
|
MessageType::Emote(EmoteMessageEventContent { body, formatted, .. }) => {
|
||||||
let (body, html_body) = reply::plain_and_formatted_reply_body(
|
let (body, html_body) = make_reply(body, formatted);
|
||||||
body,
|
|
||||||
formatted.map(|f| f.body),
|
|
||||||
previous_message,
|
|
||||||
);
|
|
||||||
|
|
||||||
MessageType::Emote(EmoteMessageEventContent::html(body, html_body))
|
MessageType::Emote(EmoteMessageEventContent::html(body, html_body))
|
||||||
}
|
}
|
||||||
MessageType::Notice(NoticeMessageEventContent { body, formatted, .. }) => {
|
MessageType::Notice(NoticeMessageEventContent { body, formatted, .. }) => {
|
||||||
let (body, html_body) = reply::plain_and_formatted_reply_body(
|
let (body, html_body) = make_reply(body, formatted);
|
||||||
body,
|
|
||||||
formatted.map(|f| f.body),
|
|
||||||
previous_message,
|
|
||||||
);
|
|
||||||
|
|
||||||
MessageType::Notice(NoticeMessageEventContent::html(body, html_body))
|
MessageType::Notice(NoticeMessageEventContent::html(body, html_body))
|
||||||
}
|
}
|
||||||
_ => message,
|
_ => message,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user