feat: Don't mark messages as seen on IMAP if bcc_self=0 or bot=1

bcc_self=0 means that the user disabled it or it's a chatmail setup with the only device and w/o
backups. If a backup is made someday, old messages not marked as IMAP-seen aren't a problem and new
ones are marked as IMAP-seen.

For bots, particularly multi-device ones (which are a rare case), probably no sane logic can be
built on the "seen" message status. Moreover, if the user has additionally a bot that reads incoming
messages, it doesn't mean that the user doesn't want to read them too.
This commit is contained in:
iequidoo
2025-09-16 03:49:11 -03:00
parent 3c25e4b726
commit 42cebed9cd
3 changed files with 10 additions and 4 deletions

View File

@@ -160,6 +160,7 @@ def test_html_message(acfactory, lp):
def test_webxdc_message(acfactory, data, lp):
ac1, ac2 = acfactory.get_online_accounts(2)
ac2.set_config("bcc_self", "1")
chat = acfactory.get_accepted_chat(ac1, ac2)
lp.sec("ac1: prepare and send text message to ac2")
@@ -362,6 +363,8 @@ def test_send_and_receive_message_markseen(acfactory, lp):
# make DC's life harder wrt to encodings
ac1.set_config("displayname", "ä name")
ac2.set_config("bcc_self", "1")
# clear any fresh device messages
ac1.get_device_chat().mark_noticed()
ac2.get_device_chat().mark_noticed()
@@ -502,9 +505,8 @@ def test_mdn_asymmetric(acfactory, lp):
chat = ac1.create_chat(ac2)
ac2.create_chat(ac1)
# make sure mdns are enabled (usually enabled by default already)
ac1.set_config("mdns_enabled", "1")
ac2.set_config("mdns_enabled", "1")
ac1.set_config("bcc_self", "1")
ac2.set_config("bcc_self", "1")
lp.sec("sending text message from ac1 to ac2")
msg_out = chat.send_text("message1")