if self.con:
self.con.close()
+ def get_top_drinks(self):
+ """Return list of pairs of drink name and count."""
+ q = """
+
+ SELECT count(*), flavor
+ FROM coffees
+ WHERE time BETWEEN
+ datetime('now', 'localtime', '-7 days')
+ AND datetime('now', 'localtime')
+ GROUP BY flavor
+
+ """
+ top = []
+ for (cnt, dn) in self.cur.execute(q):
+ top.append((dn, cnt))
+ top.sort(key=lambda x: (x[1], x[0]), reverse=True)
+ return top
+
def getTopMateDrinkers(self):
"""Return list of pairs of name, count for Mate drinkers."""
users = {}
top.sort(key=lambda x: (x[1], x[0]), reverse=True)
return top
+ def get_top_tea_drinkers(self):
+ """Return list of pairs of name, count for tea drinkers."""
+ q = """
+
+ SELECT count(*), users.name FROM coffees
+ INNER JOIN users ON coffees.id = users.id
+ WHERE flavor = 'tea'
+ AND coffees.time BETWEEN
+ datetime('now', 'localtime', '-7 days') AND
+ datetime('now', 'localtime')
+ GROUP BY coffees.id
+
+ """
+ top = []
+ for (cnt, un) in self.cur.execute(q):
+ top.append((un, cnt))
+ top.sort(key=lambda x: (x[1], x[0]), reverse=True)
+ return top
+
def getDrunkSum(self, *args, **kwargs):
"""Return list of drunken ``flavor`` from ``dtf`` to ``dtt``.