This project makes use of a (Postgres) database and a (configured) signal-cli installation to create a service similar to what moderated mailing lists provided some years ago, but on Signal:
- administrators create lists
- users subscribe to them or are added by administrators
- administrators send messages which are distributed to all subscribers
I know, Signal already has groups, but this is made for announcement-like communication. The users don’t know who else is on the list, and everyone gets the messages in a one-to-one chat.
Bot commands
Basic (everyone can send these commands to the bot)
bot help bot subscribe <GROUPNAME> <PARTICIPANT NAME> bot unsubscribe <GROUPNAME>
Administrative (only select people can use these commands)
bot listgroups bot addgroup <GROUPNAME> bot removegroup <GROUPNAME> bot list <GROUPNAME> bot add <GROUPNAME> <PARTICIPANT PHONE NUMBER WITHOUT SPACES> <PARTICIPANT NAME> bot remove <GROUPNAME> <PARTICIPANT NAME OR NUMBER> bot send <GROUPNAME> <SOME TEXT>
Examples
bot subscribe Testgroup Steven Miller bot addgroup Testgroup bot add Testgroup 017912345678 Some Dude bot send Testgroup This message should be sent!
Get started
- If you don’t have a Postgres instance yet, create one.
- If you don’t run signal-cli as DBus service yet, set it up now (see the linked documentation of signal-cli to know how to do it).
- Get the necessary files from here and extract them.
- Copy
config-template.ini
toconfig.ini
and edit it so it contains the phone number(s) you want to use and the correct database credentials. - Start
main.py
with at least Python 3.6 installed.
Code
The open source project is available here.