123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- #!/usr/bin/env python3
- import sys
- from pprint import pprint
- import requests
- import argparse
- try:
- from colors import color
- except ImportError:
- def color(text, *args, **kwargs):
- return text
- def req(args, location, data=None):
- kwargs = {}
- if data is not None:
- kwargs['json'] = data
- r = requests.post(args.endpoint + location,
- auth=tuple(args.auth.split(":", 2)),
- **kwargs
- )
- return r
- def main_channel_list(args):
- r = req(args, "/rsGxsChannels/getChannelsSummaries")
- channels = r.json()['channels']
- for chan in channels:
- print(color(chan['mGroupName'], style='bold', fg='green'))
- print(' ' + color(chan['mGroupId'], style='underline'))
- def main_channel_show(args):
- r = req(
- args, "/rsGxsChannels/getChannelsInfo",
- {
- 'chanIds': [args.channel_id]
- }
- )
- data = r.json()
- channels = data['channelsInfo']
- for chan in channels:
- print(color(chan['mMeta']['mGroupName'], style='bold', fg='green'))
- print(' ' + color(chan['mMeta']['mGroupId'], style='underline'))
- print(' ' + chan['mDescription'])
- print(color('Last Post:', style='bold') + ' \t%s' % chan['mMeta']['mLastPost'])
- def main_channel_post(args):
- chid = args.channel_id
- r = req(
- args, "/rsGxsChannels/createPostV2",
- {
- 'channelId': args.channel_id,
- 'title': args.post_title,
- 'mBody': args.post_body,
- }
- )
- ret = r.json()
- if ret.get('retval', True) is False:
- print(color('ERROR: could not create post', fg='red', style='bold'))
- print(ret['errorMessage'])
- pprint(ret)
- sys.exit(1)
- pprint(ret)
- def get_parser():
- p = argparse.ArgumentParser()
- p.add_argument("--endpoint", default="http://127.0.0.1:9092")
- p.add_argument("-u", "--auth", dest="auth")
- p_sub = p.add_subparsers()
- ch = p_sub.add_parser("channel")
- ch.add_argument("--channel-id")
- ch_sub = ch.add_subparsers()
- ch_list = ch_sub.add_parser("list")
- ch_list.set_defaults(mainfunc=main_channel_list)
- ch_show = ch_sub.add_parser("show")
- ch_show.set_defaults(mainfunc=main_channel_show)
- ch_post = ch_sub.add_parser("post")
- ch_post.set_defaults(mainfunc=main_channel_post)
- ch_post.add_argument('--post-title')
- ch_post.add_argument('--post-body')
- return p
- def main():
- p = get_parser()
- args = p.parse_args()
- if getattr(args, "mainfunc", None) is None:
- print("Not a complete command")
- sys.exit(2)
- args.mainfunc(args)
- if __name__ == "__main__":
- main()
|