Commit graph

228 commits

Author SHA1 Message Date
Tulir Asokan
252d645fea Fix bridging audio/video duration from/to WhatsApp 2021-06-22 20:05:02 +03:00
Tulir Asokan
bd207df82d Store last message MXID in database for multipart messages 2021-06-22 12:35:38 +03:00
Tulir Asokan
4b80c15a0a Add some logs and increase timestamp difference for short-circuiting deduplication 2021-06-21 13:53:08 +03:00
Tulir Asokan
30ddd788ae Don't stop message processing loop if room creation fails 2021-06-19 02:22:21 +03:00
Tulir Asokan
bc7a82c0be Use mutex for accessing go-whatsapp contacts and chats maps 2021-06-19 02:22:01 +03:00
Tulir Asokan
b5c3e8abcb Make sure puppet has displayname set when sending message 2021-06-15 12:34:55 +03:00
Tulir Asokan
d4b7595b6e Add better error messages for some send errors 2021-06-15 12:07:31 +03:00
Tulir Asokan
1a23bfda30 Log type of message when starting handling 2021-06-10 16:29:20 +03:00
Tulir Asokan
06b84c4bb9 Add option to disable status bridging. Fixes #166 2021-06-01 15:28:15 +03:00
Tulir Asokan
80b534323f Try to fix false positive send error on whatsapp mobile 2021-06-01 13:32:14 +03:00
Tulir Asokan
7c16eb8c53 Get last message timestamp from database when checking if message is too old 2021-05-12 13:39:24 +03:00
Tulir Asokan
2742d90299 Add option to only bridge mute status and tags when creating portal 2021-04-29 11:57:05 +03:00
Tulir Asokan
badea9c547 Add option to bridge archive and mute status from WhatsApp 2021-04-19 22:14:32 +03:00
Tulir Asokan
c811da6f7d Cleanup empty group portals even if user didn't leave WhatsApp side 2021-04-16 16:36:56 +03:00
Tulir Asokan
d3c0b50d5a Move request retrying to mautrix-go 2021-04-15 16:23:40 +03:00
Tulir Asokan
e9e623abf6 Increment chunk num so backfill logs work correctly 2021-04-01 12:31:39 +03:00
Tulir Asokan
24d172fd55 Don't create portals for stub messages 2021-03-19 21:14:01 +02:00
Tulir Asokan
93953ec48f Sync contact info when syncing room members if puppet has no displayname 2021-03-19 20:55:08 +02:00
Tulir Asokan
e19f8c7532 Fix some relaybot room create issues
Fixes #270
Fixes #236
2021-03-08 01:51:37 +02:00
Tulir Asokan
8a6877746d Wait for connection before handling message when login is in progress 2021-03-05 16:54:23 +02:00
Tulir Asokan
001746be07 Ignore echo of invites sent by the bridge 2021-03-05 11:29:08 +02:00
Tulir Asokan
ab0019d087 Make sure interface conversion succeeds in error check 2021-03-04 20:46:08 +02:00
Héctor Ramírez Franco
464a7ee765 Add config option to disable bridging m.notices
Closes #259
2021-02-26 16:11:34 +02:00
Tulir Asokan
3d778a5a44 Create user_portal row when creating portal for new chat
Closes #273

Co-authored-by: dbedoya <dbedoya@ikono.com.co>
2021-02-26 16:09:24 +02:00
Tulir Asokan
0e3bf04daf Improve post-reconnection resending and fix potential encryption races 2021-02-25 17:22:29 +02:00
Tulir Asokan
6227dfb669 Fix re-syncing broadcast list recipients 2021-02-21 15:00:04 +02:00
Tulir Asokan
ac2ca08007 Sync broadcast list recipients too 2021-02-21 14:45:38 +02:00
Tulir Asokan
a911a0c1a9 Add better support for broadcast lists 2021-02-21 14:18:15 +02:00
Tulir Asokan
7bd47fabb2 Update go-whatsapp to break everything and maybe improve things 2021-02-18 23:36:14 +02:00
Tulir Asokan
ca118e8678 Handle 404 errors when backfilling messages 2021-02-17 01:22:06 +02:00
Tulir Asokan
69dd7f803a Move whatsapp-ext to go-whatsapp 2021-02-17 01:21:30 +02:00
Tulir Asokan
9f4283b4e0 Add option to disable bridging Matrix leave events 2021-02-10 22:15:23 +02:00
Tulir Asokan
87ead90e03 Ignore group leaves in message history 2021-02-10 20:27:14 +02:00
Tulir Asokan
394da69a69 Ignore picture commands if chat meta sync is disabled
We get the same data from the message log
2021-02-09 23:52:55 +02:00
Tulir Asokan
2188dc7701 Add option to not re-sync chat info and user avatars to avoid rate limits 2021-02-09 23:41:13 +02:00
Tulir Asokan
500cb0cd7c Improve logging when fetching backfill messages 2021-01-23 18:09:58 +02:00
Tulir Asokan
e6ccdb83b7 Revert portal backfill lock changes and update mautrix-go 2020-11-18 13:29:47 +02:00
Tulir Asokan
83779c6970 Correctly log cases where getMessageIntent returns nil 2020-11-17 02:16:32 +02:00
Tulir Asokan
7d54aca762 Add metric for tracking buffer size 2020-11-16 14:28:08 +02:00
Tulir Asokan
05b8d577f3 Retry sending messages if server returns 502 2020-11-09 18:05:23 +02:00
Tulir Asokan
a49a5fa3d4 Retry sending when receiving 599 error 2020-11-04 14:58:24 +02:00
Tulir Asokan
a1740db0d7 Fix bridge->bridge file names
WhatsApp uses the "title" and "fileName" fields for document names. The bridge
was only reading title and sending fileName, so sending a document from one
bridge to another through WhatsApp would lose the file name.

