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 💀 Godspeed 💀
""" """
version = "0.2 alpha" version = "0.3 alpha"
[license] [license]
@ -54,7 +54,7 @@ database = 1
[app] [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] [logging]

View File

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

View File

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