scwrypts/py/twilio/send-sms.py

63 lines
2.0 KiB
Python
Executable File

#!/usr/bin/env python
from scwrypts import execute
#####################################################################
from sys import stderr
from scwrypts.env import getenv
from scwrypts.twilio import send_sms
description = 'send a simple SMS through twilio'
parse_args = [
( ['-t', '--to'], {
'dest' : 'to',
'help' : 'phone number of the receipient',
'required' : False,
'default' : getenv('TWILIO__DEFAULT_PHONE_TO', required=False),
}),
( ['-f', '--from'], {
'dest' : 'from_',
'help' : 'phone number of the receipient',
'required' : False,
'default' : getenv('TWILIO__DEFAULT_PHONE_FROM', required=False),
}),
( ['-b', '--body'], {
'dest' : 'body',
'help' : 'message body',
'required' : False,
}),
( ['--max-char-count'], {
'dest' : 'max_char_count',
'help' : 'separate message into parts by character count (1 < N <= 1500)',
'required' : False,
'default' : 300,
}),
]
def main(args, stream):
if args.body is None:
print(f'reading input from {stream.input.name}', file=stderr)
args.body = ''.join(stream.readlines()).strip()
if len(args.body) == 0:
args.body = 'PING'
if args.from_ is None:
raise MissingFlagAndEnvironmentVariableError(['-f', '--from'], 'TWILIO__DEFAULT_PHONE_FROM')
if args.to is None:
raise MissingFlagAndEnvironmentVariableError(['-t', '--to'], 'TWILIO__DEFAULT_PHONE_TO')
send_sms(
to = args.to,
from_ = args.from_,
body = args.body,
max_char_count = args.max_char_count,
stream = stream,
)
#####################################################################
if __name__ == '__main__':
execute(main, description, parse_args)