Skip to content

Scheduler

This bot showcases how to use the scheduler.

import os

import typer

from signalbot import SendMessage, SignalBot


async def ping(bot: SignalBot, recipient: str) -> None:
    # Scheduled jobs can run before the bot has finished connecting, so wait for it.
    await bot.wait_until_ready()

    await bot.messages.send(SendMessage(text="Ping"), recipient)


def main(recipient: str = os.environ["PHONE_NUMBER"]) -> None:
    config = {"phone_number": os.environ["PHONE_NUMBER"]}
    bot = SignalBot(config)

    bot.scheduler.add_job(ping, args=[bot, recipient], trigger="interval", seconds=5)
    bot.start()


if __name__ == "__main__":
    typer.run(main)