This commit is contained in:
2025-05-26 22:33:28 +02:00
parent b5db2cd99e
commit 1da66274cc

View File

@ -135,14 +135,14 @@ class PollCog(commands.Cog):
# End the poll
await self._end_poll(message_id, poll_data, passed)
def __result_embed(self, username, passed, invite_url=None):
def __result_embed(self, username, passed, creator_id):
"""Create result embed for poll completion"""
title = f"Poll Results for {username}"
if passed:
description = ""
color = discord.Color.green()
if invite_url:
description += f" Their DMs are off, so send them this!\n\nInvite link: {invite_url}"
description += f" <@{creator_id}> The poll passed! Check your DMs for the invite link."
else:
description += " Manual invite required"
else:
@ -162,6 +162,7 @@ class PollCog(commands.Cog):
"""End the poll and handle the result"""
username = poll_data["username"]
channel = self.bot.get_channel(poll_data["channel_id"])
creator_id = poll_data["creator"]
if not channel:
return
@ -182,11 +183,6 @@ class PollCog(commands.Cog):
if passed:
# Create invite link to os.env("INVITE_CHANNEL")
try:
# invite = await channel.create_invite(
# max_uses=1,
# max_age=timedelta(hours=HOURS),
# reason=f"Poll passed for {username}",
# )
inv_channel = self.bot.get_channel(int(os.getenv("INVITE_CHANNEL")))
if not inv_channel:
logging.error("INVITE_CHANNEL not found")
@ -197,15 +193,27 @@ class PollCog(commands.Cog):
reason=f"Poll passed for {username}",
)
invite_url = invite.url
try:
creator = self.bot.get_user(creator_id)
if creator:
dm_embed = discord.Embed(
title=f"Poll Passed for {username}",
description=f"The poll you created has passed! Here's the invite link:\n\n{invite_url}",
color=discord.Color.green(),
)
await creator.send(embed=dm_embed)
else:
logging.error(f"Could not find user with ID {creator_id}")
except discord.Forbidden:
logging.error(f"Could not DM user {creator_id} - DMs may be disabled")
except discord.Forbidden:
logging.error("Bot does not have permission to create invites.")
except Exception as e:
logging.error(f"Failed to create invite: {e}")
invite_url = None
result_embed = self.__result_embed(username, passed, invite_url)
result_embed = self.__result_embed(username, passed, creator_id)
await message.edit(embed=result_embed)