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 functools import partial
|
||||
|
||||
from tornado.httpclient import AsyncHTTPClient
|
||||
from .simple_json import simple_json
|
||||
|
||||
# Using metacpan
|
||||
CPAN_URL = 'https://api.metacpan.org/release/%s'
|
||||
|
||||
def get_version(name, conf, callback):
|
||||
repo = conf.get('cpan') or name
|
||||
url = CPAN_URL % repo
|
||||
AsyncHTTPClient().fetch(url, user_agent='lilydjwg/nvchecker',
|
||||
callback=partial(_cpan_done, name, callback))
|
||||
def _version_from_json(data):
|
||||
return str(data['version'])
|
||||
|
||||
def _cpan_done(name, callback, res):
|
||||
data = json.loads(res.body.decode('utf-8'))
|
||||
version = str(data['version'])
|
||||
callback(name, version)
|
||||
get_version = simple_json(
|
||||
CPAN_URL,
|
||||
'cpan',
|
||||
_version_from_json,
|
||||
)
|
||||
|
|
|
@ -1,17 +1,12 @@
|
|||
import json
|
||||
from functools import partial
|
||||
|
||||
from tornado.httpclient import AsyncHTTPClient
|
||||
from .simple_json import simple_json
|
||||
|
||||
GEMS_URL = 'https://rubygems.org/api/v1/versions/%s.json'
|
||||
|
||||
def get_version(name, conf, callback):
|
||||
repo = conf.get('gems') or name
|
||||
url = GEMS_URL % repo
|
||||
AsyncHTTPClient().fetch(url, user_agent='lilydjwg/nvchecker',
|
||||
callback=partial(_gems_done, name, callback))
|
||||
def _version_from_json(data):
|
||||
return data[0]['number']
|
||||
|
||||
def _gems_done(name, callback, res):
|
||||
data = json.loads(res.body.decode('utf-8'))
|
||||
version = data[0]['number']
|
||||
callback(name, version)
|
||||
get_version = simple_json(
|
||||
GEMS_URL,
|
||||
'gems',
|
||||
_version_from_json,
|
||||
)
|
||||
|
|
|
@ -1,17 +1,12 @@
|
|||
import json
|
||||
from functools import partial
|
||||
|
||||
from tornado.httpclient import AsyncHTTPClient
|
||||
from .simple_json import simple_json
|
||||
|
||||
HACKAGE_URL = 'https://hackage.haskell.org/package/%s/preferred.json'
|
||||
|
||||
def get_version(name, conf, callback):
|
||||
repo = conf.get('hackage') or name
|
||||
url = HACKAGE_URL % repo
|
||||
AsyncHTTPClient().fetch(url, user_agent='lilydjwg/nvchecker',
|
||||
callback=partial(_hackage_done, name, callback))
|
||||
def _version_from_json(data):
|
||||
return data['normal-version'][0]
|
||||
|
||||
def _hackage_done(name, callback, res):
|
||||
data = json.loads(res.body.decode('utf-8'))
|
||||
version = data['normal-version'][0]
|
||||
callback(name, version)
|
||||
get_version = simple_json(
|
||||
HACKAGE_URL,
|
||||
'hackage',
|
||||
_version_from_json,
|
||||
)
|
||||
|
|
|
@ -1,17 +1,12 @@
|
|||
import json
|
||||
from functools import partial
|
||||
|
||||
from tornado.httpclient import AsyncHTTPClient
|
||||
from .simple_json import simple_json
|
||||
|
||||
NPM_URL = 'https://registry.npmjs.org/%s'
|
||||
|
||||
def get_version(name, conf, callback):
|
||||
repo = conf.get('npm') or name
|
||||
url = NPM_URL % repo
|
||||
AsyncHTTPClient().fetch(url, user_agent='lilydjwg/nvchecker',
|
||||
callback=partial(_npm_done, name, callback))
|
||||
def _version_from_json(data):
|
||||
return data['dist-tags']['latest']
|
||||
|
||||
def _npm_done(name, callback, res):
|
||||
data = json.loads(res.body.decode('utf-8'))
|
||||
version = data['dist-tags']['latest']
|
||||
callback(name, version)
|
||||
get_version = simple_json(
|
||||
NPM_URL,
|
||||
'npm',
|
||||
_version_from_json,
|
||||
)
|
||||
|
|
|
@ -1,17 +1,12 @@
|
|||
import json
|
||||
from functools import partial
|
||||
|
||||
from tornado.httpclient import AsyncHTTPClient
|
||||
from .simple_json import simple_json
|
||||
|
||||
PYPI_URL = 'https://pypi.python.org/pypi/%s/json'
|
||||
|
||||
def get_version(name, conf, callback):
|
||||
repo = conf.get('pypi') or name
|
||||
url = PYPI_URL % repo
|
||||
AsyncHTTPClient().fetch(url, user_agent='lilydjwg/nvchecker',
|
||||
callback=partial(_pypi_done, name, callback))
|
||||
def _version_from_json(data):
|
||||
return data['info']['version']
|
||||
|
||||
def _pypi_done(name, callback, res):
|
||||
data = json.loads(res.body.decode('utf-8'))
|
||||
version = data['info']['version']
|
||||
callback(name, version)
|
||||
get_version = simple_json(
|
||||
PYPI_URL,
|
||||
'pypi',
|
||||
_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