Commit Graph

44 Commits

Author SHA1 Message Date
Andrew Ferrazzutti 57c448e0c3 Contact syncing and invites
* Add ability to sync all LINE contacts, which is relevant because the
  list of recent chats excludes users you haven't spoken to lately.
* Add bot command to list all contacts.
* Allow inviting a puppet to a DM to create a portal for that LINE user,
  instead of having to wait for that user to message you first.
2021-07-19 04:10:10 -04:00
Andrew Ferrazzutti e0f21ed824 Don't error on member leave if puppet left already 2021-07-05 18:51:29 -04:00
Andrew Ferrazzutti 9e739e9908 Track LINE user joins and leaves
Also try to improve accuracy of message dates, and matching user names
to their proper ID & avatar
2021-07-05 02:37:14 -04:00
Andrew Ferrazzutti 09cea5b43c Make puppets leave instead of kicking them 2021-07-03 18:24:09 -04:00
Andrew Ferrazzutti 0672d41431 Update participants in DMs again
Needed to kick own puppet when double-puppeting is re-enabled
2021-07-03 12:43:34 -04:00
Andrew Ferrazzutti 8c2c0126c9 Sync, store, and poll for incoming read receipts 2021-07-02 14:04:52 -04:00
Andrew Ferrazzutti 2c026939c3 Minor formatting fixes 2021-06-17 23:59:25 -04:00
Andrew Ferrazzutti 40a48d12a2 Don't view groups/rooms when possible, via MSC2409
Use the sidebar to sync non-DM messages, just like what's done for DM
messages.

However, since sidebar messages don't say who sent a message, this
requires scanning read receipts with MSC2409: when a non-DM sidebar
message is seen, the bridge bot sends that message. Only when that
placeholder is viewed in Matrix does Puppeteer actually view the non-DM
chat to find who really sent the message. Then the bridgebot redacts its
message, and the message gets re-sent by the puppet of the LINE user who
really sent it.
2021-06-17 23:32:45 -04:00
Andrew Ferrazzutti 1ae30bcf1b Use read receipts to know when to sync media
Instead of having to view a LINE chat when a media message is sent, send
a placeholder message that gets replaced with the actual media when it's
viewed in Matrix.
2021-06-17 00:42:06 -04:00
Andrew Ferrazzutti a3e7caac27 Merge branch 'master' into better-receipts-msc2409 2021-06-16 22:14:26 -04:00
Andrew Ferrazzutti 555b19c289 Always use LINE puppet for own messages
...that are sent from another client.

Also look up the profile data for the user's LINE account on sync,
including at startup, so that there's always a puppet available.
2021-06-15 02:55:55 -04:00
Andrew Ferrazzutti 8fb0e2a101 Add missing await
And a safer null check
2021-06-14 01:53:26 -04:00
Andrew Ferrazzutti 85dc7a842e Don't view LINE DMs whenever possible
Use the sidebar to sync DM messages instead of visiting the DM itself,
so as to not make LINE (and your contact) think you really read the DM.

This cannot be done for non-text messages (which are not previwable in
the sidebar) and non-DM chats (whose sidebar messages don't say who sent
a message).
2021-06-10 02:54:12 -04:00
Andrew Ferrazzutti 1cf840e3d9 maunium -> miscworks 2021-06-10 02:51:23 -04:00
Andrew Ferrazzutti 02cc6ce0e4 Add missing await 2021-06-10 02:19:24 -04:00
Andrew Ferrazzutti d8b209b04f Send delivery receipts for double-puppeted messages 2021-06-10 02:19:12 -04:00
Cristian Le 3286d7e6e2 Invite only on direct chat 2021-06-07 10:05:36 +09:00
Cristian Le 9270761b20 Missing invite for bridgebot
Most evident at room creation, but more might need to be added
2021-06-07 10:05:36 +09:00
Andrew Ferrazzutti 9d1d6e379c Support LINE users with no discoverable ID
AKA "strangers". Should only happen to non-friends in rooms (not groups!)
2021-06-06 18:24:44 -04:00
Andrew Ferrazzutti ec14b90711 Allow syncing pathless avatar images
But only if a path wasn't yet found for that image
2021-06-06 18:24:42 -04:00
Andrew Ferrazzutti 27fda19567 Allow enabling encryption after room creation
Also forbid reactions
2021-06-06 18:20:17 -04:00
Andrew Ferrazzutti 11ba99e17b Fix mistake in receipt sending
And possible mistake in member kicking
2021-06-06 18:19:36 -04:00
Andrew Ferrazzutti c89c59e7fc Handle incoming line breaks 2021-06-06 18:18:57 -04:00
Andrew Ferrazzutti 6d646e082b Inbound sync & sticker improvements
- Handle "decrypting" state of messages
- Handle lazy loading of emoji
- Better handle lazy loading of images/stickers
- Improve reliability of message sending, especially when sending
  several messages quickly
