]> rtime.felk.cvut.cz Git - hubacji1/coffee-getter.git/blobdiff - cbgetter.py
Send only if more than 3 people in stats
[hubacji1/coffee-getter.git] / cbgetter.py
index 668620d4eb4684fbcec24704588a0d742961a570..a08a2268de61e8eb5aaf5d065b1c1e9f745abdd6 100644 (file)
@@ -25,6 +25,23 @@ class CoffeebotGetter:
         """Send message to Slack Bot."""
         return post(self.cfg.getCoffeebotURL(), dumps({"text": self.msg}))
 
+    def get_drink_smile(self, drink):
+        """Return Slack smile for ``drink``.
+
+        Keyword arguments:
+        drink -- Drink of smile.
+        """
+        smiles = {
+            "tea": ":tea:",
+            "espresso": ":coffee:",
+            "espresso lungo": ":owl:",
+            "cappuccino": ":flara:",
+            "latte macchiato": ":baby_bottle:",
+            "Club-Mate 0,5 l": ":club-mate:",
+            "Club-Mate 0,33 l": ":club-mate_cola:",
+        }
+        return smiles[drink]
+
     def getHeroComment(self):
         """Return comment for hero."""
         hsuff = [
@@ -59,6 +76,7 @@ class CoffeebotGetter:
 
     def computeEqualDrinkers(self):
         """Compute equally drunken drinkers."""
+        self.topeq = []
         if len(self.top) <= 0:
             return
         lc = self.top[0][1] + 1
@@ -69,6 +87,36 @@ class CoffeebotGetter:
             self.topeq[-1].append((un, c))
         return
 
+    def load_top_drinks(self):
+        """Get list of top drinks, update message."""
+        self.msg = "*Top drinks*\n"
+        self.top = self.db.get_top_drinks()
+        self.computeEqualDrinkers()
+        i = 1
+        for drinks in self.topeq[:3]:
+            c = drinks[0][1]
+            d = [un for (un, c) in drinks]
+            self.msg += "{}{}".format(i, self.isuff[i])
+            if len(d) > 1:
+                self.msg += " are "
+            else:
+                self.msg += " is "
+            for un in d:
+                if un is d[0]:
+                    self.msg += "{}".format(self.get_drink_smile(un))
+                elif un is d[-1]:
+                    self.msg += "" if len(d) == 2 else ","
+                    self.msg += " and {}".format(self.get_drink_smile(un))
+                else:
+                    self.msg += ", *{}*".format(self.get_drink_smile(un))
+            if len(d) > 1:
+                self.msg += " with each of "
+            else:
+                self.msg += " with "
+            self.msg += "`{}` drunk".format(c)
+            self.msg += "\n"
+            i += 1
+
     def loadTopMateDrinkers(self):
         """Get list of top Mate drinkers, update message."""
         self.msg = "*Top 5 Club-Mate drinkers*\n"
@@ -137,13 +185,13 @@ class CoffeebotGetter:
             else:
                 self.msg += " who drank "
             if c > 1:
-                self.msg += "`{:.2f}` teas".format(c)
+                self.msg += "`{}` teas".format(c)
             else:
-                self.msg += "`{:.2f}` tea".format(c)
+                self.msg += "`{}` tea".format(c)
             self.msg += "\n"
             i += 1
         self.msg += "\n"
-        self.msg += "Oh, and together we drank *{:.2f}* teas {}".format(
+        self.msg += "Oh, and together we drank *{}* teas {}".format(
             tot,
             self.getSomeSmile()
         )