From 81827f83bc943bc8f19b2c665b7f53dacb10d8e0 Mon Sep 17 00:00:00 2001 From: Tobias Gruetzmacher Date: Fri, 6 Nov 2015 23:07:19 +0100 Subject: [PATCH] Use GitHub releases API for update checks. --- dosagelib/updater.py | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/dosagelib/updater.py b/dosagelib/updater.py index 56ab9fc20..37586aafb 100644 --- a/dosagelib/updater.py +++ b/dosagelib/updater.py @@ -4,19 +4,13 @@ Function to check for updates. """ import os import dosagelib +from dosagelib import configuration from .util import urlopen from distutils.version import StrictVersion import requests -# Use the Freecode submit file as source since that file gets updated -# only when releasing a new version. -UPDATE_URL = "https://raw.github.com/wummel/dosage/master/dosage.freecode" -VERSION_TAG = 'Version:' -if os.name == 'nt': - URL_TAG = 'Windows-installer-URL:' -else: - URL_TAG = 'Source-Package-URL:' +UPDATE_URL = "https://api.github.com/repos/webcomics/dosage/releases/latest" def check_update (): """Return the following values: @@ -42,14 +36,14 @@ def check_update (): def get_online_version (): """Download update info and parse it.""" session = requests.session() - page = urlopen(UPDATE_URL, session) + page = urlopen(UPDATE_URL, session).json() version, url = None, None - for line in page.text.splitlines(): - if line.startswith(VERSION_TAG): - version = line.split(':', 1)[1].strip() - elif line.startswith(URL_TAG): - url = line.split(':', 1)[1].strip() - url = url.replace('${version}', version) + version = page['tag_name'] + + if os.name == 'nt': + url = next((x['browser_download_url'] for x in page['assets'] if x['content_type'] == 'application/x-msdos-program'), configuration.Url) + else: + url = page['tarball_url'] return version, url