diff --git a/config.toml b/config.toml index 4cf8861..7af7de6 100644 --- a/config.toml +++ b/config.toml @@ -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] diff --git a/modules/Releases.py b/modules/Releases.py index 4a22363..0f60385 100644 --- a/modules/Releases.py +++ b/modules/Releases.py @@ -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: diff --git a/modules/models/ResponseFields.py b/modules/models/ResponseFields.py index 1628123..b3c75a8 100644 --- a/modules/models/ResponseFields.py +++ b/modules/models/ResponseFields.py @@ -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):