Skip to main content

Package to build Signal bots

Project description

Signal Bot Framework

Python package to build your own Signal bots. To run the the bot you need to start the signal-cli-rest-api service and link your device with it. Please refer to that project for more details.

Classes and API

Documentation work in progress. Feel free to open an issue for questions.

Example Bot

See example folder for a complete example on how to use the library. To run it, you need to define following env variables:

  • SIGNAL_SERVICE: Address of the signal service without protocol, e.g. 127.0.0.1:8080
  • PHONE_NUMBER: Phone number of the bot, e.g. +49123456789
  • GROUP_ID: Group that the bot should listen to. Currently, only groups are supported.
  • GROUP_SECRET: Group secret / internal_id. You can get it by calling /v1/groups/{number}/{groupid}, see API documentation

Signalbot

  • bot.listen(group_id, group_secret): Listen for messages in a group
  • bot.register(command): Register a new command
  • bot.start(): Start the bot
  • bot.send(receiver, text, listen=False): Send a new message
  • bot.react(message, emoji): React to a message
  • bot.start_typing(receiver): Start typing
  • bot.stop_typing(receiver): Stop typing
  • bot.scheduler: APScheduler > AsyncIOScheduler, see here
  • bot.storage: In-memory or Redis stroage, see storage.py

Command

To implement your own commands, you need to inherent Command and overwrite following methods:

  • setup(): Start any task that requires to send messages already, optional
  • describe(): String to describe your command, optional
  • handle(context): Handle an incoming message. By default, any command will read any incoming message. Context can be used to easily reply (c.send(text)), react (c.react(emoji)) and to type in a group (c.start_typing() and c.stop_typing()).

Local development and package

Increase version in setup.cfg, then

python -m build
python -m twine upload dist/*

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

signalbot-0.4.tar.gz (9.9 kB view hashes)

Uploaded Source

Built Distribution

signalbot-0.4-py3-none-any.whl (10.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page