diff --git a/nvchecker-old/source/cpan.py b/nvchecker-old/source/cpan.py deleted file mode 100644 index 9fbfbe7..0000000 --- a/nvchecker-old/source/cpan.py +++ /dev/null @@ -1,16 +0,0 @@ -# MIT licensed -# Copyright (c) 2013-2017 lilydjwg , et al. - -from .simple_json import simple_json - -# Using metacpan -CPAN_URL = 'https://fastapi.metacpan.org/release/%s' - -def _version_from_json(data): - return str(data['version']) - -get_version, get_cacheable_conf = simple_json( - CPAN_URL, - 'cpan', - _version_from_json, -) diff --git a/nvchecker-old/source/gems.py b/nvchecker-old/source/gems.py deleted file mode 100644 index 308e56d..0000000 --- a/nvchecker-old/source/gems.py +++ /dev/null @@ -1,15 +0,0 @@ -# MIT licensed -# Copyright (c) 2013-2017 lilydjwg , et al. - -from .simple_json import simple_json - -GEMS_URL = 'https://rubygems.org/api/v1/versions/%s.json' - -def _version_from_json(data): - return data[0]['number'] - -get_version, get_cacheable_conf = simple_json( - GEMS_URL, - 'gems', - _version_from_json, -) diff --git a/nvchecker-old/source/hackage.py b/nvchecker-old/source/hackage.py deleted file mode 100644 index 79ced66..0000000 --- a/nvchecker-old/source/hackage.py +++ /dev/null @@ -1,15 +0,0 @@ -# MIT licensed -# Copyright (c) 2013-2017 lilydjwg , et al. - -from .simple_json import simple_json - -HACKAGE_URL = 'https://hackage.haskell.org/package/%s/preferred.json' - -def _version_from_json(data): - return data['normal-version'][0] - -get_version, get_cacheable_conf = simple_json( - HACKAGE_URL, - 'hackage', - _version_from_json, -) diff --git a/nvchecker-old/source/npm.py b/nvchecker-old/source/npm.py deleted file mode 100644 index 256c4b4..0000000 --- a/nvchecker-old/source/npm.py +++ /dev/null @@ -1,15 +0,0 @@ -# MIT licensed -# Copyright (c) 2013-2017 lilydjwg , et al. - -from .simple_json import simple_json - -NPM_URL = 'https://registry.npmjs.org/%s' - -def _version_from_json(data): - return data['dist-tags']['latest'] - -get_version, get_cacheable_conf = simple_json( - NPM_URL, - 'npm', - _version_from_json, -) diff --git a/nvchecker-old/source/packagist.py b/nvchecker-old/source/packagist.py deleted file mode 100644 index dbb4d6d..0000000 --- a/nvchecker-old/source/packagist.py +++ /dev/null @@ -1,18 +0,0 @@ -# MIT licensed -# Copyright (c) 2013-2017 lilydjwg , et al. - -from .simple_json import simple_json - -PACKAGIST_URL = 'https://packagist.org/packages/%s.json' - -def _version_from_json(data): - data = {version: details for version, details in data["package"]['versions'].items() if version != "dev-master"} - - if len(data): - return max(data, key=lambda version: data[version]["time"]) - -get_version, get_cacheable_conf = simple_json( - PACKAGIST_URL, - 'packagist', - _version_from_json, -) diff --git a/nvchecker_source/cpan.py b/nvchecker_source/cpan.py new file mode 100644 index 0000000..413a1f2 --- /dev/null +++ b/nvchecker_source/cpan.py @@ -0,0 +1,11 @@ +# MIT licensed +# Copyright (c) 2013-2020 lilydjwg , et al. + +# Using metacpan +CPAN_URL = 'https://fastapi.metacpan.org/release/%s' + +async def get_version(name, conf, *, cache, **kwargs): + key = conf.get('cpan', name) + data = await cache.get_json(CPAN_URL % key) + return str(data['version']) + diff --git a/nvchecker_source/gems.py b/nvchecker_source/gems.py new file mode 100644 index 0000000..fbea42e --- /dev/null +++ b/nvchecker_source/gems.py @@ -0,0 +1,9 @@ +# MIT licensed +# Copyright (c) 2013-2020 lilydjwg , et al. + +GEMS_URL = 'https://rubygems.org/api/v1/versions/%s.json' + +async def get_version(name, conf, *, cache, **kwargs): + key = conf.get('gems', name) + data = await cache.get_json(GEMS_URL % key) + return data[0]['number'] diff --git a/nvchecker_source/hackage.py b/nvchecker_source/hackage.py new file mode 100644 index 0000000..2f8b9f4 --- /dev/null +++ b/nvchecker_source/hackage.py @@ -0,0 +1,10 @@ +# MIT licensed +# Copyright (c) 2013-2020 lilydjwg , et al. + +HACKAGE_URL = 'https://hackage.haskell.org/package/%s/preferred.json' + +async def get_version(name, conf, *, cache, **kwargs): + key = conf.get('hackage', name) + data = await cache.get_json(HACKAGE_URL % key) + return data['normal-version'][0] + diff --git a/nvchecker_source/npm.py b/nvchecker_source/npm.py new file mode 100644 index 0000000..593d350 --- /dev/null +++ b/nvchecker_source/npm.py @@ -0,0 +1,9 @@ +# MIT licensed +# Copyright (c) 2013-2020 lilydjwg , et al. + +NPM_URL = 'https://registry.npmjs.org/%s' + +async def get_version(name, conf, *, cache, **kwargs): + key = conf.get('npm', name) + data = await cache.get_json(NPM_URL % key) + return data['dist-tags']['latest'] diff --git a/nvchecker_source/packagist.py b/nvchecker_source/packagist.py new file mode 100644 index 0000000..77e019b --- /dev/null +++ b/nvchecker_source/packagist.py @@ -0,0 +1,17 @@ +# MIT licensed +# Copyright (c) 2013-2020 lilydjwg , et al. + +PACKAGIST_URL = 'https://packagist.org/packages/%s.json' + +async def get_version(name, conf, *, cache, **kwargs): + key = conf.get('packagist', name) + data = await cache.get_json(PACKAGIST_URL % key) + + versions = { + version: details + for version, details in data["package"]['versions'].items() + if version != "dev-master" + } + + if len(data): + return max(data, key=lambda version: versions[version]["time"])