Files
scwrypts/py/discord/post-message.py
T

58 lines
1.7 KiB
Python
Raw Normal View History

2023-02-21 18:44:27 -07:00
#!/usr/bin/env python
2024-02-06 14:06:44 -07:00
from scwrypts import execute
#####################################################################
2023-02-21 18:44:27 -07:00
from json import dumps
from sys import stderr
2024-02-06 14:06:44 -07:00
from scwrypts.http import discord
description = 'post a message to the indicated discord channel'
parse_args = [
( ['-b', '--body'], {
'dest' : 'content',
'help' : 'message body',
'required' : False,
}),
( ['-c', '--channel-id'], {
'dest' : 'channel_id',
'help' : 'override default target channel id',
'required' : False,
}),
( ['-w', '--webhook'], {
'dest' : 'webhook',
'help' : 'override default target webhook (takes precedence over -c)',
'required' : False,
}),
( ['--avatar-url'], {
'dest' : 'avatar_url',
'help' : 'override default avatar_url',
'required' : False,
}),
( ['--username'], {
'dest' : 'username',
'help' : 'override default username',
'required' : False,
}),
]
2023-02-21 18:44:27 -07:00
def main(args, stream):
2023-06-24 07:40:31 -06:00
if args.content is None:
2023-02-21 18:44:27 -07:00
print(f'reading input from {stream.input.name}', file=stderr)
2023-06-24 07:40:31 -06:00
args.content = ''.join(stream.readlines()).strip()
2023-02-21 18:44:27 -07:00
2023-06-24 07:40:31 -06:00
if len(args.content) == 0:
args.content = 'PING'
2023-02-21 18:44:27 -07:00
2023-06-24 07:40:31 -06:00
response = discord.send_message(**vars(args))
2023-02-21 18:44:27 -07:00
stream.writeline(dumps({
**(response.json() if response.text != '' else {'message': 'OK'}),
'scwrypts_metadata': {},
}))
#####################################################################
2024-02-06 14:06:44 -07:00
if __name__ == '__main__':
execute(main, description, parse_args)