From 92496ab03df595a19b61cfe4d0f0b3050262241d Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Wed, 4 Dec 2013 15:24:10 -0500 Subject: Add Admin preferences system Signed-off-by: Simo Sorce --- src/util/data.py | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100755 src/util/data.py (limited to 'src/util/data.py') diff --git a/src/util/data.py b/src/util/data.py new file mode 100755 index 0000000..871f991 --- /dev/null +++ b/src/util/data.py @@ -0,0 +1,65 @@ +#!/usr/bin/python +# +# Copyright (C) 2013 Simo Sorce +# +# see file 'COPYING' for use and warranty information +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +import os +import sqlite3 +import cherrypy + +class Store(object): + + def __init__(self, path=None): + if path is None: + self._path = os.getcwd() + else: + self._path = path + + def _load_config(self, dbname): + con = None + rows = [] + try: + con = sqlite3.connect(dbname) + cur = con.cursor() + cur.executescript(""" + CREATE TABLE IF NOT EXISTS config(name TEXT, value TEXT) + """) + cur.execute("SELECT * FROM config") + rows = cur.fetchall() + con.commit() + except sqlite3.Error, e: + if con: + con.rollback() + cherrypy.log.error("Failed to load config: [%s]" % e) + finally: + if con: + con.close() + + conf = {} + for row in rows: + conf[row[0]] = row[1] + + return conf + + def get_admin_config(self): + path = None + if 'admin.config.db' in cherrypy.config: + path = cherrypy.config['admin.config.db'] + if not path: + path = os.path.join(self._path, 'adminconfig.sqlite') + + return self._load_config(path) -- cgit