1 # -*- coding: utf-8 -*-
3 from sqlite3 import connect
5 class FileNotSetError(ValueError):
9 def __init__(self, dbpath=False):
11 self.con = connect(dbpath)
14 raise FileNotSetError("Database file must be set")
15 self.cur = self.con.cursor()
22 def getTopMateDrinkers(self):
23 """Return list of pairs of name, count for Mate drinkers."""
26 SELECT count(*), users.name FROM coffees
27 INNER JOIN users ON coffees.id = users.id
28 WHERE flavor = 'Club-Mate 0,5 l'
29 AND coffees.time BETWEEN
30 datetime('now', 'localtime', '-7 days') AND
31 datetime('now', 'localtime')
34 for (cnt, un) in self.cur.execute(que):
37 SELECT count(*), users.name FROM coffees
38 INNER JOIN users ON coffees.id = users.id
39 WHERE flavor = 'Club-Mate 0,33 l'
40 AND coffees.time BETWEEN
41 datetime('now', 'localtime', '-7 days') AND
42 datetime('now', 'localtime')
45 for (cnt, un) in self.cur.execute(que):
47 users[un] += cnt * 0.33
49 users[un] = cnt * 0.33
51 for (un, cnt) in users.items():
53 top.sort(key=lambda x: (x[1], x[0]), reverse=True)