53 lines
1.4 KiB
Plaintext
53 lines
1.4 KiB
Plaintext
|
#!/bin/python3
|
||
|
import os
|
||
|
import sys
|
||
|
import logging
|
||
|
import requests
|
||
|
import json
|
||
|
import argparse
|
||
|
|
||
|
logging.basicConfig(format='%(levelname)s\t- %(message)s')
|
||
|
logger = logging.getLogger()
|
||
|
logger.setLevel(logging.INFO)
|
||
|
|
||
|
state = {}
|
||
|
|
||
|
# session file - username(optional)
|
||
|
def list_subjects(args):
|
||
|
|
||
|
parser = argparse.ArgumentParser()
|
||
|
|
||
|
parser.add_argument('session', nargs='?', default=None)
|
||
|
parser.add_argument('username', nargs='?', default=None)
|
||
|
|
||
|
args = parser.parse_args()
|
||
|
|
||
|
# Check if session file is valid
|
||
|
if (not os.path.isfile(args.session)):
|
||
|
logger.error("File '" + args.session + "' not found.")
|
||
|
sys.exit(-1)
|
||
|
|
||
|
if args.username:
|
||
|
try:
|
||
|
subjects = json.loads(requests.get(f'http://{state['REP_ADDRESS']}/subject/list', json=json.dumps({'username' : args.username})))
|
||
|
subjects.raise_for_status()
|
||
|
|
||
|
except requests.exceptions.RequestException as errex:
|
||
|
logger.error("Failed to obtain response from server.")
|
||
|
sys.exit(1)
|
||
|
|
||
|
else:
|
||
|
try:
|
||
|
subjects = json.loads(requests.get(f'http://{state['REP_ADDRESS']}/subject/list'))
|
||
|
subjects.raise_for_status()
|
||
|
|
||
|
except requests.exceptions.RequestException as errex:
|
||
|
logger.error("Failed to obtain response from server.")
|
||
|
sys.exit(1)
|
||
|
|
||
|
for s in subjects:
|
||
|
sys.stdout.write(s['id'] + " - " + s['username'])
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
list_subjects(sys.argv[1:])
|