allow Greeter to use NICK within responses. e.g. "Hello X, nice to see you"

This commit is contained in:
Context 77
2024-08-03 01:09:46 +02:00
parent 2c01a0b7cb
commit 41621ad635
+21 -15
View File
@@ -4,15 +4,17 @@ from FaustBot.Model.UserProvider import UserProvider
import time import time
from collections import defaultdict from collections import defaultdict
class Greeter(JoinObserverPrototype): class Greeter(JoinObserverPrototype):
""" """
A Class only reacting to pings A Class only reacting to pings
""" """
greetings_dict = defaultdict(str) greetings_dict = defaultdict(str)
greetings_dict['Luci'] = "Hewuu" greetings_dict["Luci"] = "Hewuu"
greetings_dict['pome'] = "Hewuu" greetings_dict["pome"] = "Hewuu"
greetings_dict['Skadi'] = "Awoo" greetings_dict["Skadi"] = "Awoo {NICK}!"
@staticmethod @staticmethod
def cmd(): def cmd():
return None return None
@@ -27,17 +29,21 @@ class Greeter(JoinObserverPrototype):
self.greeting = greeting self.greeting = greeting
def update_on_join(self, data, connection: Connection): def update_on_join(self, data, connection: Connection):
if data['channel'] == connection.details.get_channel(): if data["channel"] == connection.details.get_channel():
if data['nick'].find("Guest") != -1: joined_user = data["nick"]
if (
joined_user.startswith("Guest")
or UserProvider().get_characters(joined_user) < 100
):
return 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()) 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())