summaryrefslogtreecommitdiffstats
path: root/ipsilon/util
diff options
context:
space:
mode:
Diffstat (limited to 'ipsilon/util')
-rwxr-xr-xipsilon/util/data.py26
-rwxr-xr-xipsilon/util/plugin.py5
2 files changed, 27 insertions, 4 deletions
diff --git a/ipsilon/util/data.py b/ipsilon/util/data.py
index cbd3b49..2a55bb2 100755
--- a/ipsilon/util/data.py
+++ b/ipsilon/util/data.py
@@ -189,21 +189,43 @@ class Store(object):
if con:
con.close()
- def get_data(self, plugin):
+ def get_data(self, plugin, idval=None, name=None, value=None):
con = None
rows = []
+ names = None
+ values = ()
+ if idval or name or value:
+ names = ""
+ if idval:
+ names += " id=?"
+ values = values + (idval,)
+ if name:
+ if len(names) != 0:
+ names += " AND"
+ names += " name=?"
+ values = values + (name,)
+ if value:
+ if len(names) != 0:
+ names += " AND"
+ names += " value=?"
+ values = values + (value,)
try:
con = sqlite3.connect(self._admin_dbname)
cur = con.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS " +
plugin + "_data (id INTEGER, name TEXT, value TEXT)")
- cur.execute("SELECT * FROM " + plugin + "_data")
+ if not names:
+ cur.execute("SELECT * FROM " + plugin + "_data")
+ else:
+ cur.execute("SELECT * FROM " + plugin + "_data WHERE" +
+ names, values)
rows = cur.fetchall()
con.commit()
except sqlite3.Error, e:
if con:
con.rollback()
cherrypy.log.error("Failed to load %s data: [%s]" % (plugin, e))
+ cherrypy.log.error(repr([names, values]))
finally:
if con:
con.close()
diff --git a/ipsilon/util/plugin.py b/ipsilon/util/plugin.py
index 16a086a..045cc75 100755
--- a/ipsilon/util/plugin.py
+++ b/ipsilon/util/plugin.py
@@ -138,8 +138,9 @@ class PluginObject(object):
self._config = dict()
self._config[option] = value
- def get_data(self):
- return self._data.get_data(self.name)
+ def get_data(self, idval=None, name=None, value=None):
+ return self._data.get_data(self.name, idval=idval, name=name,
+ value=value)
def save_data(self, data):
self._data.save_data(self.name, data)