Добавлены Discord-команды: - !status — пинг к gateway, uptime, статус (embed) - !stats — серверы, каналы, пользователи (embed) Добавлены консольные команды: - status — статус бота в терминале - stats — статистика серверов в терминале Тесты: - test_commands_status.py (6 тестов) - test_commands_stats.py (4 теста) - всего: 233 теста Обновления: - README.md — новые команды в таблицах и архитектуре - ISSUES.md — высокий приоритет закрыт - admin.py — hint на !status и !stats
27 lines
1.1 KiB
Python
27 lines
1.1 KiB
Python
import discord
|
|
from discord.ext import commands
|
|
|
|
|
|
class Stats(commands.Cog):
|
|
"""Команда !stats — статистика серверов"""
|
|
|
|
@commands.command(name="stats")
|
|
async def stats(self, ctx):
|
|
"""Количество серверов, каналов и пользователей"""
|
|
guilds = ctx.bot.guilds
|
|
total_guilds = len(guilds)
|
|
total_channels = sum(guild.channels.__len__() for guild in guilds)
|
|
total_members = sum(guild.member_count or 0 for guild in guilds)
|
|
latency_ms = round(ctx.bot.latency * 1000, 1)
|
|
|
|
embed = discord.Embed(
|
|
title="Статистика серверов",
|
|
colour=discord.Color.blue(),
|
|
)
|
|
embed.add_field(name="Серверов", value=str(total_guilds), inline=True)
|
|
embed.add_field(name="Каналов", value=str(total_channels), inline=True)
|
|
embed.add_field(name="Пользователей", value=str(total_members), inline=True)
|
|
embed.add_field(name="Пинг", value=f"{latency_ms} мс", inline=True)
|
|
|
|
await ctx.send(embed=embed)
|