aboutsummaryrefslogtreecommitdiff
path: root/src/IRCChannel.py
diff options
context:
space:
mode:
authorGravatar jesopo2019-09-04 15:24:50 +0100
committerGravatar jesopo2019-09-04 15:24:50 +0100
commit473c2723e7e618ee7a3d6b10c089797b90aca08f (patch)
treeec6887307f22352e806126d796fead78f0f3789d /src/IRCChannel.py
parentSwitch more settings to FunctionSettings (diff)
signature
only cache get_setting value when it's not the default value
Diffstat (limited to 'src/IRCChannel.py')
-rw-r--r--src/IRCChannel.py11
1 files changed, 7 insertions, 4 deletions
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]: