Queue Processor script for Matrix
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Olivier 'reivilibre' ad51026405 Fix failures on first run 10 months ago
.gitignore Initial commit. 10 months ago
LICENSE-2.0.txt Initial commit. 10 months ago
README.md Initial commit. 10 months ago
mxqueueproc.py Fix failures on first run 10 months ago
requirements.txt Initial commit. 10 months ago

README.md

Matrix Queue Processor (matrix_queue_proc)

This is a quickly-thrown-together script which will:

  • retrieve unread text messages in a Matrix room
  • execute a script of your choice for each one
    • mark ( reaction) or redact those messages on success (0); or
    • reply with the process's exit code on failure.
  • exit once all those messages are processed.
    • (it is currently intended for occasional usage rather than continuous usage, but continuous usage may appear in the future.)

Use cases

  • archiving (youtube-dl, archivebox, etc...)
    • e.g. using the 'Share' function on a mobile phone to enqueue links

Usage

python3 mxqueueproc.py <room ID> <command to run>

If you prefer messages to be redacted rather than -reacted, use

MXQP_REDACT=1 python3 mxqueueproc.py <room ID> <command to run>

e.g.

python3 mxqueueproc.py !some_room_id:example.com youtube-dl

Installation and set-up

  • Set up a Python 3 virtual environment python3 -m venv path/to/venv
  • Activate it! . path/to/env/activate
  • Install requirements pip install -r requirements.txt
  • Activate this venv again whenever you wish to run mxqueueproc.

On first run, Matrix Queue Processor will guide you through a login.

You will need:

  • your homeserver URL (e.g. https://matrix.org)
  • your username (e.g. reivilibre)
  • your password (e.g. nottellingYOUofcourse)

For more advanced commands

For more complicated commands, it may be worthwhile (or even required) to create e.g. a bash script

#!/bin/bash
set -eu
task=$1

do_something --serious-business --wow=very $1

(set -eu makes undefined variables and command errors cause failure, so that the bot will report it to you.)

Don't forget to mark it as executable.