mandelBRot - SweeZero's own chat relay/bridge.
Find a file
swee 14a55d904f
All checks were successful
Check code / syntax (push) Successful in 8s
Update README.md
2025-06-03 16:52:49 -07:00
.forgejo/workflows Update .forgejo/workflows/check.yml 2025-04-05 01:15:01 -07:00
logos Upload files to "logos" 2025-05-29 18:40:32 -07:00
.gitignore add external commands to revolt 2025-04-06 15:55:47 -07:00
Dockerfile change formatting, add dockerfile 2025-04-05 23:17:23 -07:00
LICENSE Update LICENSE 2025-03-01 06:47:16 -08:00
README.md Update README.md 2025-06-03 16:52:49 -07:00
requirements.txt Update requirements.txt 2025-04-07 16:09:21 -07:00
sweebridge.py Now it does. 2025-05-29 18:17:29 -07:00

mandelBRot (formerly SweeBridge)

SweeZero's own chat relay/bridge.

Warning

There is a new Rust port being worked on for performance.

Repo link

Discourse Post announcing mandelBRot

Dev note: I can't believe a dedicated bridge for SweeZero between Guilded and Libera.Chat became something so big like this :o

To-Do:

Current platforms:

Important

NEITHER SWEE.codes, nor the SweeZero community & contributors are responsible for anyone who uses this software to break the TOS/Rules of a platform or network, bridge your communities at your own risk. Check your IRC network or platform's website for rules regarding bridge bots (or bots in general)

Platforms that are natively implemented are known to accept bridge bots.

Requirements of software:

Tip

You can install all these Python modules by using pip install -r requirements.txt

Warning

The user running mandelBRot must have read+write access to /var/www/html/sweebridge
And /var/cache

For matrix images to render, a web server should be setup pointing to /var/www/html/sweebridge (the website path can be set as shown in the environment variable listed below)

Required enviroment variables:

LiberaNick=mandelBRot
LiberaUser=BridgeUser/Libera # for use in ZNC

SweeNetNick=mandelBRot
SweeNetUser=BridgeUser/SweeNet # for use in ZNC

MatrixHomeserver=https://matrix.example.com
# Use the real client API host, not the host with /.well-known/matrix
# If it's running on a different port, you can use https://matrix.example.com:8008/
# I recommend using a custom homeserver instead of matrix.org
# SSL is required

MatrixUserID=@bridge:matrix.example.com
MatrixToken=syi_***
MatrixFileCollectURL=https://bridge.example.com/ # URL must end with /

JabberJID=bridge@example.com
JabberPassword=password

ZNCPassword=password # for use in ZNC
DiscordToken=token
GuildedToken=token
RevoltToken=token

Required config.json

{
    "sbconfig": {
        "CommunityName": {
            "discord": {
                "guild": guild_id,
                "channel": channel_id,
                "webhook": "webhook_url"
            },
            "guilded": {
                "server": "server_id",
                "channel": "channel_id",
                "webhook": "webhook_url"
            },
            "revolt": {
                "server": "server_id",
                "channel": "channel_id"
            },
            "libera": {
                "channel": "#channel",
                "flags": {
                    "nosystem": "disable"
                }
            },
            "sweenet": {
                "channel": "#channel",
                "flags": {
                    "nosystem": "full"
                }
            },
            "matrix": {
                "room": "!room_ID:matrix.example.com"
            },
            "xmpp": {
                "room": "roomHandle@conference.example.com"            
            }
        }
    }
}

Tip

(IRC) nosystem values:

  • disable - Show all system messages
  • partial - Only show Quit, Part, and Join messages
  • full - NO system messages, only user messages

(Matrix) Use room IDs (!ID:Homeserver)

AFAIK, matrix-nio can only use room IDs, so using public handles #room:matrix.example.com will not be supported.

Get your community bridged with Default mandelBRot

  1. Invite mandelBRot

    Discord: Link

    Guilded: Link

    Revolt: Link

    Matrix: /invite @bridge:swee.codes while you're in the desired room

    IRC: /invite mandelBRot #channel but also would automatically join when configured

    XMPP: Will automatically join when configured

  2. Create webhooks (Discord and Guilded)

    You can create webhooks using b$createwebhook

  3. Contact Swee

    The easiest ways would be checking Swee's Social Links or emailing meow@swee.codes

Communities bridged with mandelBRot


SweeZero (Default SweeBridge) - All platforms supported with SweeBridge are bridged here

MintleChats (Default SweeBridge) - Discord <-> Libera.Chat

Bacon Hair Community (BHC) (Default SweeBridge) - Discord, Guilded, Libera.Chat, Matrix