Commit graph

143 commits

Author SHA1 Message Date
Tulir Asokan
bb9a0f6528 Make relay mode more like the Signal bridge 2021-10-28 13:57:15 +03:00
Tulir Asokan
ded2fb9799 Implement logout and provisioning API login 2021-10-27 15:54:34 +03:00
Tulir Asokan
7aa838dce6 Make delete-all-portals temporarily admin-only 2021-10-26 22:13:31 +03:00
Tulir Asokan
0b4d0bbbe1 Handle history sync payloads with MSC2716 batch sending 2021-10-26 17:01:10 +03:00
Tulir Asokan
56850bb698 Initial switch to go.mau.fi/whatsmeow 2021-10-22 20:14:34 +03:00
Christian Paul
cc80c90565 Login help text: Remove trailing apostrophe 2021-09-23 11:03:56 -04:00
Tulir Asokan
abbff16e66 Switch bridge state system to using state events 2021-08-04 16:14:47 +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
74e21b8e1d Make bridge state monitoring more generic 2021-06-01 15:19:47 +03:00
Tulir Asokan
dbdd3258b2 Fix version command output 2021-04-29 14:00:26 +03:00
Tulir Asokan
06a041981d Merge remote-tracking branch 'conor-f/toggle-presence-and-receipts' 2021-04-19 19:25:40 +03:00
Tulir Asokan
cbdd10e704 Send real-time whatsapp connection state to asmux 2021-03-15 18:06:16 +02:00
Tulir Asokan
e19f8c7532 Fix some relaybot room create issues
Fixes #270
Fixes #236
2021-03-08 01:51:37 +02:00
Conor Flynn
58d793724c Allows toggling both presence and receipts with one command param. 2021-03-02 17:06:16 +00: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
7bd47fabb2 Update go-whatsapp to break everything and maybe improve things 2021-02-18 23:36:14 +02:00
Tulir Asokan
69dd7f803a Move whatsapp-ext to go-whatsapp 2021-02-17 01:21:30 +02:00
Tulir Asokan
ba0ec021ba Update go-whatsapp 2021-02-10 21:20:31 +02:00
Tulir Asokan
3c7ff4bc0c Miscellaneous improvements to connection management 2021-02-05 19:26:09 +02:00
Tulir Asokan
eba66693b0 Fix handling empty commands 2020-12-28 00:21:26 +02:00
Tulir Asokan
e02da56ad0 Fix creating groups in unencrypted rooms
Fixes #209
Closes #233
2020-10-24 16:51:24 +03:00
Tulir Asokan
0f17863708 Add command to reset the megolm session in a room 2020-10-05 22:32:15 +03:00
Tulir Asokan
f21f57f09f Fix delete-session not deleting all cached state 2020-10-04 13:55:09 +03:00
Tulir Asokan
3dae9b1999 Add connection state to prometheus metrics 2020-09-27 22:30:08 +03:00
Tulir Asokan
b7275a763a Make bridging receipts togglable separately from presence 2020-07-10 16:26:55 +03:00
Tulir Asokan
518cb076ff Add command to create WhatsApp group 2020-07-10 15:23:32 +03:00
Tulir Asokan
7eb4cfb946 Add command to disable bridging presence and read receipts 2020-07-10 14:53:18 +03:00
Tulir Asokan
07927741bf Linkify already existing portal error message in pm command 2020-07-05 19:41:28 +03:00
Tulir Asokan
7dc4632cd4 Create new portal if invite fails in pm command. Fixes #188 2020-07-05 19:27:40 +03:00
Tulir Asokan
326293303d Handle WhatsApp kicks and Matrix invites 2020-06-25 23:58:35 +03:00
Tulir Asokan
3a571b2c7a Add command to join groups with invite link 2020-06-25 23:29:25 +03:00
Tulir Asokan
67864d8475 Make command system work better in private chat portals 2020-06-25 22:42:52 +03:00
Tulir Asokan
09a08a9ef4 Add command to get group invite link 2020-06-25 22:40:34 +03:00
Tulir Asokan
63a1a77f26 Update go-whatsapp to handle unknown ping responses 2020-06-23 15:36:08 +03:00
Tulir Asokan
8bcf81879d Add connect as alias to reconnect command 2020-06-15 19:00:29 +03:00
Tulir Asokan
b88b02ace3 Add missing v to version command output 2020-06-04 01:34:50 +03:00
Tulir Asokan
3f35a90145 Send plain version number to WhatsApp 2020-06-03 20:59:44 +03:00
Tulir Asokan
f3793309a0 Fix +dev suffix in version 2020-06-03 20:44:52 +03:00
Tulir Asokan
09385713de Include commit information in CI builds. Fixes #158 2020-06-03 20:32:53 +03:00
Tulir Asokan
2857b57c8e Use strings.Fields instead of manually removing spaces 2020-05-24 19:03:57 +03:00
Tulir Asokan
bb883e1262 Ignore multiple spaces in commands 2020-05-24 17:03:50 +03:00
Dekedro
daee58bece Fix out of range access when requesting last page with list
Prevent command `list` from failing with out of range access error if number
of entries is lower than maximum entry index for that page a.k.a.
if `len(result) < page*max`
2020-05-24 13:07:46 +00:00
Tulir Asokan
3d92a98891 Fix sorting list output 2020-05-24 00:11:56 +03:00
Tulir Asokan
abffc0b54c Fix default page number in list command 2020-05-23 23:52:05 +03:00
Tulir Asokan
ba4aaa8f52 Add missing commands to help 2020-05-23 23:25:22 +03:00
Tulir Asokan
2353924456 Paginate output of list command
Fixes #147
Closes #148
2020-05-23 23:17:45 +03:00
Tulir Asokan
64af0209b7 Suggest delete-session when trying to logout without connection. Fixes #98 2020-05-21 20:50:54 +03:00
Tulir Asokan
9002bf62ed Fix needing to reconnect after initial login 2020-05-21 19:49:01 +03:00
Tulir Asokan
db5c1a3f61 Make sure user gets invited to portal when using open command 2020-05-12 20:30:38 +03:00
Tulir Asokan
6e50a7c380 Switch appservice module location 2020-05-09 20:08:05 +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
Remi Reuvekamp
46b784ca3d Disconnect before reconnecting 2020-03-11 17:21:51 +01:00
Remi Reuvekamp
a932911c56 Fix #142
Don't disconnect when trying to reconnect and receiving a ErrAlreadyLoggedIn as a result.
2020-03-11 16:28:14 +01:00
Tulir Asokan
691d2ea1b3 Fix NeedsRelaybot check and relaybot command handling without arguments 2019-11-11 22:30:59 +02:00
Tulir Asokan
03d42640fe Add basic relaybot support. Fixes #20 2019-11-10 21:22:11 +02:00
Tulir Asokan
d91f705e95 Fix most unexpected logout bugs, handle connection-in-progress states better and send warning message if sending to whatsapp times out 2019-08-30 22:04:57 +03:00
Tulir Asokan
4747d6999b Add different error message in ping if user has no session 2019-08-30 21:32:47 +03:00
Tulir Asokan
2313321d01 Improve startup sync timeout handling 2019-08-30 20:57:08 +03:00
Tulir Asokan
1490830be2 Use handlers instead of sleeping for startup chat/contact sync 2019-08-25 00:25:29 +03:00
Tulir Asokan
44a0fc65b8 Handle 400 init response and add ping command. Fixes #87 2019-08-24 22:39:12 +03:00
Tulir Asokan
2bf3edda16 Add logout-matrix command 2019-05-31 23:02:00 +03:00
Tulir Asokan
83f4cf2811 Fix crash and add more logging 2019-05-31 20:51:16 +03:00
Tulir Asokan
a40584db41 Add command to delete all own portals for a fresh start 2019-05-31 19:33:18 +03:00
Tulir Asokan
02f78155b5 Only invite default puppet for backfilling when needed 2019-05-30 17:48:22 +03:00
Tulir Asokan
2c9c473040 Add basic Matrix puppeting support
May contain bugs.
EDUs from /sync are not yet handled.
2019-05-24 02:33:30 +03:00
Tulir Asokan
8d0d5ff504 Switch sync command to use syncPortals and syncPuppets methods used at startup 2019-05-23 22:57:59 +03:00
Tulir Asokan
239de25bf0 Don't connect in reconnect command if the user is not logged in 2019-05-23 20:11:55 +03:00
Tulir Asokan
f9c3e99d10 Fix/change things 2019-05-23 20:09:22 +03:00
Tulir Asokan
b363547bdf Possibly significantly improve how portals are created and synced 2019-05-22 16:46:18 +03:00
Tulir Asokan
adc7257490 Add admin command to delete portal and fix some other things 2019-05-21 21:06:27 +03:00
Tulir Asokan
23747d4917 Add automatic connection retries 2019-05-17 23:53:57 +03:00
Tulir Asokan
2381eb029b Report WhatsApp server connection errors to user too. Fixes #18 2019-05-16 18:18:11 +03:00
Tulir Asokan
5d0edda04a Add command to delete session information to force logout when the bridge gets stuck 2019-05-16 18:00:46 +03:00
Tulir Asokan
e25bf29609 Handle startup connection errors 2019-05-16 00:18:43 +03:00
Tulir Asokan
adbdf55926 Improve edge case handling in login command by not assuming connection status 2019-05-15 23:17:09 +03:00
Tulir Asokan
6b73c66e12 Improve connection error handling 2019-05-15 23:04:09 +03:00
Remi Reuvekamp
31ef9d339f Disallow using session commands when not logged in
This fixes panics that happen because the handlers assume the user is logged
in when the command is executed.

