remram44 / matrix-appservice-gitter-twisted

Matrix-Gitter bridge using Twisted
BSD 3-Clause "New" or "Revised" License
7 stars 1 forks source link
chat chat-bridge gitter gitter-api gitter-bridge matrix-protocol riot-web twisted unmaintained-dont-use

.. image:: https://remram44.github.io/matrix-appservice-gitter-twisted/img/matrix-badge.svg :target: https://vector.im/beta/#/room/#gitter-twisted:matrix.org

Status: development stopped since I have no server to run Matrix on. Unfortunately in its current state, Synapse's disk and memory usage exceed what my machine can take.

Matrix-Gitter bridge using Twisted

This is a Python 2 application using Twisted <https://twistedmatrix.com> that bridges the Matrix <https://matrix.org/> chat network with the Gitter <https://gitter.im/>__ system.

This is supposed to be deployed as a Matrix application service alongside a homeserver. It allows users to log in to their personal Gitter accounts and chat in Gitter rooms via their Matrix client.

Contrary to other bridges, this doesn't link a public Matrix room with a Gitter one. You won't be able to join a Gitter room without a Gitter account. On the other hand, Gitter users won't see the difference between a Matrix user and a normal Gitter user, since they will appear to be chatting natively.

User experience

Interaction happens through a bot. Just start chatting with @gitter:example.com, and it will give you a link to log in to your Gitter account. Then the bot will invite you to the Gitter rooms you are already in. Those are private rooms, that do NOT have an alias like #gitterHQ/gitter.

The user can join or leave Gitter rooms by sending commands to the bot.

Current status

This works but is still in development. While you are welcome to use it, expect bugs and do not rely on it in a production environment. Feedback is appreciated.

Deployment guide

Internals

The database is created on the first runs. It contains the following tables:

The bot responds to invite requests. When it joins, if more than one persom is in the chat, it will print a message and leave (and remember not to accept invites for that room in the future). Else, it will set this room as the private chat with that user in the database, leaving the previous one if it was set, and display instructions (with link to auth page).

The auth page is an HTML page allowing a user to auth her Gitter account using OAuth2.

Recognized bot commands: