LibreTranslate/app/manage.py
2021-02-15 13:30:28 -05:00

45 lines
No EOL
1.6 KiB
Python

import argparse
from app.api_keys import Database
def manage():
parser = argparse.ArgumentParser(description='LibreTranslate Manage Tools')
subparsers = parser.add_subparsers(help='', dest='command', required=True, title="Command List")
keys_parser = subparsers.add_parser('keys', help='Manage API keys database')
keys_subparser = keys_parser.add_subparsers(help='', dest='sub_command', title="Command List")
keys_add_parser = keys_subparser.add_parser('add', help='Add API keys to database')
keys_add_parser.add_argument('req_limit',
type=int,
help='Request Limits (per second)')
keys_add_parser.add_argument('--key',
type=str,
default="auto",
required=False,
help='API Key')
keys_remove_parser = keys_subparser.add_parser('remove', help='Remove API keys to database')
keys_remove_parser.add_argument('key',
type=str,
help='API Key')
args = parser.parse_args()
if args.command == 'keys':
db = Database()
if args.sub_command is None:
# Print keys
keys = db.all()
if not keys:
print("There are no API keys")
else:
for item in keys:
print("%s: %s" % item)
elif args.sub_command == 'add':
print(db.add(args.req_limit, args.key)[0])
elif args.sub_command == 'remove':
print(db.remove(args.key))
else:
parser.print_help()
exit(1)