From a60660eb033cc3df230fedbd8074bf2c495ef31c Mon Sep 17 00:00:00 2001 From: Logan Cusano Date: Wed, 22 Dec 2021 02:27:28 -0500 Subject: [PATCH] - Improved random phrase (will not show a phrase twice) - Added test function for random phrase --- modules/WillieTimer/cog.py | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/modules/WillieTimer/cog.py b/modules/WillieTimer/cog.py index 45a7b19..ddaf66f 100644 --- a/modules/WillieTimer/cog.py +++ b/modules/WillieTimer/cog.py @@ -1,6 +1,5 @@ import asyncio import datetime -import random import discord from random import choice from discord.ext import commands @@ -14,6 +13,7 @@ class WillieTimer(commands.Cog): self.mention_group = str(self.bot.Default_Mention_Group) self.channel_id = int(self.bot.Default_Channel_ID) self.lock = False + self.current_phrase = None @loop(minutes=1) async def bg_timer(self): @@ -80,6 +80,12 @@ class WillieTimer(commands.Cog): await ctx.send(f"{member}, {message} is not a valid role, please try again") pass + @commands.command(help='Test random choice') + async def test_rchoice(self, ctx, *, member: discord.Member = None): + member = member or ctx.author.display_name + await ctx.send(f"Selection:\t{self.get_random_phrase()}", tts=True) + + def bot_get_role(self): channel = self.bot.get_channel(id=self.channel_id) guild = channel.guild @@ -88,12 +94,18 @@ class WillieTimer(commands.Cog): def get_random_phrase(self): selected_phrase = None - with open('./Phrases.txt', 'r') as phrase_file: - phrases = phrase_file.readlines() - selected_phrase = choice(phrases) + while not selected_phrase: + with open('./modules/WillieTimer/Phrases.txt', 'r') as phrase_file: + phrases = phrase_file.readlines() + selected_phrase = choice(phrases) - if selected_phrase is not None: - return selected_phrase + if selected_phrase is not None: + if selected_phrase != self.current_phrase: + self.current_phrase = selected_phrase + return selected_phrase + else: + selected_phrase = None + continue def setup(bot: commands.Bot):