mirror of
https://github.com/chatmail/core.git
synced 2026-05-15 12:56:30 +03:00
feat: stop saving txt_raw
It is redundant now that we have HTML view for long messages and is not updated when the message is edited.
This commit is contained in:
@@ -673,7 +673,6 @@ pub struct MessageReadReceipt {
|
|||||||
#[derive(Serialize, TypeDef, schemars::JsonSchema)]
|
#[derive(Serialize, TypeDef, schemars::JsonSchema)]
|
||||||
#[serde(rename_all = "camelCase")]
|
#[serde(rename_all = "camelCase")]
|
||||||
pub struct MessageInfo {
|
pub struct MessageInfo {
|
||||||
rawtext: String,
|
|
||||||
ephemeral_timer: EphemeralTimer,
|
ephemeral_timer: EphemeralTimer,
|
||||||
/// When message is ephemeral this contains the timestamp of the message expiry
|
/// When message is ephemeral this contains the timestamp of the message expiry
|
||||||
ephemeral_timestamp: Option<i64>,
|
ephemeral_timestamp: Option<i64>,
|
||||||
@@ -686,7 +685,6 @@ pub struct MessageInfo {
|
|||||||
impl MessageInfo {
|
impl MessageInfo {
|
||||||
pub async fn from_msg_id(context: &Context, msg_id: MsgId) -> Result<Self> {
|
pub async fn from_msg_id(context: &Context, msg_id: MsgId) -> Result<Self> {
|
||||||
let message = Message::load_from_db(context, msg_id).await?;
|
let message = Message::load_from_db(context, msg_id).await?;
|
||||||
let rawtext = msg_id.rawtext(context).await?;
|
|
||||||
let ephemeral_timer = message.get_ephemeral_timer().into();
|
let ephemeral_timer = message.get_ephemeral_timer().into();
|
||||||
let ephemeral_timestamp = match message.get_ephemeral_timer() {
|
let ephemeral_timestamp = match message.get_ephemeral_timer() {
|
||||||
deltachat::ephemeral::Timer::Disabled => None,
|
deltachat::ephemeral::Timer::Disabled => None,
|
||||||
@@ -699,7 +697,6 @@ impl MessageInfo {
|
|||||||
let hop_info = msg_id.hop_info(context).await?;
|
let hop_info = msg_id.hop_info(context).await?;
|
||||||
|
|
||||||
Ok(Self {
|
Ok(Self {
|
||||||
rawtext,
|
|
||||||
ephemeral_timer,
|
ephemeral_timer,
|
||||||
ephemeral_timestamp,
|
ephemeral_timestamp,
|
||||||
error: message.error(),
|
error: message.error(),
|
||||||
|
|||||||
@@ -4415,7 +4415,7 @@ pub(crate) async fn save_copy_in_self_talk(
|
|||||||
bail!("message already saved.");
|
bail!("message already saved.");
|
||||||
}
|
}
|
||||||
|
|
||||||
let copy_fields = "from_id, to_id, timestamp_sent, timestamp_rcvd, type, txt, txt_raw, \
|
let copy_fields = "from_id, to_id, timestamp_sent, timestamp_rcvd, type, txt, \
|
||||||
mime_modified, mime_headers, mime_compressed, mime_in_reply_to, subject, msgrmsg";
|
mime_modified, mime_headers, mime_compressed, mime_in_reply_to, subject, msgrmsg";
|
||||||
let row_id = context
|
let row_id = context
|
||||||
.sql
|
.sql
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ use crate::chat::{send_msg, Chat, ChatId, ChatIdBlocked, ChatVisibility};
|
|||||||
use crate::chatlist_events;
|
use crate::chatlist_events;
|
||||||
use crate::config::Config;
|
use crate::config::Config;
|
||||||
use crate::constants::{
|
use crate::constants::{
|
||||||
Blocked, Chattype, VideochatType, DC_CHAT_ID_TRASH, DC_DESIRED_TEXT_LEN, DC_MSG_ID_LAST_SPECIAL,
|
Blocked, Chattype, VideochatType, DC_CHAT_ID_TRASH, DC_MSG_ID_LAST_SPECIAL,
|
||||||
};
|
};
|
||||||
use crate::contact::{self, Contact, ContactId};
|
use crate::contact::{self, Contact, ContactId};
|
||||||
use crate::context::Context;
|
use crate::context::Context;
|
||||||
@@ -35,7 +35,7 @@ use crate::summary::Summary;
|
|||||||
use crate::sync::SyncData;
|
use crate::sync::SyncData;
|
||||||
use crate::tools::{
|
use crate::tools::{
|
||||||
buf_compress, buf_decompress, get_filebytes, get_filemeta, gm2local_offset, read_file,
|
buf_compress, buf_decompress, get_filebytes, get_filemeta, gm2local_offset, read_file,
|
||||||
sanitize_filename, time, timestamp_to_str, truncate,
|
sanitize_filename, time, timestamp_to_str,
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Message ID, including reserved IDs.
|
/// Message ID, including reserved IDs.
|
||||||
@@ -174,15 +174,6 @@ impl MsgId {
|
|||||||
self.0
|
self.0
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns raw text of a message, used for message info
|
|
||||||
pub async fn rawtext(self, context: &Context) -> Result<String> {
|
|
||||||
Ok(context
|
|
||||||
.sql
|
|
||||||
.query_get_value("SELECT txt_raw FROM msgs WHERE id=?", (self,))
|
|
||||||
.await?
|
|
||||||
.unwrap_or_default())
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Returns server foldernames and UIDs of a message, used for message info
|
/// Returns server foldernames and UIDs of a message, used for message info
|
||||||
pub async fn get_info_server_urls(
|
pub async fn get_info_server_urls(
|
||||||
context: &Context,
|
context: &Context,
|
||||||
@@ -219,12 +210,9 @@ impl MsgId {
|
|||||||
/// Returns detailed message information in a multi-line text form.
|
/// Returns detailed message information in a multi-line text form.
|
||||||
pub async fn get_info(self, context: &Context) -> Result<String> {
|
pub async fn get_info(self, context: &Context) -> Result<String> {
|
||||||
let msg = Message::load_from_db(context, self).await?;
|
let msg = Message::load_from_db(context, self).await?;
|
||||||
let rawtxt: String = self.rawtext(context).await?;
|
|
||||||
|
|
||||||
let mut ret = String::new();
|
let mut ret = String::new();
|
||||||
|
|
||||||
let rawtxt = truncate(rawtxt.trim(), DC_DESIRED_TEXT_LEN);
|
|
||||||
|
|
||||||
let fts = timestamp_to_str(msg.get_timestamp());
|
let fts = timestamp_to_str(msg.get_timestamp());
|
||||||
ret += &format!("Sent: {fts}");
|
ret += &format!("Sent: {fts}");
|
||||||
|
|
||||||
@@ -335,9 +323,6 @@ impl MsgId {
|
|||||||
if duration != 0 {
|
if duration != 0 {
|
||||||
ret += &format!("Duration: {duration} ms\n",);
|
ret += &format!("Duration: {duration} ms\n",);
|
||||||
}
|
}
|
||||||
if !rawtxt.is_empty() {
|
|
||||||
ret += &format!("\n{rawtxt}\n");
|
|
||||||
}
|
|
||||||
if !msg.rfc724_mid.is_empty() {
|
if !msg.rfc724_mid.is_empty() {
|
||||||
ret += &format!("\nMessage-ID: {}", msg.rfc724_mid);
|
ret += &format!("\nMessage-ID: {}", msg.rfc724_mid);
|
||||||
|
|
||||||
|
|||||||
@@ -1539,7 +1539,6 @@ async fn add_parts(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut txt_raw = "".to_string();
|
|
||||||
let (msg, typ): (&str, Viewtype) = if let Some(better_msg) = &better_msg {
|
let (msg, typ): (&str, Viewtype) = if let Some(better_msg) = &better_msg {
|
||||||
if better_msg.is_empty() && is_partial_download.is_none() {
|
if better_msg.is_empty() && is_partial_download.is_none() {
|
||||||
chat_id = DC_CHAT_ID_TRASH;
|
chat_id = DC_CHAT_ID_TRASH;
|
||||||
@@ -1554,11 +1553,6 @@ async fn add_parts(
|
|||||||
save_mime_modified |= mime_parser.is_mime_modified && !part_is_empty && !hidden;
|
save_mime_modified |= mime_parser.is_mime_modified && !part_is_empty && !hidden;
|
||||||
let save_mime_modified = save_mime_modified && parts.peek().is_none();
|
let save_mime_modified = save_mime_modified && parts.peek().is_none();
|
||||||
|
|
||||||
if part.typ == Viewtype::Text {
|
|
||||||
let msg_raw = part.msg_raw.as_ref().cloned().unwrap_or_default();
|
|
||||||
txt_raw = format!("{subject}\n\n{msg_raw}");
|
|
||||||
}
|
|
||||||
|
|
||||||
let ephemeral_timestamp = if in_fresh {
|
let ephemeral_timestamp = if in_fresh {
|
||||||
0
|
0
|
||||||
} else {
|
} else {
|
||||||
@@ -1585,7 +1579,7 @@ INSERT INTO msgs
|
|||||||
rfc724_mid, chat_id,
|
rfc724_mid, chat_id,
|
||||||
from_id, to_id, timestamp, timestamp_sent,
|
from_id, to_id, timestamp, timestamp_sent,
|
||||||
timestamp_rcvd, type, state, msgrmsg,
|
timestamp_rcvd, type, state, msgrmsg,
|
||||||
txt, txt_normalized, subject, txt_raw, param, hidden,
|
txt, txt_normalized, subject, param, hidden,
|
||||||
bytes, mime_headers, mime_compressed, mime_in_reply_to,
|
bytes, mime_headers, mime_compressed, mime_in_reply_to,
|
||||||
mime_references, mime_modified, error, ephemeral_timer,
|
mime_references, mime_modified, error, ephemeral_timer,
|
||||||
ephemeral_timestamp, download_state, hop_info
|
ephemeral_timestamp, download_state, hop_info
|
||||||
@@ -1594,7 +1588,7 @@ INSERT INTO msgs
|
|||||||
?,
|
?,
|
||||||
?, ?, ?, ?,
|
?, ?, ?, ?,
|
||||||
?, ?, ?, ?,
|
?, ?, ?, ?,
|
||||||
?, ?, ?, ?, ?,
|
?, ?, ?, ?,
|
||||||
?, ?, ?, ?, ?, 1,
|
?, ?, ?, ?, ?, 1,
|
||||||
?, ?, ?, ?,
|
?, ?, ?, ?,
|
||||||
?, ?, ?, ?
|
?, ?, ?, ?
|
||||||
@@ -1604,7 +1598,7 @@ SET rfc724_mid=excluded.rfc724_mid, chat_id=excluded.chat_id,
|
|||||||
from_id=excluded.from_id, to_id=excluded.to_id, timestamp_sent=excluded.timestamp_sent,
|
from_id=excluded.from_id, to_id=excluded.to_id, timestamp_sent=excluded.timestamp_sent,
|
||||||
type=excluded.type, state=max(state,excluded.state), msgrmsg=excluded.msgrmsg,
|
type=excluded.type, state=max(state,excluded.state), msgrmsg=excluded.msgrmsg,
|
||||||
txt=excluded.txt, txt_normalized=excluded.txt_normalized, subject=excluded.subject,
|
txt=excluded.txt, txt_normalized=excluded.txt_normalized, subject=excluded.subject,
|
||||||
txt_raw=excluded.txt_raw, param=excluded.param,
|
param=excluded.param,
|
||||||
hidden=excluded.hidden,bytes=excluded.bytes, mime_headers=excluded.mime_headers,
|
hidden=excluded.hidden,bytes=excluded.bytes, mime_headers=excluded.mime_headers,
|
||||||
mime_compressed=excluded.mime_compressed, mime_in_reply_to=excluded.mime_in_reply_to,
|
mime_compressed=excluded.mime_compressed, mime_in_reply_to=excluded.mime_in_reply_to,
|
||||||
mime_references=excluded.mime_references, mime_modified=excluded.mime_modified, error=excluded.error, ephemeral_timer=excluded.ephemeral_timer,
|
mime_references=excluded.mime_references, mime_modified=excluded.mime_modified, error=excluded.error, ephemeral_timer=excluded.ephemeral_timer,
|
||||||
@@ -1626,8 +1620,6 @@ RETURNING id
|
|||||||
if trash || hidden { "" } else { msg },
|
if trash || hidden { "" } else { msg },
|
||||||
if trash || hidden { None } else { message::normalize_text(msg) },
|
if trash || hidden { None } else { message::normalize_text(msg) },
|
||||||
if trash || hidden { "" } else { &subject },
|
if trash || hidden { "" } else { &subject },
|
||||||
// txt_raw might contain invalid utf8
|
|
||||||
if trash || hidden { "" } else { &txt_raw },
|
|
||||||
if trash {
|
if trash {
|
||||||
"".to_string()
|
"".to_string()
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ CREATE TABLE msgs (
|
|||||||
msgrmsg INTEGER DEFAULT 1,
|
msgrmsg INTEGER DEFAULT 1,
|
||||||
bytes INTEGER DEFAULT 0,
|
bytes INTEGER DEFAULT 0,
|
||||||
txt TEXT DEFAULT '',
|
txt TEXT DEFAULT '',
|
||||||
txt_raw TEXT DEFAULT '',
|
txt_raw TEXT DEFAULT '', -- deprecated 2025-03-29
|
||||||
param TEXT DEFAULT '',
|
param TEXT DEFAULT '',
|
||||||
starred INTEGER DEFAULT 0,
|
starred INTEGER DEFAULT 0,
|
||||||
timestamp_sent INTEGER DEFAULT 0,
|
timestamp_sent INTEGER DEFAULT 0,
|
||||||
|
|||||||
@@ -43,8 +43,6 @@ async fn test_parse_receive_headers_integration() {
|
|||||||
let raw = include_bytes!("../../test-data/message/mail_with_cc.txt");
|
let raw = include_bytes!("../../test-data/message/mail_with_cc.txt");
|
||||||
let expected = r"State: Fresh
|
let expected = r"State: Fresh
|
||||||
|
|
||||||
hi
|
|
||||||
|
|
||||||
Message-ID: 2dfdbde7@example.org
|
Message-ID: 2dfdbde7@example.org
|
||||||
|
|
||||||
Hop: From: localhost; By: hq5.merlinux.eu; Date: Sat, 14 Sep 2019 17:00:22 +0000
|
Hop: From: localhost; By: hq5.merlinux.eu; Date: Sat, 14 Sep 2019 17:00:22 +0000
|
||||||
@@ -56,13 +54,6 @@ DKIM Results: Passed=true";
|
|||||||
let raw = include_bytes!("../../test-data/message/encrypted_with_received_headers.eml");
|
let raw = include_bytes!("../../test-data/message/encrypted_with_received_headers.eml");
|
||||||
let expected = "State: Fresh, Encrypted
|
let expected = "State: Fresh, Encrypted
|
||||||
|
|
||||||
Re: Message from alice@example.org
|
|
||||||
|
|
||||||
hi back\r\n\
|
|
||||||
\r\n\
|
|
||||||
-- \r\n\
|
|
||||||
Sent with my Delta Chat Messenger: https://delta.chat
|
|
||||||
|
|
||||||
Message-ID: Mr.adQpEwndXLH.LPDdlFVJ7wG@example.net
|
Message-ID: Mr.adQpEwndXLH.LPDdlFVJ7wG@example.net
|
||||||
|
|
||||||
Hop: From: [127.0.0.1]; By: mail.example.org; Date: Mon, 27 Dec 2021 11:21:21 +0000
|
Hop: From: [127.0.0.1]; By: mail.example.org; Date: Mon, 27 Dec 2021 11:21:21 +0000
|
||||||
|
|||||||
Reference in New Issue
Block a user