diff options
| author | 2018-08-31 15:49:57 +0100 | |
|---|---|---|
| committer | 2018-08-31 15:49:57 +0100 | |
| commit | b96499541927d81e25172c56aa94c4a6c474e6c1 (patch) | |
| tree | 1d2f8b490c3c3e80cd92ee5f6d279a1687dc297c /Database.py | |
| parent | Turns out we didn't need find_all_by_setting (diff) | |
All the settings (#11)
* Add Database.UserChannelSettings.find_all_by_setting
* Turns out we didn't need find_all_by_setting
* Actually, we do need find_all_by_setting
Diffstat (limited to 'Database.py')
| -rw-r--r-- | Database.py | 14 |
1 files changed, 14 insertions, 0 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 |