- Use m.sticker events for inbound stickers instead of m.image, and add
  a config to optionally use m.image if desired
- Use proper sizing for emoji, and add config to scale them since they
  are somewhat small
- Deduplicate stickers as best as possible (works until they get a
  different blob URL)
- Add config to disable bridging stickers/emoji
- Send m.notice for inbound messages of unknown type
2021-06-06 18:15:38 -04:00
Andrew Ferrazzutti 94788a21dd Various fixes and cleanups 2021-06-05 23:41:05 -04:00
Andrew Ferrazzutti baf7db73b7 Kick own puppets when turning on double puppeting
And invite them when turning it off
2021-05-06 02:15:21 -04:00
Andrew Ferrazzutti 27c66887c3 Catch some inbound sync errors 2021-05-05 02:41:06 -04:00
Andrew Ferrazzutti b197d90118 Fix shared secret double-puppeting 2021-05-05 02:40:28 -04:00
Andrew Ferrazzutti 6f62eb0054 Update dependencies 2021-05-04 22:00:13 -04:00
Andrew Ferrazzutti e13f59a8f3 Rework message syncing and sending 2021-04-27 02:59:16 -04:00
Andrew Ferrazzutti c8d1d38d21 Incoming read receipts for MRU chats
TODO: poll other chats for read receipts
2021-04-22 02:40:50 -04:00
Andrew Ferrazzutti d30402a98f More robust message syncing and room cleaning 2021-04-22 02:39:52 -04:00
Andrew Ferrazzutti 0ce6b833e3 Attempt to fix ordering of incoming messages 2021-04-21 02:38:10 -04:00
Andrew Ferrazzutti 3126543321 Deduplicate emotes 2021-04-09 00:23:12 -04:00
Andrew Ferrazzutti 935bc6bdb8 Maybe fix message sorting 2021-04-06 01:57:15 -04:00
Andrew Ferrazzutti fc8bc79ffd Inbound sticons (emoticons)
MAJOR TODO: Non-duplication of uploaded image data
2021-04-05 03:56:01 -04:00
Andrew Ferrazzutti 4edf0cdaa5 Set room avatar on room creation
Also set proper power levels
2021-04-01 02:24:27 -04:00
Andrew Ferrazzutti d09a6c443a Don't error-out on re-encountered message ID
Instead, post notice that bridging the message may have failed.
2021-03-31 01:57:18 -04:00
Andrew Ferrazzutti 00e7226efe Outbound images, no echo 2021-03-28 03:16:07 -04:00
Andrew Ferrazzutti 36ba98fda1 Outbound images (bad echo) 2021-03-27 03:37:41 -04:00
Andrew Ferrazzutti a5d9cc5ebc Inbound images 2021-03-27 01:12:43 -04:00
Andrew Ferrazzutti 884d0d32fe Working avatars and icons 2021-03-26 02:27:21 -04:00
Andrew Ferrazzutti b007751610 Avatar and icon URLs 2021-03-23 02:37:30 -04:00
Andrew Ferrazzutti 456ac7ff50 Rename again 2021-03-15 01:40:56 -04:00