From c60639be5102118fc52e051068871b450e34c943 Mon Sep 17 00:00:00 2001 From: lilydjwg Date: Mon, 1 Jul 2013 17:45:10 +0800 Subject: [PATCH] add github support --- get_version.py | 15 ++++++++++++++- sample_config.ini | 3 +++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/get_version.py b/get_version.py index ef9a6f6..d7a0b08 100644 --- a/get_version.py +++ b/get_version.py @@ -11,7 +11,7 @@ import tornado.process from tornado.ioloop import IOLoop logger = logging.getLogger(__name__) -handler_precedence = ('aur', 'cmd', 'regex') +handler_precedence = ('github', 'aur', 'cmd', 'regex') def get_version(name, conf, callback): g = globals() @@ -60,6 +60,19 @@ def _aur_done(name, callback, res): version = data['results']['Version'] callback(name, version) +GITHUB_URL = 'https://api.github.com/repos/%s/commits' + +def get_version_by_github(name, conf, callback): + repo = conf.get('github') + url = GITHUB_URL % repo + AsyncHTTPClient().fetch(url, user_agent='lilydjwg/nvchecker', + callback=partial(_github_done, name, callback)) + +def _github_done(name, callback, res): + data = json.loads(res.body.decode('utf-8')) + version = data[0]['commit']['committer']['date'].split('T', 1)[0].replace('-', '') + callback(name, version) + cmd_q = queue.Queue() cmd_q.running = False diff --git a/sample_config.ini b/sample_config.ini index 1919161..e71bd05 100644 --- a/sample_config.ini +++ b/sample_config.ini @@ -18,3 +18,6 @@ aur = python-you-get-git [fbcat] aur + +[winterpy] +github = lilydjwg/winterpy