From 5f34d448423a63e76dd8856aba12e2ab025fe89f Mon Sep 17 00:00:00 2001 From: Jiri Vlasak Date: Fri, 4 Nov 2022 16:00:33 +0100 Subject: [PATCH] Rework bot --- coffee_getter/bot.py | 65 +++++++++++++++++++++++--------------------- 1 file changed, 34 insertions(+), 31 deletions(-) diff --git a/coffee_getter/bot.py b/coffee_getter/bot.py index a08a226..b87463d 100644 --- a/coffee_getter/bot.py +++ b/coffee_getter/bot.py @@ -1,29 +1,32 @@ -# -*- 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 - -class CoffeebotGetter: - """This class connects configuration, database access and publishing.""" - def __init__(self): - self.cfg = Conf() - self.db = Db(self.cfg.getCoffeeDbPath()) +from coffee_getter.db import Db +import coffee_getter.conf as conf + + +class Bot: + isuff = {1: "st", 2: "nd", 3: "rd", 4: "th", 5: "th"} + + def __init__(self, db_path=False): + if db_path: + self.db = Db(db_path) + else: + self.db = Db(conf.DB_PATH) self.msg = "" self.top = [] self.topeq = [] - self.isuff = {1: "st", 2: "nd", 3: "rd", 4: "th", 5: "th"} - return None - def getMsg(self): - """Return message.""" + def get_msg(self): return self.msg - def sendMsgToSlack(self): - """Send message to Slack Bot.""" - return post(self.cfg.getCoffeebotURL(), dumps({"text": self.msg})) + def send_msg_to(self, where="slack"): + if where == "slack": + where = conf.COFFEEBOT_SLACK_URL + else: + raise ValueError(f"Unknown `where` = {where}.") + return post(where, dumps({"text": self.msg})) def get_drink_smile(self, drink): """Return Slack smile for ``drink``. @@ -42,7 +45,7 @@ class CoffeebotGetter: } return smiles[drink] - def getHeroComment(self): + def get_hero_comment(self): """Return comment for hero.""" hsuff = [ ", oops", @@ -60,7 +63,7 @@ class CoffeebotGetter: ri = randint(0, len(hsuff) - 1) return hsuff[ri] - def getSomeSmile(self): + def get_some_smile(self): """Return some Slack smile.""" smiles = [ ":party_parrot:", @@ -74,7 +77,7 @@ class CoffeebotGetter: ri = randint(0, len(smiles) - 1) return smiles[ri] - def computeEqualDrinkers(self): + def compute_equal_drinkers(self): """Compute equally drunken drinkers.""" self.topeq = [] if len(self.top) <= 0: @@ -91,7 +94,7 @@ class CoffeebotGetter: """Get list of top drinks, update message.""" self.msg = "*Top drinks*\n" self.top = self.db.get_top_drinks() - self.computeEqualDrinkers() + self.compute_equal_drinkers() i = 1 for drinks in self.topeq[:3]: c = drinks[0][1] @@ -117,11 +120,11 @@ class CoffeebotGetter: self.msg += "\n" i += 1 - def loadTopMateDrinkers(self): + def load_top_mate_drinkers(self): """Get list of top Mate drinkers, update message.""" self.msg = "*Top 5 Club-Mate drinkers*\n" - self.top = self.db.getTopMateDrinkers() - self.computeEqualDrinkers() + self.top = self.db.get_top_mate_drinkers() + self.compute_equal_drinkers() totl = [c for (un, c) in self.top] tot = sum(totl) i = 1 @@ -147,13 +150,13 @@ class CoffeebotGetter: self.msg += " who drank " self.msg += "`{:.2f}` liters".format(c) if i == 1: - self.msg += self.getHeroComment() + self.msg += self.get_hero_comment() self.msg += "\n" i += 1 self.msg += "\n" self.msg += "Oh, and together we drank *{:.2f}* liters {}".format( tot, - self.getSomeSmile() + self.get_some_smile() ) return @@ -161,7 +164,7 @@ class CoffeebotGetter: """Get list of top tea drinkers, update message.""" self.msg = "*Top 5 tea drinkers*\n" self.top = self.db.get_top_tea_drinkers() - self.computeEqualDrinkers() + self.compute_equal_drinkers() tot = sum([c for (un, c) in self.top]) i = 1 for drinkers in self.topeq[:5]: @@ -193,10 +196,10 @@ class CoffeebotGetter: self.msg += "\n" self.msg += "Oh, and together we drank *{}* teas {}".format( tot, - self.getSomeSmile() + self.get_some_smile() ) - def loadDrunkSum(self, *args, **kwargs): + def load_drunk_sum(self, *args, **kwargs): """Get list of drunken ``flavor`` from ``dtf`` to ``dtt``, update msg. Keyword arguments: @@ -204,7 +207,7 @@ class CoffeebotGetter: dtf -- Date and time *from*. dtt -- Date and time *to*. """ - self.top = self.db.getDrunkSum(*args, **kwargs) + self.top = self.db.get_drunk_sum(*args, **kwargs) if args: flavor = args[0] dtf = args[1] @@ -219,7 +222,7 @@ class CoffeebotGetter: self.msg += "---" return - def loadDrunkList(self, *args, **kwargs): + def load_drunk_list(self, *args, **kwargs): """Get list of drunken ``flavor`` from ``dtf`` to ``dtt``, update msg. Keyword arguments: @@ -227,7 +230,7 @@ class CoffeebotGetter: dtf -- Date and time *from*. dtt -- Date and time *to*. """ - self.top = self.db.getDrunkSum(*args, **kwargs) + self.top = self.db.get_drunk_sum(*args, **kwargs) d = self.db.getDrunkList(*args, **kwargs) if args: flavor = args[0] -- 2.39.2