diff --git a/src/cogs/poll.py b/src/cogs/poll.py index 386ec2a..351d61d 100644 --- a/src/cogs/poll.py +++ b/src/cogs/poll.py @@ -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)