From 560958b70043ea5b7e0e32d41cb51bd44696d775 Mon Sep 17 00:00:00 2001 From: RaNaN Date: Sun, 9 Sep 2012 15:39:50 +0200 Subject: new config api --- module/database/ConfigDatabase.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 module/database/ConfigDatabase.py (limited to 'module/database/ConfigDatabase.py') diff --git a/module/database/ConfigDatabase.py b/module/database/ConfigDatabase.py new file mode 100644 index 000000000..cc24f6785 --- /dev/null +++ b/module/database/ConfigDatabase.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +from module.database import DatabaseMethods, queue, async, inner + +# TODO + +class ConfigMethods(DatabaseMethods): + + @async + def saveConfig(self, plugin, user, config): + pass + + @queue + def loadConfig(self, plugin, user): + pass + + @async + def deleteConfig(self, plugin, user): + pass + + @queue + def loadAllConfigs(self): + pass + + + +ConfigMethods.register() \ No newline at end of file -- cgit v1.2.3 From 54bc92b4c5e0b3543a313f497cbc2276403c5980 Mon Sep 17 00:00:00 2001 From: RaNaN Date: Mon, 10 Sep 2012 11:49:35 +0200 Subject: changed config + progress api --- module/database/ConfigDatabase.py | 41 +++++++++++++++++++++++++++++---------- 1 file changed, 31 insertions(+), 10 deletions(-) (limited to 'module/database/ConfigDatabase.py') diff --git a/module/database/ConfigDatabase.py b/module/database/ConfigDatabase.py index cc24f6785..198ae0173 100644 --- a/module/database/ConfigDatabase.py +++ b/module/database/ConfigDatabase.py @@ -1,28 +1,49 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -from module.database import DatabaseMethods, queue, async, inner - -# TODO +from module.database import DatabaseMethods, queue, async class ConfigMethods(DatabaseMethods): @async - def saveConfig(self, plugin, user, config): - pass + def saveConfig(self, plugin, config, user=None): + if user is None: + self.c.execute('INSERT INTO settings(plugin, config) VALUES(?,?)', (plugin, config)) + else: + self.c.execute('INSERT INTO settings(plugin, config, user) VALUES(?,?,?)', (plugin, config, user)) + @queue - def loadConfig(self, plugin, user): - pass + def loadConfig(self, plugin, user=None): + if user is None: + self.c.execute('SELECT config FROM settings WHERE plugin=?', (plugin, )) + else: + self.c.execute('SELECT config FROM settings WHERE plugin=? AND user=?', (plugin, user)) + + return self.c.fetchone()[0] @async - def deleteConfig(self, plugin, user): - pass + def deleteConfig(self, plugin, user=None): + if user is None: + self.c.execute('DELETE FROM settings WHERE plugin=?', (plugin, )) + else: + self.c.execute('DELETE FROM settings WHERE plugin=? AND user=?', (plugin, user)) @queue def loadAllConfigs(self): - pass + self.c.execute('SELECT user, plugin, config FROM settings') + configs = {} + for r in self.c: + if r[0] in configs: + configs[r[0]][r[1]] = r[2] + else: + configs[r[0]] = {r[1]: r[2]} + return configs + + @async + def clearAllConfigs(self): + self.c.execute('DELETE FROM settings') ConfigMethods.register() \ No newline at end of file -- cgit v1.2.3