def check_version(url="http://update.getghiro.org/update/check/"): """Checks version of Ghiro. It connects to Ghiro update website to check if a new release is available. You can optionally disable this via configuration file. @return: boolean status of update available """ # Do i have to check? It checks only out of a time frame. # Disable with "UPDATE_CHECK" option in configuration file. if UpdateCheck.should_check() and settings.UPDATE_CHECK: # Create new check entry. check = UpdateCheck.objects.create() # Format request. data = urllib.urlencode({"version": settings.GHIRO_VERSION}) headers = {"User-Agent": "Ghiro update client"} try: request = urllib2.Request(url, data=data, headers=headers) response = urllib2.urlopen(request, timeout=60).read() except (urllib2.URLError, urllib2.HTTPError) as e: check.state = "E" check.save() raise Exception("Unable to establish connection: %s" % e) try: data = json.loads(response) except ValueError as e: check.state = "E" check.save() raise Exception("Invalid response: %s" % e) if data["new_release"]: check.state = "A" check.save() return True else: check.state = "N" check.save() return False else: return False
def check_version(): """Checks version of Ghiro.""" # Do i have to check? if UpdateCheck.should_check() and settings.UPDATE_CHECK: # Create new check entry. check = UpdateCheck.objects.create() # Format request. url = "http://update.getghiro.org/update/check/" data = urllib.urlencode({"version": settings.GHIRO_VERSION}) headers = {"User-Agent": "Ghiro update client"} try: request = urllib2.Request(url, data=data, headers=headers) response = urllib2.urlopen(request, timeout=60).read() except (urllib2.URLError, urllib2.HTTPError) as e: check.state = "E" check.save() raise Exception("Unable to establish connection: %s" % e) try: data = json.loads(response) except ValueError as e: check.state = "E" check.save() raise Exception("Invalid response: %s" % e) if data["new_release"]: check.state = "A" check.save() return True else: check.state = "N" check.save() return False else: return False
def check_version(): """Checks version of Ghiro.""" # Do i have to check? if UpdateCheck.should_check(): # Create new check entry. check = UpdateCheck.objects.create() # Format request. url = "http://update.getghiro.org/update/check/" data = urllib.urlencode({"version": settings.GHIRO_VERSION}) try: request = urllib2.Request(url, data) response = urllib2.urlopen(request) except (urllib2.URLError, urllib2.HTTPError) as e: check.state = "E" check.save() raise Exception("Unable to establish connection: %s" % e) try: data = json.loads(response.read()) except ValueError: check.state = "E" check.save() raise Exception("Invalid response.") if data["new_release"]: check.state = "A" check.save() return True else: check.state = "N" check.save() return False else: return False