Compare commits

..

15 Commits

Author SHA1 Message Date
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 14de373787 Startup fixes 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 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 2fb9be2037 Small doc update 2021-06-04 02:19:46 -04:00
3 changed files with 4 additions and 5 deletions

View File

@ -74,9 +74,9 @@ class Config(BaseBridgeConfig):
copy("bridge.delivery_error_reports") copy("bridge.delivery_error_reports")
copy("bridge.resend_bridge_info") copy("bridge.resend_bridge_info")
copy("bridge.receive_stickers") copy("bridge.receive_stickers")
copy("bridge.resend_bridge_info")
copy("bridge.use_sticker_events") copy("bridge.use_sticker_events")
copy("bridge.emoji_scale_factor") copy("bridge.emoji_scale_factor")
copy("bridge.command_prefix")
copy("bridge.user") copy("bridge.user")
copy("puppeteer.connection.type") copy("puppeteer.connection.type")

View File

@ -865,7 +865,7 @@ class MautrixController {
lowerBound, i-1) lowerBound, i-1)
} }
} }
/** /**
* Insert the given message to the proper inner array. * Insert the given message to the proper inner array.
* In no inner array exists, insert a new one, preserving sort order. * In no inner array exists, insert a new one, preserving sort order.
@ -1315,4 +1315,4 @@ new MutationObserver(() => {
}).observe(mainApp, { }).observe(mainApp, {
attributes: true, attributes: true,
attributeFilter: ["class"], attributeFilter: ["class"],
}) })

View File

@ -126,7 +126,6 @@ export default class MessagesPuppeteer {
} }
this.log("Injecting content script") this.log("Injecting content script")
await this.page.addScriptTag({ path: "./src/contentscript.js", type: "module" }) await this.page.addScriptTag({ path: "./src/contentscript.js", type: "module" })
} }
/** /**
@ -184,7 +183,7 @@ export default class MessagesPuppeteer {
await this.page.evaluate( await this.page.evaluate(
element => window.__mautrixController.addPINAppearObserver(element), loginContentArea) element => window.__mautrixController.addPINAppearObserver(element), loginContentArea)
this.log("Waiting for login response") this.log("Waiting for login response")
let doneWaiting = false let doneWaiting = false
let loginSuccess = false let loginSuccess = false