]> rtime.felk.cvut.cz Git - hubacji1/coffee-getter.git/commitdiff
Rework bot
authorJiri Vlasak <jiri.vlasak.2@cvut.cz>
Fri, 4 Nov 2022 15:00:33 +0000 (16:00 +0100)
committerJiri Vlasak <jiri.vlasak.2@cvut.cz>
Fri, 4 Nov 2022 15:02:06 +0000 (16:02 +0100)
coffee_getter/bot.py

index a08a2268de61e8eb5aaf5d065b1c1e9f745abdd6..b87463dbb6b1f1f3847af940a5dba038ec9f61c0 100644 (file)
@@ -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]