]> git.ipfire.org Git - people/jschlag/pbs.git/blob - backend/settings.py
Initial import.
[people/jschlag/pbs.git] / backend / settings.py
1 #!/usr/bin/python
2
3 import base
4
5 class Settings(base.Object):
6 def query(self, key):
7 return self.db.get("SELECT * FROM settings WHERE k = %s", key)
8
9 def get(self, key, default=None):
10 result = self.query(key)
11 if not result:
12 return default
13
14 return "%s" % result.v
15
16 def get_id(self, key):
17 return self.query(key)["id"]
18
19 def get_int(self, key, default=None):
20 value = self.get(key, default)
21
22 if value is None:
23 return None
24
25 return int(value)
26
27 def get_float(self, key, default=None):
28 value = self.get(key, default)
29
30 if value is None:
31 return None
32
33 return float(value)
34
35 def set(self, key, value):
36 id = self.get(key)
37
38 if not id:
39 self.db.execute("INSERT INTO settings(k, v) VALUES(%s, %s)", key, value)
40 else:
41 self.db.execute("UPDATE settings SET v = %s WHERE id = %s", value, id)
42
43 def get_all(self):
44 attrs = {}
45
46 for s in self.db.query("SELECT * FROM settings"):
47 attrs[s.k] = s.v
48
49 return attrs