]> git.ipfire.org Git - ipfire.org.git/blame - webapp/backend/settings.py
Move everything to the root of the repository.
[ipfire.org.git] / webapp / backend / settings.py
CommitLineData
940227cb
MT
1#!/usr/bin/python
2
3from databases import Databases
4from misc import Singleton
5
6class Settings(object):
7 __metaclass__ = Singleton
8
9 @property
10 def db(self):
11 return Databases().webapp
12
13 def query(self, key):
14 return self.db.get("SELECT * FROM settings WHERE k=%s", key)
15
16 def get(self, key):
17 return "%s" % self.query(key)["v"]
18
19 def get_id(self, key):
20 return self.query(key)["id"]
21
22 def get_int(self, key):
23 value = self.get(key)
24
25 if value is None:
26 return None
27
28 return int(value)
29
30 def get_float(self, key):
31 value = self.get(key)
32
33 if value is None:
34 return None
35
36 return float(value)
37
38 def set(self, key, value):
39 id = self.get(key)
40
41 if not id:
42 self.db.execute("INSERT INTO settings(k, v) VALUES(%s, %s)", key, value)
43 else:
44 self.db.execute("UPDATE settings SET v=%s WHERE id=%s" % (value, id))
45
46 def get_all(self):
47 attrs = {}
48
49 for s in self.db.query("SELECT * FROM settings"):
50 attrs[s.k] = s.v
51
52 return attrs
53
54
55if __name__ == "__main__":
56 s = Settings()
57
58 print s.get_all()