diff options
| author | 2018-08-31 15:34:56 +0100 | |
|---|---|---|
| committer | 2018-08-31 15:34:56 +0100 | |
| commit | 525de94c02db1535ea21179fae09f3e3ba2d8f8b (patch) | |
| tree | 90aba9cd8e307445e17b3b8a39fcf43c7c436317 | |
| parent | Turns out we didn't need find_all_by_setting (diff) | |
| signature | ||
Actually, we do need find_all_by_setting
| -rw-r--r-- | Database.py | 14 | ||||
| -rw-r--r-- | IRCServer.py | 5 | ||||
| -rw-r--r-- | IRCUser.py | 2 |
3 files changed, 19 insertions, 2 deletions
diff --git a/Database.py b/Database.py index 80444cef..a0aa3529 100644 --- a/Database.py +++ b/Database.py @@ -219,6 +219,20 @@ class UserChannelSettings(Table): values[i] = value[0], json.loads(value[1]) return values return default + def find_all_by_setting(self, server_id, setting, default=[]): + values = self.database.execute_fetchall( + """SELECT channels.name, users.nickname, + user_channel_settings.value FROM + user_channel_settings INNER JOIN channels ON + user_channel_settings.channel_id=channels.channel_id + INNER JOIN users on user_channel_setting.user_id=users.user_id + WHERE user_channel_settings.setting=? AND + users.server_id=?""", [setting, server_id]) + if values: + for i, value in enumerate(values): + values[i] = value[0], value[1], json.loads(value[2]) + return values + return default def delete(self, user_id, channel_id, setting): self.database.execute( """DELETE FROM user_channel_settings WHERE diff --git a/IRCServer.py b/IRCServer.py index 5ed33baf..34358e44 100644 --- a/IRCServer.py +++ b/IRCServer.py @@ -112,9 +112,12 @@ class Server(object): self.id, prefix, default) def del_setting(self, setting): self.bot.database.server_settings.delete(self.id, setting) - def get_all_user_settings(self, setting, default): + def get_all_user_settings(self, setting, default=[]): return self.bot.database.user_settings.find_all_by_setting( self.id, setting, default) + def find_all_user_channel_settings(self, setting, default=[]): + return self.bot.database.user_channel_settings.find_all_by_setting( + self.id, setting, default) def set_own_nickname(self, nickname): self.nickname = nickname @@ -39,7 +39,7 @@ class User(object): self.bot.database.user_settings.delete(self.id, setting) def get_channel_settings_per_setting(self, setting, default=[]): return self.bot.database.user_channel_settings.find_by_setting( - self.server.id, self.id, setting, default) + self.id, setting, default) def send_message(self, message, prefix=None): self.server.send_message(self.nickname, message, prefix=prefix) |
