86 lines
3.1 KiB
Python
86 lines
3.1 KiB
Python
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)) |