66 lines
2.9 KiB
Python
66 lines
2.9 KiB
Python
import discord
|
|
from discord.ext import commands
|
|
from datetime import datetime, timedelta
|
|
from geeksbot.imports.utils import process_snowflake
|
|
|
|
|
|
class Inspect(commands.Cog):
|
|
def __init__(self, bot):
|
|
self.bot = bot
|
|
|
|
@commands.command(aliases=['u'])
|
|
async def user(self, ctx, member: discord.Member):
|
|
em = discord.Embed(style='rich',
|
|
title=f'{member.name}#{member.discriminator} ({member.display_name})',
|
|
description=f'({member.id})',
|
|
color=self.bot.embed_color)
|
|
em.set_thumbnail(url=f'{member.avatar_url}')
|
|
em.add_field(name=f'Highest Role:',
|
|
value=f'{member.top_role.mention}',
|
|
inline=True)
|
|
em.add_field(name=f'Bot:',
|
|
value=f'{member.bot}',
|
|
inline=True)
|
|
em.add_field(name=f'Joined Guild:',
|
|
value=f'{self.create_date_string(member.joined_at, ctx.message.created_at)}',
|
|
inline=False)
|
|
em.add_field(name=f'Joined Discord:',
|
|
value=f'{self.create_date_string(member.created_at, ctx.message.created_at)}',
|
|
inline=False)
|
|
em.add_field(name=f'Current Status:',
|
|
value=f'{member.status}',
|
|
inline=True)
|
|
em.add_field(name=f"Currently{' ' + member.activity.type.name.title() if member.activity else ''}:",
|
|
value=f"{member.activity.name if member.activity else 'Not doing anything important.'}",
|
|
inline=True)
|
|
count = 0
|
|
async for message in ctx.channel.history(after=(ctx.message.created_at - timedelta(hours=1))):
|
|
if message.author == member:
|
|
count += 1
|
|
em.add_field(name=f'Activity:',
|
|
value=f'{member.display_name} has sent {count} '
|
|
f'{"message" if count == 1 else "messages"} in the last hour to this channel.',
|
|
inline=False)
|
|
await ctx.send(embed=em)
|
|
|
|
@commands.command(aliases=['s'])
|
|
async def snowflake(self, ctx, snowflake: int):
|
|
try:
|
|
snowflake = int(snowflake)
|
|
except ValueError:
|
|
await ctx.send('That is not a valid snowflake')
|
|
if len(bin(snowflake))-2 < 63 or len(bin(snowflake))-2 > 64:
|
|
await ctx.send('That is not a valid snowflake')
|
|
creation_time, worker, process, counter = process_snowflake(snowflake)
|
|
em = discord.Embed(title=str(snowflake),
|
|
description=f'Created At: {creation_time.strftime("%c")}\n'
|
|
f'Worker: {worker}\n'
|
|
f'Process: {process}\n'
|
|
f'Increment Counter: {counter}',
|
|
color=self.bot.embed_color)
|
|
await ctx.send(em)
|
|
|
|
|
|
def setup(bot):
|
|
bot.add_cog(Inspect(bot))
|