Как я могу отобразить наиболее активных людей в порядке от активных к менее активным

#python-3.x #discord #discord.py #discord.py-rewrite

#python-3.x #Discord #discord.py

Вопрос:

Итак, я в основном хочу создать команду, которая показывает наиболее активных пользователей на сервере по порядку, я знаю, как найти активных людей на сервере в то время, но не показывает наиболее активных:

 @bot.command()
async def Most_Active(ctx):
    num=0
    await ctx.send("**Below're the most active users in the server**")
    for user in ctx.guild.members:
        if user.status == discord.Status.online:
            num  = 1
            await ctx.send("n{0}{1}".format(str(num),user.name))
            #This does acrually do what i want, It only tells the person online,
            #but i want to find the most active person (It's be better if it displays more in order
            # bu i don't care much about that)
  

Комментарии:

1. Discord не отслеживает эти номера (или, если это так, они не делают их доступными для вашего бота). Вам придется собирать эти данные самостоятельно.

2. Вы можете собрать, кто отправил наибольшее количество отправленных сообщений, затем отобразить их в отсортированном списке или назначить им роль, которая показывает, что они наиболее активны, если они отправляют определенное количество сообщений в течение определенного периода времени.

3. Я не уверен, как это сделать, я думаю, это будет новый вопрос

Ответ №1:

Вам понадобится какой-то способ отслеживать эти данные, так как же вы могли бы это сделать? Ваши лучшие варианты — использовать базу данных. Как вы могли бы интегрировать базу данных в свой дизайн? Легко, вы можете начать с чего-то вроде SQLITE, который очень прост в использовании и легко интегрируется с Python, вы можете регистрировать количество сообщений, отправленных людьми, а затем из этих данных видеть, кто «самый активный». Итак, я предлагаю изучить вариант базы данных, который подходит вам и который предоставит вам самый простой способ хранения данных, которые вы хотите.