Python:
import datetime
class TimeOfDayGreeting(Skill):
def __init__(self):
super().__init__()
self.replied_today = False
self.last_reply_date = None
# Override
def input(self, ear: str, skin: str, eye: str):
# Check if it's a new day
today = datetime.date.today()
if self.last_reply_date != today:
self.replied_today = False
self.last_reply_date = today
# Check if user said any of the time-of-day greetings
greetings = ["good morning", "good afternoon", "good evening", "good night"]
user_greeted = any(greeting in ear.lower() for greeting in greetings)
# Process input if user greeted and we haven't replied today
if user_greeted and not self.replied_today:
# Get current hour to determine appropriate response
current_hour = datetime.datetime.now().hour
if current_hour < 12: # Morning: 0-11
response = "good morning to you too!"
elif current_hour < 17: # Afternoon: 12-16
response = "good afternoon to you too!"
elif current_hour < 21: # Evening: 17-20
response = "good evening to you too!"
else: # Night: 21-23
response = "good night to you too!"
self.setVerbatimAlg(4, response)
self.replied_today = True
def skillNotes(self, param: str) -> str:
if param == "notes":
return "Replies with greeting appropriate for current time of day, once per day"
elif param == "triggers":
return "good morning, good afternoon, good evening, good night"
elif param == "time_logic":
return "Morning(<12), Afternoon(12-16), Evening(17-20), Night(21-23)"
elif param == "state":
return f"Replied today: {self.replied_today}, Last reply: {self.last_reply_date}"
return "note unavailable"