Skip to main content

A Matrix puppeting bridge for Zulip

Project description

MatrixZulipBridge

Tests PyPI version Python versions

A Matrix puppeting appservice bridge for Zulip

Join the Matrix room #MatrixZulipBridge:shema.lv if you have any questions or just want to chat.

Features

  • Streams
  • Zulip topics - Matrix threads
  • Direct messages
  • Formatted text* (not all of Zulip's formatting)
  • Matrix puppets
  • Zulip puppets
  • Message Media* (only translating URIs)
  • Presence
  • Reactions
  • Redactions* (only from Matrix in DMs)
  • Replies
  • Typing indicators

Installation

Prerequisites

  • Python >=3.10
  • Matrix homeserver with ability to add appservices

PyPI

pip install matrixzulipbridge

Docker

docker run ghcr.io/gearkite/matrixzulipbridge:{tag} ...
See packages for possible tags

From source

  1. Clone or download this git repository
    git clone https://github.com/GearKite/MatrixZulipBridge.git
  2. Install Poetry
  3. Install dependencies
    poetry install
  4. Enter the virtual environment
    poetry shell

Running

Example

  1. Generate a registration file
    python3 -m matrixzulipbridge --config config.yaml --generate
  2. Install the appservice on your homeserver
  3. Run the bridge
    python3 -m matrixzulipbridge --config config.yaml https://homeserver.example.com

Usage

usage: python3 -m matrixzulipbridge [-h] [-v] (-c CONFIG | --version) [-l LISTEN_ADDRESS] [-p LISTEN_PORT] [-u UID] [-g GID] [--generate] [--generate-compat] [--reset] [--unsafe-mode] [-o OWNER] [homeserver]

A puppeting Matrix - Zulip appservice bridge (v0.1.1.dev2+g3ed8ed7)

positional arguments:
  homeserver            URL of Matrix homeserver (default: http://localhost:8008)

options:
  -h, --help            show this help message and exit
  -v, --verbose         log debug messages
  -c CONFIG, --config CONFIG
                        registration YAML file path, must be writable if generating (default: None)
  --version             show bridge version
  -l LISTEN_ADDRESS, --listen-address LISTEN_ADDRESS
                        bridge listen address (default: as specified in url in config, 127.0.0.1 otherwise) (default: None)
  -p LISTEN_PORT, --listen-port LISTEN_PORT
                        bridge listen port (default: as specified in url in config, 28464 otherwise) (default: None)
  -u UID, --uid UID     user id to run as (default: None)
  -g GID, --gid GID     group id to run as (default: None)
  --generate            generate registration YAML for Matrix homeserver (Synapse)
  --generate-compat     generate registration YAML for Matrix homeserver (Dendrite and Conduit)
  --reset               reset ALL bridge configuration from homeserver and exit
  --unsafe-mode         allow appservice to leave rooms on error (default: False)
  -o OWNER, --owner OWNER
                        set owner MXID (eg: @user:homeserver) or first talking local user will claim the bridge (default: None)

After registering and launching the bridge, start a chat. You can find the localpart in your registration.yaml
This bridge is mainly configurable through Matrix, send help to get a list of commands

Bridging a stream

In your control room chat with the bridge send:

  1. addorganization {name}
  2. open {name}

In the organization room send:

  1. site example.com
  2. email my-bot@example.com
  3. apikey xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  4. connect
  5. subscribe {zulip stream name}

Credits

This bridge is heavily based on Heisenbridge. Thank you, Heisenbridge contributors!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

matrixzulipbridge-0.4.1.tar.gz (56.4 kB view details)

Uploaded Source

Built Distribution

matrixzulipbridge-0.4.1-py3-none-any.whl (72.8 kB view details)

Uploaded Python 3

File details

Details for the file matrixzulipbridge-0.4.1.tar.gz.

File metadata

  • Download URL: matrixzulipbridge-0.4.1.tar.gz
  • Upload date:
  • Size: 56.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.18

File hashes

Hashes for matrixzulipbridge-0.4.1.tar.gz
Algorithm Hash digest
SHA256 dff2af6b3a6a92f35d6edbd50561405629372fe3b8e1828e10c9d6cfe459b673
MD5 82a1d31a7bfcf20d9ed42344b966dd1a
BLAKE2b-256 6cd1d2a71b04c491950a0ea0caaaeaa2dba8370d1be9a418c8db9abddb7f22db

See more details on using hashes here.

File details

Details for the file matrixzulipbridge-0.4.1-py3-none-any.whl.

File metadata

File hashes

Hashes for matrixzulipbridge-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 378d3c71639b5f6ba79bc5abe55bd15390ce5726a7007715c5a8a02c522008c0
MD5 7785004207fd38cf53160df22fafe2df
BLAKE2b-256 fd81098ea2519e2fe6a5bd4b48e65c0e1026435c1c4e65e83d0f9d4a0c583ea0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page