]> rtime.felk.cvut.cz Git - hubacji1/coffee-getter.git/blobdiff - cbgetter.py
Add test cases for equal drinkers
[hubacji1/coffee-getter.git] / cbgetter.py
index 391e2dd7e4d0b8e914624940a028384c64f2c699..606bfef2427e34b81ee9af9cd8ed7c31207d6071 100644 (file)
@@ -1,6 +1,7 @@
 # -*- coding: utf-8 -*-
 """Get data from database and publish them."""
 from json import dumps
+from random import randint
 from requests import post
 from cbconf import Conf
 from cbdb import Db
@@ -11,6 +12,7 @@ class CoffeebotGetter:
         self.cfg = Conf()
         self.db = Db(self.cfg.getCoffeeDbPath())
         self.msg = ""
+        self.top = []
         return None
 
     def getMsg(self):
@@ -20,3 +22,60 @@ class CoffeebotGetter:
     def sendMsgToSlack(self):
         """Send message to Slack Bot."""
         return post(self.cfg.getCoffeebotURL(), dumps({"text": self.msg}))
+
+    def getHeroComment(self):
+        """Return comment for hero."""
+        hsuff = [
+            ", oops",
+            " - real hero",
+            " because couldn't resist",
+            " - drunken master",
+            ", woohoo",
+            " - unbeatable",
+            " - superultramaxidrinker",
+            " and didn't sleep last week",
+            " in last 604800 seconds",
+            ", no idea how",
+            " and still drinking",
+        ]
+        ri = randint(0, len(hsuff) - 1)
+        return hsuff[ri]
+
+    def getSomeSmile(self):
+        """Return some Slack smile."""
+        smiles = [
+            ":party_parrot:",
+            ":cat2:",
+            ":heavy_check_mark:",
+            ":baby_bottle:",
+            ":+1:",
+            ":aaw_yeah:",
+            ":better:",
+        ]
+        ri = randint(0, len(smiles) - 1)
+        return smiles[ri]
+
+    def loadTopMateDrinkers(self):
+        """Get list of top Mate drinkers, update message."""
+        self.msg = "*Top 5 Club-Mate drinkers*\n"
+        self.top = self.db.getTopMateDrinkers()
+        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
+            )
+            if i == 1:
+                self.msg += self.getHeroComment()
+            self.msg += "\n"
+            i += 1
+        self.msg += "\n"
+        self.msg += "Oh, and together we drank *{:.2f}* liters {}".format(
+            tot,
+            self.getSomeSmile()
+        )
+        return