diff --git a/service/update.py b/service/update.py index 7279d4a77..5957ec765 100644 --- a/service/update.py +++ b/service/update.py @@ -28,7 +28,7 @@ class CheckUpdateThread(threading.Thread): def __init__(self, callback): threading.Thread.__init__(self) self.callback = callback - self.settings = service.settings.UpdateSettings.getInstance() + self.settings = service.settings.UpdateSettings.getInstance() def run(self): # Suppress all @@ -36,6 +36,7 @@ class CheckUpdateThread(threading.Thread): return try: + # @todo: use proxy settings? response = urllib2.urlopen('https://api.github.com/repos/DarkFenX/Pyfa/releases') jsonResponse = json.loads(response.read()); i = 0 @@ -46,31 +47,32 @@ class CheckUpdateThread(threading.Thread): if (release['prerelease'] and self.settings.get('prerelease')): i += 1 continue - + # Handle use-case of updating to suppressed version if self.settings.get('version') == 'v'+config.version: self.settings.set('version', None) - + # Suppress version if (release['tag_name'] == self.settings.get('version')): - return - + return + version = release['tag_name'].replace('v', '', 1) - if version != config.version: + + if self.versiontuple(version) > self.versiontuple(config.version): wx.CallAfter(self.callback, jsonResponse[i]) break; - + except: # for when there is no internet connection pass - - def versiontuple(v): + + def versiontuple(self, v): return tuple(map(int, (v.split(".")))) class Update(): instance = None def __init__(self): pass - + def CheckUpdate(self, callback): thread = CheckUpdateThread(callback) thread.start() @@ -81,4 +83,4 @@ class Update(): cls.instance = Update() return cls.instance - +