From 473c2723e7e618ee7a3d6b10c089797b90aca08f Mon Sep 17 00:00:00 2001 From: jesopo Date: Wed, 4 Sep 2019 15:24:50 +0100 Subject: only cache get_setting value when it's not the default value --- src/IRCChannel.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src/IRCChannel.py') diff --git a/src/IRCChannel.py b/src/IRCChannel.py index c7789478..86dd80ff 100644 --- a/src/IRCChannel.py +++ b/src/IRCChannel.py @@ -147,6 +147,7 @@ class Channel(IRCObject.Object): def set_setting(self, setting: str, value: typing.Any): self.bot.database.channel_settings.set(self.id, setting, value) + cache_key = self._setting_cache_key(setting) self._cache_setting(self._setting_cache_key(setting), value) def get_setting(self, setting: str, default: typing.Any=None ) -> typing.Any: @@ -154,10 +155,12 @@ class Channel(IRCObject.Object): if self.bot.cache.has_item(cache_key): return self.bot.cache.get(cache_key) - value = self.bot.database.channel_settings.get(self.id, setting, - default) - self._cache_setting(cache_key, value) - return 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=[] ) -> typing.List[typing.Any]: -- cgit v1.3.1-10-gc9f91