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
  • Presence
  • Reactions
  • Redactions* (only for Zulip messages)
  • Replies* (badly formatted)
  • Typing indicators

Installation

Prerequisites

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

PyPI

pip install matrixzulipbridge

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.2.0.tar.gz (50.2 kB view details)

Uploaded Source

Built Distribution

matrixzulipbridge-0.2.0-py3-none-any.whl (64.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for matrixzulipbridge-0.2.0.tar.gz
Algorithm Hash digest
SHA256 de49268173b1a099f348077bf5491d8177a22cbbc5340517e2369330cdc41bdf
MD5 de26546ed72a3d4a82be606950ef8ab4
BLAKE2b-256 d703423e7a825fd3b198f6c00ece49220d8a5d5df9f1de28df17f1a1c41e590f

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for matrixzulipbridge-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 65f5ba8de03bb27ea303c83b20a822e06f32b85c7b0aef798b772bb1e2d3e2c5
MD5 f88962786e4d25f7b634197e58a13916
BLAKE2b-256 afd4fd03bca19b6568810d18245dc297b82549dbc86deefe9a754db5d55180df

See more details on using hashes here.

Provenance

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