Example of a panic that happened:

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x928d7c]

goroutine 127 [running]:
main.(*CommandHandler).CommandList(0xc0001783c0, 0xc00016bef8)
	/build/commands.go:186 +0x6c
main.(*CommandHandler).Handle(0xc0001783c0, 0xc000455920, 0x1b,
0xc0002480c0, 0xc000250470, 0x4)
	/build/commands.go:89 +0x1f3
main.(*MatrixHandler).HandleMessage(0xc000176db0, 0xc0001ae6c0)
	/build/matrix.go:161 +0x203
created by maunium.net/go/mautrix-appservice.(*EventProcessor).Start
2019-03-15 15:45:27 +01:00
Tulir Asokan
c88e299348 Set name for status broadcast room when creating and reformat example config
Fixes #27
2019-03-14 00:54:05 +02:00
Tulir Asokan
361a1a1d1c Remove import command and add sync, list, open and pm
Fixes #29
2019-02-20 14:39:46 +02:00
Tulir Asokan
79bd35964f Update license year, Dockerfile, docker-run.sh and deps and add editorconfig 2019-01-12 15:54:04 +02:00
Tulir Asokan
1cccefd34c Switch to Go modules 2019-01-11 21:17:39 +02:00
Tulir Asokan
c6d33d8bba Make sure there are enough args before getting args 2018-12-08 01:30:15 +02:00
Jörg Sommer
ae2ccb0d38 CommandHelp: don't print cmdprefix in management room
In the management room the user don't need to prefix the commands with the
command-prefix. Hence, don't show the prefix in the command list.
2018-12-07 23:31:15 +01:00
Jörg Sommer
da5e399333 CommandEvent.Reply: Send all messages to management room
Because the Bridge Bot doesn't participate in the rooms it can't send any
messages to this room. Hence, we should send all replies to the management
room.
2018-12-07 20:08:06 +01:00
Jörg Sommer
a626d14a3f No sync on startup; new command import contacts
Having an import of all contacts on each startup and after login is very
annoying, if you have a big list of contacts. If you choose to not join a
room with all contacts, you get the invitation over and over on each
restart of the service. Better is to have a command for the management
room to explicitly start the import.
2018-12-07 20:08:06 +01:00
Krombel
ed79002592 extend comments on methods of commands.go 2018-10-16 19:16:13 +02:00
Krombel
c107abbeb5 add reply for unknown command; use configured command prefix 2018-10-16 19:15:38 +02:00
Krombel
798a3dfd2c implement !help 2018-10-16 18:36:22 +02:00
Tulir Asokan
22cdf519f2 Fix desegregation changes to make the bridge work again 2018-08-30 01:10:26 +03:00
Tulir Asokan
c7348f29b0 Initial desegregation of users and automatic config updating 2018-08-29 00:40:54 +03:00
Tulir Asokan
22e76b6a37 Format 2018-08-26 22:53:13 +03:00
Tulir Asokan
a9124b89bd Fix and add things
* Fix user ID reservation in registration
* Fix some database things
* Add commands
* Add basic contact syncing and portal creation
* Add better error logging
2018-08-18 22:57:33 +03:00