simple and asynchronous matrix appservice framework
4713a00016
* Use websocket events to sync usernames/avatars instead of periodic syncing. * Use caches for fetched room_ids, room state (for usernames and avatars). Also switch to using a single cache with locks. * Don't store full message objects in cache, just store the relation of matrix event IDs to discord message IDs and vice-versa. Content can be fetched from the server instead. * Don't rely on websocket events for mentioning Discord users, mentions are now done by mentioning the dummy matrix user. The ID to be mentioned is extracted from the MXID instead. * General clean-ups. |
||
---|---|---|
appservice | ||
bridge | ||
misc | ||
LICENSE | ||
README.md |
matrix-discord-bridge
A simple bridge between Matrix and Discord written in Python.
This repository contains two bridges:
-
A puppeting appservice (experimental-ish): The puppeting bridge written with minimal dependencies. Running this requires a self-hosted homeserver.
-
A non-puppeting bridge: The non-puppeting bridge written with
matrix-nio
anddiscord.py
, most people would want to use this one.
Check their READMEs for specific information.
What Works
- Puppeting (Appservice only, regular bridge only uses webhooks on Discord.)
- Attachments (Converted to URLs.)
- Typing Indicators (Per-user indicators on Appservice, otherwise sent as bot user.)
- Message redaction
- Replies
- Bridging multiple channels
- Discord emojis displayed as inline images
- Sending Discord emotes from Matrix (
:emote_name:
) - Mentioning Discord users via partial username (
@partialname
)