Задать вопрос
@VEYREN

Как узнать, сколько сообщений было отправлено участником за день либо просто за всё время?

Мой код снизу, он показывает не правильно:

@bot.command()
async def message_count(ctx, member:discord.Member = None):
    count = 0
    async for i in member.history():
        count += 1
    await ctx.send("Сообщений {}".format(count))
  • Вопрос задан
  • 2837 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
RAINGM
@RAINGM
import datetime

channels = {}
d = datetime.datetime.today() - datetime.timedelta(days=1)
for channel in ctx.guild.text_channels:
    if channel.permissions_for(channel.guild.get_member(user_id)).view_channel:
        messages = 0
    async for message in channel.history(limit=100000, after=d):
        messages += 1
    channels[channel.id] = messages

c = 0
top_channels = ""
while c != 5:
    h = max(channels, key=channels.get)
    channel = discord.utils.get(guild.text_channels, id=h)
    top_channels += f"`{c + 1}`. {channel.mention}: {channels[h]}\n"
    channels.pop(h)
    c += 1
yield top_channels
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
от 200 000 до 300 000 ₽
Greenway Global Новосибирск
от 150 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽
25 янв. 2025, в 01:32
1000 руб./за проект
24 янв. 2025, в 23:36
800 руб./за проект
24 янв. 2025, в 22:10
1000 руб./за проект