Added live-sba-scores

This commit is contained in:
Cal Corum 2023-09-07 16:40:19 -05:00
parent 5b7a0e85b8
commit 74e4926558

View File

@ -86,8 +86,10 @@ class Players(commands.Cog):
self.bot = bot
self.player_list = {}
self.scorecards = {}
self.voice_channels = []
self.build_master_player_list.start()
self.live_scorecard_loop.start()
# async def cog_command_error(self, ctx, error):
# await ctx.send(f'{error}\n\nRun !help <command_name> to see the command requirements')
@ -146,6 +148,41 @@ class Players(commands.Cog):
logging.info(f'player list count: {len(self.player_list)}')
logging.debug(f'player list: {self.player_list}')
@tasks.loop(minutes=3)
async def live_scorecard_loop(self):
guild = self.bot.get_guild(int(os.environ.get('GUILD_ID')))
if not guild:
logging.error(f'live_scorecard_loop - could not pull guild / retrying in 15 seconds')
await asyncio.sleep(15)
guild = self.bot.get_guild(int(os.environ.get('GUILD_ID')))
logging.info(f'live_scorecard_loop - guild: {guild}')
score_channel = discord.utils.get(guild.text_channels, name='live-sba-scores')
player_role = get_role(score_channel, SBA_PLAYERS_ROLE_NAME, bot=self.bot)
try:
if len(self.voice_channels) > 0:
game_strings = []
for x in self.scorecards.values():
game_strings.append(x.get_value('A1'))
if len(game_strings) > 0:
# Clear old messages
async for message in score_channel.history(limit=25):
await message.delete()
embed = get_team_embed('SBa Scoreboard')
embed.add_field(name='Live Games', value="\n\n".join(game_strings))
await score_channel.set_permissions(player_role, read_messages=True)
await score_channel.send(content=None, embed=embed)
return
await score_channel.set_permissions(player_role, read_messages=False)
except Exception as e:
await send_to_channel(self.bot, 'commissioners-office', f'Could not update live scorecard:\n\n{e}')
logging.error(f'Could not update live scorecard: {e}')
@staticmethod
async def update_injuries(ctx):
current = await db_get('current')
@ -1667,14 +1704,18 @@ class Players(commands.Cog):
category=discord.utils.get(ctx.guild.categories, name=f'Voice Channels')
)
logging.info(f'Just created voice channel: {channel_name} for {ctx.author}')
self.voice_channels.append(this_vc)
await ctx.send(f'Just created {this_vc} for you!')
while True:
await asyncio.sleep(900)
if len(this_vc.members) == 0:
await this_vc.delete()
logging.info(f'Just deleted voice channel: {channel_name}')
self.voice_channels.remove(this_vc)
try:
await this_vc.delete()
except Exception as e:
logging.error(f'could not delete {this_vc}.')
break
@commands.command(name='private', help='Get private vc')
@ -1746,12 +1787,14 @@ class Players(commands.Cog):
overwrites=overwrites,
category=discord.utils.get(ctx.guild.categories, name=f'Voice Channels')
)
self.voice_channels.append(this_vc)
await ctx.send(f'Just created {this_vc} for you!')
while True:
await asyncio.sleep(900)
if len(this_vc.members) == 0:
self.voice_channels.remove(this_vc)
try:
await this_vc.delete()
except Exception as e: