# -*- 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
self.cfg = Conf()
self.db = Db(self.cfg.getCoffeeDbPath())
self.msg = ""
+ self.top = []
return None
def getMsg(self):
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