Commit Graph

21 Commits

Author SHA1 Message Date
Skip R
abcc0dca47 msgconv/from-discord: port sticker conversion 2026-02-09 14:13:54 -08:00
Skip R
1fcc910184 msgconv/from-discord: add per-message profiles 2026-02-06 17:42:51 -08:00
Skip R
094bc9bd77 connector: support transaction IDs 2026-02-03 22:03:29 -08:00
Skip R
92352ce603 discordid: remove all ID-related casts
In the same vein as mautrix-whatsapp, -slack and others, do not make
assumptions about how the ID is represented in the connector code. Let
the discordid package be entirely responsible.
2026-02-01 21:09:17 -08:00
Tulir Asokan
e7554b212f msgconv/attachments: don't fail if mimeless file has less than 512 bytes 2026-01-28 17:37:34 +02:00
Tulir Asokan
d89746d099 msgconv: clean up reuploading attachments to Matrix 2026-01-28 17:21:19 +02:00
Skip R
1a3144d2d0 msgconv/from-discord: bridge replies 2026-01-27 22:29:55 -08:00
Skip R
b8a01bf9d4 msgconv/from-discord: use a tagged switch instead of if 2026-01-27 19:12:26 -08:00
Skip R
578030a9dd msgconv/from-discord: only complain about portal when we can't find it 2026-01-27 19:11:57 -08:00
Skip R
2f8de6635a msgconv/from-discord: refactor forwarded message conversion 2026-01-27 19:10:58 -08:00
Skip R
ac338ee722 msgconv: correctly bridge attachments and embeds
`URL` needs to be set if the room/attachment is unencrypted; otherwise,
`File` needs to be set.
2026-01-14 18:07:15 -08:00
Skip R
bdbfd661a2 msgconv: don't set EncryptedFile if there isn't one
FIXME: This probably isn't proper handling, but this is enough to
prevent panics.
2026-01-13 14:50:35 -08:00
Skip R
f5292e6a7d connector: first pass at bridging guilds
For each guild specified in the config, create a space and bridge all
contained text channels that the user has permissions to view.

* Finally add a custom config struct where we accept a list of guild IDs
  to bridge. This is intended to be temporary as we flesh out the proper
  interfaces for managing which guilds to bridge.
* Defined a custom meta type for portals that holds the containing guild
  ID of the channel (if any).
* Transferred the responsibility of building a channel's ChatInfo and
  ChatMemberList to the DiscordChatResync event itself.
2026-01-09 19:57:17 -08:00
Skip R
fdcfb2b083 chore: bump copyright year 2026-01-08 16:56:13 -08:00
Skip R
e71075cd0d handlematrix: bridge outgoing message attachments 2026-01-05 22:29:26 -08:00
Skip R
2cacd4ec81 msgconv: bridge outgoing replies 2025-12-17 18:23:08 -08:00
Skip R
d82b74fb29 handlematrix: handle basic matrix rich text messages
Added the necessary room capabilities, too. Support for replies,
editing, deletion, and attachments are forthcoming.
2025-12-16 18:37:35 -08:00
Skip R
60171b4fca lint 2025-12-11 19:56:31 -08:00
Skip R
b5e6db06f8 msgconv: port most of attachment and text message bridging
* Created a separate discordid package to avoid import cycles.
* Implemented attachment bridging. We still need to implement direct
  media, but this will do for now.
* Corrected how encrypted files (e.g. embed images and attachments) were
  bridged. Previously, the URL field would be empty.

Still a lot of missing pieces. Thoughts:

* Mentions to roles and custom emoji are not rendered properly. We need
  to maintain our own DB.
* We might not need the "attachments" leaf package anymore? It's just
  there to avoid an import cycle.

Bridging actual events (i.e. wiring up discordgo's event handlers) is
probably next.
2025-11-26 18:13:07 -08:00
Skip R
86e18c1f7d msgconv: port the majority of embed and attachment bridging
We still need to implement direct media support, so for now we encrypt
and reupload to Matrix. Notably remaining is conversion to HTML.
2025-11-26 15:18:29 -08:00
Skip R
17fed9aca5 msgconv: initial impl of ToMatrix, porting convertDiscordTextMessage 2025-11-25 18:01:31 -08:00