mirror of
https://github.com/chatmail/core.git
synced 2026-05-08 09:26:29 +03:00
add compatiblity headers
This commit is contained in:
committed by
holger krekel
parent
d681fa6cba
commit
409c96e571
@@ -19,6 +19,7 @@ pub enum HeaderDef {
|
|||||||
ChatGroupName,
|
ChatGroupName,
|
||||||
ChatGroupNameChanged,
|
ChatGroupNameChanged,
|
||||||
ChatVerified,
|
ChatVerified,
|
||||||
|
ChatGroupImage, // deprecated
|
||||||
ChatGroupAvatar,
|
ChatGroupAvatar,
|
||||||
ChatUserAvatar,
|
ChatUserAvatar,
|
||||||
ChatVoiceMessage,
|
ChatVoiceMessage,
|
||||||
|
|||||||
@@ -637,6 +637,7 @@ impl<'a, 'b> MimeFactory<'a, 'b> {
|
|||||||
let command = self.msg.param.get_cmd();
|
let command = self.msg.param.get_cmd();
|
||||||
let mut placeholdertext = None;
|
let mut placeholdertext = None;
|
||||||
let mut meta_part = None;
|
let mut meta_part = None;
|
||||||
|
let mut add_compatibility_header = false;
|
||||||
|
|
||||||
if chat.typ == Chattype::VerifiedGroup {
|
if chat.typ == Chattype::VerifiedGroup {
|
||||||
protected_headers.push(Header::new("Chat-Verified".to_string(), "1".to_string()));
|
protected_headers.push(Header::new("Chat-Verified".to_string(), "1".to_string()));
|
||||||
@@ -677,6 +678,7 @@ impl<'a, 'b> MimeFactory<'a, 'b> {
|
|||||||
"vg-member-added".to_string(),
|
"vg-member-added".to_string(),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
add_compatibility_header = true;
|
||||||
}
|
}
|
||||||
SystemMessage::GroupNameChanged => {
|
SystemMessage::GroupNameChanged => {
|
||||||
let value_to_add = self.msg.param.get(Param::Arg).unwrap_or_default();
|
let value_to_add = self.msg.param.get(Param::Arg).unwrap_or_default();
|
||||||
@@ -691,6 +693,7 @@ impl<'a, 'b> MimeFactory<'a, 'b> {
|
|||||||
"Chat-Content".to_string(),
|
"Chat-Content".to_string(),
|
||||||
"group-avatar-changed".to_string(),
|
"group-avatar-changed".to_string(),
|
||||||
));
|
));
|
||||||
|
add_compatibility_header = true;
|
||||||
}
|
}
|
||||||
_ => {}
|
_ => {}
|
||||||
}
|
}
|
||||||
@@ -758,7 +761,18 @@ impl<'a, 'b> MimeFactory<'a, 'b> {
|
|||||||
|
|
||||||
let (mail, filename_as_sent) = build_body_file(context, &meta, "group-image")?;
|
let (mail, filename_as_sent) = build_body_file(context, &meta, "group-image")?;
|
||||||
meta_part = Some(mail);
|
meta_part = Some(mail);
|
||||||
protected_headers.push(Header::new("Chat-Group-Avatar".into(), filename_as_sent));
|
protected_headers.push(Header::new(
|
||||||
|
"Chat-Group-Avatar".into(),
|
||||||
|
filename_as_sent.clone(),
|
||||||
|
));
|
||||||
|
|
||||||
|
// add the old group-image headers for versions <=0.973 resp. <=beta.15 (december 2019)
|
||||||
|
// image deletion is not supported in the compatibility layer.
|
||||||
|
// this can be removed some time after releasing 1.0,
|
||||||
|
// grep for #DeprecatedAvatar to get the place where compatibility parsing takes place.
|
||||||
|
if add_compatibility_header {
|
||||||
|
protected_headers.push(Header::new("Chat-Group-Image".into(), filename_as_sent));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if self.msg.type_0 == Viewtype::Sticker {
|
if self.msg.type_0 == Viewtype::Sticker {
|
||||||
|
|||||||
@@ -195,6 +195,10 @@ impl<'a> MimeParser<'a> {
|
|||||||
|
|
||||||
if let Some(header_value) = self.get(HeaderDef::ChatGroupAvatar).cloned() {
|
if let Some(header_value) = self.get(HeaderDef::ChatGroupAvatar).cloned() {
|
||||||
self.group_avatar = self.avatar_action_from_header(header_value);
|
self.group_avatar = self.avatar_action_from_header(header_value);
|
||||||
|
} else if let Some(header_value) = self.get(HeaderDef::ChatGroupImage).cloned() {
|
||||||
|
// parse the old group-image headers for versions <=0.973 resp. <=beta.15 (december 2019)
|
||||||
|
// grep for #DeprecatedAvatar to get the place where a compatibility header is generated.
|
||||||
|
self.group_avatar = self.avatar_action_from_header(header_value);
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(header_value) = self.get(HeaderDef::ChatUserAvatar).cloned() {
|
if let Some(header_value) = self.get(HeaderDef::ChatUserAvatar).cloned() {
|
||||||
|
|||||||
Reference in New Issue
Block a user