import random, os ############################################################################### ###################### TYPY ODPOVEDI PODLE PODMINEK ########################### ############################################################################### 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_responses(): directory = os.walk("config/responses") response_dict = {} for paths in directory: for path in paths[2]: content = open(f"config/responses/{path}", "r", encoding="utf-8").readlines() slova = content[0][:-1].split("; ") #[:-1] kvuli \n responses = content[1].split("; ") path = path[:-4].split("_") value = path[0] podminka = path[1] response_dict[value] = Response(slova, podminka, responses) return(response_dict) ################################################################################ ############################## NAHODNA ODPOVED ################################# ################################################################################ def get_random_response(): content = open("config/random_responses.txt", "r", encoding="utf-8").read().splitlines() return(random.choice(content)) ################################################################################ ###################### GENERATOR ODPOVEDI Z MOZNOSTI ########################### ################################################################################ def response_generator(msg): odpoved = Response_type_determinator(get_responses(), msg.content) if odpoved == None: odpoved = get_random_response() return(odpoved) # moznosti = ["determinator"] # x = random.choice(moznosti) # # if x == "determinator": # odpoved = Response_type_determinator(get_responses(), msg.content) # # if x == "nahodna_odpoved": # odpoved = get_random_response() # # else: # odpoved = get_random_response() # # return(odpoved) ################################################################################ ############################# NAHODNA ZPRAVA ################################### ################################################################################ def get_random_message(): content = open("config/random_messages.txt", "r", encoding="utf-8").read().splitlines() return(random.choice(content))