mirror of
https://github.com/chatmail/core.git
synced 2026-05-13 11:56:30 +03:00
Parse normal MUA messages consisting of only a quote
This commit is contained in:
committed by
holger krekel
parent
07e4762f71
commit
19697e255e
@@ -748,7 +748,7 @@ impl MimeMessage {
|
|||||||
(simplified_txt, top_quote)
|
(simplified_txt, top_quote)
|
||||||
};
|
};
|
||||||
|
|
||||||
if !simplified_txt.is_empty() {
|
if !simplified_txt.is_empty() || simplified_quote.is_some() {
|
||||||
let mut part = Part::default();
|
let mut part = Part::default();
|
||||||
part.typ = Viewtype::Text;
|
part.typ = Viewtype::Text;
|
||||||
part.mimetype = Some(mime_type);
|
part.mimetype = Some(mime_type);
|
||||||
@@ -2169,4 +2169,36 @@ Reply
|
|||||||
);
|
);
|
||||||
assert_eq!(message.parts[0].msg, "Reply");
|
assert_eq!(message.parts[0].msg, "Reply");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[async_std::test]
|
||||||
|
async fn parse_quote_without_reply() {
|
||||||
|
let context = TestContext::new().await;
|
||||||
|
let raw = br##"Content-Type: text/plain; charset=utf-8; format=flowed; delsp=no
|
||||||
|
Subject: Re: swipe-to-reply
|
||||||
|
MIME-Version: 1.0
|
||||||
|
In-Reply-To: <bar@example.org>
|
||||||
|
Date: Tue, 06 Oct 2020 00:00:00 +0000
|
||||||
|
Message-ID: <foo@example.org>
|
||||||
|
To: bob <bob@example.org>
|
||||||
|
From: alice <alice@example.org>
|
||||||
|
|
||||||
|
> Just a quote.
|
||||||
|
"##;
|
||||||
|
|
||||||
|
let message = MimeMessage::from_bytes(&context.ctx, &raw[..])
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
|
assert_eq!(
|
||||||
|
message.get_subject(),
|
||||||
|
Some("Re: swipe-to-reply".to_string())
|
||||||
|
);
|
||||||
|
|
||||||
|
assert_eq!(message.parts.len(), 1);
|
||||||
|
assert_eq!(message.parts[0].typ, Viewtype::Text);
|
||||||
|
assert_eq!(
|
||||||
|
message.parts[0].param.get(Param::Quote).unwrap(),
|
||||||
|
"Just a quote."
|
||||||
|
);
|
||||||
|
assert_eq!(message.parts[0].msg, "");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -71,10 +71,9 @@ pub fn simplify(mut input: String, is_chat_message: bool) -> (String, bool, Opti
|
|||||||
let lines = split_lines(&input);
|
let lines = split_lines(&input);
|
||||||
let (lines, is_forwarded) = skip_forward_header(&lines);
|
let (lines, is_forwarded) = skip_forward_header(&lines);
|
||||||
|
|
||||||
let original_lines = &lines;
|
|
||||||
|
|
||||||
let lines = remove_message_footer(lines);
|
|
||||||
let (lines, top_quote) = remove_top_quote(lines);
|
let (lines, top_quote) = remove_top_quote(lines);
|
||||||
|
let original_lines = &lines;
|
||||||
|
let lines = remove_message_footer(lines);
|
||||||
|
|
||||||
let text = if is_chat_message {
|
let text = if is_chat_message {
|
||||||
render_message(lines, false)
|
render_message(lines, false)
|
||||||
|
|||||||
Reference in New Issue
Block a user