From 41621ad635850be7189812ec4e07b3a28e0ea0fd Mon Sep 17 00:00:00 2001 From: Context 77 <126421199+ctx77@users.noreply.github.com> Date: Sat, 3 Aug 2024 01:09:46 +0200 Subject: [PATCH] allow Greeter to use NICK within responses. e.g. "Hello X, nice to see you" --- FaustBot/Modules/Greeter.py | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/FaustBot/Modules/Greeter.py b/FaustBot/Modules/Greeter.py index 712bf07..ffe559f 100644 --- a/FaustBot/Modules/Greeter.py +++ b/FaustBot/Modules/Greeter.py @@ -4,15 +4,17 @@ from FaustBot.Model.UserProvider import UserProvider import time from collections import defaultdict + class Greeter(JoinObserverPrototype): """ A Class only reacting to pings """ greetings_dict = defaultdict(str) - greetings_dict['Luci'] = "Hewuu" - greetings_dict['pome'] = "Hewuu" - greetings_dict['Skadi'] = "Awoo" + greetings_dict["Luci"] = "Hewuu" + greetings_dict["pome"] = "Hewuu" + greetings_dict["Skadi"] = "Awoo {NICK}!" + @staticmethod def cmd(): return None @@ -27,17 +29,21 @@ class Greeter(JoinObserverPrototype): self.greeting = greeting def update_on_join(self, data, connection: Connection): - if data['channel'] == connection.details.get_channel(): - if data['nick'].find("Guest") != -1: + if data["channel"] == connection.details.get_channel(): + joined_user = data["nick"] + if ( + joined_user.startswith("Guest") + or UserProvider().get_characters(joined_user) < 100 + ): return - UProvider= UserProvider() - if(UProvider.get_characters(data['nick'])) < 100: - return - if data['channel'] == connection.details.get_channel(): - if int(time.time()) - self.names[data['nick']] > 28800: - if Greeter.greetings_dict[data['nick']] != "": - connection.send_back(Greeter.greetings_dict[data['nick']]+" " + data['nick'], data) - else: - connection.send_back(self.greeting+" " + data['nick'], data) - self.names[data['nick']] = int(time.time()) \ No newline at end of file + if int(time.time()) - self.names[joined_user] > 28800: + greeting_text = self.greetings_dict.get(joined_user, self.greeting) + + if "{NICK}" in greeting_text: + response = greeting_text.replace("{NICK}", joined_user) + else: + response = f"{greeting_text} {joined_user}" + connection.send_back(response, data) + + self.names[joined_user] = int(time.time())