aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar jesopo2019-09-04 15:26:36 +0100
committerGravatar jesopo2019-09-04 15:26:36 +0100
commitd7ae1824284087b748e38cfb671c2cbf60ee14ac (patch)
tree5c89d94b1788e78212cb3ba6d2bb04399117c372
parentonly 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
-rw-r--r--src/IRCChannel.py8
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=[]