diff options
| author | 2019-09-04 15:26:36 +0100 | |
|---|---|---|
| committer | 2019-09-04 15:26:36 +0100 | |
| commit | d7ae1824284087b748e38cfb671c2cbf60ee14ac (patch) | |
| tree | 5c89d94b1788e78212cb3ba6d2bb04399117c372 /src | |
| parent | only cache get_setting value when it's not the default value (diff) | |
| signature | ||
cache when a setting isn't set but don't cache "default" value
Diffstat (limited to 'src')
| -rw-r--r-- | src/IRCChannel.py | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/IRCChannel.py b/src/IRCChannel.py index 86dd80ff..e86eff99 100644 --- a/src/IRCChannel.py +++ b/src/IRCChannel.py @@ -152,14 +152,16 @@ class Channel(IRCObject.Object): def get_setting(self, setting: str, default: typing.Any=None ) -> typing.Any: cache_key = self._setting_cache_key(setting) + value = None if self.bot.cache.has_item(cache_key): - return self.bot.cache.get(cache_key) + value = self.bot.cache.get(cache_key) + else: + value = self.bot.database.channel_settings.get(self.id, setting, None) + self._cache_setting(cache_key, value) - value = self.bot.database.channel_settings.get(self.id, setting, None) if value == None: return default else: - self._cache_setting(cache_key, value) return value def find_settings(self, pattern: str, default: typing.Any=[] |
