Matterbabble
February 20, 2019 ยท View on GitHub
============ Matterbabble
Matterbabble is an API client for Discourse_ and Matterbridge_. It
mirrors Discourse posts in a topic to Matterbridge messages on a
gateway, and vice versa. It works well with the Discourse Babble_
plugin, which formats a thread as a chat room.
.. _Discourse: https://discourse.org/ .. _Matterbridge: https://github.com/42wim/matterbridge .. _Discourse Babble: https://discourse-babble.com/
Installation and Usage
To install, execute::
pip install matterbabble
To run, execute::
python -m matterbabble CONFIGPATH
providing the path to a Matterbabble configuration file as described below.
Configuration
Matterbabble is configured with a configparser INI file.
Example::
[discourse]
address = https://forum.bitphoenixsoftware.com/
username = matterbridge
token = 0dwdmaddzludwvntpg7gss6dxdem7byemre3krw86k60n39vn1ni7wganakpzjd0
fmt = {username}: {message}
[matterbridge]
address = http://127.0.0.1:4242/
token = oTUaGHctYYve28nYNMzLZszJvT1RD3kXLlZwPLULEaTFMRrGyvFzdvOdpsuQYFEhD84qL9PP5FJvGFOsQINESs1keaLO8SnvQNHHM6wq41mwHVX0NNKaBXD5uDaDhZ4p
[connections]
lounge = /babble/topics/68
[logging]
level = INFO
discourse
The ``discourse`` section must contain an address and API key for a
Discourse forum, and the username of the user you want the client to run
as. You can also change the format used for messages going to Discourse
(the ``fmt`` key is optional).
matterbridge
The matterbridge section must contain the BindAddress of a
Matterbridge API_ instance. If you added a Token to the API,
you must also include that here.
connections
The ``connections`` section maps Matterbridge gateways to Discourse
topics. The ID of a topic is the last component of the URL after you
navigate to it on Discourse, and the correct format is ``/topics/{id}``.
You can find a Babble chat room's ID by clicking on it in the admin
chat manager. The format for those is ``/babble/topics/{id}``.
logging
~~~~~~~
The optional ``logging`` section can contain ``basicConfig`` options
for ``logging`` in Matterbabble. You can set ``level`` to ``INFO`` to
log raw objects sent through Matterbabble to ``stderr``.
.. _Matterbridge API: https://github.com/42wim/matterbridge/wiki/Api
Caveat Emptor
-------------
Inline images in the Discourse post are currently replaced with links
before being sent to the gateway because they generally aren't
supported by chat rooms. Maybe there will be a better solution to this
problem in future.
Copyright
---------
Copyright 2019 Declan Hoare
Licensed under Apache License 2.0.
NO WARRANTY