Also use names like "image.png" instead of "<random id>.png" for unnamed files
2020-11-02 17:18:21 +02:00
Tulir Asokan
63933d0c7e Include debug message when receiving 599 status code 2020-10-26 17:10:46 +02:00
Tulir Asokan
cccaa62a20
Merge pull request #232 from rreuvekamp/fix_228
Set RestrictMessageSending in portal create+update
2020-10-24 16:53:46 +03:00
Remi Reuvekamp
702a837929 Set RestrictMessageSending in portal create+update
Fixes #228
2020-10-12 12:59:14 +02:00
Tulir Asokan
cd8352a7df Remove webp conversion 2020-10-09 18:24:29 +03:00
Tulir Asokan
491d8b232e Stop using github.com/pkg/errors 2020-10-05 22:38:34 +03:00
Tulir Asokan
d67c3a8c96 Wait up to 3 seconds for encryption keys to arrive 2020-09-24 15:25:36 +03:00
Tulir Asokan
2638204eaa Add option to update m.direct with double puppeting 2020-08-22 13:07:55 +03:00
Tulir Asokan
9671b6c39a Use MentionedJIDs metadata instead of assuming everything is a mention 2020-07-31 14:30:58 +03:00
Tulir Asokan
0430446d6d Make message buffers bigger and make locking message handling less hacky 2020-07-23 20:10:21 +03:00
Tulir Asokan
3e7853f125 Send errors for more types of media bridge errors 2020-07-21 16:08:54 +03:00
Tulir Asokan
4a673b92fa Kick left users when syncing members 2020-07-05 23:16:59 +03:00
Tulir Asokan
8f805c539a Fix backfill in private chat portal with self 2020-07-05 19:24:48 +03:00
Tulir Asokan
ffb8529b73 Allow creating private chat portal by inviting WhatsApp puppet. Fixes #110 2020-07-05 18:57:03 +03:00
Tulir Asokan
43a3815970 Fix some things related to m.bridge 2020-07-03 13:47:02 +03:00
Tulir Asokan
44b399790b Fix replies in encrypted rooms 2020-06-30 16:26:13 +03:00
Tulir Asokan
8cfb04a5ed Handle WhatsApp invites. Fixes #120 2020-06-26 00:13:03 +03:00
Tulir Asokan
326293303d Handle WhatsApp kicks and Matrix invites 2020-06-25 23:58:35 +03:00
Tulir Asokan
fed6756ae5 Handle leaving and kicking from Matrix. Fixes #47 2020-06-25 23:33:11 +03:00
Tulir Asokan
cbd1a79e80 Ignore some types of message parse errors 2020-06-23 19:03:20 +03:00
Tulir Asokan
3fe9289f91 Add support for Matrix->WhatsApp GIF bridging. Fixes #141 2020-06-23 16:37:13 +03:00
Tulir Asokan
689202f43d Move HandleMediaMessage parameters to a struct 2020-06-20 22:24:27 +03:00
Lieuwe Rooijakkers
9cc8b04c8e use whatsapp document filename for document type files
Fixes #199
2020-06-20 17:29:52 +02:00
Tulir Asokan
8e30262275 Fix sending updated bridge info 2020-06-15 20:39:16 +03:00
Tulir Asokan
59e2015fa7 Add option to resend bridge info to all portals 2020-06-15 20:28:04 +03:00
Tulir Asokan
ec86259a20 Update bridge info when portal metadata changes 2020-06-15 14:56:52 +03:00
Tulir Asokan
b8de8544e1 Add state key to m.bridge events 2020-06-11 14:41:45 +03:00
Tulir Asokan
7c799f1faa Encrypt media from WhatsApp when sending to encrypted portal 2020-06-10 15:26:14 +03:00
Tulir Asokan
210b1caf65 Add bridging of location messages to Matrix 2020-06-10 14:58:57 +03:00
Tulir Asokan
e4a160e650 Add basic bridging of contact messages to Matrix 2020-06-10 14:06:36 +03:00
Tulir Asokan
934f98119f Add option to disable notifications during initial backfill 2020-06-08 20:51:24 +03:00
Tulir Asokan
535efcc8bd Send "delivery" receipt for messages bridged from WhatsApp too 2020-06-05 17:54:09 +03:00
Tulir Asokan
f1b50a22f3 Add bridge info state events for new portal rooms 2020-06-01 15:09:58 +03:00
Tulir Asokan
c72610f3f0 Fix handling new messages during initial portal backfill 2020-05-28 20:35:43 +03:00
Tulir Asokan
46e53eca4d Fix bridging messages to WhatsApp with relaybot. Fixes #191 2020-05-25 23:11:00 +03:00
Tulir Asokan
c6b4f34c28 Add option to send read receipt on confirmed delivery to WhatsApp 2020-05-25 11:17:47 +03:00
Tulir Asokan
aa0a4d3eea Call LoadMediaInfo and retry if media download fails with 404/410 2020-05-24 17:46:19 +03:00
Tulir Asokan
5a62982a56 Add option to query message from phone when send times out 2020-05-24 17:28:30 +03:00
Tulir Asokan
c909a85fc7 Re-add sending bridging failure messages 2020-05-24 15:44:20 +03:00
Tulir Asokan
91bb38eaa3 Wait for response even after message send timeout 2020-05-24 15:33:26 +03:00
Tulir Asokan
4f09835b81 Fix sending captions to Matrix 2020-05-22 17:13:23 +03:00
Tulir Asokan
e4bc254a65 Change incoming call notices back to m.text 2020-05-21 20:14:43 +03:00
Tulir Asokan
e08676079a Fix bridging encrypted media from Matrix 2020-05-20 16:45:21 +03:00
Tulir Asokan
a770263d86 Encrypt media bridging error notices 2020-05-12 23:38:01 +03:00
Tulir Asokan
1c3de877db Maybe support e2be by default and fix some bugs 2020-05-12 22:25:55 +03:00
Tulir Asokan
6e50a7c380 Switch appservice module location 2020-05-09 20:08:05 +03:00
Tulir Asokan
f89fcf7212 Make no-cgo build work without source changes 2020-05-09 02:08:23 +03:00
Tulir Asokan
baae66ed04 Add basic end-to-bridge encryption support
Still missing persisting sync tokens and crypto state in DB
2020-05-09 02:04:01 +03:00
Tulir Asokan
acc25a02e4 Update mautrix-go 2020-05-08 22:32:22 +03:00
Peter Roberts
973afcdd26 portal: bridge notices 2020-04-12 10:38:44 +03:00
rafaeltheraven
6d806227c7 Actually removed instead of commenting out :P 2020-01-09 10:46:45 +01:00
rafaeltheraven
c8e5c06a57 Removed strange workaround, fixing #134 2020-01-09 10:41:45 +01:00
Tulir Asokan
302fae6649 Bypass mautrix.Content's MarshalJSON. Fixes #132 2020-01-07 22:27:37 +02:00
Tulir Asokan
8c3807a16d Add puppet to personal filtering community when adding portal 2020-01-07 21:40:51 +02:00
Tulir Asokan
e4ddc43007
Merge pull request #118 from 14mRh4X0r/support-go-1-11
Replace ReplaceAll(…) with Replace(…, -1)
2019-12-31 21:26:31 +02:00
Tulir Asokan
e056459ab4 Add/fix sticker bridging in both directions
* Matrix stickers are sent as images
* WhatsApp stickers were missing the incoming event handler

Fixes #124
Fixes #127
Closes #126
Closes #129

Co-authored-by: rafaeltheraven <rafael.dulfer@gmail.com>
2019-12-31 20:22:04 +02:00
Willem Mulder
041c257e7a Replace ReplaceAll(…) with Replace(…, -1)
This allows people to build the bridge with Go 1.11, the current version
in Debian stable.
2019-12-02 22:52:40 +01:00
Tulir Asokan
bb1d28c755 Fix typo 2019-11-13 09:40:41 +02:00
Tulir Asokan
14f039f5a4 Don't drop messages even if database says authenticated user is not in chat 2019-11-13 09:36:43 +02:00