mirror of
https://github.com/lilydjwg/nvchecker.git
synced 2025-03-10 06:14:02 +00:00
parent
13c1253c19
commit
1d3abf73b2
6 changed files with 59 additions and 65 deletions
|
@ -1,18 +1,13 @@
|
||||||
import json
|
from .simple_json import simple_json
|
||||||
from functools import partial
|
|
||||||
|
|
||||||
from tornado.httpclient import AsyncHTTPClient
|
|
||||||
|
|
||||||
# Using metacpan
|
# Using metacpan
|
||||||
CPAN_URL = 'https://api.metacpan.org/release/%s'
|
CPAN_URL = 'https://api.metacpan.org/release/%s'
|
||||||
|
|
||||||
def get_version(name, conf, callback):
|
def _version_from_json(data):
|
||||||
repo = conf.get('cpan') or name
|
return str(data['version'])
|
||||||
url = CPAN_URL % repo
|
|
||||||
AsyncHTTPClient().fetch(url, user_agent='lilydjwg/nvchecker',
|
|
||||||
callback=partial(_cpan_done, name, callback))
|
|
||||||
|
|
||||||
def _cpan_done(name, callback, res):
|
get_version = simple_json(
|
||||||
data = json.loads(res.body.decode('utf-8'))
|
CPAN_URL,
|
||||||
version = str(data['version'])
|
'cpan',
|
||||||
callback(name, version)
|
_version_from_json,
|
||||||
|
)
|
||||||
|
|
|
@ -1,17 +1,12 @@
|
||||||
import json
|
from .simple_json import simple_json
|
||||||
from functools import partial
|
|
||||||
|
|
||||||
from tornado.httpclient import AsyncHTTPClient
|
|
||||||
|
|
||||||
GEMS_URL = 'https://rubygems.org/api/v1/versions/%s.json'
|
GEMS_URL = 'https://rubygems.org/api/v1/versions/%s.json'
|
||||||
|
|
||||||
def get_version(name, conf, callback):
|
def _version_from_json(data):
|
||||||
repo = conf.get('gems') or name
|
return data[0]['number']
|
||||||
url = GEMS_URL % repo
|
|
||||||
AsyncHTTPClient().fetch(url, user_agent='lilydjwg/nvchecker',
|
|
||||||
callback=partial(_gems_done, name, callback))
|
|
||||||
|
|
||||||
def _gems_done(name, callback, res):
|
get_version = simple_json(
|
||||||
data = json.loads(res.body.decode('utf-8'))
|
GEMS_URL,
|
||||||
version = data[0]['number']
|
'gems',
|
||||||
callback(name, version)
|
_version_from_json,
|
||||||
|
)
|
||||||
|
|
|
@ -1,17 +1,12 @@
|
||||||
import json
|
from .simple_json import simple_json
|
||||||
from functools import partial
|
|
||||||
|
|
||||||
from tornado.httpclient import AsyncHTTPClient
|
|
||||||
|
|
||||||
HACKAGE_URL = 'https://hackage.haskell.org/package/%s/preferred.json'
|
HACKAGE_URL = 'https://hackage.haskell.org/package/%s/preferred.json'
|
||||||
|
|
||||||
def get_version(name, conf, callback):
|
def _version_from_json(data):
|
||||||
repo = conf.get('hackage') or name
|
return data['normal-version'][0]
|
||||||
url = HACKAGE_URL % repo
|
|
||||||
AsyncHTTPClient().fetch(url, user_agent='lilydjwg/nvchecker',
|
|
||||||
callback=partial(_hackage_done, name, callback))
|
|
||||||
|
|
||||||
def _hackage_done(name, callback, res):
|
get_version = simple_json(
|
||||||
data = json.loads(res.body.decode('utf-8'))
|
HACKAGE_URL,
|
||||||
version = data['normal-version'][0]
|
'hackage',
|
||||||
callback(name, version)
|
_version_from_json,
|
||||||
|
)
|
||||||
|
|
|
@ -1,17 +1,12 @@
|
||||||
import json
|
from .simple_json import simple_json
|
||||||
from functools import partial
|
|
||||||
|
|
||||||
from tornado.httpclient import AsyncHTTPClient
|
|
||||||
|
|
||||||
NPM_URL = 'https://registry.npmjs.org/%s'
|
NPM_URL = 'https://registry.npmjs.org/%s'
|
||||||
|
|
||||||
def get_version(name, conf, callback):
|
def _version_from_json(data):
|
||||||
repo = conf.get('npm') or name
|
return data['dist-tags']['latest']
|
||||||
url = NPM_URL % repo
|
|
||||||
AsyncHTTPClient().fetch(url, user_agent='lilydjwg/nvchecker',
|
|
||||||
callback=partial(_npm_done, name, callback))
|
|
||||||
|
|
||||||
def _npm_done(name, callback, res):
|
get_version = simple_json(
|
||||||
data = json.loads(res.body.decode('utf-8'))
|
NPM_URL,
|
||||||
version = data['dist-tags']['latest']
|
'npm',
|
||||||
callback(name, version)
|
_version_from_json,
|
||||||
|
)
|
||||||
|
|
|
@ -1,17 +1,12 @@
|
||||||
import json
|
from .simple_json import simple_json
|
||||||
from functools import partial
|
|
||||||
|
|
||||||
from tornado.httpclient import AsyncHTTPClient
|
|
||||||
|
|
||||||
PYPI_URL = 'https://pypi.python.org/pypi/%s/json'
|
PYPI_URL = 'https://pypi.python.org/pypi/%s/json'
|
||||||
|
|
||||||
def get_version(name, conf, callback):
|
def _version_from_json(data):
|
||||||
repo = conf.get('pypi') or name
|
return data['info']['version']
|
||||||
url = PYPI_URL % repo
|
|
||||||
AsyncHTTPClient().fetch(url, user_agent='lilydjwg/nvchecker',
|
|
||||||
callback=partial(_pypi_done, name, callback))
|
|
||||||
|
|
||||||
def _pypi_done(name, callback, res):
|
get_version = simple_json(
|
||||||
data = json.loads(res.body.decode('utf-8'))
|
PYPI_URL,
|
||||||
version = data['info']['version']
|
'pypi',
|
||||||
callback(name, version)
|
_version_from_json,
|
||||||
|
)
|
||||||
|
|
19
nvchecker/source/simple_json.py
Normal file
19
nvchecker/source/simple_json.py
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
import json
|
||||||
|
from functools import partial
|
||||||
|
|
||||||
|
from tornado.httpclient import AsyncHTTPClient
|
||||||
|
|
||||||
|
def simple_json(urlpat, confkey, version_from_json):
|
||||||
|
|
||||||
|
def get_version(name, conf, callback):
|
||||||
|
repo = conf.get(confkey) or name
|
||||||
|
url = urlpat % repo
|
||||||
|
AsyncHTTPClient().fetch(url, user_agent='lilydjwg/nvchecker',
|
||||||
|
callback=partial(_json_done, name, callback))
|
||||||
|
|
||||||
|
def _json_done(name, callback, res):
|
||||||
|
data = json.loads(res.body.decode('utf-8'))
|
||||||
|
version = version_from_json(data)
|
||||||
|
callback(name, version)
|
||||||
|
|
||||||
|
return get_version
|
Loading…
Add table
Reference in a new issue