]>
Commit | Line | Data |
---|---|---|
940227cb MT |
1 | #!/usr/bin/python |
2 | ||
3 | from databases import Databases | |
4 | from misc import Singleton | |
5 | ||
6 | class 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 | ||
55 | if __name__ == "__main__": | |
56 | s = Settings() | |
57 | ||
58 | print s.get_all() |