- Improved random phrase (will not show a phrase twice)

- Added test function for random phrase
This commit is contained in:
Logan Cusano
2021-12-22 02:27:28 -05:00
parent 92c1639565
commit a60660eb03

View File

@@ -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):