Commit Graph

58 Commits

Author SHA1 Message Date
Andrew Ferrazzutti e4702d9d3e When kicked out of LINE, post last known LINE dialog message 2021-10-14 23:56:33 -04:00
Andrew Ferrazzutti 1932bca139 Log to puppeteer from content script 2021-10-14 23:55:38 -04:00
Andrew Ferrazzutti cd75cb0d35 Minor tweaks 2021-07-22 03:26:39 -04:00
Andrew Ferrazzutti f39781cdcc Sync non-recent groups by joining them 2021-07-21 21:28:12 -04:00
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 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 9f0d239f4e Fix some docstrings 2021-07-05 01:25:51 -04:00
Andrew Ferrazzutti 69028c6edd Fix problems with outgoing messages
1. Don't set the "own message" promise to null on resolve, as other
   places may still be awaiting on it afterwards
2. Retry pressing "Enter" to send a message if it doesn't work on the
   first try, which can happen for some reason
2021-07-02 14:04:53 -04:00
Andrew Ferrazzutti 915e3daa06 Convert data-local-id to number when needed 2021-07-02 14:04:53 -04:00
Andrew Ferrazzutti 921b5a6201 Commonize participant list selector 2021-07-02 14:04:53 -04:00
Andrew Ferrazzutti 5a560da5ab Update contentscript.js docstrings 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 f05a91e95d Better checks for chat messages to appear
- Re-click on a chat item if one click didn't work for some reason
- Wait long for a single message to appear, but stop early when found
- After single message found, wait less for more changes
2021-06-17 23:55:19 -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 ee5ccf9b2f Attempt to wait for chat messages to appear
When opening a chat (like during a sync or in response to a new message
notification), the message list loads lazily, so not waiting for all
items to load can cause messages to be missed.

However, there doesn't seem to be any indicator for when a message list
has been fully loaded...

As a best effort attempt, simply wait until no new updates to the
message list have been seen for a while.
2021-06-16 02:27:27 -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 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 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 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 712a256dee Fix incorrect time parsing
For some reason, string-interpolating the result of chrono.parseDate
can set the time of day-only dates to noon, instead of midnight, which
is much more useful as a baseline time.

To get midnight, prepend "00:00" to all day-only date strings before
parsing them with chrono.parseDate.
2021-06-05 23:56:54 -04:00
Andrew Ferrazzutti 6583815301 Dismiss error dialog for getting disconnected
If the connection to LINE is lost, when it comes back, and error dialog
appears. Detect that dialog and click it automatically.

The same detection works for any error dialog.
2021-06-05 23:51:12 -04:00
Andrew Ferrazzutti 94788a21dd Various fixes and cleanups 2021-06-05 23:41:05 -04:00
Andrew Ferrazzutti a2a21927cd Fix image/file sending 2021-05-06 00:43:26 -04:00
Andrew Ferrazzutti 4305d8f994 Fix tracking "Read by" counts in group chats 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 7f937d34e2 WIP read receipt improvements 2021-04-23 03:38:13 -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 a743d149df Touch up JS comment blocks 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 4f288b1754 Support EmojiOne for inbound messages
Use their Unicode format, which is available in alt text
2021-04-03 03:11:51 -04:00
Andrew Ferrazzutti 510018a51d Inbound stickers (same as images)
This also covers sticons, but only when a single one is sent as the sole
content of a message, in which case it behaves like a sticker/image.
2021-04-02 03:21:30 -04:00
Andrew Ferrazzutti afcc206a93 Wait for outbound images to be sent
Also prevent possible race condition in waiting for inbound images, and
generally tighten up file sending/receiving.
2021-03-29 01:25:05 -04:00
Andrew Ferrazzutti 5a33500765 Wait for inbound images to load 2021-03-28 04:23:07 -04:00
Andrew Ferrazzutti 00e7226efe Outbound images, no echo 2021-03-28 03:16:07 -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
Andrew Ferrazzutti 20f419a5c3 multi-user chats 2021-03-14 04:18:22 -04:00
Andrew Ferrazzutti b25bac8cea Rename 2021-02-26 14:19:48 -05:00
Andrew Ferrazzutti 5d77852d7a First crack at message receiving 2021-02-26 02:23:59 -05:00
Andrew Ferrazzutti 1b7642ce6d Cleanups and speedups 2021-02-26 02:23:59 -05:00
Andrew Ferrazzutti 0260ad89f4 First crack at backfilling 2021-02-26 02:23:59 -05:00
Andrew Ferrazzutti ec081e94df Some tweaks and comments 2021-02-26 02:23:59 -05:00
Andrew Ferrazzutti eb0f37274c Message sending 2021-02-26 02:23:59 -05:00
Andrew Ferrazzutti 1280916455 Attempt at syncing list of chats and their participants 2021-02-26 02:23:13 -05:00
Andrew Ferrazzutti 874fb375d9 Fix some more login problems 2021-02-26 02:23:13 -05:00