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

View File

@@ -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())
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())