62 lines
1.8 KiB
Python
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) |