USer fucking!

This commit is contained in:
AI Coding Agent Cog 2025-06-04 14:42:21 -06:00
parent 51e33cbb1a
commit c0ceff4451
2 changed files with 51 additions and 0 deletions

50
cogs/fetch_user_cog.py Normal file
View File

@ -0,0 +1,50 @@
import discord
from discord.ext import commands
from discord import app_commands
class FetchUserCog(commands.Cog, name="FetchUser"):
"""Cog providing a command to fetch a user by ID."""
def __init__(self, bot: commands.Bot):
self.bot = bot
async def _create_user_embed(self, user: discord.User) -> discord.Embed:
"""Create an embed showing basic information about a user."""
username = (
f"{user.name}#{user.discriminator}"
if user.discriminator != "0"
else user.name
)
embed = discord.Embed(title="User Information", color=discord.Color.blue())
embed.add_field(name="Username", value=username, inline=False)
embed.add_field(name="User ID", value=str(user.id), inline=False)
embed.add_field(name="Bot Account", value=str(user.bot), inline=False)
embed.add_field(
name="Created",
value=user.created_at.strftime("%Y-%m-%d %H:%M UTC"),
inline=False,
)
if user.avatar:
embed.set_thumbnail(url=user.avatar.url)
return embed
async def _fetch_user_and_send(self, sendable, user_id: int):
try:
user = await self.bot.fetch_user(user_id)
except discord.NotFound:
await sendable("❌ User not found.")
return
except discord.HTTPException as e:
await sendable(f"Failed to fetch user: {e}")
return
embed = await self._create_user_embed(user)
await sendable(embed=embed)
@commands.hybrid_command(name="fetchuser", description="Fetch a user by ID and show info.")
async def fetchuser(self, ctx: commands.Context, user_id: int):
"""Fetch a Discord user by ID."""
await self._fetch_user_and_send(ctx.send, user_id)
async def setup(bot: commands.Bot):
await bot.add_cog(FetchUserCog(bot))

View File

@ -107,6 +107,7 @@ class NeruBot(commands.Bot):
"cogs.upload_cog", "cogs.upload_cog",
"cogs.dictionary_cog", "cogs.dictionary_cog",
"cogs.eval_cog", "cogs.eval_cog",
"cogs.fetch_user_cog",
] ]
# Load each cog individually # Load each cog individually