From fd0c7d57ae1b5068ef497ce7cda413f39d000aff Mon Sep 17 00:00:00 2001 From: Jiachen Yang Date: Mon, 15 Jun 2015 16:58:23 +0900 Subject: [PATCH] try aur4 url first --- nvchecker/source/aur.py | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/nvchecker/source/aur.py b/nvchecker/source/aur.py index 1b4401b..9e3bbcb 100644 --- a/nvchecker/source/aur.py +++ b/nvchecker/source/aur.py @@ -6,15 +6,30 @@ from tornado.httpclient import AsyncHTTPClient from tornado.escape import url_escape AUR_URL = 'https://aur.archlinux.org/rpc.php?type=info&arg=' +AUR4_URL = 'https://aur4.archlinux.org/rpc.php?type=info&arg=' logger = logging.getLogger(__name__) def get_version(name, conf, callback): aurname = conf.get('aur') or name - url = AUR_URL + url_escape(aurname) - AsyncHTTPClient().fetch(url, partial(_aur_done, name, callback)) + url4 = AUR4_URL + url_escape(aurname) + AsyncHTTPClient().fetch(url4, partial(_aur4_done, name, aurname, callback)) -def _aur_done(name, callback, res): +def _aur4_done(name, aurname, callback, res): + if res.error: + raise res.error + + data = json.loads(res.body.decode('utf-8')) + + if not data['results']: + url = AUR_URL + url_escape(aurname) + AsyncHTTPClient().fetch(url, partial(_aur_done, name, aurname, callback)) + return + + version = data['results']['Version'] + callback(name, version) + +def _aur_done(name, aurname, callback, res): if res.error: raise res.error