refactor: more flexible tag implementation

This commit is contained in:
Indranil012 2023-03-12 00:37:41 +05:30
parent 32b1a3cf35
commit 9d72b7a68a
4 changed files with 15 additions and 19 deletions

View File

@ -91,13 +91,12 @@ class Releases:
return assets return assets
async def get_latest_releases(self, repositories: list, tag: str = "latest") -> dict: async def get_latest_releases(self, repositories: dict) -> dict:
"""Runs get_release() asynchronously for each repository. """Runs get_release() asynchronously for each repository.
Args: Args:
repositories (list): List of repositories in Github's standard username/repository notation repositories (dict): dict of repositories and tags in Github's standard username/repository notation
tag (str): lateset(default), prerelease, recent, tag_name example (dict): {repo : tag, ...}
see get_tag_name() for more details.
Returns: Returns:
dict: A dictionary containing assets from each repository dict: A dictionary containing assets from each repository
@ -106,7 +105,7 @@ class Releases:
releases: dict[str, list] = {} releases: dict[str, list] = {}
releases['tools'] = [] releases['tools'] = []
results: list = await asyncio.gather(*[self.__get_release(repository, tag) for _, repository in repositories.items()]) results: list = await asyncio.gather(*[self.__get_release(repository, tag) for repository, tag in repositories.items()])
releases['tools'] = [asset for result in results for asset in result] releases['tools'] = [asset for result in results for asset in result]

View File

@ -19,5 +19,5 @@ async def patches(request: Request, response: Response) -> dict:
json: list of latest patches json: list of latest patches
""" """
return await releases.get_patches_json(config['repositories']['patches'], return await releases.get_patches_json(config['repositories']['patches'][0],
config['release']['tag']) config['repositories']['patches'][1])

View File

@ -18,5 +18,5 @@ async def tools(request: Request, response: Response) -> dict:
Returns: Returns:
json: information about the patching tools' latest version json: information about the patching tools' latest version
""" """
return await releases.get_latest_releases(config['repositories'], repositories = dict(config['repositories'].values())
config['release']['tag']) return await releases.get_latest_releases(repositories)

View File

@ -55,16 +55,13 @@ database = 5
access_token_expires = false access_token_expires = false
[repositories] [repositories]
patcher = "revanced/revanced-patcher" patcher = ["revanced/revanced-patcher", "latest"]
patches = "revanced/revanced-patches" patches = ["revanced/revanced-patches", "latest"]
integration = "revanced/revanced-integrations" integration = ["revanced/revanced-integrations", "latest"]
manager = "revanced/revanced-manager" manager = ["revanced/revanced-manager", "latest"]
cli = "revanced/revanced-cli" cli = ["revanced/revanced-cli", "latest"]
website = "revanced/revanced-website" website = ["revanced/revanced-website", "latest"]
release-api = "revanced/revanced-releases-api" release-api = ["revanced/revanced-releases-api", "latest"]
[release]
tag = "latest"
[socials] [socials]
website = "https://revanced.app" website = "https://revanced.app"