adds version to tools endpoint and fixes patches JSON

This commit is contained in:
Alexandre Teles 2022-09-09 18:27:00 -03:00
parent ecd4432400
commit 452c4e8008
3 changed files with 35 additions and 13 deletions

View File

@ -28,7 +28,7 @@ The team also have a [Discord Server](https://revanced.app/discord) if you need
Godspeed 💀
"""
version = "0.2 alpha"
version = "0.3 alpha"
[license]
@ -54,7 +54,7 @@ database = 1
[app]
repositories = ["TeamVanced/VancedMicroG", "revanced/revanced-cli", "revanced/revanced-patches", "revanced/revanced-integrations", "revanced/revanced-manager"]
repositories = ["TeamVanced/VancedMicroG", "revanced/revanced-cli", "revanced/revanced-patcher", "revanced/revanced-patches", "revanced/revanced-integrations", "revanced/revanced-manager"]
[logging]

View File

@ -36,20 +36,30 @@ class Releases:
# Returns:
# dict: dictionary of filename and download url
assets = []
assets: list = []
response = await self.httpx_client.get(f"https://api.github.com/repos/{repository}/releases/latest")
if response.status_code == 200:
release_assets = response.json()['assets']
for asset in release_assets:
assets.append({ 'repository': repository,
'name': asset['name'],
'size': asset['size'],
'browser_download_url': asset['browser_download_url'],
'content_type': asset['content_type']
})
release_assets: dict = response.json()['assets']
release_version: str = response.json()['tag_name']
release_tarball: str = response.json()['tarball_url']
if release_assets:
for asset in release_assets:
assets.append({ 'repository': repository,
'version': release_version,
'name': asset['name'],
'size': asset['size'],
'browser_download_url': asset['browser_download_url'],
'content_type': asset['content_type']
})
else:
assets.append({ 'repository': repository,
'version': release_version,
'name': f"{repository.split('/')[1]}-{release_version}.tar.gz",
'browser_download_url': release_tarball,
'content_type': 'application/gzip'
})
return assets
async def get_latest_releases(self, repositories: list) -> dict:

View File

@ -1,3 +1,4 @@
from typing import Any
from pydantic import BaseModel
class ToolsResponseFields(BaseModel):
@ -7,8 +8,9 @@ class ToolsResponseFields(BaseModel):
BaseModel (pydantic.BaseModel): BaseModel from pydantic
"""
repository: str
version: str
name: str
size: str
size: str | None = None
browser_download_url: str
content_type: str
class CompatiblePackagesResponseFields(BaseModel):
@ -19,6 +21,14 @@ class CompatiblePackagesResponseFields(BaseModel):
"""
name: str
versions: list[ str ] | None
class PatchesOptionsResponseFields(BaseModel):
key: str
title: str
description: str
required: bool
choices: list[ Any ] | None
class PatchesResponseFields(BaseModel):
"""Implements the fields for the /patches endpoint.
@ -29,7 +39,9 @@ class PatchesResponseFields(BaseModel):
description: str
version: str
excluded: bool
deprecated: bool
dependencies: list[ str ] | None
options: list[ PatchesOptionsResponseFields ] | None
compatiblePackages: list[ CompatiblePackagesResponseFields ]
class ContributorFields(BaseModel):