Commit Graph

388 Commits

Author SHA1 Message Date
link2xt
e4e738ec5f api(deltachat-rpc-client): accept Account as Account.create_contact() argument 2025-03-23 15:45:42 +00:00
link2xt
891e166996 build(deltachat-rpc-client): move development dependencies from tox.ini to pyproject.toml 2025-03-20 14:26:18 +00:00
link2xt
73095bcaff chore(release): prepare for 1.157.3 2025-03-19 09:12:19 +00:00
link2xt
14a7e39625 refactor(deltachat-rpc-client): use wait_for_event() type argument 2025-03-18 19:47:31 +00:00
Hocuri
4a2bfe03da api: Sketch add_transport_from_qr(), add_transport(), list_transports(), delete_transport() APIs (#6589)
Four new APIs `add_transport_from_qr()`, `add_transport()`,
`list_transports()`, `delete_transport()`, as described in the draft at
"API".

The `add_tranport*()` APIs automatically stops and starts I/O; for
`configure()` the stopping and starting is done in the JsonRPC bindings,
which is not where things like this should be done I think, the bindings
should just translate the APIs.

This also completely disables AEAP for now.

I won't be available for a week, but if you want to merge this already,
feel free to just commit all review suggestions and squash-merge.
2025-03-18 14:03:01 +01:00
iequidoo
5d334ee6ee fix: Don't SMTP-send self-only messages if DeleteServerAfter is "immediate" (#6661) 2025-03-18 00:38:21 -03:00
Hocuri
dc17f2692c fix: Fix setting up a profile and immediately transferring to a second device (#6657)
Found and fixed a bug while investigating
https://github.com/chatmail/core/issues/6656. It's not the same bug,
though.

Steps to reproduce this bug:
- Create a new profile
- Transfer it to a second device
- Send a message from the first device
- -> It will never arrive on the second device, instead a warning will
be printed that you are using DC on multiple devices.

The bug was that the key wasn't created before the backup transfer, so
that the second device then created its own key instead of using the
same key as the first device.

In order to regression-test, this PR now changes `clone()` to use "Add
second device" instead of exporting and importing a backup. Exporting
and importing a backup has enough tests already.

This PR also adds an unrelated test `test_selfavatar_sync()`.

The bug was introduced by https://github.com/chatmail/core/pull/6574 in
v1.156.0
2025-03-17 18:12:35 +01:00
link2xt
fa7bf179fb test: fix test_no_old_msg_is_fresh flakiness 2025-03-17 14:56:23 +00:00
link2xt
03b0185b8e chore(release): prepare for 1.157.2 2025-03-15 11:43:33 +00:00
link2xt
10e711621c chore(release): prepare for 1.157.1 2025-03-13 01:34:08 +00:00
link2xt
da4f1b2a98 chore(release): prepare for 1.157.0 2025-03-12 23:00:47 +00:00
link2xt
339f695bd6 test(python): port test_no_old_msg_is_fresh to JSON-RPC 2025-03-12 16:44:52 +00:00
link2xt
491d6abe49 docs(deltachat-rpc-client): document Account.import_vcard() 2025-03-10 23:54:31 +00:00
link2xt
8e9c79061f docs(deltachat-rpc-client): document Account.check_qr() 2025-03-10 23:54:31 +00:00
link2xt
94f57e786d api(deltechat-rpc-client): add Account.wait_for_msgs_noticed_event() 2025-03-10 23:54:31 +00:00
link2xt
db1a7f6084 api(deltachat-rpc-client): add Account.get_device_chat() 2025-03-10 23:54:31 +00:00
link2xt
25df14707e api(deltachat-rpc-client): add Account.device_contact 2025-03-10 23:54:31 +00:00
link2xt
82573dc78c api(deltachat-rpc-client): make it possible to clone accounts 2025-03-10 22:43:23 +00:00
link2xt
35d4eb5168 chore(release): prepare for 1.156.3 2025-03-09 20:46:22 +00:00
link2xt
8e5f4a2d53 api(jsonrpc): add API to make and import vCards 2025-03-06 21:12:18 +00:00
link2xt
490171650a chore(release): prepare for 1.156.2 2025-03-02 20:49:30 +00:00
link2xt
43a40b9349 chore(release): prepare for 1.156.1 2025-02-28 01:23:21 +00:00
link2xt
08be98f693 chore(release): prepare for 1.156.0 2025-02-27 00:24:03 +00:00
link2xt
8c2207d15e fix: make it impossible to overwrite default key
Replacing default key
when a profile is already part of
verified groups results in
`[The message was sent with non-verified encryption. See 'Info' for more details]`
messages for other users.

It is still possible
to import the default key before
Delta Chat generates the key.
2025-02-26 20:56:52 +00:00
Hocuri
a4e478a071 feat: Don't send a notification when a group member left (#6575)
When there is a broken group (which might happen with multi-transport),
people want to leave it.

The problem is that every "Group left" message notifies all other
members and pops up the chat, so that other members also want to leave
the group.

This PR makes it so that "Group left" messages don't create a
notification, don't cause a number-in-a-cirle badge counter on the chat,
and don't sort up the chat in the chatlist.

If a group is deleted, then the group won't pop up when someone leaves
it; this worked fine already before this PR, and there also is a test
for it.
2025-02-26 18:00:46 +00:00
Hocuri
38b08fab2f feat: When reactions are seen, remove notification from second device (#6480)
Instead of being trashed, the message containing a reaction remains in the chat, hidden and InFresh. When the chat is opened, it will be marked as Seen on the server, so that a second device removes the notifications for the reaction.

Close https://github.com/deltachat/deltachat-core-rust/issues/6210.

Also, this adds a benchmark.
2025-02-22 11:10:45 +01:00
Hocuri
4a25860e22 feat: Deduplicate blob files in the JsonRPC API (#6470)
This makes it so that files will be deduplicated when using the JsonRPC
API.

@nicodh and @WofWca you know the Desktop code and how it is using the
API, so, you can probably tell me whether this is a good way of changing
the JsonRPC code - feel free to push changes directly to this PR here!

This PR here changes the existing functions instead of creating new
ones; we can alternatively create new ones if it allows for a smoother
transition.

This brings a few changes:
- If you pass a file that is already in the blobdir, it will be renamed
to `<hash>.<extension>` immediately (previously, the filename on the
disk stayed the same)
- If you pass a file that's not in the blobdir yet, it will be copied to
the blobdir immediately (previously, it was copied to the blobdir later,
when sending)
- If you create a file and then pass it to `create_message()`, it's
better to directly create it in the blobdir, since it doesn't need to be
copied.
- You must not write to the files after they were passed to core,
because otherwise, the hash will be wrong. So, if Desktop recodes videos
or so, then the video file mustn't just be overwritten. What you can do
instead is write the recoded video to a file with a random name in the
blobdir and then create a new message with the new attachment. If
needed, we can also create a JsonRPC for `set_file_and_deduplicate()`
that replaces the file on an existing message.

In order to test whether everything still works, the desktop issue has a
list of things to test:
https://github.com/deltachat/deltachat-desktop/issues/4498
Core issue: #6265

---------

Co-authored-by: l <link2xt@testrun.org>
2025-02-19 22:57:40 +01:00
link2xt
48fcf66002 chore(release): prepare for 1.155.6 2025-02-17 20:42:48 +00:00
link2xt
4fb24d05dc chore(release): prepare for 1.155.5 2025-02-14 01:07:16 +00:00
link2xt
302aa5a5f7 chore(release): prepare for 1.155.4 2025-02-10 19:19:03 +00:00
link2xt
4ef6788ffd chore(release): prepare for 1.155.3 2025-02-05 05:56:25 +00:00
link2xt
ecbec41b97 chore(release): prepare for 1.155.2 2025-01-31 01:57:30 +00:00
link2xt
1fd6d80e6d chore(release): prepare for 1.155.1 2025-01-25 14:50:41 +00:00
link2xt
7bc9dd6c98 chore(release): prepare for 1.155.0 2025-01-23 03:06:03 +00:00
link2xt
8dcd8aa69d api: add JSON-RPC API to get past members 2025-01-22 11:53:56 +00:00
link2xt
2b5ce35c2d chore(release): prepare for 1.154.3 2025-01-20 20:22:40 +00:00
link2xt
8af6cdf49c chore(release): prepare for 1.154.2 2025-01-20 15:22:05 +00:00
link2xt
fa016b36fb chore(release): prepare for 1.154.1 2025-01-15 19:23:27 +00:00
link2xt
ffd2ec9424 chore(release): prepare for 1.154.0 2025-01-15 17:56:40 +00:00
link2xt
6e8668e348 build: increase minimum supported Python version to 3.8
Python 3.7 is not supported on GitHub Actions ubuntu-latest runner:
https://github.com/actions/setup-python/issues/962

Python 3.7 has reached EOL more than 1 year ago anyway,
so not worth the effort supporting it.
2025-01-09 14:58:01 +00:00
link2xt
fff4020013 chore(release): prepare for 1.153.0 2025-01-05 09:08:23 +00:00
iequidoo
137e32fe49 fix(rpc-client): Add INCOMING_REACTION to const.EventType (#6349) 2024-12-26 14:28:42 -03:00
iequidoo
f61d5af468 feat: Delete vg-request-with-auth from IMAP after processing (#6208)
In multi-device case `vg-request-with-auth` left on IMAP may result in situation when Bob joins the
group, then leaves it, then second Alice device comes online and processes `vg-request-with-auth`
again and adds Bob back. So we should IMAP-delete `vg-request-with-auth`. Another device will know
the Bob's key from Autocrypt-Gossip. It's not a problem if Alice loses state (restores from an old
backup) or goes offline for long before sending `vg-member-added`, anyway it may not be delivered by
the server, rather Bob should retry sending SecureJoin messages as he is a part which wants to join,
so let's not solve this for now.
2024-12-25 14:47:17 -03:00
link2xt
f1302c3bc4 chore(release): prepare for 1.152.2 2024-12-24 19:20:23 +00:00
link2xt
9e408c3abd chore(release): prepare for 1.152.1 2024-12-17 19:28:09 +00:00
link2xt
a305409627 chore(release): prepare for 1.152.0 2024-12-12 15:39:31 +00:00
link2xt
b650b96ccd chore(release): prepare for 1.151.6 2024-12-11 09:30:42 +00:00
link2xt
77cf536b94 chore(release): prepare for 1.151.5 2024-12-05 12:35:46 +00:00
link2xt
825455d9dc chore(release): prepare for 1.151.4 2024-12-03 14:45:31 +00:00
link2xt
ddfcd2ed2e chore(release): prepare for 1.151.3 2024-12-02 17:09:45 +00:00