diff --git a/gesmain.py b/gesmain.py index a7f2758..af7047d 100644 --- a/gesmain.py +++ b/gesmain.py @@ -13,7 +13,7 @@ async def zapis_info_hadanka(guild_id, aktivni, zadavetel_id, fraze, zkratka): fieldnames = ['aktivni', 'zadavatel_id', 'fraze', 'zkratka'] writer = csv.DictWriter(csvfile, fieldnames=fieldnames) writer.writeheader() - writer.writerow({'zadavatel_id': zadavetel_id, 'fraze': fraze, 'zkratka': zkratka}) + writer.writerow({'aktivni': aktivni, 'zadavatel_id': zadavetel_id, 'fraze': fraze, 'zkratka': zkratka}) async def precti(guild_id, klic): with open(f'guild_data/guild_{guild_id}.csv', newline='') as csvfile: @@ -42,17 +42,55 @@ async def on_ready(): @app_commands.describe(riddle = "few words from which I will make abbreviation for others to guess") #parametr commandu async def makeriddle(interaction: discord.Interaction, riddle: str): guildid = interaction.guild_id - if await precti(guildid, 'aktivni') == "ne" or os.path.exists(f'guild_data/guild_{guildid}.csv') == False: + + if os.path.exists(f'guild_data/guild_{guildid}.csv') == False: + await zapis_info_hadanka(guildid, "ne", "", "", "") + + if await precti(guildid, "fraze") != "": + pzkratka = await precti(guildid, 'zkratka') + riddle_author = (bot.get_guild(guildid)).get_member(int(await precti(guildid, "zadavatel_id"))) + await interaction.response.send_message(f"Abbreviation already set ({pzkratka}) by {riddle_author.nick}", ephemeral=True) + + if await precti(guildid, 'aktivni') == "ne" and await precti(guildid, "fraze") == "": zkratka = "".join(list(w[0].upper() for w in riddle.split(' '))) await zapis_info_hadanka(guildid, "ano", interaction.user.id, riddle, zkratka) - await interaction.response.send_message(f"you have set the riddle to: **{riddle}**, you can end the guessing using */end*", ephemeral=True) + await interaction.response.send_message(f"you have set the riddle to: **{riddle}**, you can end the guessing using /end", ephemeral=True) print(f"[MAKERIDDLE] in guild {guildid} user {interaction.user.id} set riddle to: {riddle}") - await interaction.channel.send(f"{interaction.user.display_name} has set a new abbreviation to solve: **{zkratka}**!") + await interaction.channel.send(f"{interaction.user.nick} have set a new abbreviation to solve: **{zkratka}**! you can guess using /guess") + + + +@bot.tree.command(name="guess") +@app_commands.describe(meaning = "The meaning of the abbreviation") +async def guess(interaction: discord.Interaction, meaning: str): + guildid = interaction.guild_id + + if os.path.exists(f'guild_data/guild_{guildid}.csv') == False: + await interaction.response.send_message("there is no file for this server yet, you can be the first one to use the bot on this server by running /makeriddle", ephemeral=True) + else: - pzkratka = await precti(guildid, 'zkratka') - await interaction.response.send_message(f"Abbreviation already set ({pzkratka})", ephemeral=True) + aktivni = str(await precti(guildid, 'aktivni')) + + if aktivni == "ano": + solution = await precti(guildid, "fraze") + riddle_author = (bot.get_guild(guildid)).get_member(int(await precti(guildid, "zadavatel_id"))) + + if interaction.user.id == riddle_author.id: + await interaction.response.send_message("you cant guess your own riddle!", ephemeral=True) + + if aktivni == "ano" and solution.lower() != meaning.lower() and interaction.user.id != riddle_author.id: + await interaction.response.send_message(f"{interaction.user.nick}'s guess **({meaning})** is incorrect!") + + if aktivni == "ano" and solution.lower() == meaning.lower() and interaction.user.id != riddle_author.id and os.path.exists(f'guild_data/guild_{guildid}.csv') == True: + await interaction.response.send_message(f"{interaction.user.nick} have succesfully guessed {riddle_author.nick}'s riddle **({solution.lower()})**") + await zapis_info_hadanka(guildid, "ne", "", "", "") + + elif aktivni == "ne": + await interaction.response.send_message("there is nothing to guess, you can make others guess your abbreviation using /makeriddle", ephemeral=True) + + # # #