Andrew Ferrazzutti
975e9c5369
Wait for open connection on startup
2021-07-07 02:22:12 -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
c4be4d79ed
Proper usage of asyncio exceptions
...
They belong to the asyncio package, not asyncio.exceptions.
Also remove an unused Tuple import
2021-07-03 12:49:21 -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
120e4e11f7
Lower minimum required Python version to 3.7
...
Just use Dict instead of TypedDict
2021-07-03 03:11:15 -04:00
Andrew Ferrazzutti
70061a560f
Update default avatar
2021-07-02 14:10:35 -04:00
Andrew Ferrazzutti
914d77a24b
Tweak database upgrade code style
2021-07-02 14:04:53 -04:00
Andrew Ferrazzutti
1fddc563e2
Avoid conflicting actions during sync
...
More is likely need for this to work well
2021-07-02 14:04:53 -04:00
Andrew Ferrazzutti
8c2c0126c9
Sync, store, and poll for incoming read receipts
2021-07-02 14:04:52 -04:00
Andrew Ferrazzutti
c124b4c49e
Replace `str.removeprefix`
...
to avoid having to bump Python version to 3.9
2021-06-18 00:38:45 -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
33ca6223c5
Use MSC2409 to send outgoing read receipts
...
When a message is viewed in Matrix, make Puppeteer view its LINE chat
2021-06-11 02:53:30 -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
Andrew Ferrazzutti
c5eea7b50b
Fix crash when logging in after a forced logout
...
Also tidy up bridge notices during the login flow
2021-06-08 00:24:00 -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
54507f8aaf
Catch getting logged out
...
Happens when logging into Line on Chrome somewhere else
2021-06-06 18:24:34 -04:00
Andrew Ferrazzutti
34ea2021ec
Attempt to respect bridge.initial_conversation_sync
...
But probably doing it wrong
2021-06-06 18:21:32 -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
2117685df7
Post startup messages in notice room
2021-05-05 02:42:41 -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
d894eafc21
Catch IncompleteReadError
...
It can happen when the input stream closes after a timeout.
2021-05-04 22:00:37 -04:00
Andrew Ferrazzutti
6f62eb0054
Update dependencies
2021-05-04 22:00:13 -04:00
Andrew Ferrazzutti
6a9d625d69
Bypass input stream buffer overruns
...
This fixes crashes that could otherwise happen when receiving animated
stickers.
2021-05-04 03:09:24 -04:00
Andrew Ferrazzutti
635151d079
Remove unneeded functions in ReceiptReaction
2021-04-30 02:56:15 -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
99aa333bc2
Replace semaphore with queue
2021-04-21 18:09:21 -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