mirror of
https://forge.fsky.io/oneflux/omegafox.git
synced 2026-04-11 13:42:05 -07:00
feat: Implement supported versions listing feature
This commit is contained in:
parent
13d9c26a16
commit
6e2db60b7f
2 changed files with 42 additions and 1 deletions
|
|
@ -13,7 +13,13 @@ import click
|
||||||
|
|
||||||
from .addons import DefaultAddons, maybe_download_addons
|
from .addons import DefaultAddons, maybe_download_addons
|
||||||
from .locale import ALLOW_GEOIP, download_mmdb, remove_mmdb
|
from .locale import ALLOW_GEOIP, download_mmdb, remove_mmdb
|
||||||
from .pkgman import INSTALL_DIR, CamoufoxFetcher, installed_verstr, rprint
|
from .pkgman import (
|
||||||
|
INSTALL_DIR,
|
||||||
|
CamoufoxFetcher,
|
||||||
|
installed_verstr,
|
||||||
|
list_available_versions,
|
||||||
|
rprint,
|
||||||
|
)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from browserforge.download import download as update_browserforge
|
from browserforge.download import download as update_browserforge
|
||||||
|
|
@ -175,5 +181,19 @@ def version() -> None:
|
||||||
rprint("(Up to date!)", fg="yellow")
|
rprint("(Up to date!)", fg="yellow")
|
||||||
|
|
||||||
|
|
||||||
|
@cli.command(name='list')
|
||||||
|
def list_versions() -> None:
|
||||||
|
"""
|
||||||
|
List all available release versions for Camoufox.
|
||||||
|
"""
|
||||||
|
versions = list_available_versions()
|
||||||
|
if versions:
|
||||||
|
rprint("Available versions:", fg="green")
|
||||||
|
for ver in versions:
|
||||||
|
click.echo(ver)
|
||||||
|
else:
|
||||||
|
rprint("No available releases found.", fg="red")
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
cli()
|
cli()
|
||||||
|
|
|
||||||
|
|
@ -641,3 +641,24 @@ def load_yaml(file: str) -> Dict[str, Any]:
|
||||||
"""
|
"""
|
||||||
with open(LOCAL_DATA / file, 'r') as f:
|
with open(LOCAL_DATA / file, 'r') as f:
|
||||||
return load(f, Loader=CLoader)
|
return load(f, Loader=CLoader)
|
||||||
|
|
||||||
|
|
||||||
|
def list_available_versions() -> List[str]:
|
||||||
|
"""
|
||||||
|
List the available versions of Camoufox on GitHub.
|
||||||
|
"""
|
||||||
|
|
||||||
|
fetcher = CamoufoxFetcher()
|
||||||
|
|
||||||
|
releases: list[dict] = fetcher.fetch_all_releases()
|
||||||
|
versions: List[Version] = []
|
||||||
|
for release in releases:
|
||||||
|
for asset in release.get('assets', []):
|
||||||
|
try:
|
||||||
|
version = fetcher.convert_asset_to_version(asset)
|
||||||
|
if version.is_supported():
|
||||||
|
versions.append(version)
|
||||||
|
except ValueError:
|
||||||
|
continue
|
||||||
|
|
||||||
|
return [version.full_string for version in sorted(versions, reverse=True)]
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue