From bfda388d658edc6539bf49f86a262d21b5d5c136 Mon Sep 17 00:00:00 2001 From: Jonathan Harris Date: Mon, 31 Jul 2017 09:11:39 +0100 Subject: [PATCH] Can specify player account by Cmdr name --- EDMC.py | 19 ++++++++++++++++--- README.md | 4 +++- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/EDMC.py b/EDMC.py index b62a57ea..c41729e2 100755 --- a/EDMC.py +++ b/EDMC.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/python2 # # Command-line interface. Requires prior setup through the GUI. # @@ -52,6 +52,7 @@ try: parser.add_argument('-t', metavar='FILE', help='write player status to FILE in CSV format') parser.add_argument('-d', metavar='FILE', help='write raw JSON data to FILE') parser.add_argument('-n', action='store_true', help='send data to EDDN') + parser.add_argument('-p', metavar='CMDR', help='Returns data from the specified player account') parser.add_argument('-j', help=argparse.SUPPRESS) # Import JSON dump args = parser.parse_args() @@ -79,7 +80,19 @@ try: config.set('querytime', getmtime(args.j)) else: session = companion.Session() - if config.get('cmdrs'): + if args.p: + cmdrs = config.get('cmdrs') or [] + if args.p in cmdrs: + idx = cmdrs.index(args.p) + else: + for idx, cmdr in enumerate(cmdrs): + if cmdr.lower() == args.p.lower(): + break + else: + raise companion.CredentialsError + username = config.get('fdev_usernames')[idx] + session.login(username, config.get_password(username)) + elif config.get('cmdrs'): username = config.get('fdev_usernames')[0] session.login(username, config.get_password(username)) else: # <= 2.25 not yet migrated @@ -171,7 +184,7 @@ try: except companion.ServerError as e: sys.stderr.write('Server is down\n') - sys.exit(EXIT_SERVER_DOWN) + sys.exit(EXIT_SERVER) except companion.CredentialsError as e: sys.stderr.write('Invalid Credentials\n') sys.exit(EXIT_CREDENTIALS) diff --git a/README.md b/README.md index fb0ad162..54751501 100644 --- a/README.md +++ b/README.md @@ -202,8 +202,9 @@ Arguments: ``` -h, --help show this help message and exit -v, --version print program version and exit + -a FILE write ship loadout to FILE in Companion API json format -c FILE write ship loadout to FILE in Coriolis json format - -e FILE write ship loadout to FILE in E:D Shipyard format + -e FILE write ship loadout to FILE in E:D Shipyard plain text format -l FILE write ship locations to FILE in CSV format -m FILE write station commodity market data to FILE in CSV format -o FILE write station outfitting data to FILE in CSV format @@ -211,6 +212,7 @@ Arguments: -t FILE write player status to FILE in CSV format -d FILE write raw JSON data to FILE -n send data to EDDN + -p CMDR Returns data from the specified player account ``` The program returns one of the following exit codes. Further information may be written to stderr.