Files
smsbot/smsbot/cli.py

53 lines
1.7 KiB
Python

import argparse
import logging
import os
from smsbot.telegram import TelegramSmsBot
from smsbot.utils import get_smsbot_version
from smsbot.webhook_handler import TwilioWebhookHandler
def main():
parser = argparse.ArgumentParser("smsbot")
parser.add_argument(
"--listen-host", default=os.environ.get("SMSBOT_LISTEN_HOST") or "0.0.0.0"
)
parser.add_argument(
"--listen-port", default=os.environ.get("SMSBOT_LISTEN_PORT") or "80"
)
parser.add_argument(
"--telegram-bot-token", default=os.environ.get("SMSBOT_TELEGRAM_BOT_TOKEN")
)
parser.add_argument("--owner-id", default=os.environ.get("SMSBOT_OWNER_ID"))
parser.add_argument(
"--default-subscribers", default=os.environ.get("SMSBOT_DEFAULT_SUBSCRIBERS")
)
parser.add_argument("--log-level", default="INFO")
args = parser.parse_args()
# TODO: Replace for Py >=3.11
logging.basicConfig(level=logging.getLevelName(args.log_level))
logging.info("smsbot v%s", get_smsbot_version())
logging.debug("Arguments: %s", args)
# Start bot
telegram_bot = TelegramSmsBot(args.telegram_bot_token)
# Set the owner ID if configured
if args.owner_id:
telegram_bot.set_owner(args.owner_id)
else:
logging.warning("No Owner ID is set, which is not a good idea...")
# Add default subscribers
if args.default_subscribers:
for chat_id in args.default_subscribers.split(","):
telegram_bot.add_subscriber(chat_id)
telegram_bot.start()
# Start webhooks
webhooks = TwilioWebhookHandler()
webhooks.set_bot(telegram_bot)
webhooks.serve(host=args.listen_host, port=args.listen_port)