"""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"