From fd9bcd43e79255832c5c9126a8f57a3d3c2bb4b0 Mon Sep 17 00:00:00 2001 From: Vinicius Moreira Date: Thu, 25 Jul 2019 17:37:15 -0300 Subject: [PATCH] fix: not updating disk cached data of installed apps --- CHANGELOG.md | 1 + fpakman/core/flatpak/worker.py | 15 ++++----------- fpakman/core/snap/worker.py | 16 +++++----------- 3 files changed, 10 insertions(+), 22 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1352964c..1ccdb054 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - retrieving some Snaps data (icon, description and confinement) through Ubuntu API instead of Snap Store ### Fixes: - not showing app disk cached description when listing installed apps +- not updating disk cached data of installed apps ## [0.4.0] - 2019-07-25 ### Features diff --git a/fpakman/core/flatpak/worker.py b/fpakman/core/flatpak/worker.py index c3206b5f..44bff278 100644 --- a/fpakman/core/flatpak/worker.py +++ b/fpakman/core/flatpak/worker.py @@ -21,7 +21,7 @@ class FlatpakAsyncDataLoader(AsyncDataLoader): self.http_session = http_session self.attempts = attempts self.api_cache = api_cache - self.to_persist = {} # stores all data loaded by the instance + self.persist = False self.timeout = timeout def run(self): @@ -55,10 +55,7 @@ class FlatpakAsyncDataLoader(AsyncDataLoader): self.api_cache.add(self.app.base_data.id, loaded_data) self.app.status = ApplicationStatus.READY - - if self.app.supports_disk_cache(): - self.to_persist[self.app.base_data.id] = self.app - + self.persist = self.app.supports_disk_cache() break else: self.log_msg("Could not retrieve app data for id '{}'. Server response: {}. Body: {}".format( @@ -70,12 +67,8 @@ class FlatpakAsyncDataLoader(AsyncDataLoader): self.app.status = ApplicationStatus.READY - def cache_to_disk(self): - if self.to_persist: - for app in self.to_persist.values(): - self.manager.cache_to_disk(app=app, icon_bytes=None, only_icon=False) - - self.to_persist = {} + if self.persist: + self.manager.cache_to_disk(app=self.app, icon_bytes=None, only_icon=False) def clone(self) -> "FlatpakAsyncDataLoader": return FlatpakAsyncDataLoader(manager=self.manager, diff --git a/fpakman/core/snap/worker.py b/fpakman/core/snap/worker.py index 27679353..44e9b2ac 100644 --- a/fpakman/core/snap/worker.py +++ b/fpakman/core/snap/worker.py @@ -21,7 +21,7 @@ class SnapAsyncDataLoader(AsyncDataLoader): self.attempts = attempts self.api_cache = api_cache self.timeout = timeout - self.to_persist = {} # stores all data loaded by the instance + self.persist = False self.download_icons = download_icons def run(self): @@ -61,10 +61,7 @@ class SnapAsyncDataLoader(AsyncDataLoader): self.app.base_data.description = api_data['description'] self.app.status = ApplicationStatus.READY - - if self.app.supports_disk_cache(): - self.to_persist[self.app.base_data.id] = self.app - + self.persist = self.app.supports_disk_cache() break else: self.log_msg("Could not retrieve app data for id '{}'. Server response: {}. Body: {}".format(self.app.base_data.id, res.status_code, res.content.decode()), Fore.RED) @@ -75,6 +72,9 @@ class SnapAsyncDataLoader(AsyncDataLoader): self.app.status = ApplicationStatus.READY + if self.persist: + self.manager.cache_to_disk(app=self.app, icon_bytes=None, only_icon=False) + def clone(self) -> "SnapAsyncDataLoader": return SnapAsyncDataLoader(manager=self.manager, api_cache=self.api_cache, @@ -83,9 +83,3 @@ class SnapAsyncDataLoader(AsyncDataLoader): timeout=self.timeout, app=self.app) - def cache_to_disk(self): - if self.to_persist: - for app in self.to_persist.values(): - self.manager.cache_to_disk(app=app, icon_bytes=None, only_icon=False) - - self.to_persist = {}