simple and asynchronous matrix appservice framework
Find a file
MarkusRost 865c1eb9f4
Make Discord id length variable and fix webhook hash (#16)
* prevent duplicate user for interactions

* fix for older discord accounts

* check channel mentions against full channel list

* Fix compatibility for Python 3.7

Replace dict with Dict object from typing module

* remove scary hashing

* always expect guild_id

* change hash to djb2

* Revert "always expect guild_id"

This reverts commit dbcb3d1b9c97f6ceda0cf982b4bd7228926112c3.

* guild_id warning, don't group bot created webhooks

* fmt

Co-authored-by: Friskygote <7283122+Friskygote@users.noreply.github.com>
Co-authored-by: Wolf Gupta <e817509a-8ee9-4332-b0ad-3a6bdf9ab63f@aleeas.com>
2022-01-01 18:40:37 +05:30
appservice Make Discord id length variable and fix webhook hash (#16) 2022-01-01 18:40:37 +05:30
bridge update readmes 2021-12-09 13:43:13 +05:30
misc refactor (#5) 2021-03-25 10:48:04 +05:30
LICENSE Create LICENSE 2020-11-11 11:48:31 +00:00
README.md update readmes 2021-12-09 13:43:13 +05:30

matrix-discord-bridge

A simple bridge between Matrix and Discord written in Python.

This repository contains two bridges:

  • A puppeting appservice: 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 and discord.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)

TODO

  • Handle cases where the webhook is messed with on the Discord side (Deleted/Edited by someone other than the bot).
  • Use embeds on Discord side for replies.
  • Unbridging.