diff --git a/config_example/token.txt b/config_example/token.txt new file mode 100644 index 0000000..3e384a6 --- /dev/null +++ b/config_example/token.txt @@ -0,0 +1 @@ +just bots token :) \ No newline at end of file diff --git a/karel_main.py b/karel_main.py new file mode 100644 index 0000000..6f5b695 --- /dev/null +++ b/karel_main.py @@ -0,0 +1,38 @@ +import discord, random +from discord.ext import commands +import responses # type: ignore + +prefix = "Karle " +client = commands.Bot(command_prefix=prefix, intents=discord.Intents.all()) + +# +# +############################################################################bot login +@client.event +async def on_ready(): + print(f"[ONREADY ] logged in as: {client.user}") + #myloop.start() +# +# +############################################################################ on message event +@client.event +async def on_message(message): + #reply chance + if message.author != client.user and message.content.startswith(prefix) == False and random.randint(1,1) == random.randint(1,1): + odpoved = responses.response_generator(message.content) + if odpoved != None: + await message.reply(odpoved) + + await client.process_commands(message) +# +# +############################################################################pomoc command "Karle pomoc" +@client.command() +async def pomoc(ctx): + await ctx.send("susik") + + + + +TOKEN = open("config/token.txt", 'r').read() +client.run(TOKEN) diff --git a/responses.py b/responses.py new file mode 100644 index 0000000..a0e8436 --- /dev/null +++ b/responses.py @@ -0,0 +1,62 @@ +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) \ No newline at end of file