mirror of
https://github.com/chatmail/core.git
synced 2026-05-08 09:26:29 +03:00
remove one attr from mimeparser
This commit is contained in:
@@ -337,7 +337,7 @@ fn add_parts(
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 1 or 0 for yes/no
|
// 1 or 0 for yes/no
|
||||||
msgrmsg = mime_parser.is_send_by_messenger as _;
|
msgrmsg = mime_parser.has_chat_version() as _;
|
||||||
if msgrmsg == 0 && 0 != dc_is_reply_to_messenger_message(context, mime_parser) {
|
if msgrmsg == 0 && 0 != dc_is_reply_to_messenger_message(context, mime_parser) {
|
||||||
// 2=no, but is reply to messenger message
|
// 2=no, but is reply to messenger message
|
||||||
msgrmsg = 2;
|
msgrmsg = 2;
|
||||||
@@ -1112,7 +1112,7 @@ fn create_or_lookup_group(
|
|||||||
// the only critical situation is if the user hits "Reply" instead
|
// the only critical situation is if the user hits "Reply" instead
|
||||||
// of "Reply all" in a non-messenger-client */
|
// of "Reply all" in a non-messenger-client */
|
||||||
if to_ids_cnt == 1
|
if to_ids_cnt == 1
|
||||||
&& !mime_parser.is_send_by_messenger
|
&& !mime_parser.has_chat_version()
|
||||||
&& chat::get_chat_contact_cnt(context, chat_id) > 3
|
&& chat::get_chat_contact_cnt(context, chat_id) > 3
|
||||||
{
|
{
|
||||||
// to_ids_cnt==1 may be "From: A, To: B, SELF" as SELF is not counted in to_ids_cnt.
|
// to_ids_cnt==1 may be "From: A, To: B, SELF" as SELF is not counted in to_ids_cnt.
|
||||||
|
|||||||
@@ -30,7 +30,6 @@ pub struct MimeParser<'a> {
|
|||||||
pub parts: Vec<Part>,
|
pub parts: Vec<Part>,
|
||||||
pub header: HashMap<String, String>,
|
pub header: HashMap<String, String>,
|
||||||
pub subject: Option<String>,
|
pub subject: Option<String>,
|
||||||
pub is_send_by_messenger: bool,
|
|
||||||
pub decrypting_failed: bool,
|
pub decrypting_failed: bool,
|
||||||
pub encrypted: bool,
|
pub encrypted: bool,
|
||||||
pub signatures: HashSet<String>,
|
pub signatures: HashSet<String>,
|
||||||
@@ -75,7 +74,6 @@ impl<'a> MimeParser<'a> {
|
|||||||
parts: Vec::new(),
|
parts: Vec::new(),
|
||||||
header: Default::default(),
|
header: Default::default(),
|
||||||
subject: None,
|
subject: None,
|
||||||
is_send_by_messenger: false,
|
|
||||||
decrypting_failed: false,
|
decrypting_failed: false,
|
||||||
encrypted: false,
|
encrypted: false,
|
||||||
signatures: Default::default(),
|
signatures: Default::default(),
|
||||||
@@ -153,10 +151,6 @@ impl<'a> MimeParser<'a> {
|
|||||||
self.subject = Some(field.clone());
|
self.subject = Some(field.clone());
|
||||||
}
|
}
|
||||||
|
|
||||||
if self.lookup_field("Chat-Version").is_some() {
|
|
||||||
self.is_send_by_messenger = true
|
|
||||||
}
|
|
||||||
|
|
||||||
if self.lookup_field("Autocrypt-Setup-Message").is_some() {
|
if self.lookup_field("Autocrypt-Setup-Message").is_some() {
|
||||||
let has_setup_file = self.parts.iter().any(|p| {
|
let has_setup_file = self.parts.iter().any(|p| {
|
||||||
p.mimetype.is_some() && p.mimetype.as_ref().unwrap().as_ref() == MIME_AC_SETUP_FILE
|
p.mimetype.is_some() && p.mimetype.as_ref().unwrap().as_ref() == MIME_AC_SETUP_FILE
|
||||||
@@ -203,7 +197,7 @@ impl<'a> MimeParser<'a> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if self.is_send_by_messenger && self.parts.len() == 2 {
|
if self.has_chat_version() && self.parts.len() == 2 {
|
||||||
let need_drop = {
|
let need_drop = {
|
||||||
let textpart = &self.parts[0];
|
let textpart = &self.parts[0];
|
||||||
let filepart = &self.parts[1];
|
let filepart = &self.parts[1];
|
||||||
@@ -237,7 +231,7 @@ impl<'a> MimeParser<'a> {
|
|||||||
let colon = subject.find(':');
|
let colon = subject.find(':');
|
||||||
if colon == Some(2)
|
if colon == Some(2)
|
||||||
|| colon == Some(3)
|
|| colon == Some(3)
|
||||||
|| self.is_send_by_messenger
|
|| self.has_chat_version()
|
||||||
|| subject.contains("Chat:")
|
|| subject.contains("Chat:")
|
||||||
{
|
{
|
||||||
prepend_subject = 0i32
|
prepend_subject = 0i32
|
||||||
@@ -323,7 +317,7 @@ impl<'a> MimeParser<'a> {
|
|||||||
part.typ = Viewtype::Text;
|
part.typ = Viewtype::Text;
|
||||||
|
|
||||||
if let Some(ref subject) = self.subject {
|
if let Some(ref subject) = self.subject {
|
||||||
if !self.is_send_by_messenger {
|
if !self.has_chat_version() {
|
||||||
part.msg = subject.to_string();
|
part.msg = subject.to_string();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -342,6 +336,10 @@ impl<'a> MimeParser<'a> {
|
|||||||
self.parts.iter_mut().rev().find(|part| !part.is_meta)
|
self.parts.iter_mut().rev().find(|part| !part.is_meta)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub(crate) fn has_chat_version(&self) -> bool {
|
||||||
|
self.header.contains_key("chat-version")
|
||||||
|
}
|
||||||
|
|
||||||
pub fn lookup_field(&self, field_name: &str) -> Option<&String> {
|
pub fn lookup_field(&self, field_name: &str) -> Option<&String> {
|
||||||
self.header.get(&field_name.to_lowercase())
|
self.header.get(&field_name.to_lowercase())
|
||||||
}
|
}
|
||||||
@@ -541,15 +539,12 @@ impl<'a> MimeParser<'a> {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// check header directly as is_send_by_messenger is not yet set up
|
|
||||||
let is_msgrmsg = self.lookup_field("Chat-Version").is_some();
|
|
||||||
|
|
||||||
let mut simplifier = Simplify::new();
|
let mut simplifier = Simplify::new();
|
||||||
let simplified_txt = if decoded_data.is_empty() {
|
let simplified_txt = if decoded_data.is_empty() {
|
||||||
"".into()
|
"".into()
|
||||||
} else {
|
} else {
|
||||||
let is_html = mime_type == mime::TEXT_HTML;
|
let is_html = mime_type == mime::TEXT_HTML;
|
||||||
simplifier.simplify(&decoded_data, is_html, is_msgrmsg)
|
simplifier.simplify(&decoded_data, is_html, self.has_chat_version())
|
||||||
};
|
};
|
||||||
|
|
||||||
if !simplified_txt.is_empty() {
|
if !simplified_txt.is_empty() {
|
||||||
@@ -766,11 +761,11 @@ impl<'a> MimeParser<'a> {
|
|||||||
mdn_consumed = true;
|
mdn_consumed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if self.is_send_by_messenger || mdn_consumed {
|
if self.has_chat_version() || mdn_consumed {
|
||||||
let mut param = Params::new();
|
let mut param = Params::new();
|
||||||
param.set(Param::ServerFolder, server_folder.as_ref());
|
param.set(Param::ServerFolder, server_folder.as_ref());
|
||||||
param.set_int(Param::ServerUid, server_uid as i32);
|
param.set_int(Param::ServerUid, server_uid as i32);
|
||||||
if self.is_send_by_messenger && self.context.get_config_bool(Config::MvboxMove) {
|
if self.has_chat_version() && self.context.get_config_bool(Config::MvboxMove) {
|
||||||
param.set_int(Param::AlsoMove, 1);
|
param.set_int(Param::AlsoMove, 1);
|
||||||
}
|
}
|
||||||
job_add(self.context, Action::MarkseenMdnOnImap, 0, param, 0);
|
job_add(self.context, Action::MarkseenMdnOnImap, 0, param, 0);
|
||||||
|
|||||||
Reference in New Issue
Block a user