feat: only convert Viewtype::Image to Audio/Video/Gif, Viewtype::File to Webxdc

This commit is contained in:
B. Petersen
2026-04-24 22:23:52 +02:00
committed by link2xt
parent f239f8d2e4
commit 3b1e11a28b

View File

@@ -2466,17 +2466,24 @@ async fn prepare_msg_blob(context: &Context, msg: &mut Message) -> Result<()> {
.get_file_blob(context)? .get_file_blob(context)?
.with_context(|| format!("attachment missing for message of type #{}", msg.viewtype))?; .with_context(|| format!("attachment missing for message of type #{}", msg.viewtype))?;
if msg.viewtype == Viewtype::File || msg.viewtype == Viewtype::Image { if msg.viewtype == Viewtype::Image {
if let Some((better_type, _)) = message::guess_msgtype_from_suffix(msg) { if let Some((better_type, _)) = message::guess_msgtype_from_suffix(msg)
if better_type == Viewtype::Image { && (better_type == Viewtype::Video
} else if better_type != Viewtype::Webxdc || better_type == Viewtype::Audio
|| context || better_type == Viewtype::Gif)
.ensure_sendable_webxdc_file(&blob.to_abs_path()) {
.await msg.viewtype = better_type;
.is_ok() }
{ } else if msg.viewtype == Viewtype::File {
msg.viewtype = better_type; if let Some((better_type, _)) = message::guess_msgtype_from_suffix(msg)
} && (better_type == Viewtype::Vcard
|| better_type == Viewtype::Webxdc
&& context
.ensure_sendable_webxdc_file(&blob.to_abs_path())
.await
.is_ok())
{
msg.viewtype = better_type;
} }
} else if msg.viewtype == Viewtype::Webxdc { } else if msg.viewtype == Viewtype::Webxdc {
context context