mirror of
https://github.com/lilydjwg/nvchecker
synced 2025-03-02 17:41:10 +00:00
Add Visual Studio Code Marketplace
This commit is contained in:
parent
ad2dc19415
commit
25d7a7498d
@ -836,6 +836,17 @@ Check `Open Vsx <https://open-vsx.org/>`_ for updates.
|
||||
openvsx
|
||||
The extension's Unique Identifier on open-vsx.org, e.g. ``ritwickdey.LiveServer``.
|
||||
|
||||
Check Visual Studio Code Marketplace
|
||||
~~~~~~~~~~~~~~~
|
||||
::
|
||||
|
||||
source = "vsmarketplace"
|
||||
|
||||
Check `Visual Studio Code Marketplace <https://marketplace.visualstudio.com/vscode/>`_ for updates.
|
||||
|
||||
vsmarketplace
|
||||
The extension's Unique Identifier on marketplace.visualstudio.com/vscode, e.g. ``ritwickdey.LiveServer``.
|
||||
|
||||
Combine others' results
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
::
|
||||
|
54
nvchecker_source/vsmarketplace.py
Normal file
54
nvchecker_source/vsmarketplace.py
Normal file
@ -0,0 +1,54 @@
|
||||
# MIT licensed
|
||||
# Copyright (c) 2013-2021 Th3Whit3Wolf <the.white.wolf.is.1337@gmail.com>, et al.
|
||||
|
||||
from nvchecker.api import (
|
||||
VersionResult, Entry, AsyncCache, KeyManager,
|
||||
TemporaryError, session, GetVersionError,
|
||||
)
|
||||
|
||||
API_URL = 'https://marketplace.visualstudio.com/_apis/public/gallery/extensionquery'
|
||||
|
||||
HEADERS = {
|
||||
'Accept': 'application/json;api-version=6.1-preview.1',
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
|
||||
async def get_version(name: str, conf: Entry, *, cache: AsyncCache, **kwargs):
|
||||
name = conf.get('vsmarketplace') or name
|
||||
|
||||
q = {
|
||||
'filters': [
|
||||
{
|
||||
'criteria': [
|
||||
{
|
||||
'filterType': 8,
|
||||
'value': 'Microsoft.VisualStudio.Code'
|
||||
},
|
||||
{
|
||||
'filterType': 10,
|
||||
'value': name
|
||||
},
|
||||
{
|
||||
'filterType': 12,
|
||||
'value': '4096'
|
||||
}
|
||||
],
|
||||
'pageNumber': 1,
|
||||
'pageSize': 2,
|
||||
'sortBy': 0,
|
||||
'sortOrder': 0
|
||||
}
|
||||
],
|
||||
'assetTypes': [],
|
||||
'flags': 946
|
||||
}
|
||||
|
||||
res = await session.post(
|
||||
API_URL,
|
||||
headers = HEADERS,
|
||||
json = q,
|
||||
)
|
||||
j = res.json()
|
||||
|
||||
version = j['results'][0]['extensions'][0]['versions'][0]['version']
|
||||
return version
|
10
tests/test_vsmarketplace.py
Normal file
10
tests/test_vsmarketplace.py
Normal file
@ -0,0 +1,10 @@
|
||||
# MIT licensed
|
||||
# Copyright (c) 2013-2021 Th3Whit3Wolf <the.white.wolf.is.1337@gmail.com>, et al.
|
||||
|
||||
import pytest
|
||||
pytestmark = [pytest.mark.asyncio, pytest.mark.needs_net]
|
||||
|
||||
async def test_vsmarketplace(get_version):
|
||||
assert await get_version("usernamehw.indent-one-space", {
|
||||
"source": "vsmarketplace",
|
||||
}) == "0.2.6"
|
Loading…
Reference in New Issue
Block a user