Commit graph

443 commits

Author SHA1 Message Date
Tulir Asokan
b826aa1bb7 Fix handling read receipts 2022-10-05 21:18:49 +03:00
Tulir Asokan
53bc4dab28 Drop large media messages before downloading 2022-10-03 10:09:07 +03:00
Tulir Asokan
862cd8a0d7 Add option to sync group members in parallel 2022-09-29 14:39:59 +03:00
Tulir Asokan
7a933124fa Use transaction for saving reactions in backfill 2022-09-28 15:54:08 +03:00
Tulir Asokan
7a6c4d53d3 Backfill reactions when using hungryserv 2022-09-28 15:07:10 +03:00
Tulir Asokan
93cbbb7f93 Move reuploadAvatar next to updateAvatar 2022-09-28 14:45:36 +03:00
Tulir Asokan
f0401ee81e Generate different deterministic event IDs for captions 2022-09-20 17:31:12 +03:00
Tulir Asokan
ec9e6d517f Add missing f
[skip cd]
2022-09-07 12:31:59 -04:00
Tulir Asokan
3f59ae3d26 Ignore webp padding errors. Fixes #549 2022-09-06 15:55:46 -04:00
Tulir Asokan
b923a39d76 Fix media conversion errors not including actual error 2022-08-31 11:10:39 +03:00
Tulir Asokan
985b33fd7c Backfill with deterministic event IDs on hungryserv 2022-08-25 17:05:45 +03:00
Tulir Asokan
11abac2214 Resize webp stickers if they're not 1:1 2022-08-25 11:43:16 +03:00
Tulir Asokan
24f7f353e4 Fix variable names 2022-08-24 21:08:47 +03:00
Tulir Asokan
e554d048c9 Pad images when converting to webp 2022-08-24 21:06:27 +03:00
Tulir Asokan
76c9660849 Reject unsupported message types and add some more conversions
Closes #524
Closes #539
Fixes #510
2022-08-22 15:05:51 +03:00
Tulir Asokan
f79efa9037 Update mautrix-go 2022-08-14 19:37:11 +03:00
Tulir Asokan
e50ac52014 Update mautrix-go 2022-08-04 20:42:03 +03:00
Tulir Asokan
5ba69f7e8e Add support for admin redactions in groups 2022-08-01 09:49:27 +03:00
Tulir Asokan
3617b991c8 Update whatsmeow 2022-08-01 09:49:27 +03:00
Tulir Asokan
465ffa27af Remove special-cased private chat portal cleanup 2022-07-18 16:31:56 +03:00
vurpo
1600559de7
Delete portal if user deletes chat on WhatsApp (#531) 2022-07-18 16:16:17 +03:00
vurpo
180c8996a8
Implement "Delete for me" support for messages (#530) 2022-07-18 16:08:52 +03:00
Tulir Asokan
08d5b10902 Use same ensureUserInvited method everywere. Fixes #529 2022-07-12 13:15:46 +03:00
Tulir Asokan
574d6f47c3 Extend message handling timeout for scheduled messages 2022-07-11 15:08:34 +03:00
Tulir Asokan
794975eaa0 Add support for Matrix -> WhatsApp captions with MSC2530 2022-07-11 14:38:47 +03:00
Tulir Asokan
73f4449761 Add log to find which part of message handling takes long 2022-07-11 14:20:31 +03:00
Tulir Asokan
fb74e014ec Improve log and update dependencies 2022-07-09 11:16:43 +03:00
Tulir Asokan
152f5a57b5 Fix handling not found avatars 2022-07-06 13:54:32 +03:00
Tulir Asokan
1b90f98961 Clamp sticker rendering suggestion 190px 2022-07-05 12:52:32 +03:00
Tulir Asokan
f8d6f712bd Get Matrix msgtype from WhatsApp type instead of mimetype 2022-07-05 12:46:34 +03:00
Tulir Asokan
c16af35d1b Make Portal.UpdateName work without a room 2022-07-05 11:08:21 +03:00
Tulir Asokan
87c4cd6c20 Simplify expression 2022-07-01 22:34:41 +03:00
Tulir Asokan
61f3aa9704 Add still_working field for status event on soft timeouts 2022-07-01 11:02:35 +03:00
Tulir Asokan
bf4c01648f Move most double puppet source key adding to mautrix-go 2022-06-30 20:56:26 +03:00
Tulir Asokan
2542f94e00 Add a warning log and more comments 2022-06-30 14:46:46 +03:00
Tulir Asokan
44768c9c93 Improve max message handling duration options 2022-06-30 14:41:37 +03:00
Tulir Asokan
d3d69d1a8a Add option for max message handling duration 2022-06-29 20:05:55 +03:00
Tulir Asokan
19b4c3093a Apply periodic resync for group chats too 2022-06-28 16:22:11 +03:00
Tulir Asokan
9f0901f560 Add periodic ghost avatar resync 2022-06-28 14:37:50 +03:00
Tulir Asokan
267799cbe0 Update dependencies 2022-06-28 12:09:12 +03:00
Tulir Asokan
68b0f3d0a4 Re-add support for resend_bridge_info 2022-06-27 11:46:30 +03:00
Tulir Asokan
e424382cc9 Add support for list messages 2022-06-24 23:25:38 +03:00
Tulir Asokan
a47ef45e29 Add support for template button reply messages 2022-06-24 22:37:27 +03:00
Tulir Asokan
443ff97e7a Add basic support for business messages 2022-06-24 21:50:58 +03:00
Tulir Asokan
40ea8a8324 Stop using SELECT * 2022-06-24 17:53:28 +03:00
Tulir Asokan
5b698b8c1c Move DualError to mautrix-go 2022-06-21 21:56:08 +03:00
Sumner Evans
e8c86d43d0
encryption: add ability to control rotation settings
Signed-off-by: Sumner Evans <sumner@beeper.com>
2022-06-21 12:33:04 -06:00
Tulir Asokan
aa0daceb85 Add config option to bundle caption with media message 2022-06-17 11:34:24 +03:00
Tulir Asokan
43d8fc5d2b Disallow sending status broadcast messages by default
Sending to big contact lists doesn't really work yet
2022-06-13 20:01:39 +03:00
Tulir Asokan
7f27c76659 Improve tracking errors in Matrix->WhatsApp bridging
Closes #231
2022-05-31 17:28:59 +03:00
Tulir Asokan
79fb0d49b3 Move bridge state stuff to mautrix-go 2022-05-31 00:27:44 +03:00
Tulir Asokan
49a445e10d Update mautrix-go and add log when room is created 2022-05-29 19:22:07 +03:00
Tulir Asokan
372929f454 Fix small things 2022-05-24 14:02:06 +03:00
Tulir Asokan
1185b4bb71 Add mutex to block new messages in specific backfill cases
Specifically, when sending events using the `com.beeper.new_messages`
query param, normal new messages shouldn't be processed, as ordering
might get messed up.

3a264b77ed
2022-05-24 13:39:29 +03:00
Tulir Asokan
91bab528f3 Mark incoming own messages as read after bridging 2022-05-23 10:18:01 +03:00
Tulir Asokan
15129c0acc Move permission config to mautrix-go 2022-05-22 22:03:08 +03:00
Tulir Asokan
73304cd400 Move Matrix event and command handling to mautrix-go 2022-05-22 16:15:54 +03:00
Tulir Asokan
a948ea0146 Move a bunch of stuff to mautrix-go
See d578d1a610

Database upgrades from before v0.4.0 were squashed, users must update
to at least v0.4.0 before updating beyond this commit.
2022-05-22 01:06:30 +03:00
Tulir Asokan
24c2880b20 Adjust error response content log 2022-05-19 15:18:15 +03:00
Tulir Asokan
30cf85a3b1 Ignore media retry errors if the response contains a new URL 2022-05-19 15:14:22 +03:00
Tulir Asokan
962179fb75 Handle edge cases with missing senders in historical messages 2022-05-19 12:08:31 +03:00
Tulir Asokan
5bcc8d3741 Include undecryptable message type in segment event 2022-05-17 21:47:13 +03:00
Sumner Evans
5b73ba7efd
Merge pull request #494 from mautrix/sumner/bri-3309
backfill: remove intermediate queues and unblock re-checking DB
2022-05-16 17:13:29 -06:00
Sumner Evans
df46ca99f9
backfill: remove intermediate buffer for backfill 2022-05-16 14:04:22 -06:00
Tulir Asokan
46ba3981c1 Add Segment events for retry receipts and undecryptable messages 2022-05-16 13:49:43 +03:00
Sumner Evans
f3f6d88e55
backfill: perform batch finish in transaction 2022-05-15 21:43:12 -06:00
Tulir Asokan
0ed0f61ced Add command to change disappearing timer 2022-05-15 14:01:23 +03:00
Tulir Asokan
78fe69a578 Move media 404 error logs to debug level 2022-05-14 14:28:55 +03:00
Tulir Asokan
c00f74af3b Sync push name on message if it got dropped before somehow 2022-05-13 11:34:51 +03:00
Sumner Evans
8cb41b8949
Merge pull request #490 from mautrix/sumner/bri-3238
media backfill: allow media requests to be performed at a specific local time for the user
2022-05-12 11:31:54 -06:00
Sumner Evans
b42aa16684
media backfill: store media key in request
This way, we don't have to fetch the event from Matrix in these situations
2022-05-12 11:30:42 -06:00
Tulir Asokan
9ac8ae984d Always set power level required for reactions and redactions to 0 2022-05-12 10:45:23 +03:00
Sumner Evans
08e77fab29
media backfill: send retry requests at the configured time
Only does the batch send of requests if the request method is 'local_time'
2022-05-11 17:10:55 -06:00
Sumner Evans
b5551ee16a
database: add media requests buffer table 2022-05-11 17:10:55 -06:00
Sumner Evans
e362743f18
config: add settings for automatic media requests 2022-05-11 17:10:55 -06:00
Tulir Asokan
3f6fc27095 Remove GroupingKey from reactions as WhatsApp doesn't seem to use it 2022-05-07 11:25:16 +03:00
Tulir Asokan
289d410a4b Use consistent error message for media not found errors
Sometimes it's encrypted, sometimes it's not
2022-05-02 16:50:15 +03:00
Tulir Asokan
0665c74cce Merge incoming receipt and message channels
Otherwise receipts after downtime might be handled before the messages
those receipts point at.
2022-05-02 15:35:50 +03:00
Tulir Asokan
bf2eb84abb Update error message if media retry fails 2022-05-02 15:29:02 +03:00
Tulir Asokan
4bc4e92877 Remove media backfill queue and just request immediately 2022-05-02 15:00:57 +03:00
Tulir Asokan
387148849a Update mautrix-go again 2022-04-27 23:48:55 +03:00
Sumner Evans
2259b5007f
Merge pull request #483 from mautrix/sumner/bri-3038
backfill: skip chats if the user is not a participant
2022-04-27 08:32:35 -06:00
Sumner Evans
caf0a363c9
backfill: delete messages for rooms the user is not in
If the chat turns out to be not bridgable due to the user not being in
the room, delete the messages, and stop trying to backfill it.
2022-04-27 08:29:20 -06:00
Tulir Asokan
0b036204ca Update dependencies and reduce memory usage when encryping files 2022-04-27 14:31:57 +03:00
Sumner Evans
2afdf80937
backfill: don't create room if the user is not a participant
This can happen if the user gets kicked from a chat.
2022-04-26 12:10:30 -06:00
Sumner Evans
f32c5f2e9a
backfill: fix priority of backfills again
I think this finally has the correct logic for doing each stage for each
portal before going on to the next stage.
2022-04-23 21:50:47 -06:00
Sumner Evans
7772b7e15c
Merge pull request #479 from mautrix/fix-media-fail-error
improve error when media is not present on WA servers
2022-04-22 11:52:36 -06:00
Sumner Evans
159ece3e64
improve error when media is not present on WA servers 2022-04-22 11:49:50 -06:00
Tulir Asokan
3f8d6942d2 Store disappearing timer when creating portal 2022-04-22 16:45:30 +03:00
Sumner Evans
f2e762680c
media backfill: add ability to automatically request media not on WA server
This adds a new backfill type for media that sends a request to the
phone for every media that is not available on the WA servers. WA
deletes media from their servers after about two weeks, so you have to
ask the phone to re-upload it.

In order to use this, you need to enable
bridge.history_sync.backfill_media and configure the requests that will
be made per portal using bridge.history_sync.media (which is similar to
the deferred backfill config).

If you already have backfilled portals, but want to do a one-off media
backfill for all existing portals, you can set
bridge.history_sync.enqueue_backfill_media_next_start to true.
2022-04-19 08:12:51 -06:00
Sumner Evans
7a77b1976c
reactions: send checkpoints for matrix reactions (#472) 2022-04-18 11:14:43 +03:00
Sumner Evans
37b8065db5
Merge pull request #461 from mautrix/sumner/bri-2227
history sync: implement prioritized backfill
2022-04-07 09:28:25 -06:00
Tulir Asokan
d4318d54a4 Add missing return 2022-04-07 10:48:36 +03:00
Sumner Evans
83d397900f
media: add better error when media couldn't be retrieved due to WA deleting it from their servers 2022-04-05 15:35:02 -06:00
Sumner Evans
8a49fea812
backfill: backfill conversation when started
This applies to when the conversation is started via the provisioning
API (start new chat) or when a new message comes in to that portal.
2022-03-29 23:40:22 -06:00
Tulir Asokan
f79ca422e8 Add option to use async media uploads
https://github.com/matrix-org/matrix-spec-proposals/pull/2246
2022-03-21 21:08:48 +02:00
Tulir Asokan
3a6c314878 Normalize variation selectors in emojis in both directions
Remove for WhatsApp, add for Matrix
2022-03-18 01:12:25 +02:00
Tulir Asokan
973f80d7a7 Fix accepting group invites in encrypted rooms 2022-03-14 13:15:52 +02:00
Tulir Asokan
c82a96dccc Handle incoming reaction removals 2022-03-12 19:47:47 +02:00
Tulir Asokan
031d712905 Update whatsmeow 2022-03-09 16:44:25 +02:00