mirror of
https://github.com/EDCD/EDMarketConnector.git
synced 2025-04-14 16:27:13 +03:00
Add version check.
This commit is contained in:
parent
777d5b96e5
commit
cdf732c62f
25
EDMC.py
25
EDMC.py
@ -4,8 +4,10 @@
|
||||
#
|
||||
|
||||
import argparse
|
||||
import requests
|
||||
import sys
|
||||
from time import time, sleep
|
||||
from xml.etree import ElementTree
|
||||
|
||||
import l10n
|
||||
l10n.Translations().install_dummy()
|
||||
@ -19,7 +21,7 @@ import shipyard
|
||||
import eddb
|
||||
import stats
|
||||
import prefs
|
||||
from config import appcmdname, appversion, config
|
||||
from config import appcmdname, appversion, update_feed, config
|
||||
|
||||
|
||||
EDDB = eddb.EDDB()
|
||||
@ -27,6 +29,11 @@ EDDB = eddb.EDDB()
|
||||
SERVER_RETRY = 5 # retry pause for Companion servers [s]
|
||||
EXIT_SUCCESS, EXIT_SERVER, EXIT_CREDENTIALS, EXIT_VERIFICATION, EXIT_NOT_DOCKED, EXIT_SYS_ERR = range(6)
|
||||
|
||||
# quick and dirty version comparison assuming "strict" numeric only version numbers
|
||||
def versioncmp(versionstring):
|
||||
return map(int, versionstring.split('.'))
|
||||
|
||||
|
||||
try:
|
||||
# arg parsing
|
||||
parser = argparse.ArgumentParser(prog=appcmdname, description='Prints the current system and station (if docked) to stdout and optionally writes player status, ship locations, ship loadout and/or station data to file. Requires prior setup through the accompanying GUI app.')
|
||||
@ -39,8 +46,22 @@ try:
|
||||
parser.add_argument('-s', metavar='FILE', help='write station shipyard data to FILE in CSV format')
|
||||
parser.add_argument('-t', metavar='FILE', help='write player status to FILE in CSV format')
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.version:
|
||||
print '%.2f' % (float(''.join(appversion.split('.')[:3])) / 100) # just first three digits
|
||||
latest = ''
|
||||
try:
|
||||
# Copied from update.py - probably should refactor
|
||||
r = requests.get(update_feed, timeout = 10)
|
||||
feed = ElementTree.fromstring(r.text)
|
||||
items = dict([(item.find('enclosure').attrib.get('{http://www.andymatuschak.org/xml-namespaces/sparkle}version'),
|
||||
item.find('title').text) for item in feed.findall('channel/item')])
|
||||
lastversion = sorted(items, key=versioncmp)[-1]
|
||||
if versioncmp(lastversion) > versioncmp(appversion):
|
||||
|
||||
latest = ' (%s is available)' % items[lastversion]
|
||||
except:
|
||||
pass # Quietly suppress timeouts etc.
|
||||
print '%.2f%s' % (float(''.join(appversion.split('.')[:3])) / 100, latest) # just first three digits
|
||||
sys.exit(EXIT_SUCCESS)
|
||||
|
||||
session = companion.Session()
|
||||
|
Loading…
x
Reference in New Issue
Block a user