initial
This commit is contained in:
commit
56f045bfa2
2 changed files with 107 additions and 0 deletions
100
cli.py
Normal file
100
cli.py
Normal file
|
@ -0,0 +1,100 @@
|
|||
#!/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()
|
7
requirements.txt
Normal file
7
requirements.txt
Normal file
|
@ -0,0 +1,7 @@
|
|||
ansicolors==1.1.8
|
||||
certifi==2019.11.28
|
||||
chardet==3.0.4
|
||||
idna==2.8
|
||||
pkg-resources==0.0.0
|
||||
requests==2.22.0
|
||||
urllib3==1.25.7
|
Loading…
Reference in a new issue