Scheduler

This bot showcases how to use the scheduler and also how to use the library without using the Command class.

import logging
import os

try:
    import typer
except ImportError as exc:
    error_msg = "The 'typer' library is required to run this example."
    error_msg += " Please install it with 'pip install typer'."
    raise ImportError(error_msg) from exc

from signalbot import SignalBot, enable_console_logging


async def send(bot: SignalBot, receiver: str, text: str) -> None:
    # Wait until the bot is fully initialized before sending a message
    await bot.init_task

    await bot.send(receiver=receiver, text=text)


def main(
    receiver: str = os.environ["PHONE_NUMBER"],
    text: str = "Hello from SignalBot!",
) -> None:
    enable_console_logging(logging.INFO)

    config = {
        "signal_service": os.environ["SIGNAL_SERVICE"],
        "phone_number": os.environ["PHONE_NUMBER"],
    }
    bot = SignalBot(config)

    bot.scheduler.add_job(send, args=[bot, receiver, text])
    bot.scheduler.add_job(
        send, args=[bot, receiver, "Ping"], trigger="interval", seconds=5
    )
    bot.start()


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