]> rtime.felk.cvut.cz Git - hubacji1/coffee-getter.git/commitdiff
Fix inequalities of drinkers in output
authorJiri Vlasak <hubacji1@fel.cvut.cz>
Mon, 25 Mar 2019 14:12:39 +0000 (15:12 +0100)
committerJiri Vlasak <hubacji1@fel.cvut.cz>
Mon, 25 Mar 2019 14:16:10 +0000 (15:16 +0100)
cbgetter.py

index c02c11c838516f1b71fc9a848169852331fb81ae..aa4ab281c44812a0d08129a8b0383332ea5bd376 100644 (file)
@@ -70,16 +70,32 @@ class CoffeebotGetter:
         """Get list of top Mate drinkers, update message."""
         self.msg = "*Top 5 Club-Mate drinkers*\n"
         self.top = self.db.getTopMateDrinkers()
+        self.computeEqualDrinkers()
         totl = [c for (un, c) in self.top]
         tot = sum(totl)
         isuff = {1: "st", 2: "nd", 3: "rd", 4: "th", 5: "th"}
         i = 1
-        for (un, c) in self.top[:5]:
-            self.msg += "{}{} is *{}* who drank `{:.2f}` liters".format(
-                i, isuff[i],
-                un,
-                c
-            )
+        for drinkers in self.topeq[:5]:
+            c = drinkers[0][1]
+            d = [un for (un, c) in drinkers]
+            self.msg += "{}{}".format(i, 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(un)
+                elif un is d[-1]:
+                    self.msg += "" if len(d) == 2 else ","
+                    self.msg += " and *{}*".format(un)
+                else:
+                    self.msg += ", *{}*".format(un)
+            if len(d) > 1:
+                self.msg += " of whom each drank "
+            else:
+                self.msg += " who drank "
+            self.msg += "`{:.2f}` liters".format(c)
             if i == 1:
                 self.msg += self.getHeroComment()
             self.msg += "\n"