From 29d60ad56c4aff881eaf5b30e34ae8d4a76797fa Mon Sep 17 00:00:00 2001 From: Vinicius Moreira Date: Thu, 24 Oct 2019 12:33:42 -0300 Subject: [PATCH] [snap] snaps not treated as applications with be categorized as runtime at least --- CHANGELOG.md | 4 +++- bauh/gems/snap/controller.py | 18 ++++++++++++++++-- bauh/gems/snap/model.py | 3 ++- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 148f8379..8c023e7d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - AppImage: - showing an error popup when **AppImageLauncher** messes up with an application installation - Flatpak: - - Runtimes now are categorized as "runtimes" + - Runtimes now are categorized as "runtime" - AUR: - showing a "user-friendly" popup when there are integrity issues with the source-files of a building package - not waiting for the categories file to be retrieved from the cloud during application boot ( reduces boot time ) @@ -24,6 +24,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - not waiting for the categories file to be retrieved from the cloud during application boot ( reduces boot time ) - caching cloud categories to the disk so they can be used in scenarios when it is not possible to retrieve them ( e.g: internet is off ) - showing a warning popup when the Snap API is out + - Snaps not treated as applications with be categorized as "runtime" at least - minor thread improvements ### UI @@ -33,6 +34,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Fixes - application not initializing when there is no internet connection - not loading application icons after some filters are applied to the table results +- not reloading the available categories after asynchronous data is fetched - AUR: - update-checking for some scenarios - not respecting **ignorepkg** settings in **pacman.conf** diff --git a/bauh/gems/snap/controller.py b/bauh/gems/snap/controller.py index 063f5575..25054bd2 100644 --- a/bauh/gems/snap/controller.py +++ b/bauh/gems/snap/controller.py @@ -47,13 +47,27 @@ class SnapManager(SoftwareManager): latest_version=app_json.get('version'), description=app_json.get('description', app_json.get('summary'))) - if app.publisher: + if app.publisher and app.publisher.endswith('*'): + app.verified_publisher = True app.publisher = app.publisher.replace('*', '') - app.categories = self.categories.get(app.name.lower()) + categories = self.categories.get(app.name.lower()) + + if categories: + app.categories = categories app.installed = installed + if not app.is_application(): + categories = app.categories + + if categories is None: + categories = [] + app.categories = categories + + if 'runtime' not in categories: + categories.append('runtime') + api_data = self.api_cache.get(app_json['name']) expired_data = api_data and api_data.get('expires_at') and api_data['expires_at'] <= datetime.utcnow() diff --git a/bauh/gems/snap/model.py b/bauh/gems/snap/model.py index 711d67e4..6a48928d 100644 --- a/bauh/gems/snap/model.py +++ b/bauh/gems/snap/model.py @@ -19,7 +19,7 @@ class SnapApplication(SoftwarePackage): def __init__(self, id: str = None, name: str = None, version: str = None, latest_version: str = None, description: str = None, publisher: str = None, rev: str = None, notes: str = None, - confinement: str = None, has_apps_field: bool = None): + confinement: str = None, has_apps_field: bool = None, verified_publisher: bool = False): super(SnapApplication, self).__init__(id=id, name=name, version=version, latest_version=latest_version, description=description) self.publisher = publisher @@ -27,6 +27,7 @@ class SnapApplication(SoftwarePackage): self.notes = notes self.confinement = confinement self.has_apps_field = has_apps_field + self.verified_publisher = verified_publisher def supports_disk_cache(self): return self.installed