mirror of
https://github.com/chatmail/core.git
synced 2026-05-24 01:06:31 +03:00
Fix https://github.com/chatmail/core/issues/8195 Supersedes https://github.com/chatmail/core/pull/8217 The most interesting change is in `delete_expired_imap_messages()` because there, messages are marked for deletion on single-device chatmail profiles. The logic in `delete_expired_imap_messages()` was wrong before, and pre-messages were not deleted at all. This is fixed by also querying `pre_rfc724_mid` in addition to `rfc724_mid` from the `msgs` table. In order not to make the SQL statement too complex, I split it into two. WRT tests: - `test_immediate_autodelete()` tests the auto-deletion; `test_imap_autodelete_fully_downloaded_msg()` tests that even for a message that is split into pre- and post-message, both messages are deleted. - A lot of tests test that if bcc_self is on, messages are not auto-deleted. E.g. `test_one_account_send_bcc_setting()` and `test_markseen_message_and_mdn()` relies on the fact that messages stay on the server when bcc_self is on. - Unfortunately, it is not possible to test that messages are only deleted for chatmail servers, because we don't have any tests that use a non-chatmail server.
23 lines
645 B
Bash
Executable File
23 lines
645 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# Updates provider database.
|
|
# Returns 1 if the database is changed, 0 otherwise.
|
|
set -euo pipefail
|
|
|
|
export TZ=UTC
|
|
|
|
# Provider database revision.
|
|
REV=2cba4b72f4c6e6417b83ba549aff7781be5f166c
|
|
|
|
CORE_ROOT="$PWD"
|
|
TMP="$(mktemp -d)"
|
|
git clone --filter=blob:none https://github.com/chatmail/provider-db.git "$TMP"
|
|
cd "$TMP"
|
|
git checkout "$REV"
|
|
DATE=$(git show -s --format=%cs)
|
|
"$CORE_ROOT"/scripts/create-provider-data-rs.py "$TMP/_providers" "$DATE" >"$CORE_ROOT/src/provider/data.rs"
|
|
rustfmt --edition 2024 "$CORE_ROOT/src/provider/data.rs"
|
|
rm -fr "$TMP"
|
|
|
|
cd "$CORE_ROOT"
|
|
test -z "$(git status --porcelain src/provider/data.rs)"
|