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.
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>
bot subscribe Testgroup Steven Miller bot addgroup Testgroup bot add Testgroup 017912345678 Some Dude bot send Testgroup This message should be sent!
- 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.
config.iniand edit it so it contains the phone number(s) you want to use and the correct database credentials.
main.pywith at least Python 3.6 installed.
The open source project is available here.