karel_bot/responses.py
2024-08-07 17:43:15 +02:00

62 lines
1.8 KiB
Python

import random, os
def Response_type_determinator(response_type_dict, msg_content):
for type in response_type_dict.values():
for slovo in type.slova:
if type.fn_podminka(slovo, msg_content) == True:
return(random.choice(type.responses))
class Response():
def __init__(self, slova, podminka, responses):
self.slova = slova
self.podminka = podminka
self.responses = responses
def fn_podminka(self, slovo, msg_content):
if self.podminka == "obsahuje":
return(slovo in msg_content)
elif self.podminka == "konec":
return(msg_content.endswith(slovo))
elif self.podminka == "zacatek":
return(msg_content.startswith(slovo))
def get_response_types():
directory = os.walk("config/responses")
response_dict = {}
for paths in directory:
for path in paths[2]:
content = open(f"config/responses/{path}", "r").readlines()
slova = content[0].split(", ")
responses = content[1].split(", ")
path = path[:-4].split("_")
value = path[0]
podminka = path[1]
response_dict[value] = Response(slova, podminka, responses)
return(response_dict)
mista = Response(["kde", "where"], "zacatek", ["tady", "tam", "tam ne", "tamhle"])
cas = Response(["kdy", "v kolik", "when"], "zacatek", ["ted ne", "nikdy", "ve 12:00", "zitra", "dnes vecer", "v 9"])
response_types = [mista, cas]
def response_generator(msg_content):
moznosti = ["determinator"]
x = random.choice(moznosti)
if x == "determinator":
odpoved = Response_type_determinator(get_response_types(), msg_content)
else:
return(None)
return(odpoved)