def new_version(travis_api_key, tag): """Allows Travis to mark a new version during build.""" try: TravisKeys.get(travis_api_key) except TravisKeys.DoesNotExist: return "API key is invalid.", 403 if tag.startswith("v"): tag = tag.lstrip("v") i = 0 while True: try: Version.get(i) i += 1 except Version.DoesNotExist: break r = requests.get( "https://api.github.com/repos/JakeMakesStuff/MagicCap/releases/tags/v{}" .format(tag)) r.raise_for_status() j = r.json() Version(release_id=i, version=tag, changelogs=j['body'], beta="b" in tag).save() return "Release {} successfully saved to the database.".format(tag), 200
def latest_versions(): """Gets information about the latest MagicCap releases.""" latest_release = None latest_beta = None release_id = 0 while True: try: v = Version.get(release_id) if v.beta: latest_beta = v else: latest_release = v release_id += 1 except Version.DoesNotExist: break beta_json = None beta_newer = False if latest_beta: beta_json = { "mac": "https://s3.magiccap.me/upgrades/v{}/magiccap-mac.dmg".format( latest_beta.version), "linux": "https://s3.magiccap.me/upgrades/v{}/magiccap-linux.zip".format( latest_beta.version), "changelogs": latest_beta.changelogs, "version": latest_beta.version } beta_newer = latest_beta.release_id > latest_release.release_id return jsonify({ "beta": beta_json, "release": { "mac": "https://s3.magiccap.me/upgrades/v{}/magiccap-mac.dmg".format( latest_release.version), "linux": "https://s3.magiccap.me/upgrades/v{}/magiccap-linux.zip".format( latest_release.version), "changelogs": latest_release.changelogs, "version": latest_release.version }, "is_beta_newer_than_release": beta_newer })
def get_updates(release_id, beta): """Gets all updates that is avaliable for the user.""" updates = [] current_id = release_id + 1 while True: try: u = Version.get(current_id) if u.beta: if beta: updates.append(u) else: updates.append(u) current_id += 1 except Version.DoesNotExist: break return updates