nuqql-matrixd is a network daemon that implements the nuqql interface and uses the Matrix Python SDK to connect to Matrix chat networks. It can be used as a backend for nuqql or as a standalone chat client daemon.
nuqql-matrixd's dependencies are:
- nuqql-based
- Matrix Python SDK
- daemon (optional)
Note: the Matrix Python SDK project status strongly recommends using matrix-nio rather than the Matrix Python SDK. Thus, please consider using nuqql-matrixd-nio that uses matrix-nio rather than nuqql-matrixd.
You can install nuqql-matrixd and its dependencies, for example, with pip for your user only with the following command:
$ pip install --user nuqql-matrixd
After the installation, you can run nuqql-matrixd by running the
nuqql-matrixd
command:
$ nuqql-matrixd
By default, it listens on TCP port 32000 on your local host. So, you can connect with, e.g., telnet to it with the following command:
$ telnet localhost 32000
In the telnet session you can:
- add Matrix accounts with:
account add matrix <account> <password>
.- Note: the format of
<account>
is<username>@<homeserver>
, e.g.,dummy_user@matrix.org
.
- Note: the format of
- retrieve the list of accounts and their numbers/IDs with
account list
. - retrieve your buddy/room list with
account <id> buddies
oraccount <id> chat list
- send a message to a room with
account <id> chat send <room> <message>
See nuqql-matrixd --help
for a list of command line arguments:
usage: nuqql-matrixd [--address ADDRESS] [--af {inet,unix}] [-d] [--dir DIR]
[--disable-history] [--filter-own] [-h] [--loglevel {debug,info,warn,error}]
[--port PORT] [--push-accounts] [--sockfile SOCKFILE] [--version]
Run nuqql backend matrixd.
optional arguments:
--address ADDRESS set AF_INET listen address
--af {inet,unix} set socket address family: "inet" for AF_INET, "unix"
for AF_UNIX
-d, --daemonize daemonize process
--dir DIR set working directory
--disable-history disable message history
--filter-own enable filtering of own messages
-h, --help show this help message and exit
--loglevel {debug,info,warn,error}
set logging level
--port PORT set AF_INET listen port
--push-accounts enable pushing accounts to client
--sockfile SOCKFILE set AF_UNIX socket file in DIR
--version show program's version number and exit
- v0.6.0:
- Update matrix_client to v0.4.0
- v0.5.0:
- Update nuqql-based to v0.3.0, switch to asyncio, require python version >= 3.7.
- Add welcome and account adding help messages.
- Disable filtering of own messages, rewrite sender of own messages to
<self>
- v0.4.0:
- Update nuqql-based to v0.2.0
- v0.3:
- Use nuqql-based as dependency and adapt to nuqql-based changes
- Add setup.py for installation and package distribution
- Add python type annotations
- Restructure code
- Cleanups, fixes, and improvements
- v0.2:
- Allow specification of the homeserver url in the account user when adding
an account. Thus, the following account users are possible:
<user>@<domain>
(defaults to https)<user>@http://<domain>[:<port>]
<user>@https://<domain>[:<port>]
- Save sync token for each account in a file. So, only messages newer than the last sync are retrieved after a restart of the backend.
- Add new commands:
bye
: disconnect from the backend.quit
: quit the backend.help
: show list of commands and their description.
- Add and use "chat msg" message format for group chat messages
- Store accounts in .ini file
accounts.ini
in the backend's working directory. Note: existing accounts have to be re-added to the backend to be usable with the .ini file. - Add configuration file support: in addition to the command line arguments,
configuration parameters can now be set in the .ini file
config.ini
in the backend's working directory. - Add
loglevel
configuration parameter to command line arguments and configuration file for setting the logging level todebug
,info
,warn
, orerror
. Default:warn
. - Make daemon python module optional
- Fixes and improvements
- Allow specification of the homeserver url in the account user when adding
an account. Thus, the following account users are possible:
- v0.1:
- First/initial release.