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)