diff --git a/iosfu/gui/components/base.py b/iosfu/gui/components/base.py index 60f392e..5c4945f 100644 --- a/iosfu/gui/components/base.py +++ b/iosfu/gui/components/base.py @@ -136,7 +136,7 @@ class Section(Component): def get_context(self): if self.backup and self.plugin: plugin = self.plugin(backup=self.backup) - self.context = plugin.__do__() + self.context = plugin.do() def render(self, *args, **kwargs): """ diff --git a/iosfu/plugin/base.py b/iosfu/plugin/base.py index f98f892..14177fb 100644 --- a/iosfu/plugin/base.py +++ b/iosfu/plugin/base.py @@ -39,7 +39,14 @@ class BasePlugin(object): Main function called by plugin library. """ if self._backup: - return self.__do__(*args, **kwargs) + cached = self._backup.cache(self.__slug__) + if cached is None: + result = self.__do__(*args, **kwargs) + self._backup.cache(self.__slug__, result) + self._backup.write_data_file() + return result + else: + return cached else: raise Exception( 'Plugin {0} need a backup instance to work with'.format(