mathisdt / signal-multicast-bot

simple bot for "mailing lists" on Signal

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Signal Multicast Bot

This project makes use of a Postgres database and signal-cli 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

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

  1. If you don't have a Postgres instance yet, create one.
  2. If you don't run signal-cli as DBus service yet, set it up now.
  3. Checkout this project to your computer (or just copy main.py, database.py and config-template.ini).
  4. Copy config-template.ini to config.ini and edit it so it contains the phone number(s) you want to use and the correct database credentials.
  5. Call main.py with at least Python 3.6 installed.

About

simple bot for "mailing lists" on Signal


Languages

Language:Python 100.0%