52 lines
1.5 KiB
Python
52 lines
1.5 KiB
Python
from discord.ext import commands
|
|
import discord
|
|
import aiosqlite
|
|
|
|
from global_variables import BOT_COLOR
|
|
|
|
|
|
class UserCount(commands.Cog):
|
|
def __init__(self, bot):
|
|
self.bot = bot
|
|
|
|
|
|
@commands.command()
|
|
@commands.dm_only()
|
|
@commands.is_owner()
|
|
async def info(self, ctx: commands.Context):
|
|
total_guilds = {}
|
|
|
|
for guild in self.bot.guilds:
|
|
total_guilds[guild.name] = guild.member_count
|
|
|
|
# Sort the dictionary by value descending
|
|
total_guilds = dict(sorted(total_guilds.items(), key=lambda item: item[1], reverse=True))
|
|
|
|
total_members = 0
|
|
|
|
for guild in total_guilds:
|
|
total_members += total_guilds[guild]
|
|
|
|
cur = await aiosqlite.connect("./code/count/count.db")
|
|
count = await cur.execute("SELECT count FROM count")
|
|
count = await count.fetchone()
|
|
await cur.close()
|
|
if count is None:
|
|
count = 0
|
|
else:
|
|
count = count[0]
|
|
|
|
embed = discord.Embed(
|
|
title="User Count",
|
|
description=f"Total Members: `{total_members:,}`\nTotal Guilds: `{len(self.bot.guilds):,}`\nTotal Commands Run: `{count:,}`",
|
|
color=BOT_COLOR
|
|
)
|
|
# Add the top 5 guilds to the embed
|
|
for guild in list(total_guilds)[:5]:
|
|
embed.add_field(name=guild, value=f"```{total_guilds[guild]:,}```", inline=False)
|
|
|
|
await ctx.send(embed=embed)
|
|
|
|
|
|
async def setup(bot):
|
|
await bot.add_cog(UserCount(bot)